长期以来,改进YOLO框架的网络架构一直是研究重点,但主要集中在基于CNN的改进上,尽管注意力机制已被证明在建模能力上具有显著优势。这是因为基于注意力的模型在速度上无法与基于CNN的模型相媲美。本文提出了一种以注意力为核心的YOLO框架——YOLOv12,它在保持与先前基于CNN模型相当速度的同时,充分利用了注意力机制的性能优势。
YOLOv12在精度上超越了所有流行的实时目标检测器,同时保持了具有竞争力的速度。例如,YOLOv12-N在T4 GPU上以毫秒的推理延迟实现了 ,优于先进的YOLOv10-N/YOLOv11-N(分别提升/ ),且速度相当。这一优势扩展到其他模型规模。YOLOv12还超越了基于DETR改进的端到端实时检测器(如RT-DETR/RT-DETRv2):YOLOv12-S在速度加快、计算量仅需、参数量仅需的情况下,性能优于RT-DETR-R18/RT-DETRv2-R18。更多比较见图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的架构性能比基于注意力的架构高约[38],这严重限制了注意力机制在需要高推理速度的YOLO系统中的采用。
本文旨在解决这些挑战,并进一步构建以注意力为核心的YOLO框架——YOLOv12。我们提出了三项关键改进:
基于上述设计,我们开发了包含5种规模(N/S/M/L/X)的新型实时检测器家族。遵循YOLOv11[28]的实验设置(未使用额外技巧),在标准目标检测基准上的大量实验表明,YOLOv12在延迟-精度和FLOPs-精度权衡上显著优于先前模型(如图1所示)。例如:
综上,YOLOv12的贡献为:
实时目标检测器因其显著实用价值始终备受关注。YOLO系列[3, 9, 24, 28, 29, 32, 45-47, 53, 54, 57, 58]已成为实时目标检测的领先框架。早期YOLO系统[45-47]从模型设计角度奠定了系列基础。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]。
本章从网络架构与注意力机制的角度介绍YOLO框架的创新——YOLOv12。
尽管注意力机制在捕获全局依赖关系和促进自然语言处理[5,15]与计算机视觉[19,39]任务中表现出色,但其速度本质上仍慢于卷积神经网络(CNN)。速度差异主要由以下两个因素导致:
计算复杂度 首先,自注意力操作的计算复杂度随输入序列长度呈二次方增长。具体而言,对于长度为、特征维度为的输入序列,注意力矩阵的计算需要次操作,因为每个token需与其他所有token交互。相比之下,CNN中卷积操作的复杂度与空间或时间维度呈线性关系,即(其中为卷积核大小,通常远小于)。因此,自注意力在大规模输入(如高分辨率图像或长序列)中计算代价极高。
此外,大多数基于注意力的视觉变换器因复杂设计(如Swin Transformer[39]的窗口划分/反转)和额外模块(如位置编码)的引入,逐渐累积速度开销,导致整体速度落后于CNN架构[38]。本文采用简洁操作实现注意力模块,最大限度确保效率。
内存访问效率 其次,在注意力计算过程中,内存访问模式相比CNN更低效[13,14]。具体而言,自注意力计算中需将中间矩阵(如注意力矩阵和softmax矩阵)从高速GPU SRAM(实际计算位置)存储至高带宽GPU内存(HBM),并在后续计算中重新读取。由于前者的读写速度是后者的10倍以上,导致显著的内存访问开销和实际耗时增加。此外,注意力中不规则的内存访问模式相比CNN结构化、局部化的内存访问进一步引入延迟。CNN受益于空间受限的卷积核,通过固定感受野和滑动窗口操作实现高效内存缓存与低延迟。
综上,二次计算复杂度与低效内存访问共同导致注意力机制在实时或资源受限场景中速度落后于CNN。解决这些限制已成为研究重点,稀疏注意力机制和内存高效近似(如Linformer[60]或Performer[11])等方法旨在缓解二次复杂度问题。
降低原始注意力计算成本的一种简单方法是使用线性注意力机制[49,60],将复杂度从二次降至线性。对于维度为的视觉特征(为token数,为头数,为头维度),线性注意力将复杂度从降至(当时计算成本更低)。然而,线性注意力存在全局依赖退化[30]、不稳定[11]和分布敏感性[63]等问题,且在输入分辨率为的YOLO中仅提供有限速度优势[2,10]。
另一种有效降低复杂度的方法是局部注意力机制(如Shift窗口[39]、十字交叉注意力[27]和轴向注意力[16]),如图2所示。此类方法将全局注意力转为局部计算以降低开销,但窗口划分可能引入额外开销或缩小感受野,影响速度与精度。本文提出区域注意力模块:将分辨率的特征图划分为个大小为或的段(默认),仅需简单reshape操作即可实现,无需显式窗口划分。尽管感受野缩小至原始的,但仍保持较大范围。通过此方法,注意力计算成本从降至。实验表明,当固定为640时(输入分辨率增加时同步增加),该修改对性能影响轻微,但显著提升速度。
高效层聚合网络(ELAN)[57]旨在优化特征聚合。如图3(b)所示,ELAN将过渡层(卷积)的输出切分,一部分通过多个模块处理,最后拼接所有输出并通过另一过渡层对齐维度。然而,ELAN架构可能导致梯度阻塞且缺乏输入到输出的残差连接,尤其在结合注意力机制时,L/X规模模型难以收敛或训练不稳定(即使使用Adam/AdamW优化器)。
为此,本文提出残差高效层聚合网络(R-ELAN),如图3(d)所示:
YOLOv12 是一种以注意力机制为核心的实时目标检测框架,旨在突破传统 YOLO 系列中以卷积神经网络(CNN)为主的设计限制,同时兼顾高精度和低延迟。以下是 YOLOv12 的主要内容总结:
YOLOv12 成功将注意力机制引入 YOLO 框架,通过区域注意力、R-ELAN 和架构优化,实现了实时目标检测领域的最新性能标杆。这一研究不仅挑战了 CNN 在 YOLO 系列中的主导地位,还为注意力机制在实时检测中的应用提供了新的方向。 [1] https://65592f41-2d3a-49ed-965b-da17678025e0.file
许多注意力视觉变换器采用平面式架构[1,18,19,21,25,51],而YOLOv12保留先前YOLO系统的分层设计[3,24,28,29,32,45-47,53,57,58],并证明其必要性。具体改进包括:
nn.Conv2d + BN
替代nn.Linear + LN
,充分利用卷积效率。这些改进的有效性将在第4.5节验证。
本章分为四部分:实验设置、与主流方法的系统对比、验证方法的消融实验,以及通过可视化分析深入探索YOLOv12。
我们在MSCOCO 2017数据集[36]上验证所提方法。YOLOv12家族包含5种规模:N/S/M/L/X。所有模型均使用SGD优化器训练600 epoch,初始学习率为(与YOLOv11[28]一致),采用线性学习率衰减策略,前3 epoch进行线性预热。遵循[53,66]方法,所有模型的延迟均在T4 GPU上通过TensorRT FP16精度测试。
基线:选择YOLOv11[28]作为基线,模型缩放策略与其一致。沿用其提出的C3K2模块(GELAN[58]的变体),未使用额外技巧。
在这里插入图片描述
表1展示了YOLOv12与其他流行实时检测器的性能对比:
在这里插入图片描述
在这里插入图片描述
表4展示了YOLOv9[58]、YOLOv10[53]、YOLOv11[28]与YOLOv12在RTX 3080/A5000/A6000上的FP32/FP16延迟对比:
在这里插入图片描述
通过表5a-5h对YOLOv12设计进行诊断(默认基于YOLOv12-N从头训练600 epoch):
热力图可视化(图5): YOLOv12(X规模模型主干第三阶段)相比YOLOv10[53]/YOLOv11[28]生成更清晰的物体轮廓与精确前景激活,得益于区域注意力的大感受野对全局上下文的高效捕捉。
在这里插入图片描述
本研究提出了YOLOv12,首次在YOLO框架中成功引入传统认为难以满足实时需求的以注意力为核心的设计,实现了SOTA的延迟-精度权衡。为实现高效推理,我们提出:
通过结合上述创新,YOLOv12在精度与效率上均取得显著提升,系统性消融实验验证了各改进的有效性。本研究挑战了CNN设计在YOLO系统中的主导地位,推动了注意力机制在实时目标检测中的集成,为更高效强大的YOLO系统开辟了新路径。
YOLOv12依赖FlashAttention[13,14],目前仅支持以下GPU架构:
在这里插入图片描述
表6展示了更详细的评估结果,包括: