Bootstrap

YOLOv9来啦!YOLO目标检测全新工作!性能表现SOTA!在各个方面都大大超过了RT-DETR、YOLOv8等

摘要

今天的深度学习方法侧重于如何设计最合适的目标函数,使模型的预测结果最接近实际情况。同时,必须设计一种适当的架构,该架构可以促进获取足够的信息用于预测。现有的方法忽略了一个事实,即当输入数据经过逐层特征提取和空间变换时,会丢失大量信息。本文将深入研究数据通过深度网络传输时数据丢失的重要问题,即信息瓶颈和可逆函数。我们提出了可编程梯度信息(PGI)的概念,以应对深度网络实现多个目标所需的各种变化。PGI可以为目标任务提供完整的输入信息来计算目标函数,从而获得可靠的梯度信息来更新网络权重。此外,还设计了一种新的基于梯度路径规划的轻量级网络架构——广义高效层聚合网络(GELAN)。GELAN的架构证实了PGI在轻量级模型上取得了卓越的成果。我们在基于MS COCO数据集的目标检测上验证了所提出的GELAN和PGI。结果表明,与基于深度卷积开发的最先进方法相比,GELAN仅使用传统的卷积算子来实现更好的参数利用率。PGI可以用于从轻量级到大型的各种模型。它可以用于获得完整的信息,因此从头开始训练的模型可以获得比使用大型数据集预先训练的现有模型更好的结果,比较结果如图1所示 

YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information  

GitHub - WongKinYiu/yolov9: Implementation of paper - YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information

1 Introduction

在计算机视觉、语言处理和语音识别等各个领域,基于深度学习的模型已经显示出比过去的人工智能系统更好的性能。近年来,深度学习领域的研究人员主要关注如何开发更强大的系统架构和学习方法,如CNN,Transformer,Perceivers和Mambas。此外,一些研究人员试图开发更通用的目标函数,如损失函数、标签分配和辅助监督。上述研究都试图准确地找到输入任务和目标任务之间的映射。然而,大多数过去的方法都忽略了输入数据在前馈过程中可能具有不可忽略的信息损失量。这种信息丢失可能导致有偏差的梯度流,随后用于更新模型。上述问题可能导致深度网络在目标和输入之间建立不正确的关联,导致训练的模型产生不正确的预测。 

在深度网络中,输入数据在前馈过程中丢失信息的现象通常被称为信息瓶颈,其原理图如图2所示。目前,可以缓解这一现象的主要方法如下:

(1)使用可逆架构:这种方法主要使用重复的输入数据,并以显式的方式维护输入数据的信息;

(2) Mask建模:主要利用重建损失,采用隐式方法最大化提取的特征,保留输入信息;

(3)引入深度监督概念:它使用没有丢失太多重要信息的浅层特征来预先建立从特征到目标的映射,以确保重要信息可以转移到更深的层。

然而,上述方法在训练过程和推理过程中都有不同的缺点。例如,可逆架构需要额外的层来组合重复馈送的输入数据,这将显著增加推理成本。此外,由于输入数据层到输出层不能有太深的路径,这种限制将使训练过程中难以对高阶语义信息进行建模。对于掩模建模,其重建损失有时与目标损失相冲突。此外,大多数掩码机制也会产生与数据的不正确关联。对于深度监督机制来说,它会产生错误积累,如果浅层监督在训练过程中丢失信息,后续层将无法检索到所需的信息。上述现象在困难任务和小型模型中更为显著。

为了解决上述问题,我们提出了一个新的概念,即可编程梯度信息(PGI)。其概念是通过辅助可逆分支生成可靠的梯度,使深层特征仍能保持执行目标任务的关键特征。辅助可逆分支的设计可以避免传统的集成多路径特征的深度监督过程可能导致的语义损失。换句话说,我们正在对不同语义级别的梯度信息传播进行编程,从而获得最佳的训练结果。PGI的可逆架构建立在辅助分支上,因此不需要额外的成本。由于PGI可以自由选择适合目标任务的损失函数,它也克服了掩模建模所遇到的问题。所提出的PGI机制可以应用于各种规模的深度神经网络,并且比仅适用于非常深度神经网络的深度监督机制更通用。

在本文中,我们还在ELAN的基础上设计了generalized ELAN(GELAN),GELAN的设计同时考虑了参数的数量、计算复杂度、准确性和推理速度。这种设计允许用户为不同的推理设备任意选择合适的计算块。我们将所提出的PGI和GELAN相结合,然后设计了新一代YOLO系列目标检测系统,我们称之为YOLOv9。我们使用MS COCO数据集进行了实验,实验结果验证了我们提出的YOLOv9在所有比较中都取得了最佳性能。

将本文的贡献总结如下:

  • 从可逆函数的角度对现有的深度神经网络架构进行了理论分析,并通过这个过程成功地解释了许多过去难以解释的现象。在此基础上,我们还设计了PGI和辅助可逆分支,并取得了良好的效果。

  • 设计的PGI解决了深度监控只能用于极深度神经网络架构的问题,从而使新的轻量级架构能够真正应用于日常生活。

  • 设计的GELAN仅使用传统卷积,比基于最先进技术的深度卷积设计实现了更高的参数使用率,同时显示出轻、快、准确的巨大优势。

  • 将所提出的PGI和GELAN相结合,YOLOv9在MS COCO数据集上的目标检测性能在各个方面都大大超过了现有的实时目标检测器。

2 Methodology

2.1. Programmable Gradient Information

