在过去几年中,YOLO系列模型已成为实时目标检测领域的主导范式,这得益于它们在计算成本和检测性能之间的有效平衡。研究行人探索了YOLOs的架构设计、优化目标、数据增强策略等,取得了显著的进展。然而,对非最大值抑制(NMS)的后处理依赖阻碍了YOLOs的端到端部署,并不利影响推理延迟。此外,YOLOs中各种组件的设计缺乏全面彻底的检查,导致明显的计算冗余并限制了模型的能力。这导致了次优的效率,同时存在相当大的性能提升潜力。在这项工作中,作者从后处理和模型架构两方面进一步推进了YOLOs的性能效率边界。 为此,作者首先提出了无需NMS训练的YOLOs的一致性双重分配,这同时带来了有竞争力的性能和低推理延迟。此外,作者引入了针对YOLOs的整体效率精度驱动模型设计策略。作者从效率和精度角度全面优化了YOLOs的各种组件,大大减少了计算开销并增强了能力。作者努力的成果是新一代的实时端到端目标检测YOLO系列模型,命名为YOLOv10。广泛的实验表明,YOLOv10在各种模型规模上均实现了最先进的性能和效率。例如,YOLOv10-S在COCO上的类似AP下比RT-DETR-R18快1.8倍,同时享受2.8倍更少的参数和FLOPs。与YOLOv9-C相比,YOLOv10-B在相同性能下延迟减少了46%,参数减少了25%。 代码:https://github.com/THU-MIG/yolov10。
实时目标检测一直是计算机视觉研究领域的一个重点,旨在在低延迟下准确预测图像中物体的类别和位置。它被广泛应用于各种实际应用中,包括自动驾驶,机器人导航,物体跟踪等。近年来,研究行人一直致力于设计基于CNN的目标检测器以实现实时检测。其中,YOLOs因其性能和效率之间的巧妙平衡而越来越受欢迎。YOLOs的检测流程包括两部分:模型前向过程和NMS后处理。然而,这两者仍存在不足,导致次优的准确度-延迟边界。
具体来说,YOLO通常在训练过程中采用一对多的标签分配策略,其中一个 GT 物体对应于多个阳性样本。尽管这种方法取得了优越的性能,但它需要在推理过程中使用NMS来选择最佳的阳性预测。这降低了推理速度,并使性能对NMS的超参数敏感,从而阻碍了YOLO实现最优的端到端部署。解决这个问题的一条途径是采用最近引入的端到端DETR架构。例如,RT-DETR提出了一种有效的混合编码器和非确定性最小 Query 选择,将DETR推向了实时应用领域。然而,部署DETR的固有复杂性阻碍了它在准确性和速度之间达到最优平衡的能力。另一条途径是探索基于CNN的检测器的端到端检测,这通常利用一对一的分配策略来抑制冗余预测。然而,它们通常引入额外的推理开销或达到次优性能。
此外,模型架构设计对于YOLO来说仍然是一个基本挑战,它在准确性和速度上表现出重要影响。为了实现更高效和有效的模型架构,研究行人探索了不同的设计策略。为加强特征提取能力,提出了各种主要计算单元作为主干,包括DarkNet,CSPNet,EfficientRep和ELAN等。对于特征融合部分,研究了PAN,BiC,GD和RepGFPN等,以增强多尺度特征融合。此外,还研究了模型缩放策略和重参化技术。尽管这些努力取得了显著的进展,但从效率和准确性的角度来看,对YOLO中各个组件的全面检查仍然缺乏。因此,YOLO中仍然存在相当大的计算冗余,导致参数使用效率低下和次优效率。此外,由此产生的受限模型能力也导致了性能不佳,为准确性的提升留下了很大的空间。
在这项工作中,作者旨在解决这些问题,并进一步推进YOLO在准确性与速度边界上的发展。作者针对检测流程中的后处理和模型架构。为此,作者首先通过提出一种一致的二元分配策略来解决后处理中的冗余预测问题,该策略用于无需NMS的YOLO,具有双重标签分配和一致匹配度量。它允许模型在训练期间享受丰富且和谐的监督,同时在推理过程中省去NMS,以实现高效竞争力。其次,作者提出了一个整体效率-准确性驱动的模型设计策略,通过对YOLO中各个组件的全面检查来实现模型架构。为了提高效率,作者提出了轻量级分类头、空间通道解耦降采样和排名引导的块设计,以减少表现出的计算冗余并实现更高效的架构。对于准确性,作者探索了大型核卷积,并提出了有效的部分自注意力模块来增强模型能力,在低成本下挖掘性能提升的潜力。
基于这些方法,作者成功实现了一系列不同模型规模的实时端到端检测器的新家族,即YOLOv10-N / S / M / B / L / X。在标准的目标检测基准测试上的大量实验,例如COCO,证明了YOLOv10可以在各种模型规模上显著超越之前的最佳模型,在计算精度权衡方面表现出色。
如图1所示,在相似性能下,YOLOv10-S / X分别比RT-DETR-R18 / R101快1.8倍 / 1.3倍。与YOLOv9-C相比,YOLOv10-B在相同性能下延迟降低了46%。此外,YOLOv10显示出高效的参数利用率。YOLOv10-L / X比YOLOv8-L / X分别高出0.3 AP和0.5 AP,而参数数量则分别减少了1.8倍和2.3倍。YOLOv10-M与YOLOv9-M / YOLO-MS相比,实现了相似的AP,但参数数量分别减少了23% / 31%。作者希望作者的工作能够启发该领域的进一步研究和进步。
在训练过程中,YOLO系列方法通常利用TAL为每个实例分配多个正样本。采用一对一多分配产生了丰富的监督信号,促进了优化并实现了卓越的性能。然而,这需要YOLO依赖于NMS后处理,这导致了部署时次优的推理效率。尽管之前的工作探索了一对一匹配以抑制冗余预测,但它们通常引入了额外的推理开销或导致次优性能。在本工作中,作者提出了一种无需NMS的YOLO训练策略,采用双重标签分配和一致的匹配度量,实现了高效率和有竞争力的性能。
与一对一多分配不同,一对一匹配只为每个地面真相分配一个预测,避免了NMS后处理。然而,这导致了较弱的监督,导致次优的准确性和收敛速度。幸运的是,这种缺陷可以通过一对一多分配来弥补。为此,作者为YOLO引入了双重标签分配,以结合两种策略的优点。
具体来说,如图2.(a)所示,作者在YOLO中增加了一个一对一的 Head 。它与原始一对一多分支保持相同的结构和采用相同的优化目标,但利用一对一匹配来获得标签分配。在训练过程中,两个 Head 与模型联合优化,使得主干和 Neck 能够享受到一对一多分配提供的丰富监督。
在推理过程中,作者丢弃一对一多 Head ,并利用一对一 Head 进行预测。这使得YOLO能够端到端部署,而不会产生任何额外的推理成本。此外,在一对一匹配中,作者采用顶部选择,其性能与匈牙利匹配[4]相同,但额外的训练时间更少。
在分配过程中,一对一和多对多方法都采用一种度量来定量评估预测与实例之间的一致性水平。为了实现两个分支的预测感知匹配,作者采用了一个统一的匹配度量,即:
其中 是分类得分, 和 分别表示预测和实例的边界框。 表示空间先验,指示预测的 Anchor 点是否位于实例内。 和 是两个重要的超参数,它们平衡语义预测任务和位置回归任务的影响。作者将一对多和一对一的度量分别表示为 = 和 =。这些度量影响两个 Head 的标签分配和监督信息。
在双重标签分配中,一对多分支比一对一分支提供了更丰富的监督信号。直观地说,如果作者能将一对一 Head 的监督与一对多 Head 的监督协调起来,作者就可以优化一对一 Head 向一对多 Head 的优化方向。因此,一对一 Head 可以在推理过程中提供改进的样本质量,从而带来更好的性能。
为此,作者首先分析了两个 Head 之间的监督差距。由于训练过程中的随机性,作者从一开始就用相同的值初始化两个 Head ,并产生相同的预测,即,一对一 Head 和一对多 Head 为每个预测-实例对生成相同的 和 IoU。作者注意到,两个分支的回归目标并不冲突,因为匹配的预测共享相同的目标,而不匹配的预测被忽略。因此,监督差距在于不同的分类目标。
给定一个实例,作者将其与预测的最大IoU表示为 ,最大的一对多和一对一匹配分数分别为 和 。假设一对多分支产生了正样本 ,而一对一分支选择了使用度量 = 的第 个预测,那么作者可以推导出一对多分支的分类目标 = 对于 和一对一任务的对齐损失 == 。因此,可以通过不同分类目标的1-Wasserstein距离来推导两个分支之间的监督差距,即,
作者可以观察到,随着 的增加,差距在缩小,即 在 中的排名更高。当 = 时,差距达到最小,即 是 中最佳的正样本,如图2(a)所示。为了实现这一点,作者提出了保持一致的匹配度量,即 = 和 =,这意味着 =。
因此,对于一对多头来说最佳的阳性样本对于一对一头来说也是最佳的。因此,两个头可以一致和谐地优化。为了简单起见,作者默认取 =1,即 = 和 =。为了验证改进的监督对齐,作者在训练后统计了一对多结果前1/5/10中一对一匹配对的数量。如图2(b)所示,在一致的匹配度量下,对齐得到了改善。为了更全面地理解数学证明,请参考附录。
除了后处理之外,YOLOs的模型架构也对效率-准确度权衡提出了重大挑战[45; 7; 27]。尽管以前的工作探索了各种设计策略,但对YOLOs中各种组件的全面检查仍然缺乏。因此,模型架构展现出不可忽视的计算冗余和受限的能力,这阻碍了其实现高效率和性能的潜力。在这里,作者从效率和准确度两个方面全面进行YOLOs的模型设计。
YOLO中的组件包括Stem、下采样层、带有基本构建块的阶段和 Head 。Stem产生的计算成本很少,因此作者仅对其他三个部分进行以效率为导向的模型设计。
准确度驱动的模型设计。作者进一步探索了大核卷积和自注意力用于准确度驱动的模型设计,旨在以最小的成本提升性能。
作者选择YOLOv8作为 Baseline 模型,因为它在延迟和准确度之间取得了令人称赞的平衡,并且有多种模型尺寸可供选择。作者采用了持续的二元分配以实现无需NMS的训练,并基于此进行了整体效率与准确度驱动的模型设计,从而推出了YOLOv10模型。YOLOv10与YOLOv8具有相同的变体,即N/S/M/L/X。
此外,作者通过简单增加YOLOv10-M的宽度扩展因子,导出了一个新变体YOLOv10-B。作者在与[20; 59; 56]相同的从头开始训练的设置下,在COCO数据集上验证了所提出的检测器。此外,所有模型的延迟都在T4 GPU上使用TensorRT FP16进行测试,遵循[71]的方法。
如表1所示,YOLOv10在各种模型规模上均取得了最先进的性能和端到端延迟。作者首先将YOLOv10与作者的 Baseline 模型进行比较,即YOLOv8。在N / S / M / L / X五个变体上,YOLOv10实现了1.2% / 1.4% / 0.5% / 0.3% / 0.5%的AP提升,参数减少了28% / 36% / 41% / 44% / 57%,计算量减少了23% / 24% / 25% / 27% / 38%,延迟降低了70% / 65% / 50% / 41% / 37%。
与其他YOLO模型相比,YOLOv10在准确性和计算成本之间也显示出优越的权衡。特别是对于轻量和小型模型,YOLOv10-N / S比YOLOv6-3.0-N / S分别高出1.5 AP和2.0AP,参数减少了51% / 61%,计算量分别减少了41% / 52%。对于中型模型,与YOLOv9-C / YOLO-MS相比,YOLOv10-B / M在相同或更好的性能下,延迟分别降低了46% / 62%。
对于大型模型,与Gold-YOLO-L相比,YOLOv10-L具有68%的更少参数和32%的更低延迟,同时AP显著提高了1.4%。此外,与RT-DETR相比,YOLOv10在性能和延迟上均取得了显著提升。值得注意的是,在类似性能下,YOLOv10-S / X的推理速度分别是RT-DETR-R18 / R101的1.8和1.3。这些结果充分证明了YOLOv10作为实时端到端检测器的优越性。
作者还使用原始的一对多训练方法将YOLOv10与其他YOLO模型进行了比较。在这种情况下,作者考虑了模型的向前过程性能和延迟(Latency),遵循[56, 20, 54]。如表1所示,YOLOv10在不同模型规模上也展示了最先进的性能和效率,这表明了作者的架构设计是有效的。
作者在表2中基于YOLOv10-S和YOLOv10-M展示了消融实验结果。可以观察到,作者的无需NMS的训练与一致的双重分配显著降低了YOLOv10-S的端到端延迟4.63ms,同时保持了44.3% AP的竞争力表现。
此外,作者以效率为导向的模型设计导致YOLOv10-M减少了1180万参数和20.8 GFIOPs,延迟减少了0.65ms,充分展示了其有效性。进一步地,作者以准确率为导向的模型设计为YOLOv10-S和YOLOv10-M分别实现了1.8 AP和0.7 AP的显著改进,仅增加了0.18ms和0.17ms的延迟开销,充分证明了其优越性。
作者基于YOLOv10-S/M进行了实验,逐步融入效率驱动的的设计元素。作者的 Baseline 模型是未采用效率-精度驱动的模型设计YOLOv10-S/M,即表2中的#2/#6。如表5所示,包括轻量级分类头、空间-通道解耦下采样和排序引导的块设计在内的每个设计组件都有助于减少参数数量、FLOPs和延迟。重要的是,这些改进是在保持竞争力性能的同时实现的。
如表9所示,当作者逐步在每个阶段用高效的CIB替换瓶颈块时,从第7阶段开始观察到性能退化。在内在排序较低且冗余更多的第8和第4阶段,作者可以采用高效的块设计而不牺牲性能。这些结果表明,排序引导的块设计可以作为提高模型效率的有效策略。
作者基于YOLOv10-S/M逐步集成准确度驱动设计元素的结果。作者的 Baseline 模型是融入了效率驱动设计的YOLOv10-S/M模型,即表2中的#3/#7。如表10所示,采用大核卷积和PSA模块使得YOLOv10-S的模型性能显著提升,分别提高了0.4% AP和1.4% AP,而延迟的增加最小,分别为0.03ms和0.15ms。需要注意的是,对于YOLOv10-M(见表12),作者没有采用大核卷积。
遵循[20, 56, 59],所有YOLOv10模型都是从零开始使用SGD优化器训练500个周期。SGD动量和权重衰减分别设置为0.937和5。初始学习率为1,并且线性衰减至1。对于数据增强,作者采用了Mosaic,Mixup和copy-paste增强等方法,与[20, 59]类似。表14展示了详细的超参数设置。所有模型都在8个NVIDIA 3090 GPU上进行训练。
此外,作者将YOLOv10-M的宽度扩展因子增加到1.0以获得YOLOv10-B。对于PSA,作者在SPPF模块之后采用,并为FFN采用扩展因子为2。对于CIB,作者还为倒置瓶颈块结构采用2的扩展比率。[59, 56]在COCO数据集上报告了不同目标尺度和IoU阈值的标准平均精度(AP)。
此外,作者遵循[71]建立端到端的速度基准。由于NMS的执行时间受输入影响,因此作者在COCO验证集上测量延迟,与[71]一样。作者在验证期间采用了与检测器相同的NMS超参数。在后期处理中附加了TensorRT efficientNMSPlugin,并且省略了I/O开销。作者报告了所有图像的平均延迟。
如论文所述,作者假设一对多正样本为 ,而一对一分支选择了第 个预测。可以利用归一化度量来获得任务对齐学习的分类目标,即 对于 和 。因此,可以通过两个分支不同分类目标的1-瓦瑟斯坦距离来推导出两个分支之间的监督差距,即:
,
其中 是指示函数。将 中预测的分类目标表示为 ,按降序排列,即 。然后可以将 替换为 并得到:
进一步讨论了两种情况下的监督差距,即,
由于 ,第二种情况可能导致监督差距更小。
此外,可以观察到,随着 的增加, 减少,表明 减少, 在 中的排名提高。由于 ,因此当 时, 达到最小值,即 是 中最好的正样本,有 和 。
进一步地,证明可以通过一致的匹配度量来实现最小的监督差距。
作者假设 和 ,这在[20; 59; 27; 14; 64]中很常见。同样,假设 和 。作者可以得到 和 ,然后推导出 :
为了实现 和 ,作者可以通过赋值 来使 随 单调增加,即,
假设 ,因此可以推导出一致性的匹配度量,即, 和 。简单地将 ,得到 和 。
假设 ,因此可以推导出一致性的匹配度量,也就是 和 。只需取 ,便得到 和 。
作者展示了算法1中等级引导的块设计的算法细节。此外,为了计算卷积的数值等级,作者将它的权重 Reshape 为形状(, ),其中和分别表示输出通道数和输入通道数,而表示核大小。
作者报告了YOLOv10在COCO数据集上的详细性能,包括在不同IoU阈值下的AP和AP,以及在不同尺度下的AP、AP和AP,具体数据见表15。
作者注意到,由于模型规模较小,降低YOLOv10-S(表2中第2个)的延迟尤为具有挑战性。然而,如表2所示,作者以效率为导向的模型设计仍然在不过度牺牲性能的情况下实现了5.3%的延迟降低。这为进一步的以准确度为导向的模型设计提供了有力支持。采用作者整体效率-准确度驱动的模型设计,YOLOv10-S在仅有0.05ms延迟开销的情况下,实现了更好的延迟-准确度权衡,显示出2.0%的AP提升。
此外,对于规模更大、冗余性更多的YOLOv10-M(表2中第6个),作者的效率驱动模型设计如表2所示,实现了相当可观的12.5%的延迟降低。当与准确度驱动的模型设计结合时,作者观察到YOLOv10-M的AP显著提升了0.8%,同时延迟也减少了0.48ms。这些结果充分证明了作者设计策略在不同模型规模上的有效性。
图4展示了作者YOLOv10在复杂且具有挑战性的场景下的可视化结果。可以看出,YOLOv10在各种困难条件下都能实现精确检测,例如低光照、旋转等。它还展示了在检测多种且密集排列的物体(如瓶子、杯子和人)方面的强大能力。这些结果表明其性能卓越。
贡献。 总的来说,作者的贡献主要体现在以下三个方面:
在本文中,作者针对YOLO系列检测 Pipeline 中的后处理和模型架构进行了研究。对于后处理,作者提出了持续的双重分配以实现无需NMS的训练,从而实现高效的端到端检测。对于模型架构,作者引入了整体效率-精度驱动的模型设计策略,改进了性能与效率之间的权衡。这些改进带来了YOLOv10,这是一个新的实时端到端目标检测器。大量实验表明,与其它先进检测器相比,YOLOv10在性能和延迟方面均达到了最先进水平,充分展示了其优越性。
[1].YOLOv10: Real-Time End-to-End Object Detection.