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

image.png

导读

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

Image

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 的架构比基于注意力的架构性能高出约~3×,这显著限制了注意力机制在 YOLO 系统中(在高推理速度至关重要的系统中)的应用。

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

  1. 首先,提出了一种简单而高效的区域注意力模块(A2),它通过非常简单的方式减少了注意力计算复杂性,同时保持了较大的感受野,从而提高了速度。
  2. 其次,引入了残差高效层聚合网络(R-ELAN)来解决注意力(主要是大规模模型)引入的优化挑战。R-ELAN 基于原始 ELAN 引入了两个改进:
  • 基于缩放技术的块级残差设计;
  • 重新设计的特征聚合方法。
  1. 最后,对传统的注意力中心架构进行了某些架构改进,以适应 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. 该方法建立了一个以注意力为中心的、简单而高效的 YOLO 框架,通过方法创新和架构改进,打破了 CNN 模型在 YOLO 系列中的主导地位。
  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)要慢。有两个主要因素导致了这种速度上的差异。

image.png

此外,另一个重要因素是,由于大多数基于注意力的视觉 Transformer 设计复杂(例如,Swin Transformer 中的窗口分区/反转以及引入额外的模块(例如,位置编码)),它们逐渐累积速度开销,导致整体速度比 CNN 架构慢。在本文中,设计模块利用简单且清晰的操作来实现注意力,确保最大限度地提高效率。

image.png

这两个因素,即二次计算复杂度和无效的内存访问,使得注意力机制的速度比 CNN 慢,尤其是在实时或资源受限的场景中。解决这些限制已成为一个关键的研究领域,其中一些方法,如 Sparse 注意力机制和内存高效近似(例如 Linformer 或 Performer)旨在减轻二次缩放。

3.2 区域注意力

image.png

另一种有效降低复杂度的方法是局部注意力机制(例如,Shift 窗口、交叉注意力和轴向注意力),如图 2 所示,它将全局注意力转换为局部,从而降低计算成本。然而,将特征图划分为窗口可能会引入开销或减少感受野,影响速度和精度。在本研究中,作者提出了简单而高效的区域注意力模块。

Image

image.png

3.3 残差高效层聚合网络

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

Image

为了解决这个问题,作者提出了残差高效层聚合网络(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. 将 MLP 比例从 4 调整为 1.2(或对于 N-/S-/M-scale 模型调整为 2),以更好地分配计算资源以获得更好的性能;
  2. 采用 nn.Conv2d+BN 代替 nn.Linear+LN 以充分利用卷积算子的效率;
  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 与其他流行实时检测器的性能比较。

Image

对于 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 和参数方面,同时保持了可比较的性能,仅略有下降。

Image

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

Image

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 消融实验与可视化

Image

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

  • 注意力实现:表 5a。作者考察了两种实现注意力的方法。基于卷积的方法由于卷积的计算效率更高,比基于线性方法更快。此外,作者探索了两种归一化方法(层归一化(LN)和批归一化(BN)),发现结果:尽管层归一化在注意力机制中常用,但与卷积结合使用时,其性能不如批归一化。值得注意的是,这种方法已经被用于 PSA 模块,作者的发现与它的设计一致。
  • 层次化设计:表 5b。与其他检测系统(如 Mask R-CNN)不同,在这些系统中平面视觉 Transformer 的架构可以产生强大的结果,YOLOv12 表现出不同的行为。当使用平面视觉 Transformer(N/A)时,检测器的性能显著下降,仅达到 38.3% 的mAP。通过调整特征维度以保持类似的 FLOPs,进行更适度的调整,例如省略第一个(ST)或第四阶段(SZ),分别导致 0.5% 和 0.8% 的 mAP 性能轻微下降。与之前的 YOLO 模型一致,层次化设计在 YOLOv12 中仍然是最有效的,产生了最佳的性能。
  • 训练轮数:表 5c。作者研究了改变训练轮数对性能(从头开始训练)的影响。尽管一些现有的 YOLO 检测器在大约 500 个训练轮数后就能达到最佳结果,但 YOLOv12 需要更长的训练周期(大约 600 个轮数)才能达到峰值性能,保持与 YOLOv11 相同的配置。
  • 位置感知器:表 5d。在注意力机制中,作者对注意力值 v 应用了一个大核的可分离卷积,并将其输出添加到 v@attn 中。作者称这个组件为位置感知器,因为卷积的平滑效果保留了图像像素的原始位置,这有助于注意力机制感知位置信息(这已在 PSA 模块中使用,但作者扩展了卷积核,在不影响速度的情况下实现了性能提升)。如表所示,增加卷积核大小可以提高性能,但会逐渐降低速度。当核大小达到 9×9 时,速度降低变得显著。因此,作者将 7×7 设置为默认核大小。
  • 位置嵌入:表 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 可视化

Image

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. 更多细节

image.png

Image

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

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

image.png

Image

参考

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

END

作者:小书童
来源:集智书童

推荐阅读

欢迎大家点赞留言,更多 Arm 技术文章动态请关注极术社区嵌入式AI专栏欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。

推荐阅读
关注数
18938
内容数
1441
嵌入式端AI,包括AI算法在推理框架Tengine,MNN,NCNN,PaddlePaddle及相关芯片上的实现。欢迎加入微信交流群,微信号:aijishu20(备注:嵌入式)
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息