点击下方
卡片
,关注“
自动驾驶之心
”公众号
本文由纽约州立大学布法罗分校的田运杰,David Doermann和中国科学院大学的叶齐祥合作完成。田运杰是布法罗大学博士后,David Doermann是布法罗大学教授、IEEE Fellow, 叶齐祥是中国科学院大学教授。三位作者长期从事计算机视觉、机器感知等方向的研究。
YOLO 系列模型的结构创新一直围绕 CNN 展开,而让 transformer 具有统治优势的 attention 机制一直不是 YOLO 系列网络结构改进的重点。这主要的原因是 attention 机制的速度无法满足 YOLO 实时性的要求。本周三放出的 YOLOv12 着力改变这一现状并取得具有优势的性能。
-
论文标题:YOLOv12: Attention-Centric Real-Time Object Detectors
-
论文地址:https://arxiv.org/pdf/2502.12524
-
代码地址:https://github.com/sunsmarterjie/yolov12
介绍
造成 attention(注意力机制)不能作为核心模块用于 yolo 框架的主要原因在于其本身的低效性,这主要源于两个因素:(1)attention 的计算复杂度呈二次增长;(2)attention 的内存访问操作低效(后者是 FlashAttention 主要解决的问题)。在相同的计算预算下,基于 CNN 的架构比基于 attention 的架构快约 2-3 倍,这极大限制了 attention 在 YOLO 系统中的应用,由于 YOLO 体系高度依赖高推理速度。
首先,作者提出了一种简单而高效的区域注意力模块(area attention, A2),该模块在保持大感受野的同时,以最简单直接的方式降低了 attention 的计算复杂度,从而提升了计算速度。
其次,作者引入了残差高效层聚合网络(R-ELAN),以解决 attention(主要是大规模模型)带来的优化难题。
R-ELAN 在原始的基础上进行了两项改进:1)block 级残差设计,结合缩放技术以优化梯度流动;2)重新设计的特征聚合方法,以提升模型的优化效率。
最后,作者针对 YOLO 体系对 attention 进行了一系列架构改进,优化了传统的 attention 主导架构,包括:1)引入 FlashAttention 以解决注意力机制的显存访问问题;2)移除位置编码等设计,使模型更加高效简洁;3)调整 MLP ratio(从 4 降至 1.2),以平衡注意力机制和前馈网络的计算开销,从而提升整体性能;4)减少堆叠块的深度,以简化优化过程等。
Area Attention
首先介绍 area attention 机制,其目的在于降低传统 attention 的计算代价,同时克服线性注意力和局部注意力在全局依赖性、稳定性及感受野方面的局限性。为此,作者提出了一种简单高效的区域注意力(A2)模块。
不同于局部注意力的显式窗口划分,A2 采用最简单的方式将特征图划分为纵向或横向的区域(每个区域大小为
或
,这仅需简单的 reshape 操作,避免了额外的复杂计算带来的开销,从而提升计算效率。
在实验中,作者将默认分割数
设为 4,使感受野缩小至原来的
,仍能覆盖足够的信息范围。
在计算复杂度方面,A2 将注意力机制的计算量从
降低至
。
尽管仍保持二次复杂度,但在 token 数量 n 不是特别大的情况下(如
YOLO:640
x
640
),此优化方案在实际应用中仍足够高效,满足了实时推理的需求。
最终,实验表明,A2 仅对性能产生轻微影响,但显著提升了计算速度,为 YOLO 等对速度要求极高的任务提供了一种更优的注意力机制替代方案。