论文
https___arxiv.org_pdf_2502.pdf
摘要
创新之处
- 打破 CNN 主导:建立了以注意力为核心的简单高效 YOLO 框架,打破了 CNN 模型在 YOLO 系列中的主导地位 。
- 性能优势:在不依赖预训练等额外技术的情况下,以快速的推理速度和更高的检测精度实现了先进的结果。
性能表现
- 精度高:YOLOv12 - N 在 T4 GPU 上实现了 40.6% 的平均精度(mAP) ,比先进的 YOLOv10 - N 和 YOLOv11 - N 分别高出 2.1% 和 1.2% 的 mAP。
- 速度快:YOLOv12 - N 推理延迟为 1.64 毫秒,速度与 YOLOv10 - N 和 YOLOv11 - N 相当;YOLOv12 - S 在运行速度上比 RT - DETR - R18 快 42%,仅使用了 36% 的计算量和 45% 的参数。
架构设计
- 区域注意力模块:注意力机制计算复杂度高且内存访问效率低,区域注意力模块将全局注意力转化为局部,降低计算成本。
-
- 十字交叉注意力:关注图像中呈十字交叉形状的区域。
- 窗口注意力:以一个矩形窗口的形式聚焦在图像特定区域。
- 轴向注意力:沿着水平和垂直轴方向关注图像区域。
- 区域注意力:将图像划分为特定区域进行关注,从图中可看出其关注区域的划分方式与其他几种不同,这种方式相对更简洁,通过简单的划分来降低计算成本 。
- R - ELAN:在高效层聚合网络(ELAN)基础上提出残差高效层聚合网络(R - ELAN),引入残差快捷路径和缩放因子,保留特征整合能力的同时降低计算成本及参数 / 内存使用量。
- 依赖 FlashAttention 技术
方法
3.1 效率分析
- 计算复杂度:自注意力操作的计算复杂度随输入序列长度L呈二次方增长,为O(L²d),而卷积操作复杂度是线性增长,为O(kLd),k为远小于L的内核大小。此外,基于注意力的视觉Transformer设计复杂,引入额外模块,也增加了速度开销。本文设计模块用简洁操作实现注意力,保证效率。
- 计算过程:注意力计算中,内存访问模式效率低于CNN。自注意力计算时,中间映射需在GPU SRAM和HBM间存储和读取,读写速度差异大,导致内存访问开销大;且注意力内存访问模式不规则,而CNN利用结构化和局部内存访问,能有效缓存,减少延迟。这两个因素使注意力机制比CNN慢,尤其在实时或资源受限场景,解决这些限制是研究关键领域,如稀疏注意力机制等方法。
3.2 区域注意力
- 线性注意力机制:可将普通注意力复杂度从二次方降为线性,但存在全局依赖退化、不稳定和分布敏感等问题,且在640×640输入分辨率的YOLO中速度优势有限。
- 局部注意力机制:将全局注意力转化为局部以降低计算成本,但特征图分区会引入开销或减小感受野,影响速度和精度。本文提出区域注意力模块,将特征图划分为l个片段,无需显式窗口分区,只需简单重塑操作,默认l设为4,在减少感受野的同时仍保持较大范围,计算成本从2n²hd降至½n²hd,对性能影响小,显著提升速度。
3.3 残差高效层聚合网络
- ELAN的问题:ELAN用于改进特征聚合,但存在梯度阻塞和缺少输入到输出的残差连接问题,且基于注意力机制构建网络时,L和X规模模型难以收敛或不稳定。
- R - ELAN的设计:提出R - ELAN,引入从输入到输出的残差快捷路径和缩放因子(默认0.01);设计新聚合方法,先通过转换层调整通道维度,生成单一特征图,再经后续模块处理和连接,形成瓶颈结构,既保留特征整合能力,又降低计算成本和参数/内存使用量。
- transition(转换层)
-
- CSPNet:输入经转换层(transition)后进行分割,分别通过 1×1 卷积处理,最后连接输出。
- ELAN:同样先经转换层和分割,一部分经多个卷积模块(conv×n)处理,再与另一部分连接,最后经转换层输出,用于改进特征聚合。
- C3K2:是 GELAN 的一种特殊情况,架构与 ELAN 有相似之处,包含转换层、分割、多个模块处理以及连接操作。
- R - ELAN:在 ELAN 基础上进行改进,引入从输入到输出的残差快捷路径(带缩放因子 scaling),并采用新的聚合方式,先通过转换层和 1×1 卷积,再经过多个**区域注意力模块(A2×2)**处理,最后连接并与输入相加输出
3.4 架构改进
- 整体架构:保留之前YOLO系统的分层设计,去除骨干网络最后阶段堆叠三个模块的设计,仅保留一个R - ELAN模块,减少模块总数,利于优化;骨干网络前两个阶段继承自YOLOv11,未使用R - ELAN。
- 注意力机制改进:调整MLP比例,采用nn.Conv2d + BN替代nn.Linear + LN以利用卷积算子效率,去除位置编码,引入7×7大深度可分离卷积(位置感知器)帮助区域注意力感知位置信息,这些改进的有效性将在4.5节验证。(消融实验)
实验
4.1 实验设置
在 MSCOCO 2017 数据集上验证 YOLOv12,该系列有 5 种变体(YOLOv12 - N、YOLOv12 - S、YOLOv12 - M、YOLOv12 - L、YOLOv12 - X)。所有模型用 SGD 优化器训练 600 个 epoch,初始学习率 0.01,采用线性学习率衰减策略,前 3 个 epoch 进行线性预热。模型延迟在 T4 GPU 上用 TensorRT FP16 测试。以 YOLOv11 为基线,模型缩放策略与其一致,使用其部分 C3K2 模块,不使用 YOLOv11 以外的技巧。
4.2 与先进方法对比
Method | FLOPs (G) | #Param. (M) | AP50:95 (%) | APo (%) | AP7 (%) | Latency (ms) |
---|---|---|---|---|---|---|
YOLOv6-3.0-N[32] | 11.4 | 4.7 | 37.0 | 52.7 | 2.69 | |
Gold-YOLO-N[54] | 12.1 | 5.6 | 39.6 | 55.7 | - | 2.92 |
YOLOv8-N[24] | 8.7 | 3.2 | 37.4 | 52.6 | 40.5 | 1.77 |
YOLOv10-N[53] | 6.7 | 2.3 | 38.5 | 53.8 | 41.7 | 1.84 |
YOLO11-N[28] | 6.5 | 2.6 | 39.4 | 55.3 | 42.8 | 1.5 |
YOLOv12-N (Ours) | 6.5 | 2.6 | 40.6 | 56.7 | 43.8 | 1.64 |
YOLOv6-3.0-S [32] | 45.3 | 18.5 | 44.3 | 61.2 | 3.42 | |
Gold-YOLO-S [54] | 46.0 | 21.5 | 45.4 | 62.5 | 3.82 | |
YOLOv8-S [24] | 28.6 | 11.2 | 45.0 | 61.8 | 48.7 | 2.33 |
RT-DETR-R18 [66] | 60.0 | 20.0 | 46.5 | 63.8 | 4.58 | |
RT-DETRv2-R18[41] | 60.0 | 20.0 | 47.9 | 64.9 | 4.58 | |
YOLOv9-S [58] | 26.4 | 7.1 | 46.8 | 63.4 | 50.7 | |
YOLOv10-S[53] | 21.6 | 7.2 | 46.3 | 63.0 | 50.4 | 2.49 |
YOLO11-S[28] | 21.5 | 9.4 | 46.9 | 63.9 | 50.6 | 2.5 |
YOLOv12-S (Ours) | 21.4 | 9.3 | 48.0 | 65.0 | 51.8 | 2.61 |
YOLOv6-3.0-M[32] | 85.8 | 34.9 | 49.1 | 66.1 | 5.63 | |
Gold-YOLO-M[54] | 87.5 | 41.3 | 49.8 | 67.0 | 6.38 | |
YOLOv8-M[24] | 78.9 | 25.9 | 50.3 | 67.2 | 54.7 | 5.09 |
RT-DETR-R34 [66] | 100.0 | 36.0 | 48.9 | 66.8 | 6.32 | |
RT-DETRv2-R34 [41] | 100.0 | 36.0 | 49.9 | 67.5 | 6.32 | |
YOLOv9-M[58] | 76.3 | 20.0 | 51.4 | 68.1 | 56.1 | |
YOLOv10-M[53] | 59.1 | 15.4 | 51.1 | 68.1 | 55.8 | 4.74 |
YOLO11-M[28] | 68.0 | 20.1 | 51.5 | 68.5 | 55.7 | 4.7 |
YOLOv12-M(Ours) | 67.5 | 20.2 | 52.5 | 69.6 | 57.1 | 4.86 |
YOLOv6-3.0-L[32] | 150.7 | 59.6 | 51.8 | 69.2 | 9.02 | |
Gold-YOLO-L [54] | 151.7 | 75.1 | 51.8 | 68.9 | 10.65 | |
YOLOv8-L [24] | 165.2 | 43.7 | 53.0 | 69.8 | 57.7 | 8.06 |
RT-DETR-R50 [66] | 136.0 | 42.0 | 53.1 | 71.3 | 6.90 | |
RT-DETRv2-R50 [41] | 136.0 | 42.0 | 53.4 | 71.6 | 6.90 | |
YOLOv9-C[58] | 102.1 | 25.3 | 53.0 | 70.2 | 57.8 | |
YOLOv10-B[53] | 92.0 | 19.1 | 52.5 | 69.6 | 57.2 | 5.74 |
YOLOv10-L[53] | 120.3 | 24.4 | 53.2 | 70.1 | 58.1 | 7.28 |
YOLO11-L[28] | 86.9 | 25.3 | 53.3 | 70.1 | 58.2 | 6.2 |
YOLOv12-L (Ours) | 88.9 | 26.4 | 53.7 | 70.7 | 58.5 | 6.77 |
YOLOv8-X [24] | 257.8 | 68.2 | 54.0 | 71.0 | 58.8 | 12.83 |
RT-DETR-R101 [66] | 259.0 | 76.0 | 54.3 | 72.7 | 13.5 | |
RT-DETRv2-R101 [41] | 259.0 | 76.0 | 54.3 | 72.8 | 13.5 | |
YOLOv10-X[53] | 160.4 | 29.5 | 54.4 | 71.3 | 59.3 | 10.70 |
YOLO11-X[28] | 194.9 | 56.9 | 54.6 | 71.6 | 59.5 | 11.3 |
YOLOv12-X (Ours) | 199.0 | 59.1 | 55.2 | 72.0 | 60.2 | 11.79 |
将 YOLOv12 与其他流行实时检测器对比:
- N 规模模型:YOLOv12 - N 的平均精度均值(mAP)比 YOLOv6 - 3.0 - N、YOLOv8 - N、YOLOv10 - N 和 YOLOv11 分别高 3.6%、3.3%、2.1% 和 1.2%,计算量和参数相当或更少,延迟为 1.64 ms / 图像 。
- S 规模模型:YOLOv12 - S 在计算量和参数相当或更少的情况下,mAP 超越 YOLOv8 - S、YOLOv9 - S、YOLOv10 - S 和 YOLOv11 - S,且相比端到端检测器 RT - DETR - R18/RT - DETRv2 - R18,性能可媲美,推理速度更快,计算成本和参数更少。
- M 规模模型:YOLOv12 - M 在 mAP 和速度上优于 Gold - YOLO - M、YOLOv8 - M 等模型。
- L 规模模型:YOLOv12 - L 在计算量更少的情况下超越 YOLOv10 - L,mAP 略高于 YOLOv11,且在速度、计算量和参数上优于 RT - DERT - R50/RT - DERTv2 - R50。
- X 规模模型:YOLOv12 - X 在速度、计算量和参数相当的情况下,mAP 显著超越 YOLOv10 - X/YOLOv11 - X,且优于 RT - DETR - R101/RT - DETRv2 - R101 。若 L/X 规模模型用 FP32 精度评估,mAP 可提升约 0.2%。
4.3 消融实验
- R - ELAN:通过 YOLOv12 - N/L/X 模型评估 R - ELAN 有效性。发现对于小模型(如 YOLOv12 - N),残差连接不影响收敛但降低性能;对于大模型(如 YOLOv12 - L/X),残差连接对稳定训练至关重要,YOLOv12 - X 需最小缩放因子(0.01)确保收敛。同时,新的特征集成方法在保持性能的同时,有效降低模型计算量和参数。
- 区域注意力:在 YOLOv12 - N/S/X 模型上进行实验,在不使用 FlashAttention 情况下,测量 GPU(CUDA)和 CPU 上的推理速度。结果表明区域注意力显著提升速度,如在 RTX 3080 上用 FP32 时,YOLOv12 - N 推理时间减少 0.7ms,且在不同模型和硬件配置中均有性能提升。
证明了区域注意力机制在提高模型推理效率方面的有效性
4.4 速度对比
在 RTX 3080、RTX A5000 和 RTX A6000 上,用 FP32 和 FP16 精度对 YOLOv9、YOLOv10、YOLOv11 和 YOLOv12 进行推理速度对比。结果显示 YOLOv12 推理速度显著高于 YOLOv9,与 YOLOv10 和 YOLOv11 相当。此外,图 4 展示了精度 - 参数和 CPU 上精度 - 延迟权衡对比,YOLOv12 在这两方面均优于其他方法。
4.5 诊断与可视化
- 注意力实现:基于卷积的实现方法比基于线性的更快,且在与卷积结合时,批归一化(BN)性能优于层归一化(LN)。
- 分层设计:与其他检测系统不同,YOLOv12 使用普通视觉 Transformer 架构时性能显著下降,分层设计效果最佳。
- 训练轮次:YOLOv12 需约 600 个 epoch 训练达到最佳性能,比部分现有 YOLO 检测器所需轮次多。
- 位置感知器:在注意力机制中应用大内核可分离卷积帮助感知位置信息,增大卷积核尺寸可提升性能但降低速度,因此默认核大小设为 7×7。
- 位置嵌入:不使用任何位置嵌入时性能最佳,可简化架构并加快推理速度。
- 区域注意力:默认使用 FlashAttention 技术时,区域注意力机制虽增加计算复杂度但速度下降极小。
- MLP 比例:YOLOv12 中 MLP 比例设为 1.2 时性能更好,与传统做法不同,此调整将计算负载更多转向注意力机制。
- FlashAttention:验证其在 YOLOv12 中的作用,可加速 YOLOv12 - N 约 0.3ms,YOLOv12 - S 约 0.4ms 。
- 可视化:通过热图对比发现,与 YOLOv10 和 YOLOv11 相比,YOLOv12 物体轮廓更清晰,前景激活更精确,归因于区域注意力机制更大的感受野,能更好捕捉整体上下文 。