目标检测 | yolov10 原理和介绍

相关系列:
目标检测 | yolov1 原理和介绍
目标检测 | yolov2/yolo9000 原理和介绍
目标检测 | yolov3 原理和介绍
目标检测 | yolov4 原理和介绍
目标检测 | yolov5 原理和介绍
目标检测 | yolov6 原理和介绍
目标检测 | yolov7 原理和介绍
目标检测 | yolov8 原理和介绍
目标检测 | yolov9 原理和介绍
目标检测 | yolov10 原理和介绍
论文:https://arxiv.org/pdf/2405.14458
代码:https://github.com/THU-MIG/yolov10

  1. 引言:介绍了实时目标检测的重要性以及YOLO系列在这一领域的主导地位。指出现有YOLO模型在后处理和模型架构上存在的不足,包括对非极大值抑制(NMS)的依赖以及模型设计的不彻底检查,这些问题限制了模型的性能和效率。
  2. 相关工作:回顾了实时目标检测器的发展,包括YOLO系列和其他基于CNN的检测器,以及端到端目标检测方法,如DETR及其变体。
  3. YOLOv10方法论:
  • 一致的双重分配(Consistent Dual Assignments):提出了一种新的训练策略,通过双重标签分配和一致的匹配度量实现无需NMS的YOLO训练,提高了推理效率。
  • 全面效率-准确性驱动的模型设计策略:对YOLO的各个组件进行了全面优化,包括轻量级分类头、空间-通道解耦下采样、基于排名引导的块设计、大核卷积和部分自注意力模块,以提高计算效率和模型性能。
  1. 实验:
  • 实验设置:使用COCO数据集进行训练和评估,采用与YOLOv8相同的训练设置。
  • 与现有方法的比较:YOLOv10在不同模型规模下实现了最先进的性能和效率,例如,YOLOv10-S在相似的AP下比RT-DETR-R18快1.8倍,参数和FLOPs分别减少了2.8倍。
  1. 模型分析:
  • 消融研究:验证了NMS-free训练和效率驱动模型设计的有效性。
  • 效率驱动模型设计分析:展示了轻量级分类头、空间-通道解耦下采样和基于排名引导的块设计对减少参数和计算量的贡献。
  • 准确性驱动模型设计分析:探讨了大核卷积和部分自注意力模块对提高性能的影响。
  1. 结论:YOLOv10通过提出的方法在实时端到端目标检测方面取得了显著的性能和效率,为未来在这一领域的研究提供了新的方向。
  2. 附录:提供了实现细节、一致匹配度量的详细推导、基于排名引导的块设计的算法细节、COCO数据集上的详细性能数据、YOLOv10在复杂场景下的可视化结果,以及对YOLOv10贡献、局限性和更广泛影响的讨论。

Abstract 摘要

 在过去的几年里,YOLO 已成为实时目标检测领域的主要范式,因为它们在计算成本和检测性能之间有效平衡。研究人员探索了 YOLO 的架构设计、优化目标、数据增强策略等,取得了显着进展。然而,对非最大抑制(NMS)进行后处理的依赖阻碍了YOLO的端到端部署,并对推理延迟产生不利影响。此外,YOLOs中各个组件的设计缺乏全面和彻底的检测,导致计算冗余明显,限制了模型的能力。它使次优效率,以及性能改进的巨大潜力。在这项工作中,我们的目标是从后处理和模型架构中进一步推进 YOLO 的性能效率边界。为此,我们首先给出了YOLOs无NMS训练的一致对偶分配,同时带来了具有竞争力的性能和较低的推理延迟。此外,我们介绍了 YOLO 的整体效率-精度驱动模型设计策略。我们从效率和准确性的角度全面优化了YOLOs的各个组成部分,大大降低了计算开销,提高了能力。我们工作的结果是新一代YOLO系列,用于实时端到端目标检测,称为YOLOv10。大量的实验表明,YOLOv10在各种模型尺度上达到了最先进的性能和效率。例如,在COCO上相似的AP下,我们的YOLOv10-S比RT-DETR-R18快1.8倍,同时参数数量和FLOPs减少了2.8倍。与 YOLOv9-C 相比,YOLOv10-B 在相同性能下的延迟减少了 46%,参数减少了 25%。代码:https://github.com/THU-MIG/yolov10。

