DETRs Beat YOLOs on Real-time Object Detection

DETRs Beat YOLOs on Real-time Object Detection

DETR在实时目标检测方面击败YOLO

摘要

YOLO系列已成为实时目标检测最受欢迎的框架,因其在速度和准确性之间具有合理的权衡。然而,我们观察到YOLO的速度和准确性受限于非极大值抑制(NMS)。近年来,基于Transformer的端到端检测器(DETRs)提供了一种替代方案,能够消除NMS。然而,高计算成本限制了其实用性,并且阻碍了其充分利用排除NMS的优势。本文提出了实时目标检测Transformer(RT-DETR),这是我们所知的首个实时端到端目标检测器,解决了上述难题。我们在两步中构建RT-DETR,借鉴了先进的DETR:首先,我们专注于在提高速度的同时保持准确性,然后在提高准确性的同时保持速度。具体而言,我们设计了一个高效的混合编码器,通过解耦尺度内交互和跨尺度融合来加速处理多尺度特征,从而提高速度。接着,我们提出了最小不确定性查询选择方法,向解码器提供高质量的初始查询,从而提高准确性。此外,RT-DETR通过调整解码器层数支持灵活的速度调节,能够适应各种场景而无需重新训练。我们的RT-DETR-R50/R101在COCO数据集上的AP分别为53.1%/54.3%,在T4 GPU上分别达到了108/74 FPS,超越了先前的YOLO在速度和准确性上的表现。此外,RT-DETR-R50在准确性上比DINO-R50提高了2.2%的AP,且FPS约提高了21倍。在使用Objects365进行预训练后,RT-DETR-R50/R101的AP分别为55.3%/56.2%。项目页面:https://zhao-yian.github.io/RTDETR。

1. 引言

实时目标检测是一个重要的研究领域,并且有广泛的应用,如目标跟踪、视频监控和自动驾驶等。现有的实时检测器通常采用基于CNN的架构,其中最著名的是YOLO检测器,因为其在速度和准确性之间具有合理的权衡。然而,这些检测器通常需要使用非极大值抑制(NMS)进行后处理,这不仅降低了推理速度,还引入了超参数,导致速度和准确性不稳定。此外,考虑到不同场景对召回率和准确性有不同的侧重点,需要仔细选择适当的NMS阈值,这也阻碍了实时检测器的发展。

最近,基于Transformer的端到端检测器(DETRs)由于其简化的架构和消除手工设计组件,受到了学术界的广泛关注。然而,它们的高计算成本使得其无法满足实时检测的要求,因此,去除NMS的架构并未表现出推理速度的优势。这启发我们思考,是否可以将DETRs扩展到实时场景,并在速度和准确性上超越先进的YOLO检测器,消除NMS所带来的延迟,以实现实时目标检测。为实现这一目标,我们重新思考DETRs,并对其关键组件进行详细分析,以减少不必要的计算冗余,并进一步提高准确性。

对于前者,我们观察到,尽管引入多尺度特征有助于加速训练收敛,但它导致输入编码器的序列长度显著增加。多尺度特征交互所带来的高计算成本使得Transformer编码器成为计算瓶颈。因此,实现实时DETR需要重新设计编码器。对于后者,之前的研究表明,难以优化的目标查询阻碍了DETRs的性能,并提出了查询选择方案,用编码器特征替换传统的可学习嵌入。然而,我们观察到,当前的查询选择直接采用分类得分来进行选择,忽略了检测器需要同时建模目标的类别和位置这一事实,而这两者决定了特征的质量。这不可避免地导致了低定位置信心的编码器特征被选为初始查询,从而带来了相当大的不确定性,影响了DETRs的性能。我们认为查询初始化是进一步提高性能的突破口。

在本文中,我们提出了实时目标检测Transformer(RT-DETR),这是我们所知的首个实时端到端目标检测器。为了快速处理多尺度特征,我们设计了一个高效的混合编码器,替代了传统的Transformer编码器,该编码器通过解耦尺度内交互和跨尺度特征融合,显著提高了推理速度。为了避免低定位置信心的编码器特征被选为目标查询,我们提出了最小不确定性查询选择方法,通过显式优化不确定性,向解码器提供高质量的初始查询,从而提高准确性。此外,RT-DETR通过DETR的多层解码器架构支持灵活的速度调节,能够适应各种实时场景而无需重新训练。

