DEYO: DETR with YOLO for End-to-End Object Detection论文翻译

news/2024/7/10 1:49:09 标签: YOLO, 目标检测, 人工智能

 DEYO:DETR与YOLO用于端到端目标检测

摘要

        DETR的训练范式在很大程度上取决于在ImageNet数据集上预训练其骨干。然而,由图像分类任务和一对一匹配策略提供的有限监督信号导致DETR的预训练不充分的颈部。此外,在训练的早期阶段匹配的不稳定性会导致DETR的优化目标不一致。为了解决这些问题,我们设计了一种创新的培训方法,称为逐步培训。具体来说,在训练的第一阶段,我们采用一个经典的检测器,用一对多的匹配策略进行预训练,以初始化端到端检测器的主干和颈部。在训练的第二阶段,我们冻结了端到端检测器的主干和颈部,需要从头开始训练解码器。通过逐步训练的应用,我们引入了第一个利用纯卷积结构编码器的实时端到端对象检测模型,DETR with YOLO(DEYO)。在不依赖任何补充训练数据的情况下,DEYO在速度和准确性方面都超过了所有现有的实时对象检测器。此外,全面的DEYO系列可以使用单个8GB RTX 4060 GPU在COCO数据集上完成其第二阶段训练,大大降低了训练支出。源代码和预训练模型可在https://github.com/ouyanghaodong/DEYO上获得。

1.介绍

        目标检测是计算机视觉领域的一项基本任务,其任务是精确定位和识别图像或视频中的各种目标类别。这项技术是许多计算机视觉应用的基石,包括自动驾驶、视频监控、面部识别和对象跟踪。近年来,深度学习的进步,特别是基于卷积神经网络(CNN)的方法[12],已经在对象检测任务中取得了突破性的进展,成为该领域的主导技术。 

        DETR(Detection Transformer)[3]介绍了一种用于对象检测的端到端方法,包括CNN骨干,Transformer编码器和Transformer解码器。DETR采用匈牙利损失来预测一对一的对象集,从而消除了对非最大抑制(NMS)的手动调整组件的依赖,这通过端到端优化显着简化了对象检测管道。

        尽管基于Transformers(DETR)的端到端对象检测器在性能方面取得了显著的成功,但这些检测器通常依赖于在ImageNet数据集上预训练其骨干网络。如果选择新的主干,则需要在训练DETR或使用现有的预训练主干之前在ImageNet上进行预训练。这种依赖性限制了设计主干的灵活性,并增加了开发成本,当任务数据集与ImageNet显著偏离时,这种预训练策略可能会导致特定数据集上DETR的次优微调结果。

        此外,由于DETRs采用匈牙利匹配算法直接一对一的对象集预测,其解码器的复杂性是二次的输入序列的长度,在训练过程中接收直接监督信号的查询的数量基本上小于在经典的对象检测器使用一对多匹配策略。再加上图像分类任务的固有局限性,这导致DETR的颈部没有得到充分的预训练。此外,在DETR [3]训练的早期阶段,同一个查询经常在同一个图像中的不同时间与不同的对象匹配,导致优化过程既模糊又不稳定,从而破坏了预先训练的骨干。

        为了应对上述挑战,我们引入了一种创新的培训模式,称为“分步培训”。这种方法从自定义数据集的预训练阶段开始,利用经典检测器进行对象检测任务,从而避免了对额外数据集的需求。随后,在训练的第二阶段中,采用在初始阶段期间通过一对多匹配细化的经典训练检测器的主干和颈部来初始化端到端检测器。在此阶段,端到端检测器的主干和颈部组件被冻结,允许从头开始对解码器进行专门的重新训练。与传统的DETR训练方法相比,逐步训练方法在性能上有显着的提高。同时,这种逐步训练大大降低了检测器的训练成本:第一阶段的训练只需16GB的VRAM即可完成,而第二阶段只需8GB的VRAM。

        利用逐步训练方法,我们引入了第一个采用纯卷积架构作为编码器的实时端到端对象检测器,名为DETR [3]与YOLO [23-25](DEYO)。具体来说,我们首先在自定义数据集上训练一个强大的YOLO对象检测模型,以初始化DEYO的主干和颈部。随后,我们将预训练的颈部与简单的特征投影相结合,以构建DEYO的轻量级解码器。由于在初始阶段为DEYO的脊柱和颈部提供了高质量的预训练,DEYO在速度和准确性方面超过了当代最先进的实时目标探测器。

        DEYO-tiny在COCO [16] val 2017上实现了37.6%的AP,并在NVIDIA Tesla T4 GPU上以497 FPS运行,而DEYO-X则达到了53.7%的AP和65 FPS。此外,通过放弃对NMS的依赖,DEYO在CrowdHuman [27]数据集上展示了比YOLOv 8 [9]显着的性能增强。在没有额外训练数据的情况下,DEYO在速度和精度方面优于所有可比较的实时检测器,为实时目标检测建立了新的最先进技术。

        本文的主要工作如下:

        1.我们提出了第一种不需要额外数据集来训练DETR的训练方法:逐步训练。与传统的DETR训练方法相比,分步训练可以为探测器的颈部提供高质量的预训练,并从根本上解决训练初期由于二进制匹配不稳定而对骨干造成的损伤,从而显著提高探测器的性能。

        2.使用逐步训练,我们开发了第一个使用纯卷积结构作为编码器的实时端到端对象检测器DEYO,它在速度和准确性方面都超过了当前最先进的实时检测器,并且不需要后处理,因此其推理速度无滞后且稳定。

        3.我们进行了一系列的消融研究,以分析我们提出的方法和模型的不同组成部分的有效性。

