YOLOv12 Attention-Centric Real-Time Object Detectors

研究背景

实时目标检测在众多领域具有重要价值,如自动驾驶、安防监控、工业检测等。YOLO 系列作为实时目标检测领域的领先框架,通过不断优化网络架构、损失函数和标签分配策略等,实现了速度与精度的良好平衡。然而,尽管注意力机制在建模能力上表现出色,但由于其计算复杂度和内存访问效率问题,导致其在实时性方面不如卷积神经网络(CNN),限制了其在 YOLO 系统中的应用。

方法概述

区域注意力模块(Area Attention)
区域注意力模块是一种简单高效的注意力机制,通过将特征图在垂直或水平方向上划分为多个区域,避免了复杂的窗口划分操作,仅需简单的 reshape 操作即可实现,从而提高了速度并保持了较大的感受野。该模块将注意力机制的计算复杂度从 2n²hd 降低到 1/2n²hd,同时对性能影响较小。
残差高效层聚合网络(R-ELAN)
R-ELAN 是为了解决注意力机制引入的优化挑战(尤其是大规模模型)而提出的。它在原始 ELAN 的基础上进行了两项改进:块级残差设计与缩放技术和重新设计特征聚合方法。R-ELAN 通过引入残差连接和缩放因子,解决了大模型的优化问题,同时减少了计算成本和参数数量,提高了模型的性能和稳定性。

架构改进

YOLOv12 在传统注意力机制的基础上进行了多方面的架构改进,以更好地适应 YOLO 系统的实时性要求。这些改进包括:

保留层级设计 :与之前的 YOLO 系统一样,采用层级设计而非纯视觉 Transformer 的平面式架构,有助于维持模型的特征层次和空间信息。
简化骨干网络 :移除骨干网络最后阶段堆叠的三个块,仅保留一个 R-ELAN 块,减少了总块数,有助于优化和降低计算成本。
调整 MLP 比率 :将传统注意力模块中的 MLP 比率从 4 调整为 1.2(或对于 N-/S-/M-规模模型使用 2),以更好地分配计算资源,提高性能。
采用卷积操作 :使用 nn.Conv2d+BN 替代 nn.Linear+LN,充分利用卷积操作的计算效率。
移除位置编码 :使模型更加简洁高效,同时在实验中发现这种设计下的模型性能更好,推理延迟更低。
引入大核可分离卷积 :应用一个大核的可分离卷积(如 7×7 卷积核)作为位置感知器,帮助注意力机制感知位置信息,从而提高模型对物体位置的敏感度和检测精度。

实验结果

与现有方法的比较
在 MS COCO 2017 数据集上,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 在 21.4G FLOPs 和 9.3M 参数下,实现 48.0 mAP,推理延迟为 2.61 ms/图像。相比 YOLOv8-S、YOLOv9-S、YOLOv10-S 和 YOLOv11-S,分别高 3.0%、1.2%、1.7% 和 1.1%,且计算量相似或更少。
M 规模模型 :YOLOv12-M 在 67.5G FLOPs 和 20.2M 参数下,实现 52.5 mAP,推理速度为 4.86 ms/图像。相比其他模型,展现出优越性能。
L 规模模型 :YOLOv12-L 在计算量、参数量和推理延迟方面均优于 YOLOv10-L 和 YOLOv11-L,且 mAP 分别高 0.4% 和 0.4%。
X 规模模型 :YOLOv12-X 在与 YOLOv10-X 和 YOLOv11-X 相当的速度、FLOPs 和参数下,mAP 分别高 0.8% 和 0.6%。

消融实验