RT-DETR在速度和准确性之间达到了理想的平衡。具体而言,RT-DETR-R50在COCO val2017上达到53.1%的AP,并在T4 GPU上实现108 FPS,而RT-DETR-R101则达到了54.3%的AP和74 FPS,在速度和准确性上超越了以前的YOLO检测器中的L和X模型(见图1)。我们还通过扩展编码器和解码器并使用较小的骨干网络开发了规模化的RT-DETRs,这些模型在速度和准确性上超越了更轻量的YOLO检测器(S和M模型)。此外,RT-DETR-R50在准确性上比DINO-Deformable-DETR-R50提高了2.2%的AP(53.1% AP vs 50.9% AP),并且FPS约提高了21倍(108 FPS vs 5 FPS),显著提高了DETRs的准确性和速度。在使用Objects365进行预训练后,RT-DETR-R50/R101分别达到了55.3%/56.2%的AP,带来了令人惊讶的性能提升。更多的实验结果见附录。

主要贡献总结如下:(i)我们提出了首个实时端到端目标检测器RT-DETR,它不仅在速度和准确性上超越了以前的YOLO检测器,还消除了NMS后处理对实时目标检测的负面影响;(ii)我们定量分析了NMS对YOLO检测器速度和准确性的影响,并建立了一个端到端速度基准,以测试实时检测器的端到端推理速度;(iii)所提出的RT-DETR通过调整解码器层数支持灵活的速度调节,能够适应各种场景而无需重新训练。

2. 相关工作

2.1 实时目标检测器

YOLOv1是第一个基于CNN的单阶段目标检测器,实现了真正的实时目标检测。经过多年的持续发展,YOLO检测器已经超越了其他单阶段目标检测器,并成为实时目标检测的代名词。YOLO检测器可以分为两类:基于锚框的检测器和无锚框的检测器,它们在速度和准确性之间实现了合理的权衡,并广泛应用于各种实际场景。这些先进的实时检测器产生了大量重叠的框,需要进行NMS后处理,这会降低它们的速度。

2.2 端到端目标检测器

端到端目标检测器以其简化的管道而著称。Carion等人首次提出了基于Transformer的端到端检测器DETR,因其独特的特点而受到广泛关注。特别是,DETR消除了手工设计的锚框和NMS组件,取而代之的是使用二分匹配,并直接预测一对一的目标集合。尽管DETR具有明显的优势,但它也存在几个问题:训练收敛速度慢、计算成本高以及查询优化困难。为了解决这些问题,提出了许多DETR变种。

加速收敛:Deformable-DETR通过增强注意力机制的效率,利用多尺度特征加速了训练收敛。DAB-DETR和DN-DETR通过引入迭代细化方案和去噪训练进一步提高了性能。Group-DETR引入了分组式一对多分配。

降低计算成本:Efficient DETR和Sparse DETR通过减少编码器和解码器层数或更新查询的数量,减少了计算成本。Lite DETR通过以交替的方式减少低级特征的更新频率,提高了编码器的效率。

优化查询初始化:Conditional DETR和Anchor DETR降低了查询优化的难度。Zhu等人提出了用于二阶段DETR的查询选择,DINO则提出了混合查询选择以帮助更好地初始化查询。

当前的DETR仍然计算密集,且未设计为实时检测。我们的RT-DETR在减少计算成本方面进行了积极探索,并尝试优化查询初始化,超越了当前最先进的实时检测器。

3. 端到端检测器的速度

3.1 NMS分析

NMS(非极大值抑制)是目标检测中广泛使用的后处理算法,旨在去除重叠的输出框。NMS需要两个阈值:置信度阈值和IoU阈值。具体来说,置信度低于阈值的框会被直接过滤掉,而当两个框的IoU超过IoU阈值时,得分较低的框将被丢弃。这个过程会反复进行,直到每个类别的所有框都处理完毕。因此,NMS的执行时间主要取决于框的数量和两个阈值。