2.相关工作

2.1检测变换器(DETR)

        Carion等人提出了一种基于变换器的端到端对象检测器,称为DETR(检测变换器)[3],由于其在对象检测中的端到端特性,引起了研究人员的极大关注。具体而言,DETR消除了传统检测管道中的锚和NMS组件,采用二分图匹配标签分配方法直接预测一对一的对象集合。该策略极大地简化了目标检测过程,消除了网络管理系统带来的性能瓶颈。然而,DETR遭受缓慢的收敛速度和查询歧义问题。为了解决这些问题,已经提出了DETR的几种变体,例如Deformable-DETR [34],Conditional-DETR [22],Anchor-DETR [30],DABDETR [18],DN-DETR [14]和DINO [31]。DeformableDETR提高了注意力机制的效率,并通过利用多尺度特征加速训练收敛。Conditional-DETR和Anchor-DETR降低了查询的优化难度。DAB-DETR引入了4D参考点,并逐层优化预测框。DN-DETR通过引入查询去噪来加速训练收敛。DINO改进了以前的工作,并取得了最先进的成果。然而,上述改进没有解决DETR中的高计算成本的问题。RT-DETR [20]设计了一种高效的混合编码器来取代原始的Transformer编码器,减少了DETR编码器中不必要的计算冗余,并提出了第一个端到端对象检测器。

