YOLOv12:以注意力为中心的实时对象检测器
田云杰 布法罗大学yunjieti@buffalo.edu
叶启祥
中国科学院大学qxye@ucas.ac.cn
大卫·多尔曼 布法罗大学doermann@buffalo.edu
github.com/sunsmarterjie/yolov12
-- Technical Report --
图 1.在延迟精度(左)和 FLOPs 精度(右)权衡方面与其他常用方法的比较。
抽象
长期以来,增强 YOLO 框架的网络架构一直至关重要,但尽管注意力机制在建模能力方面已被证明具有优越性,但仍然专注于基于 CNN 的改进。这是因为基于注意力的模型无法与基于 CNN 的模型的速度相媲美。本文提出了一个以注意力为中心的 YOLO 框架,即 YOLOv12,它与以前基于 CNN 的框架的速度相匹配,同时利用了注意力机制的性能优势。
YOLOv12 在精度和速度上超越了所有流行的实时对象检测器。例如,YOLOv12-N 在 T4 GPU 上实现了 40.6%mAP40.6 \% m A P 1.64 毫秒的推理延迟,比先进的 YOLOv10-N/YOLOv11-N 高出 2.1%/1.2% mAP,速度相当。这一优势延伸到其他模型尺度。YOLOv12 还超越了改进 DETR 的端到端实时检测器,例如 RT-DETR / RTDETRv2:YOLOv12-S 击败了 RT-DETR-R18 / RT-DETRv2-
R18 运行 42%42 \% 得更快,仅使用 36%36 \% 计算和 45%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\u20125\u201250],大多数架构设计仍然主要关注 CNN。
造成这种情况的主要原因在于注意力机制的低效性,这来自两个主要因素:二次计算复杂性和注意力机制的低效内存访问作(后者是 FlashAttention [13, 14] 解决的主要问题)。因此,在类似的计算预算下,基于 CNN 的架构比基于注意力的架构高出一倍 ∼3xx\sim 3 \times [38],这大大限制了注意力机制在高推理速度至关重要的 YOLO 系统中的采用。
本文旨在解决这些挑战,并进一步构建一个以注意力为中心的 YOLO 框架,即 YOLOv12。我们介绍了三个关键改进。首先,我们提出了一个简单而高效的区域注意力模块(A2),它以非常简单的方式保持了一个大的感受野,同时降低了注意力的计算复杂度,从而提高了速度。其次,我们引入了残差有效层聚合网络 (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 在保持更快推理速度的同时,在 2.1%2.1 \% mAP 上优于 40.6%mAP40.6 \% \mathrm{mAP} YOLOv10-N [53],而 YOLOv11-N [28] 1.2%mAP1.2 \% \mathrm{mAP} 则以相当的速度实现。这一优势在其他比例模型上保持不变。与 RT-DETR-R18 [66] / RT-DETRv2R18 [40] 相比,YOLOv12-S 更好 1.5%//0.1%mAP1.5 \% / 0.1 \% \mathrm{mAP} ,同时报告 42%//42%42 \% / 42 \% 更快的延迟速度,只需要 36%//36%36 \% / 36 \% 它们的计算和 45%//45%45 \% / 45 \% 参数。
综上所述,YOLOv12 的贡献有两个 -
fold: 1) 它建立了一个以注意力为中心、简单而高效的 YOLO 框架,通过方法论创新和架构改进,打破了 CNN 模型在 YOLO 系列中的主导地位。2) 无需依赖预训练等额外技术,YOLOv12 即可以快速的推理速度和更高的检测精度获得最先进的结果,展示了其潜力。
实时对象检测器。实时对象检测器因其巨大的实用价值而一直受到社区的关注。YOLO 系列 [3,9,24,28,29,32,45-47,53,54,57,58][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] 则应用了 NMSfree 训练和双重分配以提高效率。YOLOv11 [28] 通过在检测头中采用 C3K2 模块(GELAN [58] 的规范)和轻量级深度可分离卷积,进一步降低了延迟并提高了准确性。最近,一种端到端的目标检测方法,即RT-DETR [66],通过设计高效的编码器和不确定性最小的查询选择机制,改进了传统的端到端检测器[7,33,37,42,71],以满足实时性要求。RTDETRv2 [40] 通过免费赠品袋进一步增强了它。与以往的 YOLO 系列不同,本研究旨在构建一个以注意力为中心的 YOLO 框架,以利用注意力机制的优越性。
高效的视觉变压器。降低全局自我关注带来的计算成本对于在下游任务中有效应用视觉转换器至关重要。PVT [61] 使用多分辨率阶段和下采样功能解决了这个问题。Swin Transformer [39] 将自我关注限制在本地窗口,并调整窗口分区样式以连接不重叠的窗口,平衡通信需求与内存和计算需求。其他方法,如轴向自我注意 [26] 和纵横交错的注意力 [27],在水平和垂直窗口内计算注意力。CSWin transformer [16] 在此基础上引入了十字形窗口自注意力,计算沿水平和垂直条纹的注意力

