摘要
YOLO系列由于其在速度和准确性之间的合理平衡而成为实时目标检测的最流行框架。然而,我们观察到YOLO的速度和准确性受到NMS的负面影响。最近,基于端到端变压器的检测器(DETR)提供了消除NMS的替代方案。然而,本文提出了一种实时检测Transformer器(RT-DETR),该变换器具有实时性好、运算量小、易于实现等优点,RT-DETR是我们所知的第一个实时端到端目标检测器,它解决了上述难题。我们利用先进的DETR,分两步构建RT-DETR:首先我们要在提高速度的同时保持精度,其次是在提高精度的同时保持速度,具体来说,我们设计了一种高效的混合编码器,通过解耦尺度内交互和尺度间融合来提高编码速度,并提出了不确定性最小查询选择算法,RT-DETR支持灵活的速度调整,通过调整解码器层数来适应不同的场景,无需重新训练。RT-DETR-R50 / R101在COCO上实现了53.1% / 54.3%的AP,在T4 GPU上实现了108 / 74的FPS,RT-DETR-R50/R101在速度和准确性上都优于之前的YOLO。此外,RT-DETR-R50在准确性上优于DINO-R50 2.2%AP,在FPS上约为21倍。经过Objects 365的预训练,RTDETR-R50/ R101达到55.3% /56.2%AP。
(1)提出了第一个实时端到端目标检测器RTDETR,它不仅在速度和准确性上优于先前先进的YOLO检测器,而且消除了NMS后处理对实时目标检测造成的负面影响;
(2)我们定量分析NMS对YOLO检测器速度和精度的影响,并建立端到端速度基准测试实时检测器的端到端推理速度;
(3)所提出的RT-DETR通过调整解码器层的数量来支持灵活的速度调谐,以适应各种场景而无需重新训练。
1、代码和数据集
1.1 代码链接
https://zhao-yian.github.io/RTDETR
1.2 数据集
COCO val2017
2、要解决的问题
2.1 YOLO检测器存在的问题
现有的实时检测器通常采用基于卷积神经网络(CNN)的架构,其中最著名的是 YOLO 检测器 ,因为它们在速度和精度之间实现了合理的权衡。然而,这些检测器通常需要在后处理阶段采用非最大抑制(NMS)算法,这不仅会降低推理速度,还会引入导致速度和精度均不稳定的超参数。此外,考虑到不同场景对召回率和精度的侧重不同,必须谨慎选择合适的NMS阈值,这阻碍了实时检测器的开发。
2.2 DETR存在的问题
近年来,端到端的基于转换器的检测器(DETR)由于其精简的架构和消除手工制作的组件而受到学术界的广泛关注。但是,其高计算成本使其无法满足实时检测要求。因此,无NMS架构并没有表现出推理速度优势。这启发我们探索DETR是否可以扩展到实时场景,并在速度和准确性方面优于先进的YOLO检测器,消除NMS对实时对象检测造成的延迟。
为了实现上述目标,我们重新审视了DETR模型,并对关键组件进行了详细分析,以减少不必要的计算冗余并进一步提高准确率。针对前者,我们观察到,尽管引入多尺度特征有助于加速训练收敛,但它会导致输入到编码器的序列长度显著增加。多尺度特征交互所导致的高计算成本,使得Transformer编码器成为计算瓶颈。因此,实现实时 DETR 需要对编码器进行重新设计。至于后者,先前的研究表明,难以优化的目标查询会阻碍 DETR 的性能,并提出了查询选择方案,用编码器特征取代标准的可学习嵌入。然而,我们观察到当前的查询选择直接采用分类分数进行筛选,却忽略了检测器需要同时建模物体的类别和位置这一事实,而这两者都决定了特征的质量。这不可避免地导致定位置信度较低的编码器特征被选作初始查询,从而带来相当程度的不确定性,并损害了DETR的性能。
3、提出的创新点
在本文中,我们提出了实时检测转换器(RT-DETR),第一个实时端到端的对象检测器,以我们最好的知识。为了快速处理多尺度特征,我们设计了一个有效的混合编码器来取代香草Transformer编码器,其通过解耦尺度内交互和交叉,不同尺度特征的尺度融合。为了避免定位置信度较低的编码器特征被选为对象查询,我们提出了不确定性最小查询选择,通过显式优化不确定性,为解码器提供高质量的初始查询,从而提高准确性。此外,得益于DETR的多层解码器架构,RT-DETR支持灵活的速度调整,以适应各种实时场景,无需重新训练。RT-DETR在速度和精度之间实现了理想的平衡。
3.1 检测器的端到端速度
3.1.1 NMS分析
NMS是物体检测中广泛使用的后处理算法,用于消除重叠的输出框。NMS中需要两个阈值:置信阈值和IoU阈值。具体地,得分低于置信阈值的边界框被直接过滤掉,并且每当任何两个边界框的IoU超过IoU阈值时,具有较低分数的边界框将被丢弃。该过程迭代地执行,直到每个类别的所有边界框都被处理。因此,NMS的执行时间主要取决于边界框的数量和两个阈值。为了验证这一观察结果,我们利用YOLOv5 (基于锚)和YOLOv8 (无锚)进行分析。
我们首先统计在同一输入上用不同置信度阈值过滤输出框后剩余的框数。我们从0.001到0.25采样值作为置信度阈值来统计两个检测器的剩余框数,并将其绘制在条形图上,直观地反映出NMS对它的超参数很敏感,如图2所示。随着置信度阈值的增加,过滤掉更多的预测框,剩余需要计算IoU的框的数量减少,从而减少NMS的执行时间。
此外,我们使用 YOLOv8 在 COCO val2017 数据集上评估准确率,并测试了不同超参数下 NMS 操作的执行时间。从结果中可以得出结论:随着置信度阈值的降低或 IoU 阈值的提高,EfficientNMS 内核的执行时间会增加。原因是较高的置信度阈值会在每轮筛选中直接过滤掉更多的预测框,而较高的 IoU 阈值则会过滤掉较少的预测框。我们在附录中还可视化了采用不同 NMS 阈值时 YOLOv8 的预测结果。结果表明,不恰当的置信度阈值会导致检测器产生显著的假阳性或假阴性。**当置信度阈值为0.001且IoU阈值为0.7时,**YOLOv8实现了最佳的AP结果,但相应的NMS时间也较高。考虑到YOLO检测器通常仅报告模型速度而排除NMS时间,因此需要建立端到端的速度基准测试。
3.1.2 端到端速度基准
为了公平比较各种实时检测器的端到端速度,我们建立了一个端到端速度基准测试。考虑到 NMS 的执行时间受输入数据的影响,有必要选择一个基准数据集,并计算多张图像的平均执行时间。我们选择 COCO val2017 20 作为基准数据集,并如上所述为其添加了 TensorRT 针对 YOLO 检测器的 NMS 后处理插件。具体而言,我们根据基准数据集上对应精度的 NMS 阈值,测试检测器的平均推理时间,其中不包含 I/O 和 MemoryCopy 操作。我们利用该基准测试,在配备 TensorRT FP16 的 T4 GPU 上,对基于锚点的检测器 YOLOv5 和 YOLOv7 ,以及无锚点检测器 PP-YOLOE 、YOLOv6 和 YOLOv8 的端到端速度进行了测试。根据结果(参见表 2),我们得出结论:对于 YOLO 检测器,在同等准确率下,无锚点检测器优于锚点检测器,因为前者所需的 NMS 时间少于后者。原因在于锚点检测器生成的预测框数量多于无锚点检测器(在我们测试的检测器中多出三倍)。
(TensorRT 是 NVIDIA 推出的一个高性能深度学习推理 SDK(软件开发工具包)。你可以把它理解成一个"模型加速器",专门用来让训练好的 AI 模型在 NVIDIA GPU 上跑得更快、更高效。)
3.2 实时DETR
3.2.1 模型概述
RT-DETR由主干、高效的混合编码器和带有辅助预测头的Transformer解码器组成。RT-DETR的概述如图4所示。具体来说,我们从主干的最后三个阶段{S3,S4,S5}高效的混合编码器通过尺度内特征交互和跨尺度特征交互将多尺度特征变换为图像特征序列。尺度特征融合(参见第4.2节)。随后,采用不确定性最小查询选择来选择固定数量的编码器特征以用作解码器的初始对象查询(参见第4.3节)。最后,具有辅助预测头的解码器迭代地优化对象查询以生成类别和框。

