原文地址:
YOLOv10: Real-Time End-to-End Object Detectionhttps://arxiv.org/pdf/2405.14458
项目地址:
yolov10https://github.com/THU-MIG/yolov10
一、概述
YOLOv10的改进点主要由两点:①提出一种基于无NMS的一致的双重训练策略;②提出了整体效率-精度驱动的模型架构设计策略。
这两项改进使得YOLOv10相较于RT-DETR快1.8倍,比YOLOv9-C在同性能下降低了46%的延迟,减少了1.8倍的参数。
二、无NMS的一致的双重训练
传统的YOLO依赖于NMS的后处理,通过NMS虽然可以抑制冗余预测,但是同样会降低模型的推理效率。先前虽然有一些研究通过引入一对一匹配的方式来实现同样的效果,但是额外的推理开销也会影响模型的性能。
1.双标签分配(Dual label assignments)
不同于一对多分配,一对一分配只为一个gt(ground-truth)分配一个预测,可以避免NMS后处理,但是也存在监督效果不佳,在模型收敛速度和峰值精度上存在不足。本文结合了一对一分配和一对多分配的优势,提出了双标签分配。
如上图所示,模型中除了常见的一对多分支分类头(One-to-many Head,o2m)外还额外添置了一对一分支分类头(One-to-one Head,o2o)。
在训练过程中,这两者同时运行,o2m负责传统的目标匹配,而o2o则用来获取标签分配。由于o2m提供的丰富监督,可以解决o2o支收敛速度和峰值精度上个的不足。
而在推理时,o2m将会被舍弃,仅依赖o2o支进行推理,这样不会产生额外推理成本,且节省了推理性能。
2.一致匹配度量(Consistent matching metric)
这个公式将被用来评估预测和实例之间的一致性水平,o2o和o2m均会使用这个公式。
式中,是类别的得分,
是预测框的坐标,
是实例框的坐标,
是空间先验(表示预测框的锚点是否位于实例框内),
是两个超参数,用来平衡分类任务和位置回归任务的权重。o2m使用公式
,o2o使用公式
。
在训练过程中,模型会让o2o朝着o2m的方向进行优化,也就是说在训练过程中,o2m Head会为o2o提供改的样本质量,从而带来更好的性能,为了固定这个优化方向,我们需要量化两个分类头之间的差距。
对于一个给定的实例,我们将与其IoU最大的预测项记作,o2m Head和o2o Head最佳的匹配分数记作
和
;假定o2m Head产生了足够多的正样本记作
,o2o选择第 i 个预测项记作
,我们可以推导出这个目标的分类为
,其中
,同时将
作为分类任务的损失函数。所以两个Head之间的差距可以表述为:
三、整体效率-精度驱动的模型设计
为了进一步提升模型效果,本文还探索了一些结构上的改进,可以分为效率驱动模块设计和精度驱动模块设计。
上图(a)是各种YOLOv8模型在不同层处理后的通道数量;(b)是紧凑倒置模块(CIB);(c)是部分自注意力模块(PSA)
1.效率驱动模型设计
通过轻量化分类头、空间通道去耦下采样、秩引导区设计,模型可以大大降低计算量。
2.精度驱动模型设计
通过大卷积核、PSA模块,模型可以以最小的代价提升性能。