YOLO12:以注意力机制为核心的目标检测#
概述#
YOLO12 于 2025 年初发布,引入了以注意力机制为核心的架构,区别于此前 YOLO 模型采用的传统基于 CNN 的方法,同时保留了许多应用所必需的实时推理速度。该模型通过注意力机制和整体网络架构方面的新颖方法创新,在保持实时性能的同时实现了较高的目标检测精度。尽管具备这些优势,YOLO12 仍是一个由社区驱动的版本,可能存在训练不稳定、内存消耗较高以及由于注意力模块规模较大而导致 CPU 吞吐速度较慢等问题,因此 Ultralytics 建议在大多数生产工作负载中使用 YOLO11 或 YOLO26。
Watch: How to Use YOLO12 for Object Detection with the Ultralytics Package | Is YOLO12 Fast or Slow? 🚀
主要特性#
- 区域注意力机制:一种新的自注意力方法,可高效处理大型感受野。它会将特征图沿水平方向或垂直方向划分为 l 个大小相等的区域(默认为 4 个),避免复杂操作,同时保持较大的有效感受野。与标准自注意力相比,这显著降低了计算成本。
- 残差高效层聚合网络 (R-ELAN):一种基于 ELAN 的改进型特征聚合模块,旨在解决优化难题,尤其适用于更大规模的注意力机制模型。R-ELAN 引入了:
- 带缩放的块级残差连接(类似于层缩放)。
- 重新设计的特征聚合方法,形成类似瓶颈的结构。
- 优化的注意力架构:YOLO12 对标准注意力机制进行了简化,以提高效率并增强与 YOLO 框架的兼容性。这包括:
- 使用 FlashAttention,最大限度地减少内存访问开销。
- 移除位置编码,使模型更简洁、更快速。
- 调整 MLP 比率(从典型的 4 调整为 1.2 或 2),以更好地平衡注意力层和前馈层之间的计算量。
- 减少堆叠块的深度,以改进优化效果。
- 在适用情况下利用卷积操作,因为其计算效率更高。
- 在注意力机制中加入 7x7 可分离卷积(即“位置感知器”),以隐式编码位置信息。
- 全面的任务支持:YOLO12 支持一系列核心计算机视觉任务:目标检测、实例分割、图像分类、姿态估计和定向目标检测(OBB)。
- 增强的效率:与许多此前的模型相比,使用更少的参数实现了更高的精度,展现出速度与精度之间更优的平衡。
- 灵活部署:支持在各种平台上部署,从边缘设备到云基础设施均可使用。