图4. RT-DETR概述。我们将骨干最后三级的特征送入编码器。高效的混合编码器通过基于注意力的尺度内特征交互(AIFI)和基于CNN的跨尺度特征融合(CCFF)将多尺度特征转化为图像特征序列。然后,不确定性最小查询选择选择固定数量的编码器特征以用作解码器的初始对象查询。最后,具有辅助预测头的解码器迭代地优化对象查询以生成类别和框。
3.2.2 高效混合编码器
**计算瓶颈分析。**引入多尺度特征可加速训练收敛并提升性能。然而,尽管可变形注意力机制降低了计算成本,但序列长度的急剧增加仍导致编码器成为计算瓶颈。为克服这一瓶颈,我们首先分析了多尺度 Transformer 编码器中存在的计算冗余。直观来看,包含丰富物体语义信息的高层特征是从低层特征中提取的,因此在拼接后的多尺度特征上进行特征交互是冗余的。因此,我们设计了一组具有不同类型编码器的变体,以证明同时进行同尺度与跨尺度特征交互是低效的,如图3所示。

图3.每种变体的编码器结构。SSE代表单尺度Transformer编码器,MSE代表多尺度Transformer编码器,CSF代表跨尺度融合。AIFI和CCFF是设计到我们的混合编码器中的两个模块
D → E:变体E在D的基础上增强了尺度内交互和跨尺度融合,采用了我们设计的高效混合编码器。
**混合设计。**基于上述分析,我们重新思考了编码器的结构,并提出了一种高效的混合编码器,该编码器由两个模块组成,即基于注意力机制的同尺度特征交互(AIFI)和基于卷积神经网络的跨尺度特征融合(CCFF)。具体而言,AIFI 基于变体 D 进一步降低了计算成本,通过仅在 S5 上使用单尺度 Transformer 编码器进行同尺度交互来实现。其原因是,对具有更丰富语义概念的高级特征应用自注意力操作,能够捕捉概念实体之间的关联,从而有助于后续模块对物体的定位和识别。然而,由于低级特征缺乏语义概念,且存在与高级特征交互产生重复和混淆的风险,因此低级特征的同尺度交互是多余的。为验证这一观点,我们在变体 D 中仅对 S5 层进行跨尺度交互,实验结果如表 3 所示(参见 DS5 行)。与 D 相比,DS5 不仅显著降低了延迟(速度提升 35%),还提高了准确率(AP 值高出 0.4%)。CCFF 基于跨尺度融合模块进行了优化,该模块在融合路径中插入了由卷积层组成的多个融合块。融合块的作用是将两个相邻尺度的特征融合成一个新特征,其结构如图 5 所示。融合块包含两个 1×1 卷积层,用于调整