R-ELAN 的有效性 :通过在 YOLOv12-N/L/X 模型上进行实验,发现对于小模型 YOLOv12-N,残差连接对收敛性无影响但会降低性能;对于大模型 YOLOv12-L/X,残差连接对稳定训练至关重要,且 YOLOv12-X 需要较小的缩放因子(0.01)来确保收敛。同时,提出的特征聚合方法在减少模型计算复杂度和参数方面表现出色,性能仅略有下降。
区域注意力的有效性 :在不同硬件配置下,使用区域注意力的 YOLOv12-N/S/X 模型在 GPU(CUDA)和 CPU 上的推理速度均显著提升。例如,在 RTX 3080 上使用 FP32 时,YOLOv12-N 的推理时间减少了 0.7ms。

结论

YOLOv12 成功地将注意力机制引入 YOLO 框架,实现了实时性要求下的高效推理。通过提出区域注意力模块和残差高效层聚合网络(R-ELAN),并优化传统注意力机制的关键组件,YOLOv12 在速度和精度上均达到了最先进水平。全面的消融研究进一步验证了这些创新的有效性,为实时目标检测领域提供了更高效、强大的解决方案。

局限性

YOLOv12 依赖于 FlashAttention 技术,而目前 FlashAttention 仅支持 Turing、Ampere、Ada Lovelace 或 Hopper 架构的 GPU(例如 T4、Quadro RTX 系列、RTX20 系列、RTX30 系列、RTX40 系列、RTX A5000/6000、A30/40、A100、H100 等),这限制了其在其他 GPU 上的应用。


技术细节整理

网络架构设计

层级设计保留:YOLOv12保留了之前YOLO系统的层级设计,而不是采用纯视觉Transformer的平面式架构。这种设计有助于维持模型的特征层次和空间信息。
R-ELAN模块:提出残差高效层聚合网络(R-ELAN),在原始ELAN的基础上进行了两项改进:块级残差设计与缩放技术和重新设计特征聚合方法。R-ELAN通过引入残差连接和缩放因子,解决了大模型的优化问题,同时减少了计算成本和参数数量,提高了模型的性能和稳定性。
骨干网络简化:移除了骨干网络最后阶段堆叠的三个块,仅保留一个R-ELAN块,减少了总块数,有助于优化和降低计算成本。

注意力机制优化

区域注意力模块(A2):提出了一种简单高效的区域注意力模块,将特征图在垂直或水平方向上划分为多个区域,避免了复杂的窗口划分操作,仅需简单的reshape操作即可实现,从而提高了速度并保持了较大的感受野。该模块将注意力机制的计算复杂度从2n²hd降低到1/2n²hd,同时对性能影响较小。
FlashAttention技术:采用FlashAttention来克服注意力机制的内存访问问题,通过I/O优化减少内存访问,提高计算效率,从而在不增加计算量的情况下显著提升模型的推理速度。

训练优化策略

数据增强:使用了包括Mosaic、Mixup和复制粘贴增强等多种数据增强技术,以增强训练过程,提高模型的泛化能力和鲁棒性。
学习率调整:训练过程中采用线性学习率衰减策略,并在前3个epoch进行线性热身,初始学习率为0.01,最终衰减到1×10⁻⁴,有助于模型的稳定训练和收敛。
优化器选择:使用SGD优化器进行训练,动量设置为0.937,权重衰减为5×10⁻⁴,这是经过验证在训练目标检测模型时表现良好的超参数组合。

其他技术细节

位置感知器:在注意力机制中应用了一个大核的可分离卷积(如7×7卷积核)作为位置感知器,帮助注意力机制感知位置信息,从而提高模型对物体位置的敏感度和检测精度。
MLP比率调整:将传统注意力模块中的MLP比率从4调整为1.2(或对于N-/S-/M-规模模型使用2),以更好地分配计算资源,将更多的计算负担转移到注意力机制上,突出区域注意力的重要性。
多尺度训练:在训练过程中,模型可以在不同的输入尺度上进行训练,以提高对不同大小物体的检测能力,增强模型的泛化性能。
无位置编码设计:移除了注意力机制中的位置编码设计,使模型更加简洁高效,同时在实验中发现这种设计下的模型性能更好,推理延迟更低。

更多推荐