丰色发自凹非寺
量子位公众号 QbitAI
距离 YOLOv8 发布仅 1 年的时间,v9 诞生了!
这个新版本主打用“可编程梯度信息来学习你想学的任何内容”。
无论是轻量级还是大型模型,它都完胜,一举成为目标检测领域新 SOTA:
网友的心情 be like:
鉴于源码已经发布,有人已率先实测了一把效果:
对比 v8 当时的表现,可以说是进步很大:
来吧,速度论文。
可编程梯度信息+轻量级 GELAN 架构
一般来说,为了使模型预测结果最接近真实情况,目前的深度学习方法比较侧重于如何设计出一个最合适的目标函数。
同时,还要设计一种适当的架构,用于获取足够的信息,方便后续预测。
在此,作者认为:
现有的方法忽略了一个问题,即当输入数据经过逐层特征提取和空间变换时,会丢失大量信息。
因此,YOLOv9 主要破解的就是数据通过深度网络传输时丢失的问题,具体来说就是“信息瓶颈和可逆函数”。
具体贡献上,一是提出可编程梯度信息(PGI)的概念,来应对深度网络检测多个目标所需的各种变化。
PGI 可以为目标任务提供完整的输入信息来计算目标函数,从而获得可靠的梯度信息来更新网络权重。
下图为 PGI 及相关网络架构和方法示意图。
其中(a)为路径聚合网络,(b) 为可逆列,(c)传统深度监督,(d)为作者提出的可编程梯度信息(即 PGI)。
它主要由三部分组成:
- 主分支:用于推理的架构;
- 辅助可逆分支:生成可靠的梯度,为主分支提供反向传输;
- 多级辅助信息:用来控制主分支学习可规划的多级语义信息。
作者解释:
由于可逆架构在浅层网络上的性能比在一般网络上差,因为复杂的任务需要在更深的网络中进行转换。
因此该设计的特点之一是不强迫主分支保留完整的原始信息,而是通过辅助监督机制生成有用的梯度来进行更新。>
这样的优点是,方法也可以应用于较浅的网络。
YOLOv9 的第二个贡献是设计了一种新的基于梯度路径规划的轻量级网络架构 GELAN,用于证明 PGI 的有效性。
它通过模仿 CSPNet 架构+扩展 ELAN 网络而得出,可以支持任何计算块(CSPNet 和 ELAN 都是采用梯度路径规划设计的神经网络)。
大小同类模型都完胜
效果验证在 MS COCO 数据集上进行。
所有模型都使用从头开始训练策略进行训练,总训练次数为 500 个 epoch。
基于 YOLOv7 和 Dynamic YOLOv7 构建了 YOLOv9 的通用版和扩展版。
下表为 YOLOv9 与其他从头开始训练的实时目标探测算法的比较结果。
在此前已有方法中,性能最好的是用于轻型模型的 YOLO MS-S、用于中型模型的 YOLO-MS,用于普通模型的 YOLOv7 AF 和用于大型模型的 YOLOv8-X。
与轻型和中型型号 YOLO MS 相比,YOLOv9 的参数减少了约 10%,计算量减少了5~15%,但 AP 仍有 0.4~0.6% 的改善。
与 YOLOv7 AF 相比,YOLOv9-C 的参数减少了 42%,计算量减少了 21%,但实现了相同的 AP(53%)。
与 YOLOv8-X 相比,YOLOv9-X 的参数减少了 15%,计算量减少了 25%,AP 显著提高了 1.7%。
总结就是与现有方法相比,作者提出的 YOLOv9 在各个方面都有了显著的改进,PGI 的设计使其可以用于从轻量到大型的各种模型。
除此之外,测试还将 ImageNet 预训练模型包括进来,结果如下:
在这之中,就参数数量而言,性能最好的大型模型是 RTDETR。
从上图中我们可以看到,在参数利用方面,使用传统卷积的 YOLOv9 甚至比使用深度卷积的 YOLO MS 更好。
在大模型的参数利用方面,它也大大超过了使用 ImageNet 预训练模型的 RT-DETR。
更厉害的是,在深度模型中,YOLOv9 显示了使用 PGI 的巨大优势。
通过准确地保留和提取将数据映射到目标所需的信息,YOLOv9 只需要 64% 的参数,就能同时保持和 RT DETR-X 一样的准确性。
来自 v7 作者
众所周知,YOLO 系列的作者几乎每次都不是同一个,且有的是个人有的是公司。
比如 v4 是 Alexey Bochkovskiy 和 Chien-Yao Wang 等人,v5 是 Ultralytics 公司,v6 是美团公司,v7 又变成 v4 的个人作者。
这次,v9 又是由谁开发呢?
答案是 Chien-Yao Wang 等人。
这位一作的名字不算陌生,v7、v4 都有他。
他于 2017 年获得台湾省 National Central University 计算机科学与信息工程博士学位,现在就职于该省 Academia Sinica 的信息科学研究所。
One More Thing
知乎上几个月前就有这么一个问题:
想用 yolov8 做毕业设计,如果开题之后,yolov9 出来了怎么办呢?
现在看来,这位网友的担心可是成真了(狗头)
不过实际不用慌,如大伙所说:
最新检测器的泛化性不一定比以前的检测器要好。你所选择的只是一个基准算法,最重要的还是有自己的创新~
传送门:
https://arxiv.org/abs/2402.13616
https://github.com/WongKinYiu/yolov9
参考链接: