在目的检测领域,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 的目的检测器。
来源:https://twitter.com/alexeyab84/status/1760685626247250342
还有网友表示,YOLOv9 看起来就是新的 SOTA 实时目的检测器,他自己的自定义训练教程也在路上了。
来源:https://twitter.com/skalskip92/status/1760717291593834648
更有「勤劳」的网友已经为 YOLOv9 模型添加了 pip 支持。
来源:https://twitter.com/kadirnar_ai/status/1760716187896283635
接下来看 YOLOv9 的详细信息。
成绩陈述
通常,人们将深度神经搜集收敛困难成绩归因于梯度消失或梯度饱和等因素,这些现象确实存在于传统的深度神经搜集中。然而,现代深度神经搜集通过设计各种归一化和激活函数,已经从根本上解决了上述成绩。不过即便如此,深度神经搜集中仍然存在着收敛速度慢或收敛效果差的成绩。那么这个成绩的本质到底是什么?
钻研者通过对信息瓶颈的深入分析,推断出了该成绩的根本原因:梯度最初从非常深层的搜集传递出来后不久,就遗失了许多达成目的所需的信息。为了验证这一推断,钻研者们对具有初始权重的不同架构的深度搜集从事前馈处理。图 2 对此从事了可视化说明。显然,PlainNet 在深层遗失了很多从事对象检测所需的重要信息。至于 ResNet、CSPNet 和 GELAN 能够保留的重要信息比例,确实与训练后能够获得的准确性正相关。钻研者进一步设计了鉴于可逆搜集的方法来解决上述成绩的原因。
方法介绍
可编程梯度信息(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 还要好。
溶解试验
为了探究 YOLOv9 中各个组件的作用,该钻研从事了一系列溶解试验。
该钻研首先对 GELAN 的计算块从事溶解试验。以下表 2 所示,该钻研发现用不同的计算块替换 ELAN 中的卷积层后,系统可以保持良好的性能。
然后该钻研又在不同尺寸的 GELAN 上针对 ELAN 块深度和 CSP 块深度从事了溶解试验,结果以下表 3 所示。
在 PGI 方面,钻研者分别在主干搜集和 neck 上对协助可逆分支和多级协助信息从事了溶解钻研。表 4 列出了所有试验的结果。从表 4 中可以看出,PFH 只对深度模型有效,而本文提出的 PGI 在不同组合下都能提高精度。
钻研者进一步在不同大小的模型上实现了 PGI 和深度监控,并对结果从事了比较,结果如表 5 所示。
图 6 显示了从基准 YOLOv7 到 YOLOv9- E 逐步增加组件的结果。
可视化
钻研者探讨了信息瓶颈成绩,并将其从事了可视化处理,图 6 显示了在不同架构下应用随机初始权重作为前馈获得的特征图的可视化结果。
图 7 说明了 PGI 能否在训练过程中提供更可靠的梯度,从而应用于更新的参数能够有效捕捉输入数据与目的之间的关系。
更多技术细节,请阅读原文。