2.2.You Only Look Once(YOLO

        多年来,YOLO [23-25]系列一直是最好的单级实时物体探测器类别之一。YOLO目标检测任务转化为回归问题,在单次向前传递中预测多个目标的位置和类别,实现高速目标检测。经过多年的发展,YOLO已经发展成为一系列性能良好的快速机型。基于锚点的YOLO方法包括YOLOv 4 [1]、YOLOv 5 [8]和YOLOv 7 [28],而无锚点的方法是YOLOX [7]、YOLOv 6 [13]和YOLOv 8 [9]。考虑到这些检测器的性能,无锚方法的性能与基于锚的方法一样好,锚盒不再是限制YOLO发展的主要因素。然而,所有YOLO变体都会生成许多冗余的边界框,NMS必须在预测阶段过滤掉这些边界框,这会显著影响检测器的准确性和速度,并与实时对象检测器的设计理论相冲突。

3.DEYO

3.1.模型概述

        图2展示了我们的3.DEYO 3.1.模型概述图2展示了我们提出的DEYO的全面架构。DEYO采用YOLOv8 [9]作为其一对多分支,其中YOLOv8包括一个主干,一个特征金字塔网络(FPN)[17]和一个路径聚合网络(PAN)[19],它们共同形成了颈部结构,此外还有一个能够在三个不同尺度上产生预测的头部。相反,DEYO的一对一分支使用了一个轻量级的纯卷积编码器和一个基于变换器的解码器。此外,我们还引入了与DINO [31]中使用的CDN组件相同的CDN组件,以提高模型的精度。

图2.我们消除了编码器的使用,而是采用颈部提供的多尺度特征{P3,P4,P5}。在特征投影之后,这些特征被用作编码器的输入,同时生成候选边界框并通过查询选择器对其进行过滤。随后,该信息被传递到具有辅助预测头的解码器中,从而实现用于生成边界框和分数的迭代优化。

3.2.一对多分支

        YOLO [23-25]模型的泛化能力和实用性在计算机视觉领域得到了广泛验证和广泛认可。即使没有额外的数据集的帮助,YOLO在处理复杂场景,执行多目标检测和适应实时应用方面也表现出卓越的性能。利用这些优势,我们选择YOLO作为我们DEYO模型的一对多分支,为DEYO提供高质量的、经过预先训练的骨干和颈部结构。该分支具有三个多尺度输出层,能够生成多达8,400个候选区域。与DETR模型所采用的一对一标签分配策略不同,YOLO在训练过程中受益于一对多标签分配策略,由于阳性样本的数量更高,因此在初始训练阶段可以对网络进行更全面的监督。这些候选区域的任务不仅仅是分类;它们面临着更复杂的目标检测挑战。这进一步培养了一个强大的颈部结构,为解码器提供丰富的多尺度信息,从而显着提高模型的整体性能。

3.3.高效的编码器

        与使用Transformer作为编码器的DETR [3]相反,DEYO利用了YOLO's Neck的纯卷积架构,该架构在初始阶段进行了预训练,以编码多尺度特征。然后,这些编码的特征被馈送到特征投影模块中,以将它们与隐藏的维度对齐。由于颈部的强大的多尺度特征提取能力,在一开始就通过有效的预训练获得,编码器可以为解码器提供高质量的键,值和建议的边界框。与DETR的随机初始化多尺度层和Transformer编码器相比,DEYO的纯卷积结构实现了显着的速度。这一进程可概述如下:

3.4.查询生成

        如图3所示,DEYO的查询生成方法与DETR的传统两阶段策略不同。具体来说,DEYO采用了一种解耦的边界框和嵌入生成方法,允许通过特征投影更有效地压缩颈部的多尺度信息。同时,DEYO继承了一个一对多的分支预先训练的边界框头部,将学习策略从密集过渡到稀疏,而不是从头开始训练。

图3.我们将边界框的生成与嵌入分离,通过增强的特征投影,可以更有效地压缩颈部发出的多尺度信息。

3.5.一对一分支

        如图所示,DEYO的一对一分支采用类似于DINO的架构,利用Transformer的自我注意机制来捕获查询间的关系,从而建立抑制冗余边界框的分数差异。在Transformer解码器的每一层中,查询被逐步细化,最终得到与对象一一对应的预测。这种设计大大简化了DEYO中的对象检测过程,消除了对非最大抑制(NMS)的依赖,确保了一致的推理速度。在DEYO训练的第二阶段,我们冻结了DEYO的骨干和颈部,以从根本上规避训练初始阶段的二分匹配不稳定性,否则可能会对预训练的骨干造成不良影响。受益于第一阶段提供的高质量初始化,DEYO实现了快速收敛和卓越的性能,即使在一对一分支中只监督几百个查询并从头开始训练。

4.实验

4.1.设置

       COCO为了评估我们的方法在对象检测任务中的性能,我们在广泛使用的Microsoft COCO上进行了实验[16]。我们使用train 2017训练DEYO,并使用val 2017评估性能。

        CrowdHuman为了评估与经典检测器相比DEYO在密集检测中的端到端有效性,我们在CrowdHuman上进行了实验[27]。我们利用了数据集中可用的全面全身注释,并对验证集进行了评估。在优化器相关参数方面,我们采用了与COCO相同的设置。所有实验后处理参考Iter-DeformableDETR [33]的论文,未作任何修改。

        Implementation Details在训练的第一阶段,我们从头开始遵循[9]训练的策略和超参数。在训练的第二阶段,我们使用了6层Transformer解码器作为DEYO的解码器。我们按照[9]超参数训练了检测器,但我们使用了AdamW [11]优化器。学习率设置为0.0001,权重衰减设置为0.0001。第二阶段的数据增强策略与第一阶段的训练相同,包括随机颜色失真、逆平移、翻转、拼接、马赛克等操作。在COCO [16]数据集上,除了DEYO-tiny使用100个查询,其他尺度的DEYO使用300个查询。所有评估均使用Tesla T4 GPU进行,并辅以8 vCPU Intel Xeon处理器(Skylake,IBRS)。实验使用PyTorch版本1.9.0,与TensorRT 8.6.1集成。

4.2.主要结果

        我们在表1中比较了缩放的DEYO与YOLOv 5 [8]、YOLOv 8 [9]和RT-DETR [21]。与YOLOv 8相比,DEYO在N、S和M尺度下的准确度显著提高了2.4 AP / 0.9 AP/ 0.5 AP,同时FPS提高了143% / 110% / 32%。在尺度L和X,DEYO继续表现出更好的准确性和速度之间的权衡。如表3所示,DEYO在密集场景中表现出色,具有实时速度。具体来说,DEYO-X已经达到了令人印象深刻的92.3 AP和43.3 mMR,在CrowdHuman中的召回率为97.3。

表1.主要结果。实时检测器和我们的DEYO使用一致的输入大小640,而端到端检测器使用输入大小(800,1333)。根据RT-DETR中提出的方法,在T4 GPU上使用TensorRT FP 16报告了端到端速度结果。我们不测试DETR的速度,因为它们不是真实的时间探测器。

表3.比较YOLOv8和DEYO在CrowdHuman(全身)上的性能。由于DEYO放弃了对NMS的依赖,性能得到了显著提高。

4.3.消融研究

        表5列出了在CrowdHuman [27]数据集上使用三种不同训练方法的YOLO [23-25]和DEYO模型的训练结果:YOLO方法、DETR方法和分步训练策略。研究结果表明,YOLOv 8 N [9]模型可以实现82.6的平均精度(AP),即使在不依赖补充数据集的情况下从头开始训练,也可以利用一对多训练策略提供的丰富监督信息。相比之下,DEYO-N模型受到一对一匹配训练策略的约束,提供有限的监督信号,尽管经历了与YOLO对应模型相同的迭代次数,但其性能上限为72.1AP。此外,当DEYO-N模型的主干使用YOLOv 8-N-CLS初始化,从ImageNet [5]预训练,并结合DETR训练策略时,DEYO-N的性能达到78.3AP。值得注意的是,实施分步培训显著提高了DEYO-N的绩效,提高了4.7AP。

表5.比较在CrowdHuman数据集上训练的不同方法,应该注意的是,在这个实验中,我们使用YOLOv8提供的工具计算了AP50指标。

        在表7中,我们检查了Neck组件提供的高质量多尺度特征的重要性,这些特征在DEYO模型的第一阶段进行了预训练。该模型的性能显着下降了18.8平均精度点,仅达到68.3平均精度,当单独使用预先训练的骨干,而没有预先训练的颈部逐步训练。这些发现清楚地表明,DEYO模型上级性能的关键不在于使用ImageNet之外的更复杂的预训练骨干,而在于第一阶段预训练的Neck,它用高质量的多尺度特征来描述模型。

表7.逐步训练的消融研究结果。(CrowdHuman)

        在表8中,我们分析了通过在训练的第二阶段期间冻结DEYO的主干和颈部从根本上解决早期二分图匹配的不稳定性而产生的增强,这积极地改善了早期二分图匹配的稳定性。这积极地影响了网络性能。与在整个第二阶段微调骨干和颈部相比,冻结的行为使DEYO的性能提高了1.1 AP。此外,由于DEYO的第一阶段涉及对COCO [16]数据集进行对象检测任务的预训练,因此它允许在训练的第二阶段实施更强大的数据增强策略。因此,与DETR不同,采用Mosaic数据增强不会导致性能下降;相反,它有助于0.2 AP的改进。

表8.探索冻结操作和镶嵌数据增强的影响。 

4.4.分析

        表6中给出的实验结果阐明了当不采用逐步训练策略时,DINO[31],H-DETR[10]和Group-DETR[4]的性能明显下降,与我们的方法形成鲜明对比。与我们的方法相比,参考文献[4,10,31]中提出的方法未能有效地应对由于缺乏监督信号而引发的培训挑战,同时最终导致培训支出膨胀。相反,如表9所示,我们的训练方案不仅避免了额外的训练开销,而且还大大减少了检测器的训练费用(Group-DETR所需的3300个查询可能会使训练持续时间增加六倍)。DEYO模型训练的初始阶段只需要16 GB的VRAM,而随后的阶段需要更少,8 GB的VRAM。对于培训资源受限的场景,DEYO可以停用CDN功能,以进一步降低VRAM要求。如表6所示,渐进式培训策略在第一阶段为DEYO提供了高质量的预培训基础,确保即使CDN停用,性能改进仍然是可管理的。

表6.DEYO-N 12-Epoch训练设置下不同方法的比较。与我们的方法相比,以前的方法不能有效地解决监督信号不足所带来的培训挑战,这也导致了额外的培训成本。

表9.YOLO和DEYO的详细配置以及GPU内存使用情况。

        如图6所示,在X尺度上,与RT-DETR-X相比,DEYO表现出一些差异,RT-DETR-X利用ImageNet [5]进行预训练。然而,这种差距可以归因于RT-DETR [21]并入了更有效的骨架。此外,我们认为COCO [16]数据集上的性能并不能完全概括检测器的优点和缺点。考虑到DEYO不需要额外的训练数据,它可以利用更强大的数据增强策略,并降低训练成本。因此,DEYO在应用于自定义数据集时具有独特的优势。在不改变YOLO原有骨架和颈部的情况下[23-25],DEYO毫不费力地实现了最先进的(SOTA)性能,展示了DEYO模型设计理念的即插即用特性。然而,我们观察到YOLOv 8 [9]的颈部和模型缩放策略与DEYO不完全一致。随着模型大小的增加,DEYO的性能增益逐渐减少。我们假设其中一个原因是YOLOv 8颈部的输出尺寸和DEYO解码器的隐藏尺寸之间的不匹配。这种差异凸显了DEYO模型尚未开发的潜力。我们相信,专为DEYO量身定制的骨干、颈部和模型扩展策略以及逐步训练可以将DEYO的性能提升到前所未有的水平。

图6.对DEYO和RT-DETR的综合比较表明,尽管在更大范围内存在特定差距,但DEYO不依赖额外的训练数据,并且大幅降低了训练成本。我们相信,DEYO在定制数据集方面具有独特的优势。

5.结论

        在本文中,我们创新性地开发了一种训练策略,不仅避免了对额外数据集的需求,而且成功地解决了以前的方法无法克服的问题:由于多尺度特征层训练不足而导致的性能下降。这种方法不仅提高了模型性能,还显著降低了训练成本。通过将我们精心设计的轻量级编码器与这一革命性策略相结合,我们推出了DEYO,它超越了所有现有的实时对象检测器,而无需依赖补充数据集。我们认为DEYO是经典检测器和基于查询的检测器之间融合的一个具体实例。我们相信,还有其他方法可以满足更高的精度要求。然而,DEYO的创新探测器设计带来了新的挑战,例如需要重新设计主干和颈部,以充分发挥DEYO的潜力。我们预计,未来的研究将为这些挑战提供有效的解决方案。


http://www.niftyadmin.cn/n/5412489.html

相关文章

电话网和IP网

介绍 电话网(Public Switched Telephone Network,PSTN)和IP网(Internet Protocol Network)是两种不同的通信网络架构和技术体系。 电话网(PSTN): PSTN 是一种传统的电话通信网络,基…

【Leetcode】3028.边界上的蚂蚁

题目描述 思路 题目中要求我们返回 蚂蚁返回到边界的次数。简单来想,就是蚂蚁原来的位置的一维坐标为0,然后经过,若干次移动,统计有几次坐标再次变为0的个数。 我们利用前缀和,像定义一个数组,算出前缀和数…

python中文件处理方法

一:open方法 在python中open方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。 注意:使用 open() 方法一定要保证关闭文件对象&…

猫毛过敏又不想扔掉猫怎么办?如何养猫?热门宠物空气净化器分享

养了猫咪一年多,忽然发现自己患上了过敏性鼻炎和结膜炎,就是那种一靠近猫咪就会不断打喷嚏、流鼻涕、流眼泪的症状。有时候还会感到眼睛发痒,发红。有没有什么好的方法治疗过敏性鼻炎呢? 医生建议,从根本上解决问题需…

React快速入门(核心概念+实战篇)

React快速入门 全部代码:https://github.com/ziyifast/front-demo React特点: 声明式设计:声明范式高效:使用VDOM,减少DOM的交互灵活:与已知的库或框架完好配合JSX:一种独立的语言,试…

TCP/IP模型中网络层和网络接口层的区别 通俗解释

问题 TCP/IP模型中的网络层和网络接口层有什么区别,或者说 ip地址和mac地址有什么区别,通过ip不就能找到要发送的设备了吗 为什么还需要mac地址用简单的语言来解释一下。 TCP/IP模型中的网络层和网络接口层主要的区别在于它们处理的信息和功能不同&…

K倍区间 刷题笔记

法一 前缀和暴力搜索 &#xff08;数据大会超时&#xff09; #include<iostream> #include<cstring> #include<algorithm> #include<cstdio> using namespace std; const int N100010; int a[N],s[N]; int n,k; int main(){ cin>>n>>…

CSS常用选择器及注意事项

CSS选择器是CSS中的基本概念&#xff0c;用于选择页面上要样式化的元素。下面详细介绍CSS中所有的选择器、使用方法及注意事项。 1. 基本选择器 通用选择器&#xff08;Universal Selector&#xff09;&#xff1a;*&#xff0c;选择页面上的所有元素。元素类型选择器&#x…