支持的任务和模式#
YOLO12 支持多种计算机视觉任务。下表展示了各项任务的支持情况,以及为每项任务启用的运行模式(推理、验证、训练和导出):
目前仅有检测权重(yolo12n.pt、yolo12s.pt、yolo12m.pt、yolo12l.pt、yolo12x.pt)发布于 ultralytics/assets。分割、分类、姿态和 OBB 架构定义于 ultralytics/cfg/models/12/,因此这些变体支持从 .yaml 配置开始从头训练,但目前没有适用于它们的预训练 .pt 文件。对于预训练的分割、姿态、分类或 OBB 检查点,Ultralytics 建议使用 YOLO11 或 YOLO26。
| 模型类型 | 任务 | 预训练权重 | 训练 | 验证 | 推理 | 导出 |
|---|---|---|---|---|---|---|
| YOLO12 | 检测 | ✅ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-seg | 分割 | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | 分类 | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-pose | 姿态 | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
所有 YOLO12 架构在具备经过训练的检查点后都支持每种模式。Pretrained Weights 列仅表示 Ultralytics 是否在 ultralytics/assets 上发布了官方预训练 .pt:对于分割、姿态、分类和 OBB,你必须先根据对应的 .yaml 训练自己的检查点,然后才能运行推理、验证或导出。
性能指标#
YOLO12 在所有模型规模上都展现出显著的精度提升,但与此前速度最快的 YOLO 模型相比,在速度方面存在一定取舍。以下是其在 COCO 验证数据集上进行目标检测的量化结果:
检测性能(COCO val2017)#
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (毫秒) | 速度 T4 TensorRT (毫秒) | 参数量 (M) | FLOPs (B) | 对比 (mAP/速度) |
|---|---|---|---|---|---|---|---|
| YOLO12n | 640 | 40.6 | - | 1.64 | 2.6 | 7.5 | +2.1%/-9%(相较于 YOLOv10n) |
| YOLO12s | 640 | 48.0 | - | 2.61 | 9.3 | 23.3 | +0.1%/+42%(相较于 RT-DETRv2) |
| YOLO12m | 640 | 52.5 | - | 4.86 | 20.2 | 70.7 | +1.0%/-3%(相较于 YOLO11m) |
| YOLO12l | 640 | 53.7 | - | 6.77 | 26.4 | 95.4 | +0.4%/-8%(相较于 YOLO11l) |
| YOLO12x | 640 | 55.2 | - | 11.79 | 59.1 | 208.9 | +0.6%/-4%(相较于 YOLO11x) |
- 推理速度是在配备 TensorRT FP16精度的 NVIDIA T4 GPU 上测得的。
- 对比结果展示了 mAP 的相对提升以及速度的百分比变化(正值表示更快;负值表示更慢)。对比基于可获取的 YOLOv10、YOLO11 和 RT-DETR 已发布结果。
使用示例#
本节提供了使用 YOLO12 进行训练和推理的示例。如需了解这些模式及其他模式(包括验证和导出)的完整文档,请参阅专门的预测和训练页面。
以下示例重点介绍 YOLO12检测模型(用于目标检测)。对于其他受支持的任务(分割、分类、姿态估计和定向目标检测),请参阅相应的任务专属文档:分割、分类、姿态和 OBB。
预训练的 *.pt 模型(使用 PyTorch)和配置 *.yaml 文件可以传递给 YOLO() 类,以便在 Python 中创建模型实例:
from ultralytics import YOLO
# Load a COCO-pretrained YOLO12n model
model = YOLO("yolo12n.pt")
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLO12n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")主要改进#
-
增强的特征提取:
- 区域注意力:高效处理大型感受野,降低计算成本。
- 优化的平衡:改进注意力计算与前馈网络计算之间的平衡。
- R-ELAN:使用 R-ELAN 架构增强特征聚合。
-
优化创新:
- 残差连接:引入带缩放的残差连接以稳定训练,尤其适用于较大的模型。
- 改进的特征融合:在 R-ELAN 中实现改进的特征融合方法。
- FlashAttention:引入 FlashAttention 以降低内存访问开销。
-
架构效率:
- 减少参数:在保持或提升精度的同时,与许多之前的模型相比实现更少的参数量。
- 简化注意力:使用简化的注意力实现,避免使用位置编码。
- 优化 MLP 比率:调整 MLP 比率,以更有效地分配计算资源。
要求#
Ultralytics YOLO12 实现默认不需要 FlashAttention。不过,你可以选择编译 FlashAttention 并将其用于 YOLO12。要编译 FlashAttention,需要以下 NVIDIA GPU 之一:
- Turing GPU(例如 T4、Quadro RTX 系列)
- Ampere GPU(例如 RTX30 系列、A30/40/100)
- Ada Lovelace GPU(例如 RTX40 系列)
- Hopper GPU(例如 H100/H200)
引用和致谢#
如果你在研究中使用 YOLO12,请引用 布法罗大学 和中国科学院大学的原始工作:
@inproceedings{tian2025yolov12,
title={YOLOv12: Attention-Centric Real-Time Object Detectors},
author={Tian, Yunjie and Ye, Qixiang and Doermann, David},
booktitle={Advances in Neural Information Processing Systems},
volume={38},
pages={78433--78457},
year={2025},
url={https://proceedings.neurips.cc/paper_files/paper/2025/file/7103444259031cc58051f8c9a4868533-Paper-Conference.pdf}
}
@software{yolo12,
author = {Tian, Yunjie and Ye, Qixiang and Doermann, David},
title = {YOLO12: Attention-Centric Real-Time Object Detectors},
year = {2025},
url = {https://github.com/sunsmarterjie/yolov12},
license = {AGPL-3.0}
}YOLO12 论文发表于 NeurIPS 2025 会议论文集,并在 arXiv 上提供了预印本。
常见问题#
YOLO12 引入了多项关键创新,以平衡速度和精度。区域注意力机制能够高效处理大型感受野,与标准自注意力相比降低了计算成本。残差高效层聚合网络 (R-ELAN) 改进了特征聚合,解决了更大规模注意力模型中的优化难题。包括使用 FlashAttention 和移除位置编码在内的优化注意力架构进一步提升了效率。这些特性使 YOLO12 能够实现先进的精度,同时保持许多应用所需的实时推理速度。
默认情况下,Ultralytics YOLO12 实现不需要 FlashAttention。不过,你可以选择编译 FlashAttention 并将其用于 YOLO12,以最大限度地减少内存访问开销。要编译 FlashAttention,需要以下 NVIDIA GPU 之一:Turing GPU(例如 T4、Quadro RTX 系列)、Ampere GPU(例如 RTX30 系列、A30/40/100)、Ada Lovelace GPU(例如 RTX40 系列)或 Hopper GPU(例如 H100/H200)。这种灵活性让你可以在硬件资源允许时利用 FlashAttention 的优势。