为了验证这一观察,我们使用YOLOv5(基于锚框的)和YOLOv8(无锚框的)进行分析。我们首先统计在相同输入下,通过不同的置信度阈值过滤输出框后剩余的框的数量。我们从0.001到0.25采样不同的置信度阈值,统计两种检测器剩余框的数量,并绘制条形图,从图中可以直观地看到,NMS对超参数敏感(见图2)。随着置信度阈值的增加,更多的预测框被过滤掉,需要计算IoU的剩余框数量减少,从而减少了NMS的执行时间。

此外,我们使用YOLOv8评估了在COCO val2017上的准确性,并测试了在不同超参数下NMS操作的执行时间。需要注意的是,我们采用的NMS操作是TensorRT中的efficientNMSPlugin,其中涉及多个内核,包括EfficientNMSFilter、RadixSort、EfficientNMS等,我们仅报告EfficientNMS内核的执行时间。我们在T4 GPU上使用TensorRT FP16进行速度测试,输入和预处理保持一致。超参数和相应的结果如表1所示。从结果中可以得出结论,随着置信度阈值的降低或IoU阈值的增加,EfficientNMS内核的执行时间会增加。原因在于,高置信度阈值直接过滤掉更多的预测框,而高IoU阈值则在每轮筛选中过滤掉较少的预测框。我们还在附录中可视化了使用不同NMS阈值的YOLOv8预测结果。结果表明,不适当的置信度阈值会导致检测器产生显著的假阳性或假阴性。当置信度阈值为0.001且IoU阈值为0.7时,YOLOv8取得了最佳的AP结果,但对应的NMS时间较高。考虑到YOLO检测器通常报告的是模型速度并排除NMS时间,因此需要建立一个端到端的速度基准来进行评估。

3.2 端到端速度基准

为了公平比较不同实时检测器的端到端速度,我们建立了一个端到端速度基准。考虑到NMS的执行时间受到输入的影响,因此有必要选择一个基准数据集,并计算多张图像的平均执行时间。我们选择COCO val2017作为基准数据集,并附加YOLO检测器的TensorRT NMS后处理插件,如前所述。具体来说,我们根据基准数据集上相应准确度的NMS阈值,测试检测器的平均推理时间,排除I/O和MemoryCopy操作。我们利用该基准测试了基于锚框的检测器YOLOv5和YOLOv7,以及无锚框检测器PP-YOLOE、YOLOv6和YOLOv8在T4 GPU上使用TensorRT FP16的端到端速度。根据结果(见表2),我们得出结论,基于无锚框的检测器在相同准确度下优于基于锚框的YOLO检测器,因为前者所需的NMS时间少于后者。原因在于,基于锚框的检测器产生的预测框数量多于无锚框的检测器(在我们测试的检测器中,前者的数量是后者的三倍)。
在这里插入图片描述

4. Real-time DETR

4.1 模型概述

RT-DETR由一个骨干网络、高效的混合编码器和带有辅助预测头的Transformer解码器组成。RT-DETR的概述如图4所示。具体来说,我们将骨干网络最后三个阶段的特征{S3, S4, S5}输入到编码器中。高效的混合编码器通过尺度内特征交互和跨尺度特征融合(参见4.2节)将多尺度特征转换为一序列图像特征。随后,采用最小不确定性查询选择方法,选择固定数量的编码器特征作为解码器的初始目标查询(参见4.3节)。最后,带有辅助预测头的解码器迭代优化目标查询,生成类别和框。
在这里插入图片描述
图4. RT-DETR概述该图展示了RT-DETR的架构,其中最后三个阶段的特征被输入到编码器中。高效的混合编码器通过基于注意力的同尺度特征交互(AIFI)和基于CNN的跨尺度特征融合(CCFF)处理多尺度特征。随后,不确定性最小查询选择方法从编码器特征中选出固定数量的特征,作为解码器的初始目标查询。解码器通过附加的预测头部,迭代优化目标查询,生成类别和边界框。

