YOLOv10 是什么?去掉后处理的实时端到端目标检测
YOLOv10 是清华大学研究人员在 2024 年开发的实时端到端目标检测模型,论文标题是《YOLOv10:实时端到端目标检测》,代码基于 Ultralytics 的 Python 工具包构建。它旨在解决以往 YOLO 版本在后处理和模型架构方面的不足,在降低计算开销的同时达到了很高的检测精度。
先说 YOLO
YOLO(You Only Look Once,你只看一次)是目标检测领域最著名的系列之一,由 Joseph Redmon 等人在 2015 年首次提出。它的特点是速度快:把整张图片一次性地输入网络,直接输出所有物体的位置和类别,而不像早期的两阶段方法那样先找候选区域、再逐个识别。这让它非常适合需要实时处理的场景,比如自动驾驶、视频监控、工业检测。此后,YOLO 经历了多个版本的演进,由不同的团队和公司开发。
YOLOv10 改进了什么
去掉 NMS 后处理:以往的 YOLO 模型,对同一个物体往往会预测出多个重叠的框,需要在后处理阶段用非极大值抑制(NMS)来去掉重复的框,只保留最好的那个。NMS 会增加推理的延迟,而且它不是网络的一部分,让整个检测流程无法真正地端到端,也给部署带来了麻烦。YOLOv10 提出了“一致的双重分配”训练策略:训练时同时使用两种标签分配方式,一种是“一对多”,一个物体对应多个预测,提供丰富的训练信号;另一种是“一对一”,一个物体只对应一个预测;并让两者保持一致。推理时只使用一对一的那部分,每个物体天然地只输出一个框,不再需要 NMS。
效率与精度整体优化的模型设计:研究人员对模型的各个组成部分进行了全面的分析和优化,比如使用轻量的分类头、空间和通道解耦的下采样、根据各阶段冗余程度设计的模块,以及在适当的位置引入大卷积核和部分自注意力,在减少计算量和参数的同时提升检测能力。
效果
论文报告,YOLOv10 在不同的模型规模上,都在速度和精度的权衡上优于之前的 YOLO 版本和同期的其他实时检测器:在达到相近精度时,推理延迟更低,参数和计算量更少。它提供了从很小到很大的多个规格,适合从边缘设备到服务器的不同部署需求。此后,YOLO 系列仍在继续发展,相继出现了更新的版本。