图 2.代表性本地关注机制与我们的区域关注的比较。Area Attention 采用最直接的相等划分方式,将特征图垂直或水平划分为多个 ll 区域。(默认值为 4)。这避免了复杂的作,同时确保了较大的接收区域,从而实现了高效率。
平行。此外,在 [12, 64] 等作品中建立了本地-全球关系,通过减少对全球自我关注的依赖来提高效率。Fast-iTPN [50] 通过令牌迁移和令牌收集机制提高了下游任务推理速度。一些方法 [31,49,60[31,49,60 ,62] 使用线性注意力来降低注意力的复杂性。尽管基于 Manba 的视觉模型 [38, 70] 旨在实现线性复杂性,但它们仍然达不到实时速度 [38]。FlashAttention [13, 14] 识别导致注意力计算效率低下的高带宽内存瓶颈,并通过 I/O 优化来解决这些瓶颈,减少内存访问以提高计算效率。在这项研究中,我们摒弃了复杂的设计,提出了一种简单的区域注意力机制来降低注意力的复杂性。此外,我们使用 FlashAttention 来克服注意力机制的固有内存访问问题 [13, 14]。
3. 方法
本节从网络架构的角度出发,介绍了 YOLOv12 框架中的一项创新,具有注意力机制。
3.1. 效率分析
注意力机制虽然在捕获全局依赖关系和促进自然语言处理 [5, 15] 和计算机视觉 [19, 39] 等任务方面非常有效,但本质上比卷积神经网络 (CNN) 慢。两个主要因素导致了这种速度差异。
复杂性。首先,自我注意作的计算复杂度与输入序列长度 LL 呈二次方关系。具体来说,对于具有 length LL 和 feature dimension dd 的 input sequence ,注意力矩阵的计算需要 O(L^(2)d)\mathcal{O}\left(L^{2} d\right) 作,因为每个标记都会关注其他每个标记。相比之下,CNN 中卷积运算的复杂性相对于空间或时间维度呈线性缩放,即 O(kLd)\mathcal{O}(k L d) ,其中 kk 是核大小,通常远小于
LL 。因此,自我注意在计算上变得令人望而却步,尤其是对于高分辨率图像或长序列等大型输入。
此外,另一个重要因素是,大多数基于注意力的视觉转换器,由于其复杂的设计(例如,Swin 转换器中的窗口分区/倒车 [39])和附加模块的引入(例如,位置编码),逐渐积累了速度开销,导致与 CNN 架构相比,整体速度较慢 [38]。在本文中,设计模块利用简单明了的作来实现注意力,最大程度地保证了效率。
计算。其次,在注意力计算过程中,与 CNN 相比,内存访问模式的效率较低 [13, 14]。具体来说,在自注意力时,注意力图( QK^(T)Q K^{T} )和softmax图( L xx LL \times L )等中间图需要从高速GPU SRAM(计算的实际位置)存储到高带宽的GPU内存(HBM)中,并在计算过程中检索,前者的读写速度是后者的10倍以上, 因此,会导致大量的内存访问开销和增加 wall-clock time ^(1){ }^{1} 。此外,与利用结构化和本地化内存访问的 CNN 相比,注意力中不规则的内存访问模式会带来进一步的延迟。CNN 受益于空间受限的内核,由于其固定的感受野和滑动窗口作,可实现高效的内存缓存并减少延迟。
这两个因素,即二次计算复杂性和低效的内存访问,共同使注意力机制比 CNN 慢,尤其是在实时或资源受限的情况下。解决这些限制已成为一个关键的研究领域,诸如稀疏注意力机制和内存效率高的近似值(例如,Linformer [60] 或 Performer [11])等方法旨在减轻二次缩放。