集智书童 | YOLOv12 正式开源 | 中科院大学携 LLM Trick 让YOLO家族改头换面后依然是效率之王

本文来源公众号“集智书童”,仅用于学术分享,侵权删,干货满满。

原文链接:YOLOv12 正式开源 | 中科院大学携 LLM Trick 让YOLO家族改头换面后依然是效率之王

导读

提升YOLO框架的网络架构一直至关重要,尽管注意力机制在建模能力方面已被证明具有优越性,但长期以来一直专注于基于CNN的改进。这是因为基于注意力的模型无法与基于CNN的模型的速度相匹配。本文提出了一种以注意力为中心的YOLO框架,即YOLOv12,该框架在匹配先前基于CNN的模型速度的同时,利用了注意力机制的性能优势。

图片

YOLOv12在准确率上超越了所有流行的实时目标检测器,同时保持了有竞争力的速度。例如,YOLOv12-N在T4 GPU上实现了1.64ms的推理延迟,达到40.6%的mAP,比先进的YOLOv10-N/YOLOv11-N分别高出2.1%/1.2%的mAP,且速度相当。这一优势也扩展到其他模型规模。YOLOv12还超越了改进DETR的端到端实时检测器,如RT-DETR/RTDETRv2:YOLOv12-S在运行速度上快42%,仅使用36%的计算资源和45%的参数,就击败了RT-DETR-R18/RT-DETRv2-R18。

1. 引言

实时目标检测因其低延迟特性一直受到广泛关注,这些特性提供了巨大的实用性。其中,YOLO系列在延迟和准确率之间取得了有效的平衡,从而主导了该领域。尽管YOLO的改进主要集中在损失函数、标签分配和网络架构设计等方面,但网络架构设计仍然是关键的研究优先事项。尽管以注意力为中心的视觉Transformer(ViT)架构已被证明即使在小型模型中也具有更强的建模能力,但大多数架构设计仍然主要关注CNN。

这种情况的主要原因在于注意力机制的效率低下,这主要源于两个因素:注意力机制的二次计算复杂性不高效的内存访问操作(后者是FlashAttention解决的主要问题)。因此,在类似的计算预算下,基于CNN的架构比基于注意力的架构性能高出约~3x,这显著限制了注意力机制在YOLO系统中(在高推理速度至关重要的系统中)的应用。

本文旨在解决这些挑战,并进一步构建一个以注意力为中心的YOLO框架,即YOLOv12。作者提出了三个关键改进:

  1. 1. 首先,提出了一种简单而高效的区域注意力模块(A2),它通过非常简单的方式减少了注意力计算复杂性,同时保持了较大的感受野,从而提高了速度。

  2. 2. 其次,引入了残差高效层聚合网络(R-ELAN)来解决注意力(主要是大规模模型)引入的优化挑战。R-ELAN基于原始ELAN 引入了两个改进:

    1. 1. 基于缩放技术的块级残差设计;

    2. 2. 重新设计的特征聚合方法。

  3. 3. 最后,对传统的注意力中心架构进行了某些架构改进,以适应YOLO系统。作者升级了传统的注意力中心架构,包括:引入FlashAttention以克服注意力的内存访问问题,移除如位置编码等设计以使模型快速且简洁,调整MLP比例从4到1.2以平衡注意力和 FFN 之间的计算,减少堆叠块的深度以促进优化,尽可能多地使用卷积算子以利用其计算效率。

基于上述设计,作者开发了一组具有5个模型尺度的实时检测器:YOLOv12-N、S、M、L和X。作者在遵循YOLOv11 的标准目标检测基准上进行了广泛的实验,没有使用任何额外的技巧,证明了YOLOv12在这些尺度上提供了显著的改进,无论是在延迟-精度还是FLOPs-精度权衡方面,如图1所示。

例如,YOLOv12-N实现了40.6%的mAP,比YOLOv10-N高出2.1%的mAP,同时保持了更快的推理速度,比YOLOv11-N高出1.2%的mAP,速度相当。这种优势在其他-Scale模型中也保持一致。与RT-DETR-R18 / RT-DETRv2-R18相比,YOLOv12-S在mAP上分别提高了1.5%/0.1%,同时报告了42%/42%的更快延迟速度,只需要他们36%/36%的计算量和45%/45%的参数量。