4.2 高效混合编码器

计算瓶颈分析
多尺度特征的引入加速了训练收敛并提高了性能。然而,尽管可变形注意力机制降低了计算成本,但序列长度的急剧增加仍使得编码器成为计算瓶颈。如Lin等人所报告的,编码器在Deformable-DETR中的GFLOPs占比为49%,但其对AP的贡献仅为11%。为了解决这一瓶颈,我们首先分析了多尺度Transformer编码器中的计算冗余。直观来看,包含丰富语义信息的高层特征是从低层特征中提取的,因此在拼接后的多尺度特征上进行特征交互是冗余的。因此,我们设计了一组不同类型编码器的变体,以证明同时进行尺度内和跨尺度特征交互是低效的,如图3所示。具体来说,我们使用DINO-Deformable-R50,并结合RT-DETR中使用的较小尺寸数据读取器和更轻的解码器进行实验,首先去除DINO-Deformable-R50中的多尺度Transformer编码器,作为变体A。然后,我们插入不同类型的编码器,基于A生成一系列变体,详细说明如下(每个变体的具体指标见表3):

  • A → B: 变体B在A中插入一个单尺度Transformer编码器,使用一层Transformer模块。多尺度特征共享编码器进行尺度内特征交互,然后拼接为输出。
  • B → C: 变体C基于B引入跨尺度特征融合,并将拼接后的特征输入多尺度Transformer编码器,进行同时的尺度内和跨尺度特征交互。
  • C → D: 变体D通过利用单尺度Transformer编码器进行尺度内交互,采用PANet风格结构进行跨尺度融合,解耦尺度内交互和跨尺度融合。
  • D → E: 变体E基于D增强尺度内交互和跨尺度融合,采用我们设计的高效混合编码器。

混合设计
基于上述分析,我们重新思考了编码器的结构,提出了一种高效的混合编码器,包含两个模块:基于注意力的尺度内特征交互(AIFI)和基于CNN的跨尺度特征融合(CCFF)。具体来说,AIFI通过仅在S5上执行尺度内交互,并使用单尺度Transformer编码器,从而进一步减少了变体D的计算成本。原因在于,应用自注意力操作于高层特征(具有更丰富的语义概念)可以捕捉到概念实体之间的联系,这有助于后续模块对物体的定位和识别。然而,低层特征的尺度内交互是不必要的,因为它们缺乏语义概念,且可能与高层特征的交互产生重复或混淆。为了验证这一观点,我们在变体D中仅在S5上进行尺度内交互,实验结果见表3(见行DS5)。与D相比,DS5不仅显著减少了延迟(快35%),还提高了准确性(AP提高了0.4%)。
CCFF是基于跨尺度融合模块优化的,它在融合路径中插入了由卷积层组成的多个融合块。融合块的作用是将两个相邻尺度的特征融合成一个新的特征,其结构如图5所示。融合块包含两个1×1卷积用于调整通道数,N个由RepConv组成的RepBlocks用于特征融合,两个路径的输出通过元素加法进行融合。我们将混合编码器的计算公式表示为:

在这里插入图片描述

其中,Flatten表示将S5的特征展平,Reshape表示将展平后的特征恢复为与S5相同的形状

4.3. 最小不确定性查询选择

为了减少在DETR中优化对象查询的难度,一些后续的研究工作提出了查询选择方案,这些方案的共同点是使用置信度分数来从编码器中选择前K个特征来初始化对象查询(或仅初始化位置查询)。置信度分数表示特征包含前景对象的可能性。然而,检测器需要同时建模对象的类别和位置,这两者决定了特征的质量。因此,特征的性能分数是一个潜在变量,它与分类和定位都存在联合关系。基于这一分析,当前的查询选择方法会导致选择的特征存在相当大的不确定性,从而导致解码器的初始化不理想,进而影响检测器的性能。

