YOLOv12 详解
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 在实时检测器中可行:
- 区域注意力 (A²) — 大幅降低计算成本
- R-ELAN — 解决大模型注意力架构的优化困难
- 架构精简 — 去除不必要的部分
核心技术
1. 区域注意力 (A², Area Attention)
1 | 标准自注意力 (高计算): |
1 | ┌──────┬──────┬──────┬──────┐ |
效果:
- 计算复杂度降低为原来的 1/l(l=4 时降低 75%)
- 保持大的有效感受野(同一区域内全连接)
- 简单分块,无复杂计算开销
2. R-ELAN (残差高效层聚合网络)
问题: 大模型的注意力架构容易出现优化困难(梯度不稳定)。
R-ELAN 方案:
1 | ELAN (v7): |
对比类似模块:
1 | CSPNet: split → 独立处理 → 合并 |
3. 注意力架构优化
| 优化 | 传统做法 | YOLOv12 | 效果 |
|---|---|---|---|
| FlashAttention | 标准自注意力 | ✅ 使用 | 减少内存访问 |
| 位置编码 | 绝对/相对编码 | ❌ 移除 | 更简洁快速 |
| MLP 比例 | 通常是 4 | 降至 1.2~2 | 平衡注意力与FFN |
| 堆叠块深度 | 较深 | 减少 | 改善优化 |
| 卷积辅助 | — | 适当位置用卷积 | 高效计算 |
| 位置感知器 | — | 7×7 可分离卷积 | 隐式位置信息 |
1 | # YOLOv12 注意力块伪代码 |
架构
1 | 输入 |
性能
| 模型 | 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]]
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 TeachCraft Blog!
评论