YOLOv12: 注意力中心的实时目标检测

论文: YOLOv12: Attention-Centric Real-Time Object Detectors (2025)
作者: SUNY Buffalo (纽约州立大学布法罗分校) + 中国科学院大学
代码: github.com/sunsmarterjie/yolov12


历史性跨越: CNN → Attention

YOLO 系列首个完全基于注意力机制的实时检测器!

同时保持了对实时推理至关重要的速度(208 FPS)。


为什么不是之前就用 Attention?

CNN vs Attention 的困境

方案 优势 劣势
CNN 计算高效,硬件友好 感受野有限
ViT / DETR 全局感受野,精度高 计算量大,实时性差
YOLOv12 ✅ 两者兼备

YOLOv12 如何做到?

通过三项创新让 Attention 在实时检测器中可行:

  1. 区域注意力 (A²) — 大幅降低计算成本
  2. R-ELAN — 解决大模型注意力架构的优化困难
  3. 架构精简 — 去除不必要的部分

核心技术

1. 区域注意力 (A², Area Attention)

1
2
3
4
5
6
标准自注意力 (高计算):
每个像素关注所有其他像素 → O(N²)

区域注意力 (A²) (低计算):
将特征图分为 l 个水平/垂直区域 (默认 l=4)
每个像素只关注自己区域内的像素 → O(N²/l)
1
2
3
4
┌──────┬──────┬──────┬──────┐
│ 区域1 │ 区域2 │ 区域3 │ 区域4 │ ← 水平分割 (或垂直)
└──────┴──────┴──────┴──────┘
独立注意力 独立注意力 ...

效果:

  • 计算复杂度降低为原来的 1/l(l=4 时降低 75%)
  • 保持大的有效感受野(同一区域内全连接)
  • 简单分块,无复杂计算开销

2. R-ELAN (残差高效层聚合网络)

问题: 大模型的注意力架构容易出现优化困难(梯度不稳定)。

R-ELAN 方案:

1
2
3
4
5
6
7
8
ELAN (v7):
多分支卷积 → 聚合 → 输出

R-ELAN (v12):
多分支 + 块级残差缩放 + 瓶颈结构 → 聚合 → 输出
├── 残差连接: 帮助梯度流动
├── 缩放因子: 控制各分支贡献
└── 瓶颈设计: 减少参数量

对比类似模块:

1
2
3
4
CSPNet:    split → 独立处理 → 合并
ELAN: split → 多分支并行 → 聚合
C3K2: split → Bottleneck×N → 合并 (GELAN)
R-ELAN: split → 残差缩放Bottleneck → 瓶颈聚合 ← 最稳定

3. 注意力架构优化

优化 传统做法 YOLOv12 效果
FlashAttention 标准自注意力 ✅ 使用 减少内存访问
位置编码 绝对/相对编码 ❌ 移除 更简洁快速
MLP 比例 通常是 4 降至 1.2~2 平衡注意力与FFN
堆叠块深度 较深 减少 改善优化
卷积辅助 适当位置用卷积 高效计算
位置感知器 7×7 可分离卷积 隐式位置信息
1
2
3
4
5
6
7
8
9
10
# YOLOv12 注意力块伪代码
class YOLOv12AttnBlock:
def forward(x):
# 1. 7×7 可分离卷积 (位置感知器)
x = DepthwiseConv7x7(x)
# 2. 区域注意力 (A²)
x = AreaAttention(x, num_regions=4)
# 3. 精简 MLP (ratio=1.2~2)
x = LightweightMLP(x)
return x

架构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
输入

Backbone: Attention-Centric
├─ Conv Stem (入口卷积)
├─ R-ELAN 块 × N
└─ 区域注意力块 × N

Neck: 类 FPN+PAN
├─ R-ELAN 融合
└─ 区域注意力增强

Head: 多任务解耦Head
├─ 检测 / 分割 / 姿态 / OBB
└─ Anchor-Free

性能

模型 mAP (COCO) FPS
YOLOv10-X 54.4%
YOLOv11-X 55.0%
YOLOv12-X 58.9% 208
YOLOv12-N 41.2% 极快
YOLOv12-S 48.0%

精度大幅超越 v10/v11,同时保持实时速度。注意力机制在 YOLO 中可行!


多任务支持

同 v8/v11: 检测、分割、分类、姿态估计、OBB 旋转框。


相关链接

  • 📝 [[YOLO 系列总览]]
  • 📝 [[YOLOv11 详解]]
  • 📋 [[10.clippings/感知算法/2D检测/单阶段/YOLO/一文全面梳理YOLO系列|从YOLOv1到YOLOv13,再到YOLO26]]