为了解决这个问题,我们提出了最小不确定性查询选择方案,该方案显式地构造并优化认识不确定性,以建模编码器特征的联合潜在变量,从而为解码器提供高质量的查询。具体来说,特征的不确定性 UU 被定义为定位 PP 和分类 CC 的预测分布之间的差异,如公式(2)所示。

为了最小化查询的不确定性,我们将不确定性集成到损失函数中,进行基于梯度的优化,如公式(3)所示。

为了分析最小不确定性查询选择的有效性,作者通过可视化在COCO val2017上的分类分数和IoU分数来展示选中特征的表现。具体方法是绘制分类分数大于0.5的散点图,其中紫色和绿色的点分别表示使用最小不确定性查询选择训练的模型和传统查询选择的模型选中的特征。图中的点越靠近右上角,表示对应的特征质量越高,即预测的类别和框越有可能描述真实对象。散点图的顶部和右侧密度曲线分别反映了这两种类型的点的数量分布。 通过这种方式,作者能够直观地展示采用最小不确定性查询选择后,选中的特征在分类准确性和定位准确性上的提升。

散点图中最显著的特征是紫色点集中在图形的右上角,而绿色点则集中在右下角。这表明最小不确定性查询选择能够产生更多高质量的编码器特征。此外,作者对两种查询选择方案进行了定量分析。结果显示,紫色点的数量比绿色点多138%,即绿色点的分类分数小于或等于0.5,这些可以被视为低质量特征。同时,紫色点的数量也比绿色点多120%,且这两类分数都大于0.5。这一结论也可以从密度曲线中得出,紫色和绿色之间的差距在图形的右上角最为明显。定量结果进一步证明,最小不确定性查询选择提供了更多具有准确分类和精确定位的特征,从而提高了检测器的准确性(参见第5.3节)。

在这里插入图片描述

图6. 选定编码器特征的分类和IoU得分紫色和绿色点分别表示从使用不确定性最小查询选择和常规查询选择训练的模型中选定的特征。

5. 实验

5.1. 与SOTA的比较

表2比较了RT-DETR与当前的实时检测器(YOLO系列)和端到端检测器(DETR系列),其中只比较了YOLO检测器的L和X模型,S和M模型的比较见附录。我们的RT-DETR和YOLO检测器共享相同的输入尺寸(640,640),而其他DETR使用的输入尺寸为(800,1333)。FPS是在T4 GPU上使用TensorRT FP16报告的,YOLO检测器使用官方预训练模型,并根据第3.2节提出的端到端速度基准进行测试。我们的RT-DETR-R50取得了53.1%的AP和108 FPS,而RT-DETR-R101取得了54.3%的AP和74 FPS,超越了相同规模的最先进YOLO检测器和使用相同骨干网络的DETR,无论是在速度还是准确性上。

与实时检测器的比较

我们比较了RT-DETR与YOLO检测器的端到端速度(见第3.2节)和准确性。我们将RT-DETR与YOLOv5 [11]、PP-YOLOE [40]、YOLOv6v3.0 [16](以下简称YOLOv6)、YOLOv7 [38]和YOLOv8 [12]进行了比较。与YOLOv5-L / PP-YOLOE-L / YOLOv6-L相比,RT-DETR-R50的准确性提高了4.1% / 1.7% / 0.3% AP,FPS提高了100.0% / 14.9% / 9.1%,并且参数数量减少了8.7% / 19.2% / 28.8%。与YOLOv5-X / PP-YOLOE-X相比,RT-DETR-R101的准确性提高了3.6% / 2.0%,FPS提高了72.1% / 23.3%,参数数量减少了11.6% / 22.4%。与YOLOv7-L / YOLOv8-L相比,RT-DETR-R50的准确性提高了1.9% / 0.2% AP,FPS提高了96.4% / 52.1%。与YOLOv7-X / YOLOv8-X相比,RT-DETR-R101的准确性提高了1.4% / 0.4% AP,FPS提高了64.4% / 48.0%。这表明我们的RT-DETR在实时检测性能方面达到了最先进水平。

与端到端检测器的比较

我们还将RT-DETR与使用相同骨干网络的现有DETR进行了比较。

