赞
踩
代码:https://github.com/WongKinYiu/yolov9
论文:https://arxiv.org/abs/2402.1361
yolov9提出可编程梯度信息(PGI)和基于梯度路径规划的通用高效层聚合网络(GELAN),最终铸成YOLOv9目标检测全新工作!性能表现SOTA!在各个方面都大大超过了现有的实时目标检测器,优于RT DETR、YOLOv8等网络。
可以看出在是目前主流目标检测中的SOTA。
现有方法中性能最好是用于轻量级模型的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是以上方法中性能SOTA,各方面都有所提升。
目前主流的实时物体探测器是YOLO系列,这些模型大多数使用CSPNet或ELAN及其变体作为主要的计算单元。
在特征集成方面,通常使用改进的PAN或FPN作为模块,然后使用改进的YOLOv3 head 或FCOS head 作为预测头。最近也提出了一些实时目标探测器,如RT DETR,它将其应用于DETR上。然而,由于DETR系列中没有相应领域预训练模型的对象检测器很难应用于新的领域,目前应用最广泛的实时对象检测器仍然是YOLO系列。
本文选择YOLOv7作为基础,该方法在各种计算机视觉任务和各种场景中都被证明是有效的。使用GELAN来改进所提出的PGI的架构和训练过程。本文提出的YOLOv9成为新一代的顶级实时对象检测器。
可逆架构的计算单元必须保持可逆转换的特性,才能保证每层计算单元的输出特征图能够保留完整的原始信息。之前,RevCol 将传统的可逆单元推广到多个层次,可以扩展由不同层单元表示的语义层次。通过对各种神经网络结构的文献综述,我们发现有许多具有不同程度可逆性的高性能结构。例如:
本文介绍了动态网络体系结构作为设计可逆分支的基础。在PGI中还进一步引入了可逆信息。提出的新架构在推理过程中不需要额外的连接,可以完全保留速度、参数量和精度等方面的优点。
深度监督是最常见的辅助监督方法,它通过在中间层插入额外的预测层来进行训练。特别是在基于变压器的方法中引入的多层解码器的应用是最常见的一种。另一种常见的辅助监督方法是利用相关的元信息来引导中间层产生的特征图,使其具有目标任务所需的属性。
使用分割损失或深度损失来提高目标检测器的准确性。近年来有很多学者使用不同的标签分配方法来生成不同的辅助监督机制,以加快模型的收敛速度,同时提高鲁棒性。但是,辅助监督机制通常只适用于大型模型,当应用于轻量级模型时,很容易出现欠参数化现象,导致性能下降。
我们提出的PGI设计了一种重编程多层次语义信息的方法,该设计还允许轻量级模型也从辅助监督机制中获益。
PGI(Programmable Gradient Information)进化对比:
网络深化会导致信息瓶颈,使损失函数无法产生可靠的梯度。辅助可逆分支来生成可靠的梯度和更新网络参数。通过提供从数据映射到目标的信息,损失函数可以提供指导,并避免从与目标不太相关的不完全前馈特征中发现错误相关性的可能性。
通过引入可逆体系结构来维护完整的信息,但在可逆体系结构中添加主分支将消耗大量的推理成本。我们分析了图(b)的架构,发现当添加从深层到浅层的额外连接时,推理时间将增加20%。当我们将输入数据重复添加到网络的高分辨率计算层(黄框)时,推断时间甚至超过了网络计算时间的两倍。
本节介绍多级辅助信息是如何工作的。包含多个预测分支的深度监督体系结构如图©所示
对于目标检测,使用不同的特征金字塔来执行不同的任务,例如,它们可以一起检测不同大小的目标。因此,在连接到深监督分支后,将引导浅层特征学习小物体检测所需的特征,此时系统将其他大小的物体的位置视为背景。然而,上述行为会导致深层特征金字塔丢失预测目标对象所需的大量信息。我们认为每个特征金字塔都需要接收关于所有目标对象的信息,以便后续的主分支可以保留完整的信息来学习对不同目标的预测。
多级辅助信息的概念是在辅助监督的特征金字塔层次层与主分支之间插入一个集成网络,然后利用它将从不同的预测头返回的梯度组合起来,如图 (d)所示。
然后,多级辅助信息是聚合包含所有目标的梯度信息,传递给主分支,更新参数。主分支的特征金字塔层次结构的特征将不会被某些特定对象的信息所支配。因此,我们的方法可以缓解深度监督中的信息中断问题。
此外,任何集成网络都可以用于多级辅助信息。可以规划所需的语义级别来指导不同大小的网络架构的学习。
在本节中,将描述所提出的新的网络架构-GELAN。通过结合采用梯度路径规划设计的CSPNet和ELAN两种神经网络架构,设计了考虑轻量级、推理速度和精度的通用高效层聚合网络(GELAN)。如下图: 我们将ELAN 的能力推广到最初只使用卷积层的堆叠,到可以使用任何计算块的新架构。模仿CSPNet,并将ELAN扩展到可以支持任何计算块的GELAN中。
模仿CSPNet,并将ELAN扩展到可以支持任何计算块的GELAN中。
对于GELAN,我们首先对计算块进行替换研究。我们分别使用Res块、Dark块和CSP块进行实验。
从表中可以看出,不同的计算块替换ELAN中的卷积层后,可以保持良好的性能。用户确实可以自由地替换计算块,并在他们各自的推理设备上使用它们。在不同的计算块替换中,CSP块表现得特别好。它们不仅减少了参数量和计算量,而且使AP提高了0.7%。因此,我们选择CSPELAN作为YOLOv9中GELAN的组成单元。
接下来,我们对不同大小的GELAN进行ELAN块深度和CSP块深度实验,结果如表所示。
<
我们可以看到,当ELAN的深度从1增加到2时,精度显著提高。但当深度大于或等于2时,无论是提高ELAN深度还是CSP深度,参数的数量、计算量和精度始终呈线性关系。这意味着GELAN对深度不敏感。
换句话说,用户可以任意组合GELAN中的组件来设计网络体系结构,得到一个没有特殊设计的性能稳定的模型。在表3中,对于YOLOv9-{S,M,C},我们将ELAN深度和CSP深度的配对设置为{{2,3}、{2、1}、{2、1}}。
在PGI方面,我们分别对主干和颈部的辅助可逆分支和多级辅助信息进行了消融研究。
我们设计了辅助可逆分支ICN,利用DHLC链接获取多级可逆信息。在多级辅助信息方面,我们使用FPN和PAN进行消融研究,PFH的作用等同于传统的深度监督。所有实验结果见表。
从表4中可以看出,PFH仅在深度模型中有效,而我们提出的PGI在不同组合下可以提高精度。特别是在使用ICN时,我们得到了稳定和更好的结果。我们还尝试将YOLOv7 中提出的铅头引导分配应用于PGI的辅助监督中,取得了更好的性能。
我们进一步实现了PGI的概念和对不同规模的模型的深度监督,并对结果进行了比较,这些结果如表5所示。
正如一开始所分析的那样,引入深度监督会导致浅层模型的精度损失。对于一般的模型,引入深度监督会导致性能不稳定,而深度监督的设计理念只能给极深的模型带来收益。
所提出的PGI能够有效地处理信息瓶颈和信息破碎等问题,并能够全面提高不同规模模型的准确性。
PGI的概念带来了两个有价值的贡献。第一个是使辅助监督方法适用于浅层模型,第二种是使深度模型训练过程获得更可靠的梯度。这些梯度使深度模型能够使用更准确的信息来建立数据和目标之间的正确相关性。
最后,我们在表中展示了从基线YOLOv7到YOLOv9- E逐渐增加的组件的结果。我们提出的GELAN和PGI给模型带来了全面的改进。
本节将探讨信息传递瓶颈问题,并将其可视化。
在图6中展示了在不同架构下使用随机初始权值作为feedforward,所获得的特征图的可视化结果。我们可以看到,随着层数的增加,所有架构的原始信息都会逐渐减少。例如:
图7用于显示PGI是否可以在训练过程中提供更可靠的梯度,从而使用于更新的参数能够有效地捕获输入数据与目标之间的关系。
图7显示了GELAN和YOLOv9(GELAN + PGI)的PAN特征图偏置预热中1个迭代后的可视化结果。从图7(b)和©的比较中,我们可以清楚地看到,PGI准确而简洁地捕获了包含目标的区域。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。