YOLO系列最近的迭代速度不可谓不快,可能感觉YOLOv11都还没有推出多久,YOLOv12就这么水灵灵地来了,工业领域里面YOLO不可谓不强,基本上很多项目主流选型使用的模型都是YOLO系列的,兼顾了效果和速度的平衡还是很友好的,既然YOLOv12出来了,就找时间来读一下对应的论文吧。
本文提出了 YOLOv12,这是一个以注意力机制为中心的实时目标检测框架,旨在打破传统基于 CNN 的 YOLO 系列在实时目标检测中的主导地位,同时解决注意力机制在计算效率上的瓶颈问题。以下是文章的核心研究内容总结:
1. 研究背景与动机
-
YOLO 系列作为实时目标检测的领先框架,一直以低延迟和高精度的平衡著称,但以往的改进主要集中在 CNN 架构上。
-
尽管注意力机制在建模能力上具有显著优势,但由于其二次计算复杂度和低效的内存访问模式,导致其在实时性要求较高的目标检测任务中难以应用。
-
本文的目标是将注意力机制高效地整合到 YOLO 框架中,以实现更高的检测精度,同时保持实时性。
2. YOLOv12 的关键创新
(1)区域注意力模块(Area Attention, A²)
-
提出了一种简单高效的区域注意力机制,通过将特征图划分为多个区域来减少注意力计算的复杂度。
-
与传统全局注意力相比,区域注意力在保持较大感受野的同时,显著降低了计算量,同时避免了复杂操作带来的额外开销。
(2)残差高效层聚合网络(Residual Efficient Layer Aggregation Networks, R-ELAN)
-
针对注意力机制引入的优化挑战(尤其是大规模模型的收敛问题),提出了 R-ELAN 架构。
-
R-ELAN 引入了残差连接和缩放技术,解决了 ELAN 架构中梯度阻塞和优化不稳定的问题,同时通过重新设计特征聚合方法进一步降低了计算成本。
(3)架构优化
-
对传统注意力机制进行了多项改进,包括引入 FlashAttention 解决内存访问瓶颈、移除位置编码以简化模型、调整 MLP 比率以优化计算资源分配等。
-
保留了 YOLO 系列的层次化设计,同时减少了模型深度和参数量,以适应实时性要求。
3. 实验结果
-
YOLOv12 在 MS COCO 数据集上进行了广泛的实验,展示了在不同模型规模(N、S、M、L、X)下的性能。
-
与 YOLOv10、YOLOv11 以及其他流行的目标检测器(如 RT-DETR、Gold-YOLO 等)相比,YOLOv12 在精度(mAP)和推理速度(延迟)上均表现出显著优势。
-
例如,YOLOv12-N 在 T4 GPU 上实现了 40.6% 的 mAP,推理延迟仅为 1.64ms,优于 YOLOv10-N 和 YOLOv11-N。
-
在大规模模型(如 YOLOv12-L 和 YOLOv12-X)中,YOLOv12 也展现出更高的精度和更低的计算量。
4. 消融研究与诊断
-
区域注意力:显著降低了模型的推理延迟,同时对性能的影响微乎其微。
-
R-ELAN:对于大规模模型(如 L 和 X 规模),R-ELAN 的残差连接和优化设计对稳定训练至关重要。
-
架构改进:调整 MLP 比率、移除位置编码等改进进一步提升了模型效率。
-
热力图可视化:YOLOv12 在目标感知能力上优于 YOLOv10 和 YOLOv11,表明区域注意力机制在捕捉全局上下文方面的优势。
5. 结论与贡献
-
YOLOv12 成功将注意力机制引入实时目标检测框架,打破了 CNN 架构的主导地位。
-
通过区域注意力、R-ELAN 和架构优化,YOLOv12 在实时性和精度之间实现了新的平衡,为未来实时目标检测的发展提供了新的方向。
-
该研究不仅证明了注意力机制在实时任务中的可行性,还展示了其在计算效率和性能上的巨大潜力。
6. 限制
-
YOLOv12 依赖于 FlashAttention 技术,这限制了其在某些不支持该技术的硬件上的应用。
总体而言,YOLOv12 通过创新的注意力机制设计和架构优化,为实时目标检测领域带来了显著的性能提升,同时为未来的研究提供了新的思路和方法。这里是自己的论文阅读记录,感兴趣的话可以参考一下,如果需要阅读原文的话可以看这里,如下所示:
官方项目地址在这里,如下所示:
可能因为刚发布还都不了解,目前没啥热度,至于效果好不好过段时间回来看看就知道了。
图 1. 与其他流行方法在延迟-精度(左)和 FLOPs-精度(右)权衡方面的比较。
当下基于最新发布的YOLOv12来开发构建自己的目标检测模型已经进行了初步的实践,感兴趣的话可以自行移步阅读即可:
《AI赋能传统基建巡检开启智能化运维新时代,基于YOLOv12全系列【n/s/m/l/x】参数模型开发构建水泥基建场景下道路、墙体裂缝缺陷智能检测识别系统》
摘要
长期以来,增强 YOLO 框架的网络架构一直至关重要,但以往的改进主要集中在基于 CNN 的架构上,尽管注意力机制在建模能力上已被证明具有优越性。这是因为基于注意力的模型无法与基于 CNN 的模型的速度相匹配。本文提出了一个以注意力为中心的 YOLO 框架,即 YOLOv12,它在保持与以往基于 CNN 的模型相当的速度的同时,利用注意力机制的性能优势。YOLOv12 在准确性上超越了所有流行的实时目标检测器,同时保持了具有竞争力的速度。例如,YOLOv12-N 在 T4 GPU 上实现了 40.6% 的 mAP,推理延迟为 1.64 毫秒,优于先进的 YOLOv10-N/YOLOv11-N,分别提高了 2.1%/1.2% 的 mAP,同时速度相当。这一优势在其他模型规模上也得到了体现。YOLOv12 还超越了改进 DETR 的端到端实时检测器,如 RT-DETR/RT-DETRv2:YOLOv12-S 在运行速度上比 RT-DETR-R18/RT-DETRv2-R18 快 42%,仅使用了 36% 的计算量和 45% 的参数。更多比较如图 1 所示。
1. 引言
实时目标检测因其低延迟特性而一直受到广泛关注,具有重要的实际价值 [4, 17, 24, 28]。其中,YOLO 系列 [3, 24, 28, 29, 32, 45–47, 53, 57, 58] 在延迟和精度之间建立了最佳平衡,从而在该领域占据主导地位。尽管 YOLO 的改进集中在损失函数 [8, 35, 43, 44, 48, 67, 68]、标签分配 [22, 23, 34, 59, 69] 等方面,但网络架构设计仍然是一个关键的研究重点 [24, 28, 32, 57, 58]。尽管基于注意力的视觉变换器(ViT)架构已被证明具有更强的建模能力,即使在小模型中也是如此 [20, 21, 25, 50],但大多数架构设计仍然主要集中在 CNN 上。
这种情况的主要原因在于注意力机制的低效性,主要来自两个因素:注意力机制的二次计算复杂度和低效的内存访问操作(后者是 FlashAttention [13, 14] 解决的主要问题)。因此,在类似的计算预算下,基于 CNN 的架构的性能比基于注意力的架构高出约 3 倍 [38],这严重限制了在对高推理速度至关重要的 YOLO 系统中采用注意力机制。本文旨在解决这些挑战,并进一步构建一个以注意力为中心的 YOLO 框架,即 YOLOv12。我们引入了三个关键改进。首先,我们提出了一个简单高效的区域注意力模块(A²),它以一种非常简单的方式在保持较大感受野的同时减少了注意力的计算复杂度,从而提高了速度。其次,我们引入了残差高效层聚合网络(R-ELAN),以解决注意力引入的优化挑战(主要是大规模模型)。R-ELAN 在原始 ELAN [57] 的基础上进行了两项改进:(i)基于块的残差设计和缩放技术;(ii)重新设计的特征聚合方法。第三,我们对传统注意力架构进行了一些架构改进,以适应 YOLO 系统,包括:引入 FlashAttention 以解决注意力的内存访问问题,移除位置编码等设计以使模型更快更简洁,将 MLP 比率从 4 调整到 1.2 以平衡注意力和前馈网络之间的计算,减少堆叠块的深度以促进优化,并尽可能多地使用卷积算子以利用其计算效率。基于上述设计,我们开发了一个包含 5 种模型规模的新实时检测器系列:YOLOv12-N、S、M、L 和 X。我们在标准目标检测基准上进行了广泛的实验,遵循 YOLOv11 [28] 的方法,没有使用任何额外的技巧,结果表明 YOLOv12 在这些规模的延迟-精度和 FLOPs-精度权衡方面对以前流行的模型有显著改进,如图 1 所示。例如,YOLOv12-N 实现了 40.6% 的 mAP,优于 YOLOv10-N [53] 2.1% 的 mAP,同时保持了更快的推理速度,优于 YOLOv11-N [28] 1.2% 的 mAP,速度相当。这一优势在其他规模模型中也保持一致。与 RT-DETR-R18 [66]/RT-DETRv2-R18 [40] 相比,YOLOv12-S 分别提高了 1.5%/0.1% 的 mAP,同时报告的延迟速度快 42%/42%,仅需要其 36%/36% 的计算量和 45%/45% 的参数。总之,YOLOv12 的贡献是两方面的:1)它建立了一个以注意力为中心的简单高效的 YOLO 框架,通过方法创新和架构改进打破了 CNN 模型在 YOLO 系列中的主导地位;2)不依赖于预训练等额外技术,YOLOv12 实现了快速推理速度和更高的检测精度,展示了其潜力。
2. 相关工作
实时目标检测器。实时目标检测器因其重要的实际价值而一直受到社区的关注。YOLO 系列 [3, 9, 24, 28, 29, 32, 45–47, 53, 54, 57, 58] 已成为实时目标检测的领先框架。早期的 YOLO 系统 [45–47] 从模型设计的角度为 YOLO 系列奠定了框架。YOLOv4 [3] 和 YOLOv5 [29] 在框架中增加了 CSPNet [55]、数据增强和多特征尺度。YOLOv6 [32] 在骨干网络和颈部进一步引入了 BiC 和 SimCSPSPPF 模块,并采用锚点辅助训练。YOLOv7 [57] 引入了 EELAN [56](高效层聚合网络)以改善梯度流动,并引入了各种免费的技巧,而 YOLOv8 [24] 集成了高效的 C2f 块以增强特征提取。在最近的迭代中,YOLOv9 [58] 引入了 GELAN 用于架构优化和 PGI 用于训练改进,而 YOLOv10 [53] 应用了无 NMS 的训练和双重分配以提高效率。YOLOv11 [28] 通过采用 C3K2 模块(GELAN [58] 的一个特例)和检测头中的轻量级深度可分离卷积,进一步降低了延迟并提高了精度。最近,一种端到端目标检测方法,即 RT-DETR [66],通过设计高效的编码器和最小不确定性查询选择机制,改进了传统的端到端检测器 [7, 33, 37, 42, 71] 以满足实时要求。RT-DETRv2 [40] 进一步通过免费的技巧增强了它。与以往的 YOLO 系列不同,本研究旨在构建一个以注意力为中心的 YOLO 框架,以利用注意力机制的优越性。
高效视觉变换器。减少全局自注意力的计算成本对于有效地将视觉变换器应用于下游任务至关重要。PVT [61] 通过多分辨率阶段和下采样特征来解决这一问题。Swin Transformer [39] 将自注意力限制在局部窗口内,并调整窗口分区方式以连接不重叠的窗口,平衡通信需求与内存和计算需求。其他方法,如轴向自注意力 [26] 和交叉注意力 [27],在水平和垂直窗口内计算注意力。CSWin Transformer [16] 在此基础上引入了交叉形状窗口自注意力,沿着水平和垂直条带计算注意力。此外,一些工作 [12, 64] 建立了局部-全局关系,通过减少对全局自注意力的依赖来提高效率。Fast-iTPN [50] 通过令牌迁移和令牌聚集机制提高了下游任务的推理速度。一些方法 [31, 49, 60, 62] 使用线性注意力来降低注意力的复杂度。尽管基于 Mamba 的视觉模型 [38, 70] 旨在实现线性复杂度,但它们仍然无法达到实时速度 [38]。FlashAttention [13, 14] 识别出高带宽内存瓶颈导致注意力计算效率低下,并通过 I/O 优化解决了这一问题,减少了内存访问以提高计算效率。在本研究中,我们摒弃了复杂的设计,提出了一个简单的区域注意力机制来降低注意力的复杂度。此外,我们采用了 FlashAttention 来解决注意力机制固有的内存访问问题 [13, 14]。
图2展示了我们的区域注意力与代表性局部注意力机制的比较。区域注意力采用最直接的等分方式,将特征图在垂直或水平方向上划分为l个区域(默认为4个)。这种方式避免了复杂的操作,同时确保了较大的感受野,从而实现了高效率。
3. 方法
本节介绍 YOLOv12,这是从网络架构的角度对 YOLO 框架的创新,引入了注意力机制。
3.1. 效率分析
尽管注意力机制在捕捉全局依赖关系以及促进自然语言处理 [5, 15] 和计算机视觉 [19, 39] 等任务方面非常有效,但其本质上比卷积神经网络(CNN)更慢。这种速度差异主要有两个原因。复杂度。首先,自注意力操作的计算复杂度随输入序列长度 L 的平方增长。具体来说,对于长度为 L 和特征维度为 d 的输入序列,注意力矩阵的计算需要 O(L²d) 次操作,因为每个标记都关注其他所有标记。相比之下,CNN 中的卷积操作的复杂度与空间或时间维度呈线性关系,即 O(kLd),其中 k 是卷积核大小,通常远小于 L。因此,对于高分辨率图像或长序列等大输入,自注意力在计算上变得难以承受。此外,另一个重要原因是,由于大多数基于注意力的视觉变换器具有复杂的设计(例如,Swin Transformer [39] 中的窗口分区/反转)和引入的额外模块(例如,位置编码),逐渐累积的速度开销导致其整体速度比 CNN 架构慢 [38]。在本文中,设计模块利用简单且干净的操作来实现注意力,最大程度地确保效率。计算。其次,在注意力计算过程中,内存访问模式的效率不如 CNN [13, 14]。具体来说,在自注意力过程中,中间映射(如注意力图 QKT 和 softmax 图 L×L)需要从高速 GPU SRAM(实际计算位置)存储到高速 GPU 内存(HBM),并在计算过程中再次检索。前者的读写速度比后者快 10 倍以上,因此导致显著的内存访问开销和增加的墙钟时间¹。此外,与 CNN 使用结构化和局部化的内存访问(由于其固定的感受野和滑动窗口操作)相比,注意力中的不规则内存访问模式引入了进一步的延迟。这两个因素——二次计算复杂度和低效的内存访问——共同导致注意力机制比 CNN 更慢,特别是在实时或资源受限的场景中。解决这些限制已成为一个关键的研究领域,稀疏注意力机制和内存高效的近似方法(例如,Linformer [60] 或 Performer [11])旨在缓解二次增长。
¹ 这一问题已被 FlashAttention [13, 14] 解决,将在模型设计中直接采用。
3.2. 区域注意力
减少传统注意力计算成本的一种简单方法是使用线性注意力机制 [49, 60],它将传统注意力的复杂度从二次降低到线性。对于具有维度 (n, h, d) 的视觉特征 f,其中 n 是标记的数量,h 是头的数量,d 是头的大小,线性注意力将复杂度从 2n²hd 降低到 2nhd²,由于 n > d,从而降低了计算成本。然而,线性注意力存在全局依赖性退化 [30]、不稳定 [11] 和分布敏感性 [63] 的问题。此外,由于低秩瓶颈 [2, 10],当应用于输入分辨率为 640×640 的 YOLO 时,其速度优势有限。另一种有效降低复杂度的方法是局部注意力机制(例如,Shift window [39]、交叉注意力 [27] 和轴向注意力 [16]),如图 2 所示,将全局注意力转换为局部,从而降低计算成本。然而,将特征图划分为窗口可能会引入开销或减少感受野,影响速度和精度。在本研究中,我们提出了一个简单而高效的区域注意力模块。如图 2 所示,将分辨率为 (H, W) 的特征图划分为 l 个大小为 (H/l, W) 或 (H, W/l) 的段。这避免了显式的窗口划分,只需要一个简单的重塑操作,从而实现更快的速度。我们经验性地将 l 的默认值设置为 4,将感受野减少到原来的 1/4,但仍然保持较大的感受野。通过这种方法,注意力机制的计算成本从 2n²hd 降低到 1/2n²hd。我们发现,尽管复杂度为 n²,但当 n 固定在 640(输入分辨率增加时 n 会增加)时,这仍然足够高效,能够满足 YOLO 系统的实时要求。有趣的是,我们发现这种修改对性能的影响很小,但显著提高了速度。
3.3. 残差高效层聚合网络
高效层聚合网络(ELAN)[57] 被设计用于改善特征聚合。如图 3(b)所示,ELAN 将转换层(1×1 卷积)的输出分割,将其中一个分割通过多个模块处理,然后将所有输出连接起来,并应用另一个转换层(1×1 卷积)以对齐维度。然而,如 [57] 所分析的,这种架构可能会引入不稳定性。我们认为这种设计会导致梯度阻塞,并且缺乏从输入到输出的残差连接。此外,我们围绕注意力机制构建网络,这带来了额外的优化挑战。经验表明,L 和 X 规模的模型要么无法收敛,要么即使使用 Adam 或 AdamW 优化器也保持不稳定。为了解决这一问题,我们提出了残差高效层聚合网络(R-ELAN),如图 3(d)所示。相比之下,我们在整个块中引入了一个从输入到输出的残差快捷方式,并应用了一个缩放因子(默认为 0.01)。这种设计类似于层缩放 [52],它被引入用于构建深度视觉变换器。然而,为每个区域注意力应用层缩放并不能克服优化挑战,并且会引入延迟上的减慢,这表明引入注意力机制并不是收敛的唯一原因,ELAN 架构本身也存在问题,从而验证了我们 R-ELAN 设计的合理性。我们还设计了一种新的聚合方法,如图 3(d)所示。原始 ELAN 层首先通过转换层处理模块的输入,然后将其分割为两部分。其中一部分通过后续块进一步处理,最后两部分连接起来产生输出。相比之下,我们的设计应用转换层调整通道维度,并产生一个单一的特征图。然后将该特征图通过后续块处理,最后进行连接,形成一个瓶颈结构。这种方法不仅保留了原始的特征整合能力,还降低了计算成本和参数/内存使用量。
3.4. 架构改进
本节将介绍整体架构以及对传统注意力机制的一些改进。其中一些并非我们首次提出。
许多以注意力为中心的视觉变换器采用了平面式架构 [1, 18, 19, 21, 25, 51],而我们保留了以前 YOLO 系统的层次化设计 [3, 24, 28, 29, 32, 45–47, 53, 57, 58],并将在后续部分展示其必要性。我们移除了最近版本 [24, 28, 53, 58] 中骨干网络最后阶段堆叠的三个块,仅保留一个 R-ELAN 块,减少了总块数,有助于优化。我们从 YOLOv11 [28] 继承了骨干网络的前两个阶段,并未使用所提出的 R-ELAN。此外,我们修改了传统注意力机制中的几个默认配置,以更好地适应 YOLO 系统。这些修改包括:将 MLP 比率从 4 调整到 1.2(或对于 N/S/M 规模模型使用 2),以更好地分配计算资源以获得更好的性能;采用 nn.Conv2d+BN
替代 nn.Linear+LN
,以充分利用卷积操作的效率;移除位置编码,并引入一个大分离卷积(7×7)(即位置感知器),以帮助区域注意力感知位置信息。这些改进的有效性将在第 4.5 节中验证。
4. 实验
本节分为四部分:实验设置、与流行方法的系统比较、验证我们方法的消融研究,以及通过可视化进一步探索 YOLOv12 的分析。
4.1. 实验设置
我们在 MS COCO 2017 数据集 [36] 上验证所提出的方法。YOLOv12 系列包括 5 个变体:YOLOv12-N、YOLOv12-S、YOLOv12-M、YOLOv12-L 和 YOLOv12-X。所有模型均使用 SGD 优化器训练 600 个周期,初始学习率为 0.01,与 YOLOv11 [28] 保持一致。我们采用线性学习率衰减计划,并在前 3 个周期进行线性预热。按照 [53, 66] 中的方法,所有模型的延迟均在 T4 GPU 上使用 TensorRT FP16 进行测试。基线。我们选择 YOLOv11 [28] 的前一个版本作为我们的基线。模型缩放策略也与其保持一致。我们使用其提出的几个 C3K2 块(即 GELAN [58] 的一个特例)。我们没有使用超出 YOLOv11 [28] 的任何技巧。
4.2. 与最新技术的比较
我们在表 1 中展示了 YOLOv12 与其他流行实时检测器的性能比较。对于 N 规模模型,YOLOv12-N 在保持相似或更少的计算量和参数的同时,比 YOLOv6-3.0-N [32]、YOLOv8-N [24]、YOLOv10-N [53] 和 YOLOv11 [28] 分别高出 3.6%、3.3%、2.1% 和 1.2% 的 mAP,同时实现了 1.64 ms/图像的快速延迟速度。对于 S 规模模型,YOLOv12-S 在 21.4G FLOPs 和 9.3M 参数的情况下,实现了 48.0 mAP 和 2.61 ms/图像的延迟。它比 YOLOv8-S [24]、YOLOv9-S [58]、YOLOv10-S [53] 和 YOLOv11-S [28] 分别高出 3.0%、1.2%、1.7% 和 1.1% 的 mAP,同时保持了相似或更少的计算量。与端到端检测器 RT-DETR-R18 [66]/RT-DETRv2-R18 [41] 相比,YOLOv12-S 实现了可比的性能,但具有更快的推理速度和更少的计算成本和参数。对于 M 规模模型,YOLOv12-M 在 67.5G FLOPs 和 20.2M 参数的情况下,实现了 52.5 mAP 和 4.86 ms/图像的速度。与 Gold-YOLO-M [54]、YOLOv8-M [24]、YOLOv9-M [58]、YOLOv10 [53]、YOLOv11 [28] 和 RT-DETR-R34 [66]/RT-DETRv2-R34 [40] 相比,YOLOv12-M 具有优势。对于 L 规模模型,YOLOv12-L 甚至比 YOLOv10-L [53] 少 31.4G FLOPs。YOLOv12-L 比 YOLOv11 [28] 高出 0.4% 的 mAP,同时 FLOPs 和参数相当。YOLOv12-L 还比 RT-DETR-R50 [66]/RT-DETRv2-R50 [41] 具有更好的速度,更少的 FLOPs(34.6%)和更少的参数(37.1%)。对于 X 规模模型,YOLOv12-X 显著优于 YOLOv10-X [53]/YOLOv11-X [28],分别高出 0.8% 和 0.6% 的 mAP,同时速度、FLOPs 和参数相当。YOLOv12-X 再次以更快的速度、更少的 FLOPs(23.4%)和更少的参数(22.2%)击败了 RT-DETR-R101 [66]/RT-DETRv2-R101 [40]。特别是,如果使用 FP32 精度对 L/X 规模模型进行评估(这需要单独以 FP32 格式保存模型),YOLOv12 将实现约 0.2% mAP 的提升。这意味着 YOLOv12-L/X 将报告 33.9%/55.4% mAP。
4.3. 消融研究
• R-ELAN。表 2 使用 YOLOv12-N/L/X 模型评估了所提出的残差高效层聚合网络(R-ELAN)的有效性。结果揭示了两个关键发现:(i)对于小模型(如 YOLOv12-N),残差连接不影响收敛,但会降低性能。相比之下,对于大模型(YOLOv12-L/X),它们对于稳定训练至关重要。特别是,YOLOv12-X 需要最小的缩放因子(0.01)才能确保收敛。(ii)所提出的特征整合方法有效地减少了模型的复杂性,以 FLOPs 和参数为单位,同时保持了相当的性能,只有轻微的下降。
• 区域注意力。我们在表 3 中进行了消融实验,以验证区域注意力的有效性。评估在 YOLOv12-N/S/X 模型上进行,测量了 GPU(CUDA)和 CPU 上的推理速度。CUDA 结果使用 RTX 3080 和 A5000 获得,而 CPU 性能在 Intel Core i7-10700K @ 3.80GHz 上测量。结果表明,区域注意力(✓)显著提高了速度。例如,在 RTX 3080 上使用 FP32,YOLOv12-N 的推理时间减少了 0.7ms。这种性能提升在不同模型和硬件配置中均有所体现。我们在本实验中没有使用 FlashAttention [13, 14],因为它会显著减少速度差异。
4.4. 速度比较
表 4 提供了在不同 GPU(RTX 3080、RTX A5000 和 RTX A6000)上进行的推理速度比较,评估了 YOLOv9 [58]、YOLOv10 [53]、YOLOv11 [28] 和我们的 YOLOv12,使用 FP32 和 FP16 精度。为了确保一致性,所有结果均在相同的硬件上获得,并且 YOLOv9 [58] 和 YOLOv10 [53] 使用 ultralytics [28] 的集成代码库进行评估。结果表明,YOLOv12 的推理速度显著高于 YOLOv9 [58],同时与 YOLOv10 [53] 和 YOLOv11 [28] 基本相当。例如,在 RTX 3080 上,YOLOv9 报告的延迟为 2.4 ms(FP32)和 1.5 ms(FP16),而 YOLOv12-N 实现了 1.7 ms(FP32)和 1.1 ms(FP16)。其他配置也显示出类似的趋势。
图 4 提供了额外的比较。左侧子图展示了与流行方法
在精度-参数权衡方面的比较,其中 YOLOv12 建立了一个超越对手的主导边界,甚至超过了以显著较少参数为特征的 YOLOv10,展示了 YOLOv12 的效率。我们在右侧子图中比较了 YOLOv12 与其他 YOLO 版本在 CPU 上的推理延迟(所有结果均在 Intel Core i7-10700K @ 3.80GHz 上测量)。如图所示,YOLOv12 在多样化硬件平台上超越了其他竞争对手,具有更有利的边界。
4.5. 诊断与可视化
我们在表 5a 至 5h 中对 YOLOv12 的设计进行了诊断。除非另有说明,否则我们在 YOLOv12-N 上进行这些诊断,从头开始训练 600 个周期。
• 注意力实现:表 5a。我们检验了两种注意力实现方法。基于卷积的方法由于卷积的计算效率高于基于线性的方法。此外,我们探索了两种归一化方法(层归一化(LN)和批归一化(BN)),结果表明:尽管层归一化通常用于注意力机制,但其在与卷积结合时的表现不如批归一化。这一发现与 PSA 模块 [53] 的设计一致。
• 层次化设计:表 5b。与其他检测系统(如 Mask R-CNN [1, 25])不同,这些系统中基于平面视觉变换器的架构可以产生强大的结果,YOLOv12 表现出不同的行为。当使用平面视觉变换器(N/A)时,检测器的性能显著下降,仅达到 38.3% 的 mAP。通过适度调整,例如移除第一阶段(S1)或第四阶段(S4),同时通过调整特征维度保持相似的 FLOPs,分别导致性能轻微下降 0.5% 和 0.8%。与之前的 YOLO 模型一致,层次化设计在 YOLOv12 中最为有效,实现了最佳性能。
• 训练周期:表 5c。我们检验了不同数量的训练周期对性能的影响(从头开始训练)。尽管一些现有的 YOLO 检测器在大约 500 个训练周期后达到最佳结果 [24, 53, 58],YOLOv12 需要更长的训练时间(大约 600 个周期),以实现峰值性能,同时保持与 YOLOv11 [28] 相同的配置。
• 位置感知器:表 5d。在注意力机制中,我们将一个大核的可分离卷积应用于注意力值 v,并将其输出加到 v@attn 上。我们称这个组件为位置感知器,因为卷积的平滑效应保留了图像像素的原始位置,它帮助注意力机制感知位置信息(这已经在 PSA 模块 [53] 中使用,但我们扩展了卷积核,实现了性能提升而不影响速度)。如表所示,增加卷积核大小可以提高性能,但逐渐降低速度。当核大小达到 9×9 时,速度减慢变得显著。因此,我们将 7×7 作为默认核大小。
• 位置嵌入:表 5e。我们检验了在大多数基于注意力的模型中常用的位置嵌入(RPE:相对位置嵌入;APE:绝对位置编码)对性能的影响。有趣的是,最佳性能配置是在没有任何位置嵌入的情况下实现的,这带来了更简洁的架构和更快的推理延迟。
• 区域注意力:表 5f。在本表中,我们默认使用 FlashAttention 技术。这导致区域注意力机制增加了计算复杂度(从而带来性能提升),但由此导致的延迟仍然很小。有关区域注意力有效性的进一步验证,请参阅表 3。
• MLP 比率:表 5g。在传统视觉变换器中,注意力模块内的 MLP 比率通常设置为 4.0。然而,我们在 YOLOv12 中观察到不同的行为。在表中,改变 MLP 比率会影响模型大小,因此我们调整特征维度以保持模型整体一致性。特别是,YOLOv12 在 MLP 比率为 1.2 时实现了更好的性能,这与传统做法背道而驰。这种调整将计算负载更多地转向注意力机制,突出了区域注意力的重要性。
• FlashAttention:表 5h。本表验证了 FlashAttention 在 YOLOv12 中的作用。它显示 FlashAttention 使 YOLOv12-N 的延迟缩短了约 0.3ms,YOLOv12-S 的延迟缩短了约 0.4ms,且没有其他成本。
可视化:热力图比较
图 5 比较了 YOLOv12 与最先进的 YOLOv10 [53] 和 YOLOv11 [28] 的热力图。这些热力图是从 X 规模模型的骨干网络的第三阶段提取的,突出了模型激活的区域,反映了其目标感知能力。如图所示,与 YOLOv10 和 YOLOv11 相比,YOLOv12 产生了更清晰的目标轮廓和更精确的前景激活,表明感知能力的提升。我们推测这种改进来自于区域注意力机制,它比卷积网络具有更大的感受野,因此被认为更能捕捉整体上下文,从而实现更精确的前景激活。我们相信这一特性为 YOLOv12 带来了性能优势。
5. 结论
本研究引入了 YOLOv12,它成功地将传统上被认为不适合实时要求的以注意力为中心的设计引入到 YOLO 框架中,实现了最先进的延迟-精度权衡。为了实现高效的推理,我们提出了一个新颖的网络,利用区域注意力减少计算复杂度,并引入残差高效层聚合网络(R-ELAN)以增强特征聚合。此外,我们对传统注意力机制的关键组件进行了优化,使其更好地适应 YOLO 的实时约束,同时保持高速性能。因此,YOLOv12 通过有效结合区域注意力、R-ELAN 和架构优化,实现了最先进的性能。全面的消融研究进一步验证了这些创新的有效性。本研究挑战了 CNN 架构在 YOLO 系统中的主导地位,并推动了注意力机制在实时目标检测中的融合,为更高效、更强大的 YOLO 系统铺平了道路。
6. 限制
YOLOv12 需要 FlashAttention [13, 14],目前仅支持 Turing、Ampere、Ada Lovelace 或 Hopper 架构的 GPU(例如 T4、Quadro RTX 系列、RTX 20 系列、RTX 30 系列、RTX 40 系列、RTX A5000/A6000、A30/40、A100、H100 等)。
7. 更多细节
微调细节
默认情况下,所有 YOLOv12 模型均使用 SGD 优化器训练 600 个周期。按照以往研究 [24, 53, 57, 58],SGD 动量和权重衰减分别设置为 0.937 和 5×10⁻⁴。初始学习率设置为 1×10⁻²,并在整个训练过程中线性衰减至 1×10⁻⁴。应用数据增强技术,包括 Mosaic [3, 57]、Mixup [71] 和复制粘贴增强 [65],以增强训练。按照 YOLOv11 [28] 的方法,我们采用 Albumentations 库 [6]。详细超参数如表 7 所示。所有模型均在 8×NVIDIA A6000 GPU 上训练。按照既定惯例 [24, 28, 53, 58],我们在不同目标尺度和 IoU 阈值下报告标准平均精度(mAP)。此外,我们报告所有图像的平均延迟。
结果细节
我们在表 6 中报告了更多结果细节,包括 APval 50:95、APval 50、APval 75、APval small、APval medium 和 APval large。