本文主要是介绍YOLOV10实时端到端目标检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
代码地址:GitHub - THU-MIG/yolov10: YOLOv10: Real-Time End-to-End Object Detection
论文地址:https://arxiv.org/pdf/2405.14458
本文介绍了YOLO系列目标检测器在实时和高效方面的优势,但是仍然存在一些缺陷,包括依赖非极大值抑制(NMS)后处理导致部署效率降低,以及模型架构设计还有待进一步优化。提出了一种一致双赋值策略( consistent dual assignment),用于无需NMS的YOLO训练,可以在保持检测性能的同时提高部署效率。提出了一种全面的高效-高精度驱动的模型设计策略,从效率和精度两个角度对YOLO的各个组件进行了优化设计。基于上述方法,提出了新一代实时端到端目标检测器YOLOv10,在不同模型规模下,YOLOv10都能实现业界最优的计算效率和检测精度权衡。在COCO数据集上进行了大量实验,结果表明YOLOv10在各种模型规模下均显著优于其他先进的检测器,如在相似mAP水平下,YOLOv10-S/X比RT-DETR-R18/R101加速1.8/1.3倍。
就在昨天yolo的第10个版本来了,是不是yolov9都还没有吃透,这紧接着yolov10就来了
Introduction
这篇文章主要讨论了两个方面来推进实时端到端目标检测任务中YOLO系列模型的性能-效率权衡:
提出了一种称为"一致双赋值( consistent dual assignment)"的方法,用于YOLO模型的无NMS训练。这种方法在训练时保留了one-to-many赋值的丰富监督信息,而在推理时则采用one-to-one赋值避免使用NMS后处理,从而获得更高的推理效率。
提出了一种"全面的效率-精度驱动"的模型设计策略。在效率方面,引入了轻量级分类头、空间-通道解耦下采样和基于rank-guided的块设计等技术减少计算冗余。在精度方面,探索了大核卷积和部分自注意力模块来提高模型能力。
Related Work
Real-time object detectors.回顾了YOLO系列模型的发展历程,包括YOLOv1到YOLOv9,以及其他一些重要的实时检测器如PPYOLOE、RTMDet、YOLO-MS、Gold-YOLO等。
End-to-end object detectors. 介绍了基于Transformer的DETR及其变体(如Deformable DETR、DINO、RT-DETR等)如何实现端到端目标检测。另一方面也提到了一些基于CNN的端到端检测器,如OneNet、DeFCN、FCOS等。
这部分概括了YOLO系列和一些其他实时端到端检测器的最新进展,为接下来提出的YOLOv10工作做铺垫。同时也指出了现有工作在后处理(依赖NMS)和模型架构设计方面的不足,为作者的工作方向提供了动机。
Methodology
Consistent Dual Assignments for NMS-free Training
3.1节介绍了作者提出的一种称为"一致双赋值"(Consistent Dual Assignments)的训练策略,使YOLO模型能够在训练时享有丰富的监督信号,同时在推理时免去NMS后处理,实现真正的端到端检测,提升部署的推理效率。主要内容包括:
双标签赋值(Dual Label Assignments)
为YOLO模型引入另一个one-to-one分支,与原有的one-to-many分支共同优化。前者避免了冗余预测,后者提供丰富监督。在推理时只使用one-to-one分支的预测。
与一对多分配不同,一对一匹配仅将一个预测分配给每个GT,从而避免了 NMS 后处理。然而,它会导致监督薄弱,从而导致精度和收敛速度欠佳。幸运的是,这种缺陷可以通过一对多分配来弥补。为了实现这一目标,作者为 YOLO 引入了双标签分配,以结合两种策略的优点。具体而言,如图2(a)所示。
作者为YOLOs加入了另一个一对一的头。它保留了与原来的一对多分支相同的结构并采用相同的优化目标,但利用一对一匹配来获得标签分配。在训练过程中,两个头部与模型共同优化,让backbone和neck享受一对多任务提供的丰富监督。在推理过程中,丢弃一对多的头部,并利用一对一的头部进行预测。这使 YOLO 能够进行端到端部署,而不会产生任何额外的推理成本。此外,在一对一匹配中,作者采用top one selection,这达到了与匈牙利匹配相同的性能,但额外的训练时间更少。
一致匹配度量(Consistent Matching Metric)
引入统一的匹配度量公式,使one-to-one分支的最佳正样本与one-to-many分支一致,从而两个分支可以协调优化,one-to-one分支获得改进的监督对齐。
其中表示分类得分,和分别表示prediction和instance的边界框。表示空间先验,指示预测的锚点是否在实例内。和是两个重要的超参数,用于平衡语义预测任务和位置回归任务的影响。将一对多和一对一指标分别表示为 和。这些指标会影响两个heads的标签分配和监督信息。
在双标签分配中,一对多分支比一对一分支提供更丰富的监督信号。直观地说,如果能够协调一对一head和一对多head的监督,就可以将一对一head优化到一对多head优化的方向。因此,一对一head可以在推理过程中提供更好的样本质量,从而获得更好的性能。为此,首先分析了两个head之间的监督差距。
由于训练过程中的随机性,一开始就用相同的值初始化两个head并产生相同的预测来启动检查,即一对一head和一对多head为每个预测-实例对生成相同的和。两个分支的回归目标并不冲突,因为匹配的预测共享相同的目标,并且不匹配的预测将被忽略。因此,监管差距在于不同的分类对象。
给定一个实例,将预测的最大表示为,最大的一对多和一对一匹配分数分别表示为 和。假设一对多分支产生正样本,一对一分支选择度量的第个预测,然后可以推导出分类目标对于,以及任务对齐损失。因此,两个分支之间的监督差距可以通过不同分类目标的1-Wasserstein距离得出,即
差距随着的增加而减小,即在内排名更高。当时达到最小值,即是中最好的正样本,如图2(a)所示。为了实现这一点,提出了一致的匹配指标,即和 ,这意味着。因此,一对多head的最佳正样本也是一对一head的最佳样本。因此,两个head可以一致、和谐地进行优化。为简单起见,默认取,即和。为了验证改进的监督对齐,计算了训练后一对多结果的前 1 / 5 / 10 内的一对一匹配对数。如图 2(b) 所示。在一致匹配指标下改进了对齐。更多的细节可以看论文的附录。
Holistic Efficiency-Accuracy Driven Model Design
3.2节介绍了作者提出的一种全面的效率-精度驱动的模型设计策略,旨在从效率和精度两个角度对YOLO模型的不同组件进行优化,以进一步推进YOLO的性能-效率边界。
Efficiency driven model design. YOLO 中的组件由stem、下采样层、stages with basic building blocks和head组成。stem产生的计算成本很少,因此对其他三个部分进行效率驱动的模型设计。
总结如下:
- 轻量级分类头-采用深度可分离卷积构建更高效的分类头,降低计算开销。
- 空间-通道解耦下采样-将下采样操作解耦为通道变换和空间降维两步,以获得更高效率。
- 基于rank-guided的块设计-分析网络各阶段的冗余程度,对冗余阶段采用更紧凑的基本块结构,如紧凑的逆残差块(CIB)。
(1) Lightweight classification head.在 YOLO 中,分类头和回归头通常共享相同的架构。但是,它们在计算开销方面表现出明显的差异。例如,YOLOv8-S中分类头(5.95G/1.51M)的FLOPs和参数数量分别为2.5×和2.4×回归头(2.34G/0.64M)。然而,在分析了分类误差和回归误差的影响(见表6)后,作者发现回归头对YOLO的性能具有更大的意义。因此,可以减少分类头的开销,而不必担心会严重损害性能。因此,作者简单地为分类头采用轻量级架构,它由两个深度可分离卷积组成,核大小为 3×3,后跟一个 1×1 卷积。
(2) Spatial-channel decoupled downsampling.YOLO 通常利用步幅为 2 的常规 3×3 标准卷积,同时实现空间下采样(从到)和通道转换(从到)。这引入了 的不可忽略的计算成本和 的参数量。相反,作者提出将空间缩减和信道增加操作解耦,从而实现更有效的下采样。具体来说,首先利用逐点卷积来调制通道维度,然后利用深度卷积进行空间下采样。这将计算成本降低到,参数计数为。同时,它在缩减采样过程中最大限度地保留了信息,从而在减少延迟的情况下实现了具有竞争力的性能。
(3) Rank-guided block design.YOLO通常对所有阶段都使用相同的基本构建块,例如YOLOv8中的瓶颈块。为了彻底检验YOLO的这种同质设计,作者利用intrinsic rank来分析每个阶段的冗余性。具体来说,作者计算每个阶段最后一个基本块中最后一个卷积的numerical rank,计算大于阈值的奇异值的数量。图 3(a)给出了YOLOv8的结果,表明深阶段和大模型容易表现出更多的冗余。这一观察结果表明,简单地对所有阶段应用相同的块设计对于最佳容量效率权衡来说是次优的。为了解决这个问题,作者提出了一种rank-guided block设计方案,旨在通过紧凑的架构设计来降低被证明是多余的阶段的复杂性。
作者首先提出了一种compact inverted block(CIB)结构,该结构采用廉价的深度卷积进行空间混合,采用高性价比的逐点卷积进行通道混合,如图3(b)所示。它可以作为高效的基本构建块,例如,嵌入到ELAN结构中。然后,作者提倡以rank-guided block分配策略,以在保持竞争力的同时实现最佳效率。
具体来说,给定一个模型,根据其内在ranks按升序对其所有阶段进行排序。进一步检查了用 CIB 替换leading stage的基本块的性能变化。如果与给定模型相比没有性能下降,将继续替换下一阶段,否则停止该过程。因此,作者可以跨阶段和模型规模实施自适应紧凑模块设计,在不影响性能的情况下实现更高的效率。附录中提供了算法的详细信息。
Accuracy driven model design. 进一步探索了精度驱动设计的大核卷积和自注意力,旨在以最小的成本提高性能。
总结如下:
- 大核卷积-在深层CIB中使用7x7大核深度可分离卷积,增大感受野,提高小目标检测能力。
- 部分自注意力(PSA)-提出PSA模块,通过减少注意力头数量降低计算开销,同时引入全局建模能力。
(1) Large-kernel convolution. 采用大核深度卷积是扩大感受野和增强模型能力的有效方法。然而,简单地在所有阶段利用它们可能会在用于检测小物体的浅层特征中引入污染,同时在高分辨率阶段也会带来大量的I/O开销和延迟。因此,作者建议在深阶段利用CIB中的大核深度卷积。具体来说,将 CIB 中第二个3×3深度卷积的核大小增加到7×7。此外,采用结构重参数化技术来引入另一个 3×3 深度卷积分支,以缓解优化问题,而不会产生推理开销。此外,随着模型大小的增加,其感受野自然扩大,使用大核卷积的好处会减少。因此,只对小模型尺度采用大核卷积。
(2) Partial self-attention (PSA).自注意力由于其卓越的全局建模能力而被广泛用于各种视觉任务。但是,它表现出很高的计算复杂性和内存占用。为了解决这个问题,鉴于普遍存在的注意力头冗余,作者提出了一种高效的部分自注意力(PSA)模块设计,如图3(c)所示。
具体来说,在 1×1 卷积之后将通道上的特征均匀地划分为两部分。只将一个部分输入到由多头自注意力模块(MHSA)和前馈网络(FFN)组成的中。然后将两个部分连接起来,并通过 1×1 卷积融合。此外,按照 [Levit: a vision transformer in convnet’s clothing for faster inference] 将query和key的维度赋值为 MHSA 中值的一半,并将LayerNorm替换为BatchNorm以实现快速推理。此外,PSA仅放置在分辨率最低的Stage 4之后,避免了自注意力的二次计算复杂性带来的过多开销。这样,就可以以较低的计算成本将全局表示学习能力整合到YOLO中,从而很好地增强了模型的能力,提高了性能。
Experiments
作者选择 YOLOv8作为基线模型,因为它具有值得称赞的延迟-准确性平衡以及它在各种模型大小中的可用性。作者采用一致的双重分配进行无NMS训练,并在此基础上进行整体效率精度驱动的模型设计,从而带来了作者的YOLOv10模型。YOLOv10 具有与 YOLOv8 相同的变体,即 N / S / M / L / X。此外,作者通过简单地增加YOLOv10-M的宽度比例因子,推导出了一个新的变体YOLOv10-B。作者在相同的从头开始训练设置下验证了COCO上提出的检测器。
Comparison with state-of-the-arts
如表 1 所示, YOLOv10 在各种型号规模上实现了最先进的性能和端到端延迟。作者首先将 YOLOv10 与基线模型(即 YOLOv8)进行比较。在 N / S / M / L / X 五种变体上,YOLOv10 实现了1.2% / 1.4% / 0.5% / 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.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×。
Model Analyses
Ablationstudy.
表 2 中介绍了基于 YOLOv10-S 和 YOLOv10-M 的消融结果。可以观察到,无 NMS 训练和一致的双重分配显着降低了 YOLOv10-S 的端到端延迟 4.63ms,同时保持了 44.3% AP 的竞争性能。此外,作者的效率驱动模型设计减少了 11.8 M 参数和 20.8 GFLOPs,YOLOv10-M 的延迟大幅降低了 0.65ms,很好地显示了其有效性。此外,作者的精度驱动模型设计在 YOLOv10-S 和 YOLOv10-M 上实现了 1.8 AP 和 0.7 AP 的显着改进,仅单独只有 0.18 毫秒和 0.17 毫秒的延迟开销,这很好地证明了其优势。
AnalysesforNMS-freetraining.
Dual label assignments.作者提出了无NMS的YOLO的双标签分配,既可以在训练过程中带来对一对多(o2m)分支的丰富监督,又可以在推理过程中带来一对一(o2o)分支的高效。根据 YOLOv8-S(即表 2 中的 #1)验证其优势。具体来说,作者分别引入了仅使用 o2m 分支和仅使用 o2o 分支的训练基线。如表 3 所示,作者的双标签分配实现了最佳的AP-延迟权衡。
Consistent matching metric. 作者引入了一致的匹配指标,使一对一head与一对多head更加和谐。基于 YOLOv8-S(即表 2 中的 #1)在不同的和下验证了它的益处。如表4所示,建议的一致匹配指标,即和 ,可以达到最优性能,其中,。这种改进可归因于监督差距的缩小(方程(2)),这改善了两个分支之间的监督一致性。此外,所提出的一致匹配指标消除了对穷举超参数调整的需要,这在实际场景中很有吸引力。
Analysesforefficiencydrivenmodeldesign.
通过实验逐步纳入基于YOLOv10-S/M的效率驱动设计元素。作者的基线是 YOLOv10-S/M 模型,没有效率精度驱动的模型设计,即表 2 中的 #2/#6。如表5所示,每个设计组件,包括轻量级分类头、空间通道解耦下采样和rank-guided模块设计,都有助于减少参数计数、FLOPs和延迟。
重要的是,这些改进是在保持竞争性能的同时实现的。
Lightweight classification head.根据表 5 中 #1 和 #2 的 YOLOv10-S 分析了预测的类别和局部误差对性能的影响。具体来说,通过一对一的分配将预测与实例进行匹配。然后,将预测的类别分数替换为实例标签,从而得到的没有分类误差。同样,将预测的位置替换为实例的位置,从而生成没有回归误差。如表6所示,远高于,揭示了消除回归误差可以实现更大的改进。因此,性能瓶颈更多地在于回归任务。因此,采用轻量级分级头可以在不影响性能的情况下实现更高的效率。
Spatial-channel decoupled downsampling.为了提高效率,作者将下采样操作解耦,其中通道维度首先通过逐点卷积 (PW) 增加,然后通过深度卷积 (DW) 降低分辨率,以实现最大的信息保留。作者将其与基于表5中#3的YOLOv10-S的DW空间缩减然后PW通道调制的基线方式进行了比较。如表7所示,作者的下采样策略通过减少下采样过程中的信息丢失,实现了0.7%的AP改善。
Compact inverted block (CIB).作者引入 CIB 作为紧凑的基本构建块。根据表 5 中 #4 的 YOLOv10-S 验证其有效性。具体而言,作者引入倒置残差块(IRB) 作为基线,其可实现次优 43.7% AP,如表 8 所示。然后,作者在它后面附加一个 3×3 的深度卷积 (DW),表示为“IRB-DW”,它带来 0.5% 的 AP 改善。与“IRB-DW”相比,作者的CIB以最小的开销,进一步实现了0.3%的AP改进,表明了它的优势。
Rank-guided block design.作者引入了rank-guided块设计,自适应集成紧凑的块设计,以提高模型效率。根据表 5 中 #3 的 YOLOv10-S 验证其优势。根据内在rank按升序排序的阶段是阶段 8-4-7-3-5-1-6-2,如图 3 所示。如表9所示,当逐渐用高效的CIB替换每个阶段的bottleneck block时,作者观察到从阶段7开始的性能下降。因此,在Stage 8和4中,固有rank较低,冗余度较多,因此可以在不影响性能的情况下采用高效的模块设计。这些结果表明,rank-guided块设计可以作为提高模型效率的有效策略。
Analyses for accuracy driven model design.
精度驱动模型设计的分析。本文介绍了基于YOLOv10-S/M的精度驱动设计元素的逐步集成结果。作者的基线是 YOLOv10-S/M 模型,在纳入了效率驱动设计后,即表 2 中的 #3/#7。如表10所示,采用大内核卷积和PSA模块,在0.03ms和0.15ms的最小延迟增加下,YOLOv10-S的性能分别提高了0.4%和1.4%。请注意,YOLOv10-M 不采用大核卷积(参见表 12)。
Large-kernelconvolution.作者首先根据表 10 中 #2 的 YOLOv10-S 研究了不同内核大小的影响。如表11所示,性能随着内核大小的增加而提高,并在7×7的内核大小附近停滞,表明了大感受野的好处。此外,在训练过程中去除重参数化分支可实现0.1%的AP劣化,显示出其优化效果。此外,作者基于YOLOv10-N / S / M检查了跨模型尺度的大核卷积的好处。如表12所示,由于YOLOv10-M固有的大感受野,它对大型模型(即YOLOv10-M)没有带来任何改进。因此,作者只对小模型采用大核卷积,即YOLOv10-N/S。
Partialself-attention(PSA).作者引入了PSA,通过以最低的成本整合全局建模能力来提高性能。作者首先根据表 10 中 #3 的 YOLOv10S 验证其有效性。具体来说,作者引入了transformer模块,即MHSA,然后是FFN,作为基线,表示为“Trans.”。如表13所示,与它相比,PSA带来了0.3%的AP改善,延迟降低了0.05ms。性能的提高可归因于通过减轻注意力头的冗余,缓解了自注意力中的优化问题。此外,作者还研究了不同的影响。如表 13 所示,将 提高到2 AP 可提高 0.2%,但延迟开销为 0.1ms。因此,默认将设置为 1,以增强模型能力,同时保持高效率。
这篇关于YOLOV10实时端到端目标检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!