YOLO Vision 2026:

YOLOv10:实时端到端目标检测#

YOLOv10 于 2024 年 5 月发布,基于清华大学研究人员开发的UltralyticsPython package,引入了一种实时目标检测的新方法,解决了以往 YOLO 版本中存在的后处理和模型架构缺陷。通过消除非极大值抑制(NMS)并优化各种模型组件,YOLOv10 在发布时以显著降低的计算开销实现了出色的性能。其免 NMS 的端到端设计开创了一种方法,该方法在YOLO26中得到了进一步发展。

YOLOv10 无 NMS 训练的一致性双重分配



Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

概述#

实时目标检测旨在以低延迟准确预测图像中的目标类别和位置。凭借性能与效率之间的平衡,YOLO 系列一直处于该研究的前沿。然而,对 NMS 的依赖和架构上的低效阻碍了最佳性能的发挥。YOLOv10 通过为无 NMS 训练引入一致性双重分配以及整体效率-准确率驱动的模型设计策略,解决了这些问题。

架构#

YOLOv10 的架构建立在之前 YOLO 模型优势的基础上,同时引入了多项关键创新。模型架构包含以下组件:

  1. 主干网络:负责特征提取,YOLOv10 中的主干网络采用了增强版的 CSPNet(Cross Stage Partial Network),以改善梯度流并减少计算冗余。
  2. Neck:该颈部结构旨在聚合来自不同尺度的特征并将其传递给头部。它包含用于有效多尺度特征融合的 PAN(路径聚合网络)层。
  3. One-to-Many Head:在训练期间为每个物体生成多个预测,以提供丰富的监督信号并提高学习准确度。
  4. One-to-One Head:在推理期间为每个物体生成单个最佳预测,从而消除对 NMS 的需求,进而降低延迟并提高效率。

主要特性#

  1. 无 NMS 训练:利用一致性双重分配来消除对 NMS 的需求,从而减少推理延迟
  2. Holistic Model Design:从效率和准确度角度对各种组件进行全面优化,包括轻量级分类头、空间通道解耦下采样和基于等级引导的块设计。
  3. 增强的模型功能:集成了大核卷积和局部自注意力模块,在没有显著计算成本的情况下提高性能。

模型变体#

YOLOv10 提供多种模型尺度,以满足不同的应用需求:

  • YOLOv10n:适用于资源极其受限环境的 Nano 版本。
  • YOLOv10s:平衡速度和准确度的 Small 版本。
  • YOLOv10m:适用于通用目的的 Medium 版本。
  • YOLOv10b:通过增加宽度以获得更高准确度的平衡版本。
  • YOLOv10l:以增加计算资源为代价获得更高准确度的 Large 版本。
  • YOLOv10x:用于实现最大准确度和性能的 Extra-large 版本。

性能#

在准确率和效率方面,YOLOv10 优于以前的 YOLO 版本和其他先进模型。例如,在 COCO 数据集上具有相似 AP 的情况下,YOLOv10s 的速度比RT-DETR-R18 快 1.8 倍,而 YOLOv10b 在性能相同的情况下,延迟降低了 46%,参数减少了 25%(与YOLOv9-C相比)。

性能

延迟是在 T4 GPU 上使用 TensorRT FP16 测量的。

模型输入大小APvalFLOPs (G)延迟 (ms)
[YOLOv10n][1]64038.56.71.84
[YOLOv10s][2]64046.321.62.49
[YOLOv10m][3]64051.159.14.74
[YOLOv10b][4]64052.592.05.74
[YOLOv10l][5]64053.2120.37.28
[YOLOv10x][6]64054.4160.410.70

方法论#

用于 NMS-Free 训练的一致性双重分配#

YOLOv10 采用双标签分配,在训练期间结合多对一和一对一策略,以确保丰富的监督和高效的端到端部署。一致的匹配度量对齐了两种策略之间的监督,从而在推理过程中提高了预测质量。

整体效率-准确率驱动的模型设计#

效率提升#

  1. 轻量级分类头:通过使用深度可分离卷积来减少分类头的计算开销。
  2. 空间通道解耦下采样:将空间缩减和通道调制解耦,以最大限度地减少信息丢失和计算成本。
  3. 等级引导的块设计:根据内在的阶段冗余调整块设计,确保最佳的参数利用率。