总结来说,YOLOv12的贡献有两方面:

  1. 1. 该方法建立了一个以注意力为中心的、简单而高效的YOLO框架,通过方法创新和架构改进,打破了CNN模型在YOLO系列中的主导地位。

  2. 2. 不依赖预训练等额外技术,YOLOv12实现了快速推理速度和更高的检测精度,达到了最先进的水平,展示了其潜力。

2. 相关工作

实时目标检测器。实时目标检测器由于其显著的实际价值,一直受到社区的广泛关注。YOLO系列已成为实时目标检测的领先框架。早期的YOLO系统主要从模型设计角度确立了YOLO系列的基础框架。YOLOv4和YOLOv5将CSPNet、数据增强和多个特征尺度添加到框架中。YOLOv6进一步通过BiC和SimCSPSPPF模块对 Backbone 和 Neck 进行改进,并辅以 Anchor 点辅助训练。YOLOv7引入EELAN(高效层聚合网络)以改进梯度流和多种免费工具包,而YOLOv8集成了高效的C2f块以增强特征提取。

在最近的迭代中,YOLOv9引入GELAN进行架构优化和PGI以提升训练效果,而YOLOv10通过使用双分配的NMSfree训练实现了效率提升。YOLOv11通过采用C3K2模块(GELAN的指定)和检测Head中的轻量级深度可分离卷积,进一步降低了延迟并提高了准确性。

最近,一种端到端目标检测方法,即RT-DETR,通过设计高效的编码器和最小化不确定性的 Query 选择机制,改进了传统的端到端检测器,以满足实时性要求。RTDETRv2进一步通过免费工具包增强了其性能。与之前的YOLO系列不同,本研究旨在构建一个以注意力为中心的YOLO框架,以利用注意力机制的优势。

高效视觉Transformer。从全局自注意力中降低计算成本对于有效地在下游任务中应用视觉Transformer至关重要。PVT 通过多分辨率阶段和降采样特征来解决这个问题。Swin Transformer 将自注意力限制在局部窗口内,并调整窗口划分方式以连接非重叠窗口,在通信需求与内存和计算需求之间取得平衡。

其他方法,如轴向自注意力和交叉注意力,在水平和垂直窗口内计算注意力。CSWin Transformer 在此基础上通过引入十字形窗口自注意力,并行计算水平和垂直条纹中的注意力。此外,如[12, 64]等工作中建立了局部-全局关系,通过减少对全局自注意力的依赖来提高效率。Fast-iTPN 通过 Token 迁移和 Token 聚集机制提高下游任务推理速度。也有一些方法使用线性注意力来降低注意力的复杂度。

尽管基于Mamba的视觉模型旨在实现线性复杂度,但它们仍然无法达到实时速度。FlashAttention识别出导致注意力计算低效的高带宽内存 Bottleneck ,并通过I/O优化来解决这些问题,减少内存访问以提高计算效率。在本研究中,作者摒弃了复杂的设计,并提出了一种简单的区域注意力机制来降低注意力的复杂度。此外,作者采用FlashAttention来克服注意力机制固有的内存访问问题。

3. 方法

本节介绍了YOLOv12,这是从具有注意力机制的神经网络架构角度对YOLO框架的创新。

3.1 效率分析

注意力机制虽然在捕捉全局依赖关系和促进自然语言处理[5, 15]和计算机视觉[19, 39]等任务方面非常有效,但其本质上比卷积神经网络(CNN)要慢。有两个主要因素导致了这种速度上的差异。

3.2 区域注意力

3.3 残差高效层聚合网络

高效层聚合网络(ELAN)旨在提升特征聚合。如图3(b)所示,ELAN将转换层(一个1x1卷积)的输出分割,通过多个模块处理其中一个分割,然后将所有输出连接起来,并应用另一个转换层(一个1x1卷积)以对齐维度。然而,如ELAN所分析,这种架构可能会引入不稳定性。作者认为这种设计导致梯度阻塞,并且从输入到输出缺乏残差连接。此外,作者围绕注意力机制构建网络,这带来了额外的优化挑战。经验表明,L-和X-Scale模型在使用Adam或AdamW优化器时,要么无法收敛,要么保持不稳定。

