YOLOv12:以注意力为核心的实时对象检测器
摘要与介绍
YOLOv12是由Yunjie Tian(布法罗纽约州立大学)、Qixiang Ye(中国科学院大学)和David Doermann共同开发的一种新型的实时对象检测器。该模型特别强调了注意力机制的应用,旨在提高检测速度的同时不牺牲准确性。YOLOv12不仅在传统的准确性和延迟之间的权衡上表现出色,而且在FLOPs(每秒浮点运算次数)与准确性之间的平衡上也取得了显著成就。
主要结果概览
以下是不同版本的YOLOv12模型在640像素分辨率下的性能对比:
模型 | 分辨率 (pixels) | mAPval 50-95 | 速度 T4 TensorRT10 | 参数量 (M) | FLOPs (G) |
---|---|---|---|---|---|
YOLO12n | 640 | 40.6 | 1.64 | 2.6 | 6.5 |
YOLO12s | 640 | 48.0 | 2.61 | 9.3 | 21.4 |
YOLO12m | 640 | 52.5 | 4.86 | 20.2 | 67.5 |
YOLO12l | 640 | 53.7 | 6.77 | 26.4 | 88.9 |
YOLO12x | 640 | 55.2 | 11.79 | 59.1 | 199.0 |
从表格中可以看出,随着模型复杂度的增加,检测精度(mAP)也随之提升,但计算资源的需求也会相应增大。
安装指南
为了开始使用YOLOv12,首先需要安装必要的依赖项。以下是详细的安装步骤:
# 下载flash_attention库
wget https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.3/flash_attn-2.7.3+cu11torch2.2cxx11abiFALSE-cp311-cp311-linux_x86_64.whl
# 创建并激活虚拟环境
conda create -n yolov12 python=3.11
conda activate yolov12
# 安装项目所需的依赖包
pip install -r requirements.txt
pip install -e .
验证模型
验证模型的性能是确保其正确配置的重要步骤。可以使用以下代码对不同的YOLOv12模型进行验证:
from ultralytics import YOLO
model = YOLO('yolov12{n/s/m/l/x}.pt')
model.val(data='coco.yaml', save_json=True)
训练模型
训练过程可以根据具体需求调整参数。例如,对于YOLO12n模型,可以这样设置:
from ultralytics import YOLO
model = YOLO('yolov12n.yaml')
results = model.train(
data='coco.yaml',
epochs=600,
batch=256,
imgsz=640,
scale=0.5,
mosaic=1.0,
mixup=0.0,
copy_paste=0.1,
device="0,1,2,3",
)
metrics = model.val()
results = model("path/to/image.jpg")
results[0].show()
预测与导出
预测功能允许用户直接对图像进行对象检测,并显示结果。此外,还可以将模型导出为TensorRT或ONNX格式,以便于部署到其他平台。
# 预测
from ultralytics import YOLO
model = YOLO('yolov12{n/s/m/l/x}.pt')
model.predict()
# 导出
model.export(format="engine", half=True) # 或 format="onnx"
示例应用
为了方便演示,项目还提供了一个简单的应用程序脚本app.py
,可以通过运行以下命令启动本地服务器,并通过浏览器访问展示页面:
python app.py
# 请访问 http://127.0.0.1:7860
致谢与引用
该项目基于ultralytics的工作构建,感谢他们卓越的研究成果。如果使用YOLOv12,请按照以下格式引用:
@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}
}
结论
YOLOv12代表了对象检测领域的一个重要进步,尤其是在结合注意力机制方面。它不仅提高了检测的准确性和速度,还优化了资源利用效率,使得在移动设备或其他资源受限环境下也能高效运行。未来的工作可能会进一步探索如何在保持高性能的同时减少模型大小和计算需求,以及拓展其在更多实际场景中的应用。通过持续的技术创新,YOLOv12及其后续版本有望成为下一代计算机视觉系统的核心组件之一。