YOLO12:以注意力为中心的目标检测
概述
YOLO12 引入了一种以注意力为中心的架构,它脱离了之前 YOLO 模型中使用的传统 CNN 方法,但保留了许多应用所必需的实时推理速度。该模型通过在注意力机制和整体网络架构方面的创新方法,实现了最先进的目标检测精度,同时保持了实时性能。
观看: 如何使用 Ultralytics 软件包将 YOLO12 用于对象检测 | YOLO12 速度快还是慢?🚀
主要功能
- 区域注意力机制: 一种新的自注意力方法,可以有效地处理大型感受野。它将 特征图 分成 l 个大小相等的区域(默认为 4 个),水平或垂直,避免复杂的运算并保持较大的有效感受野。与标准自注意力相比,这大大降低了计算成本。
- 残差高效层聚合网络(R-ELAN):一种基于 ELAN 的改进的特征聚合模块,旨在解决优化挑战,尤其是在更大规模的以注意力为中心的模型中。R-ELAN 引入:
- 具有缩放的块级残差连接(类似于层缩放)。
- 一种重新设计的特征聚合方法,创建了一个类似瓶颈的结构。
- 优化的注意力机制架构:YOLO12 精简了标准注意力机制,以提高效率并与 YOLO 框架兼容。这包括:
- 使用 FlashAttention 来最大限度地减少内存访问开销。
- 移除位置编码,以获得更简洁、更快速的模型。
- 调整 MLP 比率(从典型的 4 调整到 1.2 或 2),以更好地平衡注意力和前馈层之间的计算。
- 减少堆叠块的深度以改进优化。
- 利用卷积运算(在适当的情况下)以提高其计算效率。
- 在注意力机制中添加一个7x7可分离卷积(“位置感知器”),以隐式地编码位置信息。
- 全面的任务支持: YOLO12 支持一系列核心计算机视觉任务:目标检测、实例分割、图像分类、姿势估计和旋转框检测 (OBB)。
- 增强的效率: 与许多先前的模型相比,以更少的参数实现了更高的准确率,从而证明了速度和准确率之间更好的平衡。
- 灵活部署: 专为跨各种平台部署而设计,从边缘设备到云基础设施。
支持的任务和模式
YOLO12 支持各种计算机视觉任务。下表显示了任务支持以及为每个任务启用的操作模式(推理、验证、训练和导出):
模型类型 | 任务 | 推理 | 验证 | 训练 | 导出 |
---|---|---|---|---|---|
YOLO12 | 检测 | ✅ | ✅ | ✅ | ✅ |
YOLO12-seg | 分割 | ✅ | ✅ | ✅ | ✅ |
YOLO12-pose | 姿势估计 | ✅ | ✅ | ✅ | ✅ |
YOLO12-cls | 分类 | ✅ | ✅ | ✅ | ✅ |
YOLO12-obb | OBB | ✅ | ✅ | ✅ | ✅ |
性能指标
YOLO12 在所有模型规模上都展示了显著的准确性提升,但与最快的先前 YOLO 模型相比,速度有所折衷。以下是 COCO 验证数据集上目标检测的量化结果:
检测性能 (COCO val2017)
性能
模型 | 尺寸 (像素) |
mAPval 50-95 |
速度 CPU ONNX (毫秒) |
速度 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) |
- 在配备 TensorRT FP16 精度的 NVIDIA T4 GPU 上测量的推理速度。
- 对比显示了 mAP 的相对改进和速度的百分比变化(正数表示更快;负数表示更慢)。 对比是根据已发布的 YOLO10、YOLO11 和 RT-DETR 结果进行的(如果可用)。
使用示例
本节提供了使用YOLO12进行训练和推理的示例。有关这些模式和其他模式(包括验证和导出)的更全面的文档,请查阅专门的Predict和Train页面。
以下示例侧重于 YOLO12 Detect 模型(用于目标检测)。对于其他支持的任务(分割、分类、旋转框检测和姿势估计),请参阅相应的特定于任务的文档:分割、分类、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")
还提供命令行界面 (CLI) 命令:
# Load a COCO-pretrained YOLO12n model and train on the COCO8 example dataset for 100 epochs
yolo train model=yolo12n.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained YOLO12n model and run inference on the 'bus.jpg' image
yolo predict model=yolo12n.pt source=path/to/bus.jpg
主要改进
-
增强的 特征提取:
- 区域注意力: 有效处理大型感受野,降低计算成本。
- 优化平衡: 改进了注意力和前馈网络计算之间的平衡。
- R-ELAN:使用 R-ELAN 架构增强特征聚合。
-
优化创新:
- 残差连接:引入具有缩放的残差连接以稳定训练,尤其是在较大的模型中。
- 改进的特征集成:在 R-ELAN 中实现了一种改进的特征集成方法。
- FlashAttention: 整合 FlashAttention 以减少内存访问开销。
-
架构效率:
- 减少参数:与之前的许多模型相比,在保持或提高准确性的同时,实现了更低的参数计数。
- 简化的注意力机制:使用简化的注意力实现,避免了位置编码。
- 优化的 MLP 比率:调整 MLP 比率以更有效地分配计算资源。
要求
默认情况下,Ultralytics YOLO12 的实现不需要 FlashAttention。但是,可以选择编译 FlashAttention 并将其与 YOLO12 一起使用。要编译 FlashAttention,需要以下 NVIDIA GPU 之一:
- 图灵 GPU(例如,T4、Quadro RTX 系列)
- Ampere GPU(例如,RTX30 系列,A30/40/100)
- Ada Lovelace GPU(例如,RTX40 系列)
- Hopper GPU(例如,H100/H200)
引用与致谢
如果您的研究中使用了 YOLO12,请引用 布法罗大学 和 中国科学院大学 的原始论文:
@article{tian2025yolov12,
title={YOLOv12: 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 = {YOLOv12: Attention-Centric Real-Time Object Detectors},
year = {2025},
url = {https://github.com/sunsmarterjie/yolov12},
license = {AGPL-3.0}
}
常见问题
YOLO12 如何在保持高精度的同时实现实时目标检测?
YOLO12 融合了多项关键创新,以平衡速度和准确性。区域注意力机制有效地处理大型感受野,与标准自注意力相比,降低了计算成本。残差高效层聚合网络 (R-ELAN) 改进了特征聚合,解决了更大规模的以注意力为中心的模型中的优化挑战。优化的注意力架构,包括使用 FlashAttention 和移除位置编码,进一步提高了效率。这些特性使 YOLO12 能够在保持对许多应用至关重要的实时推理速度的同时,实现最先进的准确性。
YOLO12 支持哪些 计算机视觉 任务?
YOLO12 是一种多功能模型,支持各种核心计算机视觉任务。它擅长目标检测、实例分割、图像分类、姿势估计和旋转框检测 (OBB)(请参阅详细信息)。这种全面的任务支持使 YOLO12 成为各种应用的强大工具,从机器人技术和自动驾驶到医学成像和工业检测。所有这些任务都可以在推理、验证、训练和导出模式下执行。
YOLO12 与其他 YOLO 模型以及 RT-DETR 等竞争对手相比如何?
与之前的 YOLO 模型(如 YOLOv10 和 YOLO11)相比,YOLO12 在所有模型规模上都表现出显著的准确性提升,但在速度方面与之前最快的模型相比存在一些权衡。例如,在 COCO val2017 数据集上,YOLO12n 比 YOLOv10n 提高了 +2.1% mAP,比 YOLO11n 提高了 +1.2%。与 RT-DETR 等模型相比,YOLO12s 提供了 +1.5% 的 mAP 提升和 +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 的深入指导。