准确度提升#

  1. 大核卷积:扩大感受野以增强特征提取能力。
  2. 部分自注意力 (PSA):结合自注意力模块以在最小开销下改进全局表征学习。

实验与结果#

YOLOv10 已在 COCO 等标准基准测试中进行了广泛测试,表现出卓越的性能和效率。该模型在不同的变体中实现了先进的结果,与以前的版本和其他现代检测器相比,在延迟和准确率方面显示出显着的改进。

对比#

YOLOv10 与 SOTA 目标检测器的对比

与其他最先进的检测器相比:

  • YOLOv10s / x 比 RT-DETR-R18 / R101 快 1.8 倍 / 1.3 倍,且准确度相似
  • YOLOv10b 在相同准确度下,参数比 YOLOv9-C 少 25%,延迟降低 46%
  • YOLOv10l / x 优于 YOLOv8l / x 0.3 AP / 0.5 AP,参数减少 1.8× / 2.3×
性能

以下是 YOLOv10 变体与其他最先进模型的详细对比:

模型参数
(M)
FLOPs
(G)
mAPval
50-95
延迟
(ms)
前向延迟
(ms)
YOLOv6-3.0-N4.711.437.02.691.76
Gold-YOLO-N5.612.139.62.921.82
YOLOv8n3.28.737.36.161.77
YOLOv10n2.36.739.51.841.79
YOLOv6-3.0-S18.545.344.33.422.35
Gold-YOLO-S21.546.045.43.822.73
YOLOv8s11.228.644.97.072.33
YOLOv10s7.221.646.82.492.39
RT-DETR-R1820.060.046.54.584.49
YOLOv6-3.0-M34.985.849.15.634.56
Gold-YOLO-M41.387.549.86.385.45
YOLOv8m25.978.950.69.505.09
YOLOv10m15.459.151.34.744.63
YOLOv6-3.0-L59.6150.751.89.027.90
Gold-YOLO-L75.1151.751.810.659.78
YOLOv8l43.7165.252.912.398.06
RT-DETR-R5042.0136.053.19.209.07
YOLOv10l24.4120.353.47.287.21
YOLOv8x68.2257.853.916.8612.83
RT-DETR-R10176.0259.054.313.7113.58
YOLOv10x29.5160.454.410.7010.60

Params 和 FLOPs 值适用于 model.fuse() 之后的融合模型,该模型合并了 Conv 和 BatchNorm 层并删除了辅助的多对一检测头。预训练检查点保留了完整的训练架构,可能会显示更高的数值。

使用示例#

用于使用 YOLOv10 预测新图像。也可以通过 Ultralytics Platform 在云 GPU 上训练模型:

示例
from ultralytics import YOLO

# Load a pretrained YOLOv10n model
model = YOLO("yolov10n.pt")

# Perform object detection on an image
results = model("image.jpg")

# Display the results
results[0].show()

用于在自定义数据集上训练 YOLOv10:

示例
from ultralytics import YOLO

# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=100, imgsz=640)

支持的任务和模式#

YOLOv10 模型系列提供了一系列模型,每个模型都针对高性能目标检测进行了优化。这些模型可满足不同的计算需求和准确率要求,使其适用于广泛的应用。

模型文件名任务训练验证推理导出
YOLOv10yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt目标检测

导出 YOLOv10#

由于 YOLOv10 引入了新操作,Ultralytics 目前并非支持所有导出格式。下表概述了使用 Ultralytics 成功为 YOLOv10 转换的格式。如果你能提供贡献更改以为 YOLOv10 添加对其他格式的导出支持,请随时发起拉取请求。

导出格式导出支持导出模型推理注意事项
TorchScript标准 PyTorch 模型格式。
ONNX部署支持广泛。
OpenVINO针对 Intel 硬件优化。
TensorRT针对 NVIDIA GPU 优化。
CoreML仅限 Apple 设备。
TF SavedModelTensorFlow 的标准模型格式。
TF GraphDef旧版 TensorFlow 格式。
LiteRT专为移动端、嵌入式设备和浏览器(LiteRT.js)进行了优化。
TF Edge TPU专门针对 Google 的 Edge TPU 设备。
PaddlePaddle在中国流行;全球支持较少。
NCNNtorch.topk 不存在或未注册

