DETRs Beat YOLOs on Real-time Object Detection
Abstract
YOLO系列已成为实时目标检测最流行的框架,因为它在速度和精度之间进行了合理的权衡。然而,我们观察到nnms对yolo的速度和准确性产生了负面影响。最近,端到端基于transformer的检测器(DETRs)为消除NMS提供了一种替代方案。然而,高昂的计算成本限制了它们的实用性,阻碍了它们充分发挥排除NMS的优势。在本文中,我们提出了实时检测transformer(RT-DETR),这是我们所知的第一个解决上述困境的实时端到端目标检测器。我们在先进的DETR基础上分两步构建RT-DETR:首先我们专注于在提高速度的同时保持精度,其次是在提高精度的同时保持速度。具体而言,我们设计了一种高效的混合编码器,通过解耦尺度内相互作用和跨尺度融合来快速处理多尺度特征,以提高速度。然后,我们提出了不确定性最小的查询选择,为解码器提供高质量的初始查询,从而提高准确率。此外,RT-DETR支持灵活的速度调整,通过调整解码器层的数量,以适应各种场景,而无需重新训练。我们的RT-DETR-R50 / R101在COCO上实现53.1% / 54.3%的AP,在T4 GPU上实现108 / 74 FPS,在速度和精度方面都优于以前先进的yolo。此外,RT-DETR-R50在精度上比DINO-R50高出2.2%,在FPS上高出约21倍。使用Objects365预训练后,rtder - r50 / R101达到55.3% / 56.2% AP。项目页面:https://zhao-yian.github.io/RTDETR。
1.Introduction
实时目标检测是一个重要的研究领域,具有广泛的应用,如目标跟踪[43]、视频监控[28]、自动驾驶[2]等。现有的实时探测器一般采用基于cnn的架构,YOLO检测器由于其在精度和速度方面合理的平衡成为其中最受欢迎的检测器。然而,这些检测器通常需要非最大抑制(NMS)进行后处理,这不仅降低了推理速度,而且还引入了导致速度和准确性不稳定的超参数。此外,考虑到不同的场景对召回率和准确率的重视程度不同,有必要仔细选择合适的NMS阈值,这阻碍了实时检测器的发展。
最近,端到端基于transformer的检测器(DETRs)[4,17,23,27,36,39,44,45]由于其精简的架构和消除手工制作的组件而受到学术界的广泛关注。然而,它们的高计算成本使它们无法满足实时检测要求,因此无nms的架构并没有显示出推理速度的优势。这激发了我们探索DETRs是否可以扩展到实时场景,并在速度和精度上超越先进的YOLO检测器,消除NMS对实时对象检测造成的延迟。
为了实现上述目标,我们重新思考了DETR并且对细节部分进行了仔细分析来降低计算冗余并进一步提高检测精度。对于前者,我们观察到,尽管引入多尺度特征有利于加速训练收敛[45],但它会导致输入编码器的序列长度显著增加。多尺度特征交互导致的高计算成本使transformer编码器成为计算瓶颈。因此,实现实时DETR需要重新设计编码器。对于后者,先前的研究[42,44,45]表明,难以优化的对象查询阻碍了der的性能,并提出了查询选择方案,以编码器特征取代传统的可学习嵌入。然而,我们观察到目前的查询选择直接采用分类分数进行选择,忽略了检测器需要同时对对象的类别和位置进行建模这一事实,这两者决定了特征的质量。这不可避免地导致选择具有低定位置信度的编码器特征作为初始查询,从而导致相当程度的不确定性并损害detr的性能。我们将查询初始化视为进一步提高性能的一个突破。
在本文中,我们提出了实时检测transformer(RT-DETR),这是我们所知的第一个实时端到端对象检测器。为了快速处理多尺度特征,我们设计了一种高效的混合编码器来取代传统的Transformer编码器,该编码器通过解耦不同尺度特征的尺度内交互和跨尺度融合,显著提高了推理速度。为了避免选择定位置信度低的编码器特征作为对象查询,我们提出了最小不确定性查询选择,通过显式优化不确定性为解码器提供高质量的初始查询,从而提高了精度。此外,RT-DETR支持灵活的速度调整,以适应各种实时场景,而无需重新训练,这要归功于DETR的多层解码器架构。
RT-DETR实现了速度和精度之间的理想权衡。具体而言,rt - der - r50在COCO val2017上实现了53.1%的AP,在T4 GPU上实现了108 FPS,而rtder - r101实现了54.3%的AP和74 FPS,在速度和精度方面都优于先前先进的L和X型号的YOLO检测器,图1。我们还通过使用更小的骨干缩放编码器和解码器来开发缩放RT-DETRs,其性能优于较轻的YOLO检测器(S和M型号)。此外,RT-DETR-R50在精度上优于dino - detr - r50 2.2% (53.1% AP对50.9% AP),在FPS上优于dino - detr - r50约21倍(108 FPS对5 FPS),显著提高了detr的精度和速度。使用Objects365预训练后[35],rtder - r50 / R101达到55.3% / 56.2%的AP,性能得到了惊人的提升。更多的实验结果在附录中提供。
主要贡献如下:(i)提出了第一个实时端到端目标检测器RTDETR,该检测器不仅在速度和精度上优于先前先进的YOLO检测器,而且消除了NMS后处理对实时目标检测的负面影响;(ii)定量分析NMS对YOLO检测器速度和精度的影响,建立端到端速度基准,测试实时检测器的端到端推理速度;(iii).建议的RT-DETR通过调整解码器层的数量来支持灵活的速度调整,以适应各种场景而无需重新训练。
2. Related Work
2.1 Real-time Object Detectors
YOLOv1[31]是第一个基于cnn实现真正实时目标检测的单级目标检测器。经过多年的不断发展,YOLO探测器已经超越了其他单级目标探测器[21,24],成为实时目标探测器的代名词。YOLO检测器可以分为基于anchor的[1,11,15,25,29,30,37,38]和无anchor的[10,12,16,40]两类,它们在速度和精度之间实现了合理的权衡,广泛应用于各种实际场景。这些先进的实时检测器产生许多重叠的盒子,需要NMS后处理,这减慢了它们的速度。
2.2 End-to-end Object Detectors
端到端对象检测器以其流线型管道而闻名。Carion等[4]首先提出了基于Transformer的端到端检测器,称为DETR,该检测器因其独特的特性而受到广泛关注。特别是,DETR消除了手工设计的anchor和NMS组件。相反,它采用二部图匹配,直接预测一对一的对象集。尽管有明显的优势,但DETR也存在一些问题:训练收敛速度慢、计算成本高、查询难以优化。已经提出了许多DETR变体来解决这些问题。
加速收敛。Deformable-DETR[45]通过提高注意机制的效率,加速了训练与多尺度特征的收敛。DAB-DETR[23]和DN-DETR[17]通过引入迭代细化方案和去噪训练进一步提高了性能。Group-DETR[5]引入了组智能一对多分配。
降低计算成本。高效DETR[42]和稀疏DETR[33]通过减少编码器和解码器层的数量或更新查询的数量来降低计算成本。Lite DETR[18]通过交错的方式降低底层特征的更新频率来提高编码器的效率。
优化query初始化 条件DETR[27]和锚定DETR[39]降低了查询的优化难度。Zhu等[45]提出了两阶段DETR的查询选择,DINO[44]提出了混合查询选择,以帮助更好地初始化查询。目前的der仍然是计算密集型的,并且不是为了实时检测而设计的。我们的RT-DETR大力探索计算成本降低,并尝试优化查询初始化,优于最先进的实时检测器。
3.End-to-end Speed of Detectors
3.1 Analysis of NMS
NMS是一种广泛应用于目标检测的后处理算法,用于消除输出框重叠。
NMS需要两个阈值:置信度阈值和IoU阈值。具体来说,分数低于置信度阈值的盒子直接被过滤掉,当任意两个盒子的IoU超过置信度阈值时,分数较低的盒子将被丢弃。这个过程迭代地执行,直到每个类别的所有盒子都被处理完。因此,NMS的执行时间主要取决于盒子的数量和两个阈值。为了验证这一观察结果,我们利用YOLOv511和YOLOv812进行分析。
我们首先对相同输入上具有不同置信度阈值的输出框过滤后剩余的框数进行计数。我们选取0.001到0.25的值作为置信度阈值,以计算两个检测器的剩余框数,并将它们绘制在条形图上,这直观地反映了NMS对其超参数的敏感性,如图2所示。随着置信度阈值的增大,更多的预测框被过滤掉,需要计算IoU的剩余框数量减少,从而减少了NMS的执行时间。此外,我们使用YOLOv8评估了COCO val2017上的准确性,并测试了NMS操作在不同超参数下的执行时间。注意,我们采用的NMS操作是指TensorRT efficientNMSPlugin,它涉及多个内核,包括EfficientNMSFilter、RadixSort、EfficientNMS等,我们只报告了EfficientNMS内核的执行时间。我们使用TensorRT FP16在T4 GPU上测试速度,输入和预处理保持一致。超参数及其结果如表1所示。从结果中,我们可以得出结论,随着置信度阈值的降低或IoU阈值的增加,EfficientNMS内核的执行时间会增加。原因是高置信度阈值直接过滤掉了更多的预测框,而高IoU阈值在每轮筛选中过滤掉的预测框更少。我们还在附录中可视化了YOLOv8在不同NMS阈值下的预测结果。结果表明,不适当的置信阈值会导致检测器产生显著的假阳性或假阴性。YOLOv8的置信度阈值为0.001,IoU阈值为0.7,AP效果最好,但相应的NMS时间较高。考虑到YOLO检测器通常报告模型速度而不包括NMS时间,因此需要建立端到端的速度基准。
3.2 End-to-end Speed Benchmark
为了能够公平地比较各种实时检测器的端到端速度,我们建立了端到端速度基准。考虑到NMS的执行时间受输入的影响,有必要选择一个基准数据集,计算跨多个图像的平均执行时间。我们选择COCO val2017[20]作为基准数据集,并附加了上面提到的TensorRT对YOLO检测器的NMS后处理插件。具体来说,我们根据基准数据集上相应精度的NMS阈值测试检测器的平均推理时间,不包括I/O和MemoryCopy操作。我们利用该基准测试了基于锚点的探测器YOLOv5[11]和YOLOv7[38]以及无锚点探测器PP-YOLOE[40]、YOLOv6[16]和YOLOv8[12]在T4 GPU上使用TensorRT FP16的端到端速度。根据结果(参见表2),我们得出结论,对于YOLO检测器,无锚点检测器在同等精度下优于基于锚点的检测器,因为前者比后者需要更少的NMS时间。原因是基于锚点的检测器比无锚点的检测器产生更多的预测框(在我们测试的检测器中是三倍多)。
4. The Real-time DETR
4.1 Model Overview
RT-DETR由主干、高效混合编码器和带辅助预测头的变压器解码器组成。图4展示了RT-DETR的概述。具体来说,我们将主干最后三个阶段的特征{S3,S4,S5}输入到编码器中。高效的混合编码器通过尺度内特征交互和跨尺度特征融合将多尺度特征转换为一系列图像特征(参见第4.2节)。随后,使用最小不确定性查询选择来选择固定数量的编码器特征作为解码器的初始对象查询(参见第4.3节)。最后,具有辅助预测头的解码器迭代优化对象查询以生成类别和框。
4.2 Efficient Hybrid Encoder
计算瓶颈分析。多尺度特征的引入加速了训练收敛,提高了性能[45]。然而,尽管可变形注意力降低了计算成本,但序列长度的急剧增加仍然使编码器成为计算瓶颈。Lin等人[19]报道,编码器占gflop的49%,但在deform - detr中仅贡献11%的AP。为了克服这一瓶颈,我们首先分析了多尺度变压器编码器中存在的计算冗余。直观上,从底层特征中提取包含对象丰富语义信息的高层特征,使得在串联的多尺度特征上进行特征交互变得多余。因此,我们设计了一组具有不同类型编码器的变体来证明内在尺度和交叉尺度的特征交互是有效的,图3。特别地,我们使用RT-DETR中使用的更小尺寸的数据读取器和更轻的解码器的dino - deformation - r50进行实验,并首先去掉dino - deformation - r50中的多尺度Transformer编码器作为变体A。然后,在a的基础上插入不同型号的编码器,产生一系列变型,具体阐述如下(各变型的详细指标见表3):
-
A→B:变体B在A中插入一个单量程Transformer编码器,A使用一层Transformer模块。多尺度特征共享编码器进行尺度内特征交互,然后拼接作为输出。
-
B→C:变体C在B的基础上引入跨尺度特征融合,并将拼接后的特征馈送到多尺度Transformer编码器中,同时进行尺度内和跨尺度特征交互。
-
C→D:变体D将尺度内相互作用和跨尺度融合解耦,前者采用单尺度Transformer编码器,后者采用panet风格[22]结构。
-
D→E:变体E在D的基础上增强尺度内相互作用和跨尺度融合,采用我们设计的高效混合编码器。
混合设计。基于以上分析,我们重新思考了编码器的结构,提出了一种高效的混合编码器,该编码器由两个模块组成,即基于注意力的尺度内特征交互(AIFI)和基于cnn的跨尺度特征融合(CCFF)。具体来说,AIFI通过使用单尺度变压器编码器仅在S5上执行尺度内交互,进一步降低了基于变量D的计算成本。这是因为将自关注操作应用于语义概念更丰富的高级特征,抓住了概念实体之间的联系,便于后续模块对对象的定位和识别。然而,由于缺乏语义概念以及与高级特征交互的重复和混淆的风险,低级特征的尺度内交互是不必要的。为了验证这一观点,我们只对变量D中的S5进行尺度内相互作用,实验结果报告于表3(见行)。和D相比较,不仅显著降低了延迟(快了35%),而且提高了准确性(提高了0.4%)。CCFF基于跨尺度融合模块进行优化,该模块在融合路径中插入多个由卷积层组成的融合块。融合块的作用是将两个相邻的尺度特征融合为一个新的特征,其结构如图5所示。融合块包含2个1 × 1的卷积来调整通道数,使用由RepConv[8]组成的N个repblock进行特征融合,通过元素添加对两路输出进行融合。我们将混合编码器的计算公式为:
其中,重塑表示将被平坦化的特征恢复为与S5相同的形状。
4.3 不确定性最小查询选择
为了降低在DETR中优化对象查询的难度,随后的一些研究[42,44,45]提出了查询选择方案,它们的共同点是使用置信度评分从编码器中选择前K个特征来初始化对象查询(或仅定位查询)。
置信度分数表示该特征包含前景对象的可能性。然而,检测器需要同时对物体的类别和位置进行建模,这两者决定了特征的质量。因此,特征的性能得分是一个与分类和定位共同相关的潜在变量。根据分析,当前的查询选择导致所选特征具有相当大的不确定性,导致解码器初始化不理想,并阻碍检测器的性能.
为了解决这一问题,我们提出了不确定性最小查询选择方案,该方案明确地构建和优化了认知不确定性来建模编码器特征的联合潜在变量,从而为解码器提供高质量的查询。其中,特征不确定性U定义为Eq.(2)中定位P与分类C的预测分布之间的差异。为了最小化查询的不确定性,我们将不确定性集成到Eq.(3)中基于梯度优化的损失函数中。
其中,分别表示预测真值和基础真值,分别表示类别和边界框,表示编码器特征。
有效性分析。为了分析最小不确定性查询选择的有效性,我们将所选特征在COCO val2017上的分类分数和IoU分数可视化,如图6所示。我们绘制分类分数大于0.5的散点图。紫色和绿色的点表示从不确定性最小查询选择和训练的模型中选择的特征以及vallina query选择,分别。点越靠近图的右上角,对应特征的质量越高,即预测的类别和框越有可能描述真实对象。上面和右边的密度曲线反映了两种类型的点的数量。
散点图最显著的特点是紫色的点集中在图的右上方,而绿色的点集中在图的右下方。这表明最小不确定性查询选择产生更多高质量的编码器特性。此外,我们对两种查询选择方案进行了定量分析。紫色点比绿色点多138%,即分类分数小于等于0.5的绿色点较多,可以认为是低质量特征。两个分数都大于0.5的紫点比绿点多120%。从密度曲线中也可以得出同样的结论,图中右上角紫色和绿色之间的差距最为明显。定量结果进一步表明,最小不确定性查询选择为查询提供了更多准确分类和精确定位的特征,从而提高了检测器的准确性(参见第5.3节)。
4.4 Scaled RT-DETR
由于实时检测器通常提供不同尺度的模型以适应不同的场景,RT-DETR还支持灵活的缩放。具体来说,对于混合编码器,我们通过调整嵌入维度和通道数量来控制宽度,通过调整Transformer层和repblock的数量来控制深度。解码器的宽度和深度可以通过操纵对象查询和解码器层的数量来控制。此外,RT-DETR的速度支持灵活调整,通过调整解码器层数。我们观察到,在最后去除几个解码器层对精度的影响很小,但大大提高了推理速度(参见第5.4节)。我们将配备ResNet50和ResNet101[13,14]的RT-DETR与L和X型号的YOLO探测器进行了比较。更轻的rt - der可以通过应用其他更小(例如ResNet18/34)或可扩展(例如CSPResNet[40])具有缩放编码器和解码器的骨干网来设计。我们将缩放后的RT-DETRs与附录中较轻的(S和M) YOLO检测器进行了比较,后者在速度和精度上都优于所有S和M模型。
5.Experiments
5.1 Comparison with SOTA
表2将RT-DETR与当前实时(YOLO)和端到端(DETRs)检测器进行了比较,其中仅比较了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,而RTDETR-R101实现了54.3%的AP和74 FPS,在速度和精度上都优于最先进的类似规模的YOLO探测器和相同骨干的detr。实验设置见附录。
与实时探测器的比较。我们比较了RTDETR与YOLO检测器的端到端速度(参见第3.2节)和精度。我们将RT-DETR与YOLOv5[11]、PP-YOLOE[40]、YOLOv6v3.016、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相比,rtder - r101精度提高3.6% / 2.0%,FPS提高72.1% / 23.3%,参数数量减少11.6% / 22.4%。与YOLOv7-L / YOLOv8-L相比,rt - der - r50精度提高1.9% / 0.2% AP, FPS提高96.4% / 52.1%。与YOLOv7-X / YOLOv8-X相比,rt - der - r101精度提高1.4% / 0.4% AP, FPS提高64.4% / 48.0%。这表明我们的RT-DETR实现了最先进的实时检测性能。
与端到端检测器的比较。我们还比较了RT-DETR与使用相同主干的现有detr。我们测试DINO-Deformable-DETR[44]的速度是根据COCO val2017上所取的相应精度设置进行比较的,即使用TensorRT FP16测试速度,输入大小为(800,1333)。表2显示,RT-DETR在速度和精度上都优于具有相同主干的所有detr。RT-DETR-R50与dino - deform - detr - r50相比,精度提高2.2% AP,速度提高21倍(108 FPS vs 5 FPS),两者均有显著提高。
5.2 Ablation Study on Hybrid Encoder
我们评估了第4.2节中设计的变量的指标,包括AP(用1x配置训练)、参数数量和延迟,见表3。与基线A相比,变体B的准确率提高了1.9%,延迟增加了54%。这证明了尺度内特征交互是重要的,但单尺度变压器编码器的计算成本很高。变体C比B提供了0.7%的AP改进,并增加了20%的延迟。这表明跨尺度特征融合也是必要的,但多尺度变压器编码器需要更高的计算成本。变体D比C AP提升了0.8%,但延迟减少了8%,表明尺度内相互作用和跨尺度融合的解耦不仅降低了计算成本,而且提高了精度。与变体D相比,DS5减少了35%的延迟,但提供了0.4%的AP改进,这表明不需要较低级特征的规模内交互。最后,变体E比d提供1.5%的AP改进,尽管参数数量增加了20%,但延迟减少了24%,使编码器更高效。这表明我们的混合编码器在速度和精度之间实现了更好的权衡。
5.3 Ablation Study on Query Selection
我们对不确定性最小查询选择进行了消融研究,结果报告在1x配置的rt - der - 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对47.9% AP)。
5.4 Ablation Study on Decoder
表5给出了使用不同解码器层数训练的RT-DETR-R50各解码器层的推理延迟和准确率。当解码器层数设置为6时,RT-DETR-R50的精度达到了最佳精度53.1% AP。此外,我们观察到,随着解码器层指数的增加,相邻解码器层之间的精度差逐渐减小。以列rtder - r50 - det6为例,使用第5解码器层进行推理,准确率仅损失0.1% AP (53.1% AP vs 53.0% AP),同时延迟减少0.5 ms (9.3 ms vs 8.8 ms)。因此,RT-DETR支持灵活的速度调整,通过调整解码器层数而无需重新训练,从而提高了其实用性。
6. Limitation and Discussion
限制。虽然本文提出的RT-DETR在速度和精度上都优于当前最先进的实时探测器和类似尺寸的端到端探测器,但它与其他detr具有相同的局限性,即在小物体上的性能仍然不如强实时探测器。根据表2,RT-DETR-R50的比YOLOV8-L低0.5%rtder - r101比X模型的最高APval S (YOLOv7-X)低0.9% AP。我们希望在今后的工作中解决这一问题。
讨论。现有的大型DETR模型[3、6、32、41、44、46]已经在COCO测试开发[20]排行榜上展示了令人印象深刻的性能。所提出的RT-DETR在不同尺度上保持了解码器与其他DETR的同质性,这使得我们可以用高精度预训练的大型DETR模型提取轻量级检测器。我们相信这是RT-DETR相对于其他实时探测器的优势之一,可能是未来探索的一个有趣方向。
7.Conclusion
在这项工作中,我们提出了一种实时端到端检测器,称为RT-DETR,它成功地将DETR扩展到实时检测场景,并实现了最先进的性能。RT-DETR包括两个关键的增强功能:快速处理多尺度特征的高效混合编码器,以及提高初始对象查询质量的最小不确定性查询选择。此外,RT-DETR支持灵活的速度调整,无需重新训练,消除了两个NMS阈值带来的不便,便于实际应用。RTDETR及其模型缩放策略扩展了实时目标检测的技术方法,为各种实时场景提供了超越YOLO的新可能性。我们希望RT-DETR能够付诸实施。