摘要
在过去的几年中,YOLOs由于在计算成本和检测性能之间实现了有效的平衡,已经成为实时目标检测领域的主导范式。研究人员已经探索了YOLOs的架构设计、优化目标、数据增强策略等,取得了显著的进展。然而,对非极大值抑制(NMS)的依赖限制了YOLOs的端到端部署,并负面影响了推理延迟。此外,YOLOs中各个组件的设计缺乏全面和彻底的检查,导致明显的计算冗余并限制了模型的能力。这使得效率次优,并且有很大的性能提升空间。在这项工作中,我们旨在从后处理和模型架构两方面进一步推进YOLOs的性能效率边界。为此,我们首先提出了一种一致的双重分配策略,用于无需NMS的YOLOs训练,这带来了竞争性能和低推理延迟。此外,我们引入了一种全面的效率-准确性驱动的模型设计策略,用于YOLOs。我们从效率和准确性两个角度全面优化了YOLOs的各个组件,大大减少了计算开销并提升了能力。我们的努力成果是新一代的YOLO系列,用于实时端到端目标检测,被称为YOLOv10。广泛的实验表明,YOLOv10在不同模型规模下实现了最先进的性能和效率。例如,我们的YOLOv10-S在COCO上与RT-DETR-R18相似的AP下速度提高了1.8倍,同时参数数量和FLOPs减少了2.8倍。与YOLOv9-C相比,YOLOv10-B在相同性能下的延迟减少了46%,参数数量减少了25%。代码:https://github.com/THU-MIG/yolov10。
方法论
3.1 无需NMS训练的一致双重分配 在训练期间,YOLOs[20, 59, 27, 64]通常利用TAL[14]为每个实例分配多个正样本。采用一对多分配方式可以提供丰富的监督信号,有助于优化并实现卓越的性能。然而,这种方法需要YOLOs依赖于NMS后处理,这导致了次优的推理效率。虽然先前的工作[49, 60, 73, 5]探索了一对一匹配以抑制冗余预测,但它们通常会引入额外的推理开销或导致次优性能。在这项工作中,我们提出了一种YOLOs的无需NMS训练策略,采用双重标签分配和一致的匹配度量,实现了高效率和竞争性能。
双重标签分配。与一对多分配不同,一对一匹配仅为每个真实标注分配一个预测,避免了NMS后处理。然而,这导致监督信号变弱,引起次优的准确性和收敛速度[75]。幸运的是,这种缺陷可以通过一对多分配[5]来补偿。为了实现这一点,我们为YOLOs引入了双重标签分配,结合了两种策略的优势。具体来说,如图2.(a)所示,我们为YOLOs增加了另一个一对一头部。它保持与原始一对多分支相同的结构,并采用相同的优化目标,但利用一对一匹配来获取标签分配。在训练期间,两个头部与模型一起进行联合优化,允许主干和颈部享受由一对多分配提供的丰富监督。在推理期间,我们丢弃一对多头部,并使用一对一头部进行预测。这使得YOLOs能够实现端到端部署,而不需要任何额外的推理成本。此外,在一对一匹配中,我们采用顶部选择,这在训练时间上与匈牙利匹配[4]相同,但减少了额外开销。
一致匹配度量。在分配过程中,一对一和一对多方法都利用一个度量标准来定量评估预测和实例之间的一致性水平。为了实现两个分支的预测感知匹配,我们采用了统一的匹配度量,即m(α, β) = s · p^α · IoU(ˆb, b)^β, (1),其中p是分类得分,ˆb和b分别表示预测和实例的边界框。s表示空间先验,指示预测的锚点是否在实例内[20, 59, 27, 64]。α和β是两个重要的超参数,用于平衡语义预测任务和位置回归任务的影响。我们将一对多和一对一度量分别表示为mo2m=m(αo2m, βo2m)和mo2o=m(αo2o, βo2o)。这些度量影响了两个头部的标签分配和监督信息。
在双重标签分配中,一对多分支提供了比一对一分支丰富得多的监督信号。直观地说,如果我们能够使一对一头部的监督与一对多头部的监督协调一致,我们就可以朝着一对多头部优化的方向优化一对一头部。结果,一对一头部在推理期间可以提供更高质量的样本,从而带来更好的性能。为此,我们首先分析了两个头部之间的监督差距。由于训练过程中的随机性,我们首先从两个头部以相同的值初始化并产生相同的预测开始检查,即一对一头部和一对多头部为每个预测-实例对生成相同的p和IoU。我们注意到两个分支的回归目标并不冲突,因为匹配的预测共享相同的目标,而不匹配的预测则被忽略。因此,监督差距在于不同的分类目标。给定一个实例,我们将其与预测的最大IoU表示为u*,以及一对多和一对一匹配的最大分数分别为mo2m和mo2o。假设一对多分支产生正样本集合Ω,并且一对一分支选择第i个预测,使用度量mo2o,i=mo2o,则我们可以推导出分类目标to2m,j=u · mo2m,j / mo2m ≤ u 对于j ∈ Ω,以及to2o,i=u* · mo2o,i / mo2o = u 对于任务对齐损失,如[20, 59, 27, 64, 14]中所述。因此,两个分支之间的监督差距可以通过不同分类目标的1-Wasserstein距离[41]来推导,即A = to2o,i − I(i ∈ Ω)to2m,i + Σk∈Ω{i} to2m,k, (2)
我们可以观察到,随着to2m,i的增加,差距减少,即i在Ω中的排名提高。当to2m,i=u*时,即i是Ω中最佳的正样本时,它达到最小,如图2.(a)所示。为了实现这一点,我们提出了一致匹配度量,即αo2o=r · αo2m和βo2o=r · βo2m,这意味着mo2o=mr o2m。因此,一对多头部的最佳正样本也是一对一头部的最佳样本。结果,两个头部可以一致且和谐地进行优化。为了简化,我们默认取r=1,即αo2o=αo2m和βo2o=βo2m。为了验证改善的监督对齐,我们统计了训练后在一对多结果的前1/5/10中一对一匹配对的数量。如图2.(b)所示,在一致匹配度量下,对齐情况有所改善。有关数学证明的更全面理解,请参阅附录。
3.2 全面的效率-准确性驱动的模型设计 除了后处理之外,YOLOs的模型架构也对效率-准确性权衡提出了巨大挑战[45, 7, 27]。尽管先前的工作探索了各种设计策略,但对YOLOs中各个组件的全面检查仍然缺乏。结果,模型架构表现出不可忽视的计算冗余和受限的能力,这阻碍了其实现高效率和性能的潜力。在这里,我们旨在从效率和准确性两个角度全面地为YOLOs执行模型设计。
效率驱动的模型设计。YOLO的组件包括干线、下采样层、具有基本构建块的阶段和头部。干线造成的计算成本很少,因此我们对其他三个部分执行效率驱动的模型设计。
(1)轻量级分类头部。分类和回归头部通常在YOLOs中共享相同的架构。然而,它们在计算开销上表现出显著的差异。例如,在YOLOv8-S中,分类头部(5.95G/1.51M)的FLOPs和参数计数分别是回归头部(2.34G/0.64M)的2.5倍和2.4倍。然而,在分析分类误差和回归误差的影响(见表6)后,我们发现回归头部对YOLOs的性能更为重要。因此,我们可以在不担心大大损害性能的情况下减少分类头部的开销。因此,我们简单地为分类头部采用了轻量级架构,该架构由两个深度可分离卷积[24, 8]组成,核大小为3×3,后跟1×1卷积。
(2)空间-通道解耦下采样。YOLOs通常利用常规的3×3标准卷积,步长为2,同时实现空间下采样(从H×W到H^2×W^2)和通道变换(从C到2C)。这引入了不可忽视的计算成本O(9^2HWC^2)和参数计数O(18C^2)。相反,我们提议将空间缩减和通道增加操作解耦,实现更高效的下采样。具体来说,我们首先利用点卷积来调节通道维度,然后使用深度卷积来执行空间下采样。这将计算成本降低到O(2HWC^2 + 9^2HWC),参数计数降低到O(2C^2 + 18C)。同时,它最大化了下采样期间的信息保留,带来了延迟降低的竞争力。
(3)基于排名的块设计。YOLOs通常对所有阶段使用相同的基本构建块[27, 59],例如YOLOv8中的瓶颈块[20]。为了彻底检查YOLOs的这种同质设计,我们利用内在排名[31, 15]来分析每个阶段的冗余。具体来说,我们计算每个阶段最后一个基本块中最后一个卷积的数值排名,这统计了大于某个阈值的奇异值的数量。图3.(a)展示了YOLOv8的结果,表明深层阶段和大型模型更倾向于表现出更多的冗余。这一观察表明,简单地将相同的块设计应用于所有阶段对于最佳容量-效率权衡来说是次优的。为了解决这个问题,我们提出了一个基于排名的块设计方案,旨在使用紧凑的架构设计降低显示出冗余的阶段的复杂性。我们首先提出了一个紧凑的倒置块(CIB)结构,它采用成本低廉的深度卷积进行空间混合和成本效益高的点卷积进行通道混合,如图3.(b)所示。它可以作为高效的基本构建块,例如嵌入到ELAN结构[58, 20]中(图3.(b))。
实验
4.1 实现细节 我们选择YOLOv8 [20]作为我们的基线模型,由于其在延迟和准确性之间取得了值得称赞的平衡,并且它在各种模型尺寸中都可用。我们采用一致的双重分配策略进行无需NMS的训练,并基于此进行全面的效率-准确性驱动的模型设计,带来了我们的YOLOv10模型。YOLOv10拥有与YOLOv8相同的变体,即N / S / M / L / X。此外,我们通过简单地增加YOLOv10-M的宽度比例因子,派生出一个新的变体YOLOv10-B。我们在COCO [33]上以相同的从头开始训练的设置[20, 59, 56]验证了所提出的探测器。此外,所有模型的延迟在T4 GPU上使用TensorRT FP16进行测试,遵循[71]。
4.2 与最先进方法的比较 如表1所示,我们的YOLOv10在不同模型尺寸下实现了最先进的性能和端到端延迟。我们首先将YOLOv10与我们的基线模型进行比较,即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%。与其他YOLOs相比,YOLOv10在准确性和计算成本之间也展现出了优越的权衡。具体来说,对于轻量级和小尺寸模型,YOLOv10-N / S在性能上分别比YOLOv6-3.0-N / S高出1.5 AP和2.0 AP,参数数量分别减少了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与其他YOLOs。在这种情况下,我们考虑模型前向过程的性能和延迟(Latencyf),遵循[56, 20, 54]。如表1所示,YOLOv10在不同模型尺寸下也展现出了最先进的性能和效率,这表明了我们架构设计的有效性。
评价:
YOLOv10的主要贡献包括:
- 提出了一种新的一致的双重分配策略,用于无需非极大值抑制(NMS)的YOLO训练,这样既保证了竞争性能,又降低了推理延迟。
- 引入了一种全面的效率-准确性驱动的模型设计策略,全面优化了YOLO的各个组成部分,从效率和准确性两个角度出发,大大降低了计算开销,提高了模型能力。
- 基于这些方法,开发了新一代的YOLO系列,即YOLOv10,它在不同模型规模下都实现了实时端到端目标检测的最新性能和效率。
YOLOv10-S在COCO数据集上与RT-DETR-R18相似的AP下速度提高了1.8倍,同时参数数量和浮点运算次数减少了2.8倍。与YOLOv9-C相比,YOLOv10-B在相同性能下的延迟减少了46%,参数数量减少了25%。