为了解决这个问题,作者提出了残差高效层聚合网络(R-ELAN),如图3(d)所示。相比之下,作者在整个模块中引入了从输入到输出的残差捷径,并带有缩放因子(默认为0.01)。这种设计类似于层缩放,它是为了构建深度视觉Transformer而引入的。然而,为每个区域注意力应用层缩放并不能克服优化挑战,并引入延迟上的减速。这表明引入注意力机制并非收敛的唯一原因,ELAN架构本身也是如此,这验证了作者R-ELAN设计的合理性。

作者还在图3(d)中设计了一种新的聚合方法。原始的ELAN层通过首先将其通过一个转换层来处理模块的输入,该转换层随后将其分为两部分。其中一部分随后由后续块进一步处理,最后两部分被连接起来以生成输出。相比之下,作者的设计对通道维度应用了一个转换层,从而生成一个单独的特征图。然后,该特征图通过后续块进行处理,随后进行连接,形成一个 Bottleneck 结构。这种方法不仅保留了原始的特征集成能力,还降低了计算成本和参数/内存使用。

3.4 架构改进

在本节中,作者将介绍整体架构以及相对于原始注意力机制的某些改进。其中一些并非最初由作者提出。

许多以注意力为中心的视觉Transformer采用了朴素风格的架构,而作者保留了先前YOLOv10系统的分层设计,并将证明这一设计的必要性。作者移除了在最近版本中存在的在 Backbone 网络最后阶段堆叠三个块的设计。相反,作者只保留了一个R-ELAN块,减少了总的块数,有助于优化。作者从YOLOv11继承了 Backbone 网络的前两个阶段,并且没有使用提出的R-ELAN。

此外,作者对vanilla注意力机制中的几个默认配置进行了修改,以更好地适应YOLO系统。这些修改包括:

  1. 1. 将MLP比例从4调整为1.2(或对于N-/S-/M-scale模型调整为2),以更好地分配计算资源以获得更好的性能;

  2. 2. 采用nn.Conv2d+BN代替nn.Linear+LN以充分利用卷积算子的效率;

  3. 3. 移除位置编码,并引入一个大的可分离卷积(7×7)(即位置感知器),以帮助区域注意力感知位置信息。

4. 实验

本节分为四个部分:实验设置与流行方法的系统性比较消融研究以验证YOLOv12,以及带有可视化分析的进一步探索YOLOv12。

4.1 实验设置

作者在MSCOCO 2017数据集上验证了所YOLOv12。YOLOv12系列包括5个变体:YOLOv12-N、YOLOv12-S、YOLOv12-M、YOLOv12-L和YOLOv12-X。所有模型均使用SGD优化器进行600个epoch的训练,初始学习率为0.01,与YOLOv11相同。作者采用线性学习率衰减计划,并对前3个epoch进行线性预热。在T4 GPU上使用TensorRT FP16测试了所有模型的延迟。

Baseline 。作者选择YOLOv11的先前版本作为 Baseline 。模型缩放策略也与它保持一致。作者使用了其中的一些提出的C3K2模块(即GELAN的特殊情况)。除了YOLOv11之外,作者没有使用任何其他技巧。

4.2 与现有技术的比较

作者将在表1中展示YOLOv12与其他流行实时检测器的性能比较。

对于N-Scale模型,YOLOv12-N在mAP方面分别优于YOLOv6-3.0-N、YOLOv8-N、YOLOv10-N和YOLOv11,分别提高了3.6%、3.3%、2.1%和1.2%,同时保持了相似或更少的计算量和参数,并实现了1.64 ms/image的快速延迟速度。

对于S-scale模型,YOLOv12-S,具有21.4G FLOPs和9.3M参数,实现了48.0 mAP,延迟为2.61 ms/image。它在性能上分别超越了YOLOv8-S、YOLOv9-S、YOLOv10-S和YOLOv11-S,分别提升了3.0%、1.2%、1.7%和1.1%,同时保持了相似或更少的计算量。与端到端检测器RT-DETR-R18 / RT-DETRv2-R18相比,YOLOv12-S实现了可匹敌的性能,但具有更快的推理速度、更低的计算成本和更少的参数。

对于M-scale模型,YOLOv12-M,具有67.5G FLOPs和20.2M参数,实现了52.5 mAP性能和4.86 ms/image的速度。与GoldYOLO-M、YOLOv8-M、YOLOv9-M、YOLOv10、YOLOv11和RT-DETR-R34 / RT-DETRv2-R34相比,YOLOv12-S具有优势。