结论#

YOLOv10 通过解决以前 YOLO 版本的缺点并结合创新的设计策略,在其发布时为实时目标检测树立了新标准。其无 NMS 的方法开创了 YOLO 系列中的端到端目标检测。有关具有改进性能和无 NMS 推理的最新 Ultralytics 模型,请参阅 YOLO26

引用与致谢#

我们要感谢来自清华大学的 YOLOv10 作者,感谢他们为 Ultralytics 框架做出的广泛研究和重大贡献:

引用
@inproceedings{wang2024yolov10,
  title={YOLOv10: Real-Time End-to-End Object Detection},
  author={Wang, Ao and Chen, Hui and Liu, Lihao and Chen, Kai and Lin, Zijia and Han, Jungong and Ding, Guiguang},
  booktitle={Advances in Neural Information Processing Systems},
  doi = {10.52202/079017-3429},
  url = {https://proceedings.neurips.cc/paper_files/paper/2024/file/c34ddd05eb089991f06f3c5dc36836e0-Paper-Conference.pdf},
  volume={37},
  pages={107984--108011},
  year={2024}
}

有关详细的实现、架构创新和实验结果,请参阅清华大学团队撰写的 YOLOv10 研究论文GitHub 仓库

常见问题解答#

什么是 YOLOv10,它与之前的 YOLO 版本有何不同?#

清华大学研究人员开发的 YOLOv10 为实时目标检测引入了几项关键创新。它通过在训练期间采用一致的双重分配和优化的模型组件,消除了对非极大值抑制(NMS)的需求,从而以较低的计算开销实现卓越的性能。有关其架构和关键功能的更多详细信息,请查看 YOLOv10 概述部分。

如何开始使用 YOLOv10 进行推理?#

为了方便推理,你可以使用 Ultralytics YOLO Python 库或命令行界面 (CLI)。以下是使用 YOLOv10 预测新图像的示例:

示例
from ultralytics import YOLO

# Load the pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()

有关更多使用示例,请访问我们的使用示例部分。

YOLOv10 提供哪些模型变体,它们的用途是什么?#

YOLOv10 提供多种模型变体以满足不同的使用场景:

  • YOLOv10n:适用于资源极其受限的环境
  • YOLOv10s:速度与精度的平衡
  • YOLOv10m:通用用途
  • YOLOv10b:更高的精度,增加了宽度
  • YOLOv10l:以计算资源为代价的高精度
  • YOLOv10x:极致的精度与性能

每个变体都专为不同的计算需求和准确率要求而设计,使其适用于各种应用。探索模型变体部分以了解更多信息。

YOLOv10 中的无 NMS 方法如何提高性能?#

YOLOv10 通过在训练中采用一致的双重分配,消除了推理期间对非极大值抑制(NMS)的需求。这种方法降低了推理延迟并提高了预测效率。该架构还包括一个用于推理的一对一头,确保每个目标获得单个最佳预测。有关详细说明,请参阅无 NMS 训练的一致性双重分配部分。

在哪里可以找到 YOLOv10 模型的导出选项?#

YOLOv10 支持几种导出格式,包括 TorchScript、ONNX、OpenVINO 和 TensorRT。但是,由于其新操作,Ultralytics 目前并非所有导出的格式都支持 YOLOv10。有关支持的格式的详细信息以及导出说明,请访问导出 YOLOv10部分。

YOLOv10 模型的性能基准是什么?#

YOLOv10 在准确率和效率方面均优于以前的 YOLO 版本和其他先进模型。例如,在 COCO 数据集上具有相似 AP 的情况下,YOLOv10s 的速度比 RT-DETR-R18 快 1.8 倍。在性能相同的情况下,YOLOv10b 显示出比 YOLOv9-C 低 46% 的延迟和少 25% 的参数。详细的基准测试可以在对比部分找到。

评论