YOLOv10 是 Ultralytics 发布的实时目标检测模型,采用无 NMS(Non-Maximum Suppression)训练和一致双重分配(Consistent Dual Assignments)策略,在保持高精度的同时显著提升了推理速度。
YOLOv10 针对实时端到端目标检测进行了优化,通过消除训练过程中对 NMS 的依赖,并引入一致双重分配策略,实现了检测效率和准确度的最佳平衡。该模型在 COCO 数据集上进行了训练,适用于各种实时检测场景。
使用 Ultralytics 库加载和运行 YOLOv10:
from ultralytics import YOLO
# 加载预训练模型
model = YOLO("yolov10n.pt")
# 进行推理
results = model("image.jpg")
# 导出模型
model.export(format="onnx")YOLOv10 提供多种尺度的模型变体,以满足不同的速度和精度需求:
| 模型 | 尺寸 (像素) | mAPval 50-95 | 速度 CPU ONNX (ms) | 参数 (M) | FLOPs (B) |
|---|---|---|---|---|---|
| YOLOv10-N | 640 | 38.5 | 1.56 | 2.7 | 6.7 |
| YOLOv10-S | 640 | 46.3 | 2.66 | 7.2 | 21.6 |
| YOLOv10-M | 640 | 51.1 | 5.48 | 15.4 | 59.1 |
| YOLOv10-B | 640 | 52.5 | 6.54 | 19.1 | 92.0 |
| YOLOv10-L | 640 | 53.2 | 8.33 | 24.4 | 120.3 |
| YOLOv10-X | 640 | 54.4 | 12.2 | 29.5 | 160.4 |
该模型可在华为昇腾 NPU(Ascend 910 系列)上通过 PyTorch / torch_npu 进行推理。相关优化和验证方法可参考昇腾模型迁移与性能优化工具链。
本项目采用 AGPL-3.0 许可证发布。
如果您在研究或项目中使用了 YOLOv10,请引用:
@article{yolov10,
title={YOLOv10: Real-Time End-to-End Object Detection},
author={Ao Wang, Li Hao, Yuehan Yao, et al.},
journal={arXiv preprint arXiv:2405.14458},
year={2024}
}