目标检测新SOTA:YOLOv9 问世,新架构让传统卷积重焕生机

在目标检测领域,YOLOv9 实现了一代更比一代强,利用新架构和方法让传统卷积在参数利用率方面胜过了深度卷积。

继 2023 年 1 月 YOLOv8 正式发布一年多以后,YOLOv9 终于来了!

我们知道,YOLO 是一种基于图像全局信息进行预测的目标检测系统。自 2015 年 Joseph Redmon、Ali Farhadi 等人提出初代模型以来,领域内的研究者们已经对 YOLO 进行了多次更新迭代,模型性能越来越强大。

此次,YOLOv9 由中国台湾 Academia Sinica、台北科技大学等机构联合开发,相关的论文《Learning What You Want to Learn Using Programmable Gradient Information 》已经放出。

论文地址:https://arxiv.org/pdf/2402.13616.pdf

GitHub 地址:https://github.com/WongKinYiu/yolov9

如今的深度学习方法重点关注如何设计最合适的目标函数,从而使得模型的预测结果能够最接近真实情况。同时,必须设计一个适当的架构,可以帮助获取足够的信息进行预测。然而,现有方法忽略了一个事实,即当输入数据经过逐层特征提取和空间变换时,大量信息将会丢失。

因此,YOLOv9 深入研究了数据通过深度网络传输时数据丢失的重要问题,即信息瓶颈和可逆函数。

研究者提出了 可编程梯度信息(programmable gradient information,PGI) 的概念,来应对深度网络实现多个目标所需要的各种变化。PGI 可以为目标任务计算目标函数提供完整的输入信息,从而获得可靠的梯度信息来更新网络权值。

此外,研究者基于梯度路径规划设计了一种新的轻量级网络架构,即通用高效层聚合网络(Generalized Efficient Layer Aggregation Network,GELAN)。该架构证实了 PGI 可以在轻量级模型上取得优异的结果。

研究者在基于 MS COCO 数据集的目标检测任务上验证所提出的 GELAN 和 PGI。结果表明,与基于深度卷积开发的 SOTA 方法相比,GELAN 仅使用传统卷积算子即可实现更好的参数利用率。

对于 PGI 而言,它的适用性很强,可用于从轻型到大型的各种模型。我们可以用它来获取完整的信息,从而使从头开始训练的模型能够比使用大型数据集预训练的 SOTA 模型获得更好的结果。下图 1 展示了一些比较结果。

对于新发布的 YOLOv9,曾参与开发了 YOLOv7、YOLOv4、Scaled-YOLOv4 和 DPT 的 Alexey Bochkovskiy 给予了高度评价,表示 YOLOv9 优于任何基于卷积或 transformer 的目标检测器。

YOLOv9 看起来就是新的 SOTA 实时目标检测器,他自己的自定义训练教程也在路上了。

来源:https://twitter.com/skalskip92/status/1760717291593834648

方法介绍

可编程梯度信息(PGI)

该研究提出了一种新的辅助监督框架:可编程梯度信息(Programmable Gradient Information,PGI),如图 3(d)所示。

PGI 主要包括三个部分,即(1)主分支,(2)辅助可逆分支,(3)多级辅助信息。

  • PGI 的推理过程仅使用了主分支,因此不需要额外的推理成本;

  • 辅助可逆分支是为了处理神经网络加深带来的问题, 网络加深会造成信息瓶颈,导致损失函数无法生成可靠的梯度;

  • 多级辅助信息旨在处理深度监督带来的误差累积问题,特别是多个预测分支的架构和轻量级模型。

GELAN 网络

此外,该研究还提出了一个新的网络架构 GELAN(如下图所示),具体而言,研究者把 CSPNet、 ELAN 这两种神经网络架构结合起来,从而设计出兼顾轻量级、推理速度和准确性的通用高效层聚合网络(generalized efficient layer aggregation network ,GELAN)。研究者将最初仅使用卷积层堆叠的 ELAN 的功能泛化到可以使用任何计算块的新架构。

实验结果

为了评估 YOLOv9 的性能,该研究首先将 YOLOv9 与其他从头开始训练的实时目标检测器进行了全面的比较,结果如下表 1 所示。

该研究还将 ImageNet 预训练模型纳入比较中,结果如下图 5 所示。值得注意的是,使用传统卷积的 YOLOv9 在参数利用率上甚至比使用深度卷积的 YOLO MS 还要好。

相关推荐
little redcap10 分钟前
第十九次CCF计算机软件能力认证-乔乔和牛牛逛超市
数据结构·c++·算法
开MINI的工科男11 分钟前
【笔记】自动驾驶预测与决策规划_Part3_路径与轨迹规划
人工智能·笔记·自动驾驶·预测与决策
muyierfly42 分钟前
34.贪心算法1
算法·贪心算法
luthane3 小时前
python 实现average mean平均数算法
开发语言·python·算法
xuanyu223 小时前
Linux常用指令
linux·运维·人工智能
静心问道3 小时前
WGAN算法
深度学习·算法·机器学习
凡人的AI工具箱3 小时前
AI教你学Python 第11天 : 局部变量与全局变量
开发语言·人工智能·后端·python
杰九4 小时前
【算法题】46. 全排列-力扣(LeetCode)
算法·leetcode·深度优先·剪枝
晓星航4 小时前
Docker本地部署Chatbot Ollama搭建AI聊天机器人并实现远程交互
人工智能·docker·机器人
manba_4 小时前
leetcode-560. 和为 K 的子数组
数据结构·算法·leetcode