摘要
近年来,YOLO因其在计算成本与检测性能之间实现了有效平衡,已成为实时目标检测领域的主流范式。研究人员对YOLO的架构设计、优化目标、数据增强策略等方面进行了探索,并取得了显著进展。然而,YOLO对非极大值抑制(NMS)后处理的依赖阻碍了其端到端的部署,并对推理延迟产生了不利影响。此外,YOLO中各组件的设计缺乏全面和深入的审查,导致计算冗余明显,并限制了模型的性能。这使得YOLO的效率不尽如人意,且存在相当大的性能提升潜力。在本文中,我们的目标是从后处理和模型架构两个方面进一步推进YOLO的性能-效率边界。为此,我们首先提出了用于YOLO无NMS训练的一致性双重分配策略,该策略同时带来了竞争性的性能和较低的推理延迟。此外,我们引入了面向YOLO的整体效率-准确率驱动的模型设计策略。我们从效率和准确性的角度对YOLO的各种组件进行了全面优化,大大降低了计算开销并提升了性能。我们的努力成果是一种新一代的用于实时端到端目标检测的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。

1 引言
实时目标检测一直是计算机视觉领域的研究焦点,旨在以低延迟准确地预测图像中物体的类别和位置。它在各种实际应用中得到了广泛应用,包括自动驾驶[3]、机器人导航[11]和物体跟踪[66]等。近年来,研究人员致力于开发基于卷积神经网络(CNN)的目标检测器以实现实时检测[18, 22, 43, 44, 45, 51, 12]。其中,YOLO系列因其在性能和效率之间的出色平衡而备受欢迎[2, 19, 27, 19, 20, 59, 54, 64, 7, 65, 16, 27]。YOLO的检测流程包括两部分:模型前向传播和非极大值抑制(NMS)后处理。然而,这两部分都存在不足,导致精度-延迟边界不理想。具体来说,YOLO在训练时通常采用一对多的标签分配策略,即一个真实物体对应多个正样本。尽管这种方法能够带来优越的性能,但在推理时却需要NMS来选择最佳正预测。这减慢了推理速度,并使性能对NMS的超参数敏感,从而阻碍了YOLO实现最优的端到端部署[71]。一种解决这一问题的方法是采用最近引入的端到端DETR架构[4, 74, 67, 28, 34, 40, 61]。例如,RT-DETR[71]提出了一种高效的混合编码器和不确定性最小化查询选择,使DETR能够应用于实时应用。然而,DETR部署的固有复杂性阻碍了其在精度和速度之间达到最优平衡的能力。另一种方法是探索基于CNN检测器的端到端检测,这通常利用一对一分配策略来抑制冗余预测[5, 49, 60, 73, 16]。然而,这些方法通常会增加额外的推理开销或无法达到最优性能。
此外,YOLO的模型架构设计仍然是一个根本性挑战,对精度和速度有重要影响[45, 16, 65, 7]。为了实现更高效和有效的模型架构,研究人员探索了不同的设计策略。为了增强特征提取能力,为骨干网络提出了各种基本计算单元,包括DarkNet[43, 44, 45]、CSPNet[2]、EfficientRep[27]和ELAN[56, 58]等。对于颈部网络,探索了PAN[35]、BiC[27]、GD[54]和RepGFPN[65]等来增强多尺度特征融合。此外,还研究了模型缩放策略[56, 55]和重参数化[10, 27]技术。尽管这些努力取得了显著进展,但从效率和精度角度对YOLO中各种组件进行全面检查的工作仍然缺乏。因此,YOLO中仍存在相当的计算冗余,导致参数利用率低下且效率不理想。此外,由此导致的模型能力受限也导致性能不佳,留下了大量提升精度的空间。
在本文中,我们旨在解决这些问题并进一步提升YOLO的精度-速度边界。我们的目标贯穿整个检测流程,包括后处理和模型架构。为此,我们首先通过提出一种用于无NMS YOLO的一致双重分配策略来解决后处理中的冗余预测问题,该策略结合了双重标签分配和一致匹配度量。它允许模型在训练期间享受丰富且协调的监督,同时在推理期间消除对NMS的需求,从而实现具有高效性的竞争性能。其次,我们提出了针对模型架构的全局效率-精度驱动模型设计策略,通过对YOLO中各种组件进行全面检查来实现这一目标。为了提高效率,我们提出了轻量级分类头、空间-通道解耦下采样和秩引导块设计,以减少明显的计算冗余并实现更高效的架构。为了提高精度,我们探索了大核卷积并提出了有效的部分自注意力模块,以增强模型能力,在低成本下挖掘性能提升的潜力。
基于这些方法,我们成功开发了一个具有不同模型规模的新一代实时端到端检测器系列,即YOLOv10-N/S/M/B/L/X。在标准目标检测基准测试集(如COCO[33])上进行的大量实验表明,我们的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少1.8倍和2.3倍的情况下,性能分别高出0.3 AP和0.5 AP。YOLOv10-M与YOLOv9-M/YOLO-MS具有相似的AP,但参数分别减少了23%/31%。我们希望我们的工作能够激发该领域的进一步研究和进步。

