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? 🚀
主要特性
- 区域注意力机制 (Area Attention Mechanism):一种新的自注意力方法,可以有效地处理大感受野。它将 特征图 水平或垂直划分为 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-pose | 姿态 | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-cls | 分类 | ❌ | ✅ | ✅ | ✅ | ✅ |
| YOLO12-obb | OBB | ❌ | ✅ | ✅ | ✅ | ✅ |
All YOLO12 architectures support every mode once a trained checkpoint is available. The Pretrained Weights column indicates only whether Ultralytics publishes an official pretrained .pt on ultralytics/assets: for segmentation, pose, classification, and OBB, you must train your own checkpoint from the corresponding .yaml before running inference, validation, or export.
性能指标
YOLO12 在所有模型尺度上都表现出显著的 精度 提升,与最快的先前 YOLO 模型相比,在速度上有一些权衡。以下是 COCO 验证数据集上 目标检测 的定量结果:
检测性能 (COCO val2017)
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (ms) | 速度 T4 TensorRT (ms) | 参数 (M) | FLOPs (B) | 比较 (mAP/速度) |
|---|---|---|---|---|---|---|---|
| YOLO12n | 640 | 40.6 | - | 1.64 | 2.6 | 6.5 | +2.1%/-9% (对比 YOLOv10n) |
| YOLO12s | 640 | 48.0 | - | 2.61 | 9.3 | 21.4 | +0.1%/+42% (对比 RT-DETRv2) |
| YOLO12m | 640 | 52.5 | - | 4.86 | 20.2 | 67.5 | +1.0%/-3% (对比 YOLO11m) |
| YOLO12l | 640 | 53.7 | - | 6.77 | 26.4 | 88.9 | +0.4%/-8% (对比 YOLO11l) |
| YOLO12x | 640 | 55.2 | - | 11.79 | 59.1 | 199.0 | +0.6%/-4% (对比 YOLO11x) |
- 推理速度是在 NVIDIA T4 GPU 上使用 TensorRT FP16 精度 测得的。
- 比较显示了 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,请引用 纽约州立大学布法罗分校 和 中国科学院大学 的原始工作:
@article{tian2025yolo12,
title={YOLO12: Attention-Centric Real-Time Object Detectors},
author={Tian, Yunjie and Ye, Qixiang and Doermann, David},
journal={arXiv preprint arXiv:2502.12524},
year={2025}
}
@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}
}常见问题 (FAQ)
YOLO12 如何在保持高精度的同时实现实时目标检测?
YOLO12 结合了多项关键创新来平衡速度和精度。区域 注意力机制 高效处理大感受野,与标准自注意力相比降低了计算成本。残差高效层聚合网络 (R-ELAN) 改进了特征聚合,解决了大型注意力模型中的优化挑战。优化后的注意力架构,包括使用 FlashAttention 和移除位置编码,进一步提高了效率。这些功能使 YOLO12 能够在保持许多应用所需的实时推理速度的同时,实现最先进的精度。
YOLO12 支持哪些 计算机视觉 任务?
YOLO12 是一款多功能模型,支持多种核心计算机视觉任务。它擅长目标 检测、实例 分割、图像 分类、姿态估计 和旋转目标检测 (OBB)(查看详情)。这种全面的任务支持使 YOLO12 成为从 机器人 和自动驾驶到医学成像和工业检测等各种应用的强大工具。请注意,目前仅发布了用于检测的预训练 .pt 权重;分割、姿态、分类和 OBB 架构作为 .yaml 配置提供,用于从零开始的训练。
YOLO12 与其他 YOLO 模型以及 RT-DETR 等竞争对手相比如何?
与 YOLOv10 和 YOLO11 等之前的 YOLO 模型相比,YOLO12 在所有模型尺度上都表现出显著的精度提升,与最快的模型相比,在速度上有一些权衡。例如,在 COCO val2017 数据集上,YOLO12n 的 mAP 比 YOLOv10n 提升了 +2.1%,比 YOLO11n 提升了 +1.2%。与 RT-DETR 等模型相比,YOLO12s 的 mAP 提升了 +1.5%,速度大幅提升了 +42%。这些指标突显了 YOLO12 在精度和效率之间的强大平衡。有关详细比较,请参阅 性能指标部分。
运行 YOLO12 的硬件要求是什么,特别是使用 FlashAttention 时?
默认情况下,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 的优势。
在哪里可以找到 YOLO12 的使用示例和更详细的文档?
本页面提供了用于训练和推理的基本 使用示例。有关这些模式和其他模式(包括 验证 和 导出)的全面文档,请查阅专门的 预测 和 训练 页面。有关特定任务的信息(分割、分类、旋转目标检测和姿态估计),请参考相应的文档:分割、分类、OBB 和 姿态。这些资源为在各种场景中有效利用 YOLO12 提供了深入指导。