对于L-scale模型,YOLOv12-L即便在FLOPs减少了31.4G的情况下,也超越了YOLOv10-L。YOLOv12-L在FLOPs和参数相当的情况下,以0.4%的mAP优势击败了YOLOv11。YOLOv12-L在速度更快、FLOPs减少34.6%(34.6%)和参数减少37.1%(37.1%)的情况下,也优于RTDERT-R50 / RT-DERTv2-R50。

对于X-scale模型,YOLOv12-X在速度、FLOPs和参数相当的情况下,分别以0.8%和0.6%的优势显著超越了YOLOv10-X / YOLOv11-X。YOLOv12-X再次以更快的速度、FLOPs减少23.4%(23.4%)和参数减少22.2%击败了RT-DETR-R101 / RT-DETRv2-R101。

特别是,如果使用FP32精度评估L-/X-Scale模型(这需要将模型单独保存为FP32格式),YOLOv12将实现约0.2%的mAP提升。这意味着YOLOv12-L/X将报告33.9%/55.4%的mAP。

4.3 消融研究

  • • R-ELAN. 表2评估了所提出的残差高效层网络(R-ELAN)在YOLOv12-N/L/X模型中的有效性。结果揭示了两个关键发现:

    • • 对于像YOLOv12-N这样的小型模型,残差连接不会影响收敛但会降低性能。相比之下,对于较大的模型(YOLOv12-L/X),它们对于稳定的训练是必不可少的。特别是,YOLOv12-X需要最小的缩放因子(0.01)以确保收敛。

    • • 所提出的特征集成方法有效地降低了模型的复杂度,在FLOPs和参数方面,同时保持了可比较的性能,仅略有下降。

  •  区域注意力。作者通过消融实验验证了区域注意力的有效性,结果如表3所示。评估在YOLOv12上进行。

N/S/X模型,测量了在GPU(CUDA)和CPU上的推理速度。CUDA结果使用RTX 3080和A5000获得,而CPU性能在Intel Core i7-10700K @3.80GHz  上进行测量。结果表明,在区域注意力(V) 下,速度有显著提升。例如,在RTX 3080上使用FP32,YOLOv12-N的推理时间减少了0.7ms。这种性能提升在不同模型和硬件配置中均持续观察到。在本实验中,作者没有使用FlashAttention,因为它会显著减少速度差异。

4.4 速度比较

FP16精度。为确保一致性,所有结果均在同一硬件上获得,且YOLOv9 和 YOLOv10 使用ultralytics的集成代码库进行评估。

结果表明,YOLOv12在保持与YOLOv10 和 YOLOv11相当的同时,实现了比YOLOv9显著更高的推理速度。例如,在RTX 3080上,YOLOv9报告的FP32为2.4ms,FP16为1.5ms,而YOLOv12-N的FP32为1.7ms,FP16为1.1ms。在其他配置中,也呈现出类似趋势。

4.5 消融实验与可视化