2 相关工作
实时目标检测器。实时目标检测旨在以低延迟对物体进行分类和定位,这对于实际应用至关重要。过去几年中,研究人员在开发高效检测器方面付出了大量努力[18, 51, 43, 32, 72, 69, 30, 29, 39]。特别是YOLO系列[43, 44, 45, 2, 19, 27, 56, 20, 59]脱颖而出,成为主流。YOLOv1、YOLOv2和YOLOv3确定了典型的检测架构,包括三个部分:骨干网络、颈部网络和头部网络[43, 44, 45]。YOLOv4[2]和YOLOv5[19]引入了CSPNet[57]设计来替换DarkNet[42],并结合了数据增强策略、增强的PAN和更多样化的模型规模等。YOLOv6[27]为颈部网络和骨干网络分别提出了BiC和SimCSPSPPF,并采用锚点辅助训练和自蒸馏策略。YOLOv7[56]引入了E-ELAN以实现丰富的梯度流路径,并探索了几种可训练的免费午餐方法。YOLOv8[20]提出了C2f构建块以进行有效特征提取和融合。Gold-YOLO[54]提供了先进的GD机制以增强多尺度特征融合能力。YOLOv9[59]提出了GELAN以改进架构,并提出了PGI以增强训练过程。
端到端目标检测器。端到端目标检测作为一种从传统流程中的范式转变而出现,提供了简化的架构[48]。DETR[4]引入了Transformer架构,并采用匈牙利损失实现一对一匹配预测,从而消除了手工设计的组件和后处理。自那以后,各种DETR变体被提出来增强其性能和效率[40, 61, 50, 28, 34]。Deformable-DETR[74]利用多尺度可变形注意力模块来加速收敛速度。DINO[67]将对比去噪、混合查询选择和前瞻两次方案集成到DETR中。RT-DETR[71]进一步设计了高效的混合编码器,并提出了不确定性最小化查询选择以提高准确性和延迟。实现端到端目标检测的另一条路线是基于CNN的检测器。可学习NMS[23]和关系网络[25]提出了另一种网络来移除检测器中的重复预测。OneNet[49]和DeFCN[60]提出了一对一匹配策略,以使用全卷积网络实现端到端目标检测。FCOS[73]引入了一个正样本选择器来选择最佳样本进行预测。
3 方法论
3.1 无NMS训练的一致双重分配
在训练过程中,YOLO系列[20, 59, 27, 64]通常利用TAL[14]为每个实例分配多个正样本。采用一对多分配可以产生丰富的监督信号,促进优化并实现优越的性能。然而,这导致YOLO依赖于NMS后处理,从而降低了部署时的推理效率。虽然之前的工作[49, 60, 73, 5]探索了一对一匹配来抑制冗余预测,但它们通常会增加额外的推理开销或产生次优性能。
在本文中,我们提出了一种针对YOLO的无NMS训练策略,该策略采用双重标签分配和一致匹配度量,同时实现高效能和竞争性能。
双重标签分配。与一对多分配不同,一对一匹配只为每个真实框分配一个预测,从而避免了NMS后处理。然而,这会导致较弱的监督,从而降低准确性和收敛速度[75]。幸运的是,这一缺陷可以通过一对多分配来弥补[5]。为了实现这一点,我们为YOLO引入了双重标签分配,以结合两种策略的最佳优势。具体来说,如图2(a)所示,我们为YOLO添加了另一个一对一头部。它保留了相同的结构,并采用了与原始一对多分支相同的优化目标,但利用一对一匹配来获得标签分配。在训练期间,两个头部与模型一起联合优化,使骨干网络和颈部网络能够享受一对多分配提供的丰富监督。在推理期间,我们丢弃一对多头部,并利用一对一头部进行预测。这使得YOLO能够实现端到端部署,而不会带来任何额外的推理成本。此外,在一对一匹配中,我们采用选择得分最高的预测作为匹配结果,这与匈牙利匹配[4]具有相同的性能,但额外训练时间更少。
一致匹配度量。在分配过程中,一对一和一对多方法都利用一个度量来定量评估预测和实例之间的一致性水平。为了实现两个分支的预测感知匹配,我们采用了一个统一的匹配度量,即:
m(α, β) = s · pα · IoU(ˆb, b)β, (1)
其中p是分类得分,b^和b分别表示预测框和真实框,s表示空间先验,指示预测锚点是否在实例内[20, 59, 27, 64]。α和β是两个重要的超参数,用于平衡语义预测任务和位置回归任务的影响。我们将一对多和一对一的度量分别表示为和。这些度量影响两个头部的标签分配和监督信息。
在双重标签分配中,一对多分支提供的监督信号比一对一分支丰富得多。直观地说,如果我们能够协调一对一头部和一对多头部之间的监督,我们可以将一对一头部优化到一对多头部优化的方向。因此,一对一头部可以在推理期间提供更高质量的样本,从而获得更好的性能。为此,我们首先分析两个头部之间的监督差距。由于训练过程中的随机性,我们从两个头部以相同值初始化并产生相同预测的情况开始检查,即一对一头部和一对多头部为每个预测-实例对生成相同的p和IoU。我们注意到,两个分支的回归目标不冲突,因为匹配的预测共享相同的目标,而未匹配的预测则被忽略。因此,监督差距在于不同的分类目标。给定一个实例,我们将其与预测的最大交并比(IoU)表示为 u ∗ u^* u∗,将一对多和一对一匹配的最大分数分别表示为 m o 2 m ∗ m^*_{o2m} mo2m∗和 m o 2 o ∗ m^*_{o2o} mo2o∗。假设一对多分支产生了正样本集 Ω \Omega Ω,且一对一分支根据度量 m o 2 o , i = m o 2 o ∗ m_{o2o,i}=m^*_{o2o} mo2

最低0.47元/天 解锁文章
367

被折叠的 条评论
为什么被折叠?



