论文地址:https://arxiv.org/pdf/2402.13616.pdf
代码地址:GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information
yolov7的作者更新了yolov9
摘要 当今的深度学习方法侧重于如何设计最合适的目标函数,以便模型的预测结果最接近真实情况;与此同时,必须设计一个适当的架构,以便于获取足够的信息进行预测。现有的方法忽略了一个事实:当输入数据进行逐层特征提取和空间变换时,会丢失大量信息。本文将深入探讨数据通过深度网络传输时数据丢失的重要问题,即信息瓶颈和可逆功能。
-
提出了可编程梯度信息(PGI)的概念,以应对深度网络实现多重目标所需的各种变化。PGI可以为目标任务提供完整的输入信息来计算目标函数,从而获得可靠的梯度信息来更新网络权重。
-
设计了一种基于梯度路径规划的新型轻量级网络架构——广义高效层聚合网络(GELAN)。GELAN的架构证实了PGI在轻量化模型上取得了优异的成绩。我们在基于MS COCO数据集的目标检测上验证了所提出的GELAN和PGI。
结果表明,与基于深度卷积的现有方法相比,GELAN仅使用传统的卷积算子即可实现更好的参数利用。PGI可用于从轻量级到大型的各种型号。它可以用来获得完整的信息,使从头开始训练的模型比使用大数据集预训练的最先进的模型获得更好的结果,比较结果如图1所示。
本文的贡献总结如下:
-
作者从可逆函数的角度对现有的深度神经网络架构进行了理论分析,通过这个过程,我们成功地解释了许多过去难以解释的现象。我们还基于该分析设计了PGI和辅助可逆分支,并取得了优异的效果。
-
作者设计的PGI解决了深度监督只能用于极深神经网络架构的问题,从而让新的轻量级架构真正应用到日常生活中。
-
作者设计的GELAN仅使用常规卷积,比基于最先进技术的深度卷积设计实现更高的参数使用,同时显示出轻巧、快速、准确的巨大优势。
-
结合所提出的PGI和GELAN,YOLOv9在MS COCO数据集上的目标检测性能在各个方面都大大超越了现有的实时目标检测器。
方法
Gradient Information
为了解决上述问题,作者提出了一种新的辅助监督框架,称为可编程梯度信息(PGI),如图3(d)所示。
PGI主要包括三个组成部分,即:
-
主分支
-
辅助可逆分支
-
多级辅助信息
从图3(d)的展示中,可以观察到可编程梯度信息(PGI)的推理流程仅涉及主分支,避免了额外推理成本的产生。这一设计精巧地应对了深度学习中的关键挑战,通过两个关键组件提升模型性能:
-
辅助可逆分支:引入此组件是为了解决随着网络深度增加而引发的信息瓶颈问题。这种信息瓶颈会干扰损失函数生成有效梯度的能力,辅助可逆分支通过保持信息流动的完整性来克服这一障碍。
-
多级辅助信息:此部分旨在解决深度监督可能导致的误差累积问题,尤其是在拥有多个预测分支的结构和轻量级模型中。通过引入多级辅助信息,模型能够更有效地学习并减少误差传播。
作者随后详细阐述了这两个组件的实现和作用,指出它们如何共同作用于提高模型的整体性能,特别是在处理复杂任务和轻量级模型的应用中。
Auxiliary Reversible Branch
本节重点讨论了多级辅助信息机制的实现和作用。在深度监督架构中,特别是在目标检测任务中,通常会利用不同层次的特征金字塔来处理不同规模的目标,如图3(c)所展示。这种方法允许模型在特定的深度监督分支下,根据浅层特征识别小型目标,同时将其他规模的目标视为背景。这一做法虽然针对性强,但可能导致深层特征金字塔在预测各种大小目标时丢失关键信息。
作者提出,为了有效地保持目标信息的完整性,每一级的特征金字塔都应该接受到有关所有目标大小的信息。为此,作者引入了一种多级辅助信息框架,通过在辅助监督特征金字塔层和主分支之间加入集成网络,如图3(d)所示。这个集成网络的角色是整合来自不同预测分支的梯度信息,并将这一聚合的信息传递给主分支,以促进参数的更新。
通过这种方法,主分支的特征金字塔不再仅仅被某一特定规模目标的信息所支配,而是能够综合考虑各种规模的目标信息,从而解决了深度监督可能引起的信息断裂问题。此外,多级辅助信息机制的灵活性体现在任何类型的集成网络都可以被用作信息聚合的工具,使得研究者能够根据不同大小的网络架构需求,定制化地规划所需的语义层级,从而指导模型学习。
Generalized ELAN
在这一部分,研究者详细描述了他们开发的新型网络结构——广义高效层聚合网络(GELAN)。GELAN是通过融合两个先进的网络设计理念——具有梯度路径规划能力的CSPNet和ELAN——而诞生的。这种设计致力于实现一个既轻量又快速且精确的网络架构,全面优化了网络性能和效率。其详细架构展示在图4中。在此基础上,研究者对ELAN的应用范围进行了扩展,使其不再局限于传统的卷积层堆叠方式,而是能够灵活地适配各种计算单元,显著提升了网络的通用性和适应性。
实验
表 1 列出了作者提出的 YOLOv9 与其他从头开始训练的实时目标检测器的比较。总体而言,现有方法中性能最好的方法是轻量级模型的 YOLO MS-S 、中型模型的 YOLO MS 、通用模型的 YOLOv7 AF 和大型模型的 YOLOv8-X。
-
与轻量级和中型型号YOLO MS[7]相比,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在各个方面都有了显著的改进。
另一方面,作者还在比较中加入了 ImageNet 预训练模型,结果如图 5 所示。作者分别根据参数和计算量对它们进行比较。
-
就参数数量而言,性能最好的大型模型是RT DETR。从图 5 中可以看出,在参数利用方面,使用传统卷积的 YOLOv9 甚至比使用深度卷积的 YOLOv9 更好。至于大模型的参数利用率,也大大超过了使用ImageNet预训练模型的RT DETR。更好的是,在深度模型中,YOLOv9 展示了使用 PGI 的巨大优势。通过准确保留和提取将数据映射到目标所需的信息,作者的方法只需要 64% 的参数,同时保持 RT DETR-X 的精度。
-
至于计算量,现有最好的模型从小到大是 YOLO MS、 PP-YOLOE和 RT-DETR。从图 5 中可以看出,YOLOv9 在计算复杂度方面远远优于从头开始训练的方法。此外,如果与基于深度卷积和基于 ImageNet 的预训练模型相比,YOLOv9 也非常有竞争力。
Generalized ELAN的消融实验
在探索GELAN架构的有效性方面,研究者进行了一系列消融实验,以评估不同计算块(如Res块、Dark块和CSP块)替换ELAN架构中卷积层后的性能表现。实验结果汇总于表2,显示了使用这些多样化的计算块后,系统性能依然保持在一个较高水平,验证了用户可以根据需求和推理设备的特性自由选择不同的计算块。
在众多测试中,CSP块特别引人注目,因其不仅成功减少了模型的参数数量和计算需求,而且还实现了0.7%的平均精度(AP)提升。基于这些发现,研究者决定在YOLOv9模型中采用CSP-ELAN作为GELAN的核心组件,进一步强化了模型的性能和效率。
在深入探究GELAN架构的优化过程中,作者对ELAN和CSP块的不同深度配置进行了实验,旨在评估深度变化对模型性能的影响。实验结果,如表3所展示,揭示了在增加ELAN块的深度从1到2时,模型的准确度得到了显著的提升。然而,当ELAN或CSP块的深度超过2之后,进一步增加深度对于参数数量、计算量和准确度的影响呈现出线性关系,表明模型对于深度的增加不再敏感。
这一发现指出,虽然适度增加GELAN中的ELAN块深度可以有效提高模型性能,但超过一定深度后,模型性能的提升将趋于平稳。因此,GELAN展现了对深度变化的鲁棒性,为模型设计提供了灵活性,允许研究者根据具体需求和资源限制调整深度,而无需担心性能急剧下降。
Programmable Gradient Information消融实验
在关于PGI方面,作者对辅助可逆分支以及主干和 Neck 分别上的多级辅助信息进行了消融研究。作者设计了 辅助可逆分支ICN,使用DHLC连接方式来获取多级可逆信息。至于多级辅助信息,作者使用FPN和PAN进行 消融研究, PFH(文中未明确解释)的作用相当于传统的深度监督。所有实验的结果列于表4中。
根据表4的数据分析,PFH仅在深层模型中显示出有效性。相比之下,作者提出的可编程梯度信息(PGI)技术能够在各种配置组合中提升模型的准确性,特别是当结合ICN使用时,结果表现出稳定性和优越性。此外,作者尝试将YOLOv7中引入的领航头引导分配技术应用于PGI的辅助监督环节,成功地实现了性能的进一步提升。
在对多个不同规模的模型应用PGI概念及深度监督后,作者比较了实验结果,具体数据展示在表5中。这些实验结果确认了作者的初步分析,即深度监督的引入在某些情况下可能会对较浅层模型的准确度造成负面影响。这表明,虽然深度监督可以为深层模型带来明显的好处,但在应用于较浅的模型时,需要谨慎考虑其可能带来的准确度损失。
在常规模型中,深度监督可能导致性能的不稳定性,这种策略主要在极深的模型中才展现出其优势。相对而言,作者提出的可编程梯度信息(PGI)技术有效地解决了信息瓶颈和信息断裂问题,能够在不同规模的模型中实现准确度的全面提升。
PGI技术贡献了两个重要的创新点:首先,它使辅助监督方法可以被应用于浅层模型,扩大了深度监督技术的应用范围;其次,它为深层模型的训练过程提供了更可靠的梯度,这些梯度有助于模型更精确地建立数据与目标之间的正确关系。
通过逐步从基线的YOLOv7增加到YOLOv9-E的各个组件,作者在表中展示了这一系列改进如何带来模型性能的全面提升。这一过程不仅证明了GELAN和PGI技术的有效性,也展现了这些技术如何协同工作,为深度学习模型带来了显著的性能改进。
Visualization
本节将探讨信息瓶颈问题并将其可视化。此外,作者还将展示提出的PGI如何使用可靠的梯度来寻找数据与 目标之间的正确相关性。在图6中,作者展示了使用随机初始权重作为不同架构下的前馈得到的特征图的可 视化结果。作者可以看到,随着层数的增加,所有架构的原始信息逐渐减少。
例如,在PlainNet的第50层,很难看到物体的位置,到了第100层,所有可辨别的特征都会丢失。至于ResNet,尽管在第50层仍然可以看到物体的位置,但边界信息已经丢失。当深度达到第100层时,整个图像 变得模糊。CSPNet和提出的GELAN表现都非常好,它们都能够维持到第200层时支持清晰识别物体的特征。在对比中, GELAN的结果更稳定,边界信息也更清晰。
图7展示了PGI技术在训练过程中如何提供更准确的梯度信息,这些信息对于更新模型参数至关重要,以确保模型能够有效地识别输入数据与目标之间的关系。通过比较图7(b)和图7(c)中GELAN与YOLOv9(结合了GELAN和PGI)的特征图可视化结果,可以明显观察到PGI技术使模型更加精确地定位到了含有物体的区域。
相比之下,未集成PGI技术的GELAN在检测物体边界时显示出一定程度的发散现象,并且在非目标的背景区域误激活了一些响应。这一对比强有力地证明了PGI技术在提供有助于参数优化的梯度方面的有效性,进而使模型在前馈过程中能够保留更多关键特征,从而提高了检测的准确性和可靠性。