其中Reshape表示将展平特征的形状恢复为与S5相同的形状。
3.2.3 不确定性最小查询选择
为了降低在DETR中优化对象查询的难度,几个后续工作42,44,45提出了查询选择方案,其共同点是它们使用置信度得分来从编码器中选择前K个特征以初始化对象查询置信度得分表示特征包括前景对象的可能性。然而,检测器需要同时对目标的类别和位置进行建模,这两者决定了特征的质量。因此,特征的性能得分是与分类和定位两者共同相关的潜在变量。基于分析,当前查询选择导致所选特征中相当大的不确定性水平,从而导致解码器的次优初始化并妨碍检测器的性能。
为解决该问题,提出了一种基于不确定性的最小查询选择方案,该方案通过显式地构造和优化认知不确定性来建模编码器特征的联合隐变量,从而为解码器提供高质量的查询。特征不确定性U被定义为等式(2)中的定位P和分类C的预测分布之间的差异为了最小化查询的不确定性,我们将不确定性集成到等式(3)中的用于基于梯度的优化的损失函数中。

其中,表示预测和基础事实,Y表示= {k c,k B},k c和B分别表示类别和边界框,X表示编码器特征。
**有效性分析。**为了分析不确定性最小查询选择的有效性,我们对COCO val2017数据集上所选特征的分类得分和IoU得分进行了可视化展示(图6)。我们绘制了分类得分大于0.5的散点图。紫色和绿色点分别代表采用不确定性最小查询选择和标准查询选择训练的模型所选出的特征。数据点越靠近图的右上角,对应特征的质量越高,即预测的类别和边界框描述真实物体的可能性越大。右上方的密度曲线反映了这两类特征的数据点数量。
3.4 定标RT-DETR
由于实时检测器通常提供不同尺度的模型来适应不同的场景,RT-DETR还支持灵活的缩放。具体来说,对于混合编码器,我们通过调整嵌入维数和通道数来控制宽度,通过调整Transformer层和RepBlocks的数量来控制深度。解码器的宽度和深度可以通过操纵对象查询的数量来控制,此外,RT-DETR的速度支持通过调整解码器层的数量进行灵活调整。我们观察到,在最后删除一些解码器层对准确性的影响很小,但大大提高了推理速度(参见第5.4节)。我们比较了配备ResNet 50和ResNet 101的RT-DETR 13,14的L和X型号的YOLO探测器。更轻的RT-DETR可以通过应用其他较小的(例如ResNet 18/34)或可扩展(例如,CSPResNet 40)具有缩放编码器和解码器的骨干。我们将缩放的RT-DETR与较轻的(S和M)YOLO检测器,在速度和准确性方面优于所有S和M模型。
4、结论与不足
在这项工作中,我们提出了一个实时端到端检测器,称为RT-DETR,它成功地将DETR扩展到实时检测场景,并实现了最先进的性能。RT-DETR包括两个关键增强:一种高效的混合编码器,可以快速处理多尺度特征,以及提高初始对象查询质量的不确定性最小查询选择。此外,RT-DETR支持灵活的速度调整,无需重新训练,消除了两个NMS阈值带来的不便,便于实际应用。RTDETR沿着其模型缩放策略,拓宽了实时目标检测的技术途径,为不同的实时场景提供超越YOLO的新可能性。我们希望RT-DETR能够付诸实践。