分类得分

我们根据COCO val2017上相应准确性设置测试DINO-Deformable-DETR [44]的速度进行比较,即使用TensorRT FP16测试速度,输入尺寸为(800,1333)。表2显示,RT-DETR在速度和准确性上均优于所有使用相同骨干网络的DETR。与DINO-Deformable-DETR-R50相比,RT-DETR-R50的准确性提高了2.2% AP,速度提高了21倍(108 FPS vs 5 FPS),这两个方面均有显著提升。

5.2. 混合编码器的消融研究

我们评估了第4.2节中设计的各个变体的指标,包括AP(使用1×配置训练)、参数数量和延迟,结果如表3所示。与基准A相比,变体B的准确性提高了1.9% AP,延迟增加了54%。这证明了跨尺度特征交互的重要性,但单尺度Transformer编码器的计算开销较大。变体C在B的基础上提高了0.7% AP,延迟增加了20%。这表明跨尺度特征融合也是必要的,但多尺度Transformer编码器需要更高的计算成本。变体D相较于C提高了0.8% AP,但延迟减少了8%,表明解耦跨尺度交互和跨尺度融合不仅减少了计算开销,还提高了准确性。与变体D相比,DS5减少了35%的延迟,但提高了0.4% AP,证明低层特征的跨尺度交互并不是必须的。最后,变体E相较于D提高了1.5% AP,尽管参数数量增加了20%,但延迟减少了24%,使编码器更加高效。这表明我们的混合编码器在速度和准确性之间达到了更好的平衡。

5.3. 查询选择的消融研究

我们对不确定性最小化查询选择进行了一项消融研究,结果在使用1×配置的RT-DETR-R50上报告,结果如表4所示。RT-DETR中的查询选择根据分类得分选择前K个(K = 300)编码器特征作为内容查询,并将与所选特征对应的预测框作为初始位置查询。我们比较了两种查询选择方案在COCO val2017上的编码器特征,并计算了分类得分大于0.5以及分类和IoU得分均大于0.5的比例。结果表明,不确定性最小化查询选择不仅提高了高分类得分的比例(0.82% vs 0.35%),还提供了更多高质量的特征(0.67% vs 0.30%)。我们还评估了使用这两种查询选择方案训练的检测器在COCO val2017上的准确性,其中不确定性最小化查询选择提高了0.8% AP(48.7% AP vs 47.9% AP)。
在这里插入图片描述

在这里插入图片描述

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6. 局限性与讨论

局限性:尽管提出的RT-DETR在速度和准确性方面超越了具有相似规模的最先进的实时检测器和端到端检测器,但它与其他DETRs共享相同的局限性,即在小物体上的性能仍然逊色于强大的实时检测器。根据表2,RT-DETR-R50比YOLOv8-L(L模型)中的最高APval低0.5%,RT-DETR-R101比YOLOv7-X(X模型)中的最高APval低0.9%。我们希望在未来的工作中能够解决这个问题。

讨论:现有的大型DETR模型在COCO test-dev 排行榜上展示了令人印象深刻的性能。提出的RT-DETR在不同的尺度上保留了与其他DETRs相同的解码器,这使得将我们高准确率的轻量级检测器与预训练的大型DETR模型进行蒸馏成为可能。我们认为,这也是RT-DETR相对于其他实时检测器的一个优势,并且可能是未来研究的一个有趣方向。

7. 结论

在本研究中,我们提出了一种实时端到端检测器,称为RT-DETR,它成功地将DETR扩展到实时检测场景,并实现了最先进的性能。RT-DETR包含两个关键增强:高效的混合编码器,快速处理多尺度特征;以及最小化不确定性查询选择,提升初始物体查询的质量。此外,RT-DETR支持无需重新训练的灵活速度调节,并消除了由两个NMS阈值带来的不便,促进了其实际应用。RT-DETR及其模型缩放策略拓宽了实时物体检测的技术路线,为多样化的实时场景提供了超越YOLO的新可能性。我们希望RT-DETR能够投入实际应用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值