1 Introduction 简介

 实时目标检测一直是计算机视觉领域的一个焦点,其目的是在低延迟下准确预测图像中物体的类别和位置。它被广泛应用于自动驾驶[3]、机器人导航[11]和目标跟踪[66]等各种实际应用中。近年来,研究人员专注于设计基于cnn的目标检测器来实现实时检测[18,22,43,44,45,51,12]。其中,YOLO 因其在性能和效率之间的良好平衡而越来越受欢迎 [2, 19 , 27 , 19 , 20 , 59, 54, 64 , 7, 65, 16,27]。YOLOs的检测流水线由两部分组成:模型正向过程和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]。然而,它们通常引入额外的推理开销或实现次优性能。
 此外,模型架构设计仍然是YOLOs的一个基本挑战,它对精度和速度有重要影响[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 中各种组件的全面检查。因此,YOLOs中仍然存在相当大的计算冗余,导致参数利用率低,效率次优。此外,由此产生的约束模型能力也会导致性能下降,从而为准确性改进留下了充足的空间。
 在这项工作中,我们旨在解决这些问题并进一步推进 YOLO 的精度-速度边界。我们在整个检测管道中同时针对后处理和模型架构。为此,我们首先通过为具有双重标签分配和一致匹配度量的无 NMS YOLO 呈现一致的双重分配策略来解决后处理中冗余预测问题。它允许模型在训练期间享受丰富和谐的监督,同时在推理过程中消除对 NMS 的需求,从而提高竞争性能。其次,通过对YOLOs中的各种组件进行全面检查,提出了模型体系结构的整体效率-精度驱动模型设计策略。为了提高效率,我们提出了轻量级分类头、空间通道解耦下采样和秩引导块设计,以减少所表现出的计算冗余并实现更高效的架构。为了准确性,我们探索了大内核卷积,并提出了有效的部分自注意力模块来增强模型能力,利用低成本性能改进的潜力。
 基于这些方法,我们成功地实现了一系列具有不同模型尺度的新的实时端到端检测器,即YOLOv10-N / S / M / B / L / X。在目标检测标准基准(即COCO[33])上的大量实验表明,我们的YOLOv10在各种模型尺度上的计算精度权衡方面的性能明显优于以前的最先进模型。如图1所示,在相同的性能下,我们的YOLOv10-S / X分别比RT-DETRR18 / 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 相比实现了 2 个相似的 AP,参数减少了 23% / 31%。我们希望我们的工作能够激发该领域的进一步研究和进步。
在这里插入图片描述

图 1:在延迟精度(左)和大小精度(右)权衡方面与其他比较。我们使用官方预训练模型测量端到端延迟。

2 Related Work 相关工作

  • Real-time object detectors 实时对象检测器。
     实时目标检测旨在对低延迟下的对象进行分类和定位,这对于现实世界的应用至关重要。在过去的几年里,人们投入了大量的努力来开发高效的检测器[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 以增强训练过程。
  • End-to-end object detectors.端到端对象检测器。
     端到端目标检测已经成为传统管道的范式转变,提供了精简的体系结构[48]。DETR[4]引入了变压器架构,采用匈牙利损失实现一对一匹配预测,从而消除了手工制作的组件和后处理。因此,已经提出了各种DETR变体来提高其性能和效率[40,61,50,28,34]。Deformable-DETR[74]利用多尺度可变形注意模块来加速收敛速度。DINO[67]将对比去噪、混合查询选择和展望两种方案集成到DETRs中。RT-DETR[71]进一步设计了高效的混合编码器,提出了不确定性最小查询选择来提高准确性和延迟。实现端到端对象检测的另一条线是基于 CNN 检测器。可学习的NMS[23]和关系网络[25]提出了另一种网络来去除检测器的重复预测。OneNet [49] 和 DeFCN [60] 提出了一种一对一匹配策略,以实现使用全卷积网络的端到端目标检测。FCOSps[73]引入了一个正样本选择器来选择最优样本进行预测。

3 Methodology 方法

3.1 Consistent Dual Assignments for NMS-free Training 无 NMS 训练的一致对偶分配

 在训练过程中,YOLO[20,59,27,64]通常利用TAL[14]为每个实例分配多个正样本。采用一对多分配会产生丰富的监督信号,促进优化并实现卓越的性能。然而,它需要 YOLO 依赖于 NMS 后处理,这导致部署的推理效率次优。虽然之前的工作 [49, 60, 73, 5] 探索了一对一的匹配来抑制冗余预测,但它们通常引入额外的推理开销或产生次优性能。在这项工作中,我们提出了一种用于具有双重标签分配和一致匹配度量的 YOLO 的无 NMS 训练策略,实现了高效率和具有竞争力的性能。

Dual label assignments 双重标签分配
 与一对多分配不同,一对一匹配只为每个基本事实分配一个预测,避免了 NMS 后处理。然而,它导致了弱监督,这导致了次优的准确性和收敛速度[75]。幸运的是,这种缺陷可以通过一对多分配来补偿[5]。为此,我们为 YOLO 引入双重标签分配来组合这两种策略的优点。具体来说,如图 2(a) 所示,我们为 YOLO 合并了另一个一对一的头。它保留了相同的结构,并采用与原始一对多分支相同的优化目标,但利用一对一匹配来获得标签分配。在训练期间,两个头部与模型联合优化,允许主干和颈部享受一对多分配提供的丰富监督。在推理过程中,我们丢弃一对多的头部并利用一对一的头部进行预测。这使得 YOLO 能够用于端到端部署,而不会产生任何额外的推理成本。此外,在一对一匹配中,我们采用前一种选择,实现了与匈牙利匹配[4]相同的性能,训练时间更少。
在这里插入图片描述

图 2:(a) 无 NMS 训练的一致双重分配。(b) YOLOv8-S 的一对多结果的 Top-1/5/10 中一对一分配的频率,默认使用 α o 2 m = 0.5 α_{o2m}=0.5 αo2m=0.5 β o 2 m = 6 β_{o2m}=6 βo2m=6 [20]。为了保持一致性, α o 2 o = 0.5 α_{o2o}=0.5 αo2o=0.5 β o 2 o = 6 β_{o2o}=6 βo2o=6。对于不一致, α o 2 o = 0.5 α_{o2o}=0.5 αo2o=0.5 β o 2 o = 2 β_{o2o}=2 βo2o=2

Consistent matching metric 一致的匹配指标
 在分配过程中,一对一和一对多的方法都利用度量来定量评估预测和实例之间的一致性水平。为了实现两个分支的预测感知匹配,我们采用了统一的匹配度量,即
m ( α , β ) = s ⋅ p α ⋅ I o U ( b ^ , b ) β , (1) m(α, β) = s · p^α · IoU(\hat{b}, b)^β ,\tag{1} m(α,β)=spαIoU(b^,b)β,(1)
 其中 p p p 是分类分数, b ^ \hat{b} b^ b b b 分别表示预测和实例的边界框。 s s s表示空间先验,指示预测的锚点是否在实例内[20,59,27,64]。 α α α β β β 是平衡语义预测任务和位置回归任务影响的两个重要超参数。我们将一对多和一对一指标分别表示为 m o 2 m = m ( α o 2 m , β o 2 m ) m_{o2m}=m(α_{o2m}, β_{o2m}) mo2m=m(αo2m,βo2m) m o 2 o = m ( α o 2 o , β o 2 o ) m_{o2o}=m(α_{o2o}, β_{o2o}) mo2o=m(αo2o,βo2o)。这些指标会影响两个头部的标签分配和监督信息。
 在双重标签分配中,一对多分支提供了比一对一分支更丰富的监督信号。直观地说,如果我们可以将一对一头部的监督与一对多头部的监督协调,我们可以将一对一头部优化到一对多头部优化的方向。因此,一对一头部在推理过程中可以提供更高质量的样本,从而获得更好的性能。为此,我们首先分析了两个头部之间的监督差距。由于训练期间的随机性,我们从使用相同值初始化的两个头开始开始检查并产生相同的预测,即一对一头和一对多头为每个预测实例对生成相同的 p p p I o U IoU IoU。我们注意到两个分支的回归目标不冲突,因为匹配的预测共享相同的目标,并且忽略不匹配的预测。因此,监督差距在于不同的分类目标。给定一个实例,我们将其最大的 I o U IoU IoU 表示为 u ∗ u^∗ u,类似的,最大的一对多和一对一匹配分数分别表示为 m o 2 m ∗ m^∗_{o2m} mo2m m o 2 o ∗ m^∗_{o2o} mo2o。假设一对多分支产生正样本 Ω Ω Ω,一对一分支选择第 i i i个预测,度量为 m o 2 o , i = m o 2 o ∗ m_{o2o,i}=m^*_{o2o} mo2o,i=mo2o ,那么我们可以为 j ∈ Ω j∈Ω jΩ 导出分类目标 t o 2 m , j = u ∗ ⋅ m o 2 m , j m o 2 m ∗ ≤ u ∗ t_{o2m,j}=u^*·\frac{m_{o2m},j}{m^*_{o2m}}≤u * to2m,j=umo2mmo2m,ju ,为任务对齐损失导出分类目标 t o 2 o , i = u ∗ ⋅ m o 2 o , i m o 2 o ∗ = u ∗ t_{o2o,i}=u^*·\frac{m_{o2o},i}{m^*_{o2o}}=u * to2o,i=umo2omo2o,i=u ,如[20,59,27,64,14]。因此,两个分支之间的监督差距可以由不同分类目标的1-Wasserstein距离[41]推导出来,即:
A = t o 2 o , i − Ⅱ ( i ∈ Ω ) t o 2 m , i + ∑ k ∈ Ω ∖ { i } t o 2 m , k , (2) A = t_{o2o,i} − Ⅱ(i ∈ Ω)t_{o2m,i} + { \sum_{k∈Ω \setminus \{i\}} {t_{o2m},k} } \tag{2}, A=to2o,i(iΩ)to2m,i+kΩ{ i}to2m,k,(2)
 我们可以观察到差距随着 t o 2 m , i t_{o2m},i to2m,i 的增加而减小,即 i i i Ω Ω Ω 内排名更高。当 t o 2 m , i = u ∗ t_{o2m},i=u^*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值