为了解决上述问题,我们提出了一种新的辅助监督框架,称为可编程梯度信息(PGI),如图3(d)所示。PGI主要包括三个部分,即(1)主分支、(2)辅助可逆分支和(3)多级辅助信息。从图3(d)中,我们可以看到PGI的推理过程只使用主分支,因此不需要任何额外的推理成本。至于其他两个组成部分,它们用于解决或减缓深度学习方法中的几个重要问题。其中,设计了辅助可逆分支来处理神经网络深化所带来的问题。网络深化会造成信息瓶颈,使损失函数无法生成可靠的梯度。对于多级辅助信息,它是为了处理深度监督引起的误差积累问题而设计的,特别是对于多预测分支的架构和轻量级模型。接下来,我们将逐步介绍这两个组件。

2.1.1 Auxiliary Reversible Branch

在PGI中,我们提出了辅助可逆分支来生成可靠的梯度并更新网络参数。通过提供从数据映射到目标的信息,损失函数可以提供指导,并避免从与目标不太相关的不完整前馈特征中发现虚假相关性的可能性。我们提出通过引入可逆结构来维护完整信息,但在可逆结构中添加主分支将消耗大量的推理成本。我们分析了图3(b)的架构,发现当添加从深层到浅层的额外连接时,推理时间将增加20%。当我们反复将输入数据添加到网络的高分辨率计算层(黄色框)时,推理时间甚至超过了时间的两倍。

由于我们的目标是使用可逆结构来获得可靠的梯度,因此“可逆”并不是推理阶段的唯一必要条件。有鉴于此,我们将可逆分支视为深度监管分支的扩展,然后设计辅助可逆分支,如图3(d)所示。至于由于信息瓶颈而丢失重要信息的主要分支深层特征,它们将能够从辅助可逆分支接收可靠的梯度信息。这些梯度信息将驱动参数学习,以帮助提取正确和重要的信息,并且上述动作可以使主分支获得对目标任务更有效的特征。此外,可逆架构在浅层网络上的性能比在一般网络上差,因为复杂的任务需要在更深的网络中进行转换。我们提出的方法并不强迫主分支保留完整的原始信息,而是通过辅助监督机制生成有用的梯度来更新它。这种设计的优点是,所提出的方法也可以应用于较浅的网络。

最后,由于在推理阶段可以去除辅助可逆分支,因此可以保留原始网络的推理能力。我们也可以选择PGI中的任何可逆结构来发挥辅助可逆分支的作用。

2.1.2 Multi-level Auxiliary Information

在本节中,我们将讨论多级辅助信息是如何工作的。包括多个预测分支的深度监管架构如图3(c)所示。对于对象检测,不同的特征金字塔可以用于执行不同的任务,例如,它们可以一起检测不同大小的对象。因此,在连接到深度监督分支后,浅层特征将被引导学习小物体检测所需的特征,此时系统将把其他大小物体的位置作为背景。然而,上述行为将导致深度特征金字塔丢失预测目标对象所需的大量信息。关于这个问题,我们认为每个特征金字塔都需要接收关于所有目标对象的信息,以便后续的主分支能够保留完整的信息来学习对各种目标的预测。

多级辅助信息的概念是在辅助监督的特征金字塔层次层和主分支之间插入一个集成网络,然后使用它来组合来自不同预测头的返回梯度,如图3(d)所示。多级辅助信息是对包含所有目标对象的梯度信息进行聚合,并将其传递给主分支,然后更新参数。此时,主分支的特征金字塔层次结构的特征将不会被某些特定对象的信息所支配。因此,我们的方法可以缓解深度监管中的信息泄露问题。此外,任何集成网络都可以用于多级辅助信息。因此,我们可以规划所需的语义级别,以指导不同规模的网络架构的学习。

2.2. Generalized ELAN

在本节中,我们将介绍拟议的新网络架构——GELAN。通过结合两种采用梯度路径规划设计的神经网络架构CSPNet和ELAN,我们设计了考虑重量、推理速度和准确性的广义有效层聚合网络(GELAN)。其总体架构如图4所示。我们将最初仅使用卷积层堆叠的ELAN[65]的能力推广到可以使用任何计算块的新架构。

3 Experiments

3.1 Experimental Setup

作者在MS COCO数据集上验证了他们的方法,并采用了YOLOv7 AF模型。实验中,所有模型均从头开始进行了训练,总共进行了500个epoch的训练。学习率的设置如下:

前三个epoch采用线性Warm up策略,后续epoch根据模型规模采用相应的衰减方式。最后的15个epoch中,马赛克数据增强被关闭。更多实验设置请参考附录。

3.2 Implimentation Details

作者基于YOLOv7和Dynamic YOLOv7构建了YOLOv9的通用扩展版本。在网络架构设计中,作者用CSPNet块和计划中的RepConv替换了ELAN,并简化了下采样模块以及优化了Anchor-Free点预测头。对于PGI的辅助损失部分,作者完全采用了YOLOv7的辅助头设置。更多详细信息请查阅附录。

3.3 Comparison with state-of-the-arts

表1列出了我们提出的YOLOv9与其他从头开始的实时物体探测器的比较。总体而言,现有方法中性能最好的方法是用于轻型模型的YOLO MS-S,用于中型模型的YOLO-MS、用于通用模型的YOLONV7-AF和用于大型模型的YOlonv8-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甚至比使用深度卷积的YOLO MS更好。在大模型的参数利用方面,它也大大超过了使用ImageNet预训练模型的RT-DETR。更好的是,在深度模型中,YOLOv9展示了使用PGI的巨大优势。通过准确地保留和提取将数据映射到目标所需的信息,我们的方法只需要64%的参数,同时保持RT-DETR-X的准确性。

;