作者对表5a至5h中的YOLOv12设计进行了诊断。除非另有说明,作者使用YOLOv12-N进行这些诊断,默认从头开始训练600个epoch。

  • • 注意力实现:表5a。作者考察了两种实现注意力的方法。基于卷积的方法由于卷积的计算效率更高,比基于线性方法更快。此外,作者探索了两种归一化方法(层归一化(LN)和批归一化(BN)),发现结果:尽管层归一化在注意力机制中常用,但与卷积结合使用时,其性能不如批归一化。值得注意的是,这种方法已经被用于PSA模块,作者的发现与它的设计一致。

  • • 层次化设计:表5b。与其他检测系统(如Mask R-CNN)不同,在这些系统中平面视觉Transformer的架构可以产生强大的结果,YOLOv12表现出不同的行为。当使用平面视觉Transformer(N/A)时,检测器的性能显著下降,仅达到38.3%的mAP。通过调整特征维度以保持类似的FLOPs,进行更适度的调整,例如省略第一个(S_T)或第四阶段(S_Z),分别导致0.5%和0.8%的mAP性能轻微下降。与之前的YOLO模型一致,层次化设计在YOLOv12中仍然是最有效的,产生了最佳的性能。

  • • 训练轮数:表5c。作者研究了改变训练轮数对性能(从头开始训练)的影响。尽管一些现有的YOLO检测器在大约500个训练轮数后就能达到最佳结果,但YOLOv12需要更长的训练周期(大约600个轮数)才能达到峰值性能,保持与YOLOv11相同的配置。

  • • 位置感知器:表5d。在注意力机制中,作者对注意力值v应用了一个大核的可分离卷积,并将其输出添加到v@attn中。作者称这个组件为位置感知器,因为卷积的平滑效果保留了图像像素的原始位置,这有助于注意力机制感知位置信息(这已在PSA模块中使用,但作者扩展了卷积核,在不影响速度的情况下实现了性能提升)。如表所示,增加卷积核大小可以提高性能,但会逐渐降低速度。当核大小达到9x9时,速度降低变得显著。因此,作者将设置7x7为默认核大小。

  • • 位置嵌入:表5e。作者研究了在大多数基于注意力的模型中常用的位置嵌入(RPE:相对位置嵌入;APE:绝对位置编码)对性能的影响。有趣的是,最佳性能配置是在没有任何位置嵌入的情况下实现的,这带来了更简洁的架构和更快的推理延迟。

  • • 区域注意力:表5f。在此表中,作者默认使用FlashAttention技术。这导致虽然区域注意力机制增加了计算复杂度(导致性能提升),但导致的减速仍然很小。为了进一步验证区域注意力的有效性,请参考表3。

  • • MLP 比率:表5g。在传统的视觉Transformer中,注意力模块内的 MLP 比率通常设置为 4.0。然而,作者在 YOLOv12 中观察到不同的行为。在表中,改变 MLP 比率会影响模型大小,因此作者调整特征维度以保持整体模型一致性。特别是,YOLOv12 在 MLP 比率为 1.2 时实现了更好的性能,这与传统做法相悖。这种调整将计算负载更多地转移到注意力机制上,突出了区域注意力的重要性。

  • • FlashAttention:表5h。此表验证了FlashAttention在YOLOv12中的作用。它显示FlashAttention将YOLOv12-N加速约0.3ms,YOLOv12-S加速约0.4ms,且没有其他成本。

4.6 可视化

Heatmap 比较。图5比较了YOLOv12与最先进的YOLOv10和YOLOv11的 Heatmap 。这些 Heatmap 是从X-Scale模型 Backbone 网络的第三阶段提取的,突出了模型激活的区域,反映了其物体感知能力。如图所示,与YOLOv10和YOLOv11相比,YOLOv12产生了更清晰的物体轮廓和更精确的前景激活,表明感知能力得到了提升。

作者的解释是,这种改进来自于区域注意力机制,它比卷积网络具有更大的感受野,因此被认为在捕捉整体上下文方面表现更好,导致前景激活更加精确。作者相信这一特性赋予了YOLOv12性能优势。

5. 结论

本研究引入了YOLOv12,该模型成功地将一种传统上被认为对实时性要求不高效的以注意力为中心的设计应用于YOLO框架,实现了最先进的延迟-精度权衡。为了实现高效的推理,作者提出了一种新型网络,该网络利用区域注意力来降低计算复杂度,并采用残差高效层聚合网络(R-ELAN)来增强特征聚合。

此外,作者对原始注意力机制的关键组件进行了优化,以更好地适应YOLO的实时约束,同时保持高速性能。因此,YOLOv12通过有效地结合区域注意力、R-ELAN和架构优化,在精度和效率方面都取得了显著的提升。全面的消融研究进一步验证了这些创新的有效性。本研究挑战了基于CNN的设计在YOLO系统中的主导地位,推动了注意力机制在实时目标检测中的应用,为更高效、更强大的YOLO系统铺平了道路。

6. 局限性

YOLOv12需要使用FlashAttention,目前该技术支持Turing、Ampere、Ada Lovelace或Hopper GPU(例如,T4、Quadro RTX系列、RTX20系列、RTX30系列、RTX40系列、RTX A5000/6000、A30/40、A100、H100等)。

7. 更多细节

详细的超参数在表7中给出。所有模型均在8 x NVIDIA A6000 GPU上训练。遵循既定惯例[24, 28, 53, 58],作者在不同物体尺度和IoU阈值上报告标准平均精度(mAP)。

此外,作者还报告了所有图像的平均延迟。作者建议在官方代码中查看更多细节:https://github.com/sunsmarterjie/yolov12

参考

[1]. YOLOv12: Attention-Centric Real-Time Object Detectors

THE END !

文章结束,感谢阅读。您的点赞,收藏,评论是我继续更新的动力。大家有推荐的公众号可以评论区留言,共同学习,一起进步。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值