《RT-DETR》论文笔记
YOLO系列因其速度和准确性之间的合理权衡而成为实时目标检测最流行的框架。然而,我们观察到 YOLO 的速度和准确性受到 NMS 的负面影响。最近,端到端基于变压器的检测器 (DETR) 提供了一种消除 NMS 的替代方案。然而,高计算成本限制了它们的实用性,阻碍了它们充分利用排除NMS的优势。在本文中,我们提出了实时检测转换器(RT-DETR),据我们所知,这是解决上述困境的第一个实时端到端对象
原文出处
原文笔记
What
DETRs Beat YOLOs on Real-time Object Detection
1、设计了一种高效的混合编码器,通过解耦尺度内交互和跨尺度融合来提高速度来快速处理多尺度特征。(并且高速)
2、通过解耦尺度内交互和跨尺度融合来提高速度来快速处理多尺度特征。然后,我们提出了不确定性最小查询选择来为解码器提供高质量的初始查询,从而提高准确性。
3、此外,RT-DETR 通过调整解码器层的数量来适应各种场景而无需重新训练来支持灵活的速度调整。
主要贡献总结如下:(i)。我们提出了第一个称为 RTDETR 的实时端到端对象检测器,它不仅在速度和准确性上都优于之前先进的 YOLO 检测器,而且还消除了 NMS 后处理对实时对象检测的负面影响; (ii)。我们定量分析 NMS 对 YOLO 检测器速度和准确性的影响,并建立端到端速度基准来测试实时检测器的端到端推理速度; (iii)。所提出的 RT-DETR 通过调整解码器层的数量来支持灵活的速度调整,以适应各种场景而无需重新训练。
Why
YOLO系列因其速度和准确性之间的合理权衡而成为实时目标检测最流行的框架。然而,我们观察到 YOLO 的速度和准确性受到 NMS 的负面影响。(这不仅会减慢推理速度,而且还引入了导致速度和准确性不稳定的超参数。(NMS对超参数非常敏感,详见3.1)此外,考虑到不同的场景对召回率和准确率有不同的重视,有必要仔细选择适当的NMS阈值,这阻碍了实时检测器的发展。)
最近,端到端基于变压器的检测器 (DETR) 提供了一种消除 NMS 的替代方案。然而,高计算成本限制了它们的实用性(虽然带有多尺度特征的deformable DETR降低计算成本,但是序列长度急剧增加仍然导致编码器成为计算瓶颈。),阻碍了它们充分利用排除NMS的优势。因此无 NMS 的架构没有表现出推理速度优势。
再者,作者也对多尺度融合的有效性和计算冗余性提出了质疑,并做了一系列消融实验,具体见4.2节
(端到端对象检测器以其精简的流程而闻名。Carion等人[4]首先提出了基于Transformer的端到端检测器DETR,由于其独特的特征,引起了广泛的关注。特别是,DETR 消除了手工制作的锚点和 NMS 组件。相反,它采用二分匹配并直接预测一对一的对象集。尽管 DETR 具有明显的优势,但存在一些问题:训练收敛缓慢、计算成本高、查询难以优化。已经提出了许多 DETR 变体来解决这些问题。加速收敛。Deformable-DETR [45] 通过提高注意力机制的效率来加速多尺度特征的训练收敛。DAB-DETR[23]和DN-DETR[17]通过引入迭代细化方案和去噪训练进一步提高了性能。Group-DETR [5] 引入了分组一对多分配。降低计算成本。高效的DETR[42]和稀疏DETR[33]通过减少编码器和解码器层数或更新查询的数量来减少计算成本。Lite DETR[18]通过交错方式减少低级特征的更新频率来提高编码器的效率。优化查询初始化条件DETR[27]和锚DETR[39]降低了查询的优化难度。朱等人。 [45] 提出了两阶段 DETR 的查询选择,DINO [44] 提出了混合查询选择来帮助更好地初始化查询。当前的 DETR 仍然计算量很大,无法实时检测。)
这启发我们探索DETR是否可以扩展到实时场景,并在速度和准确性上都优于先进的YOLO检测器,消除了NMS对实时目标检测造成的延迟。
以前的工作[42,44,45]表明难以优化的对象查询阻碍了DETR的性能,并提出了查询选择方案,将vanilla可学习嵌入替换为编码器特征。然而,我们观察到当前的查询选择直接采用分类分数来选择,忽略了检测器需要同时对对象的类别和位置进行建模的事实,这两者都决定了特征的质量。这不可避免地导致选择定位置信度较低的编码器特征作为初始查询,从而导致相当大的不确定性和损害 DETR 的性能。我们将查询初始化视为进一步提高性能的突破。
Challenge
解决detr的问题
1、减少计算复杂度实现快速计算
2、加快收敛速度
3、多尺度的处理体征
4、之前的obj query阻碍了DETR的性能
Idea
1、为了快速处理多尺度特征,我们设计了一个高效的混合编码器来代替普通的Transformer编码器,通过解耦不同尺度特征的尺度内交互和跨尺度融合,显著提高了推理速度。(并且加快了收敛速度)
2、为了避免选择定位置信度较低的编码器特征作为对象查询,我们提出了不确定性最小查询选择,通过显式优化不确定性为解码器提供高质量的初始查询,从而提高准确性。
3、此外,由于 DETR 的多层解码器架构,RT-DETR 支持灵活的速度调整以适应各种实时场景而无需重新训练。
原文翻译
Abstract
YOLO系列因其速度和准确性之间的合理权衡而成为实时目标检测最流行的框架。然而,我们观察到 YOLO 的速度和准确性受到 NMS 的负面影响。最近,端到端基于变压器的检测器 (DETR) 提供了一种消除 NMS 的替代方案。然而,高计算成本限制了它们的实用性,阻碍了它们充分利用排除NMS的优势。在本文中,我们提出了实时检测转换器(RT-DETR),据我们所知,这是解决上述困境的第一个实时端到端对象检测器。我们分两步构建 RT-DETR,借鉴了之前的 DETR:首先我们专注于在提高速度的同时保持准确性,然后在提高准确性的同时保持速度。具体来说,我们设计了一种高效的混合编码器,通过解耦尺度内交互和跨尺度融合来提高速度来快速处理多尺度特征。然后,我们提出了不确定性最小查询选择来为解码器提供高质量的初始查询,从而提高准确性。此外,RT-DETR 通过调整解码器层的数量来适应各种场景而无需重新训练来支持灵活的速度调整。我们的 RT-DETR-R50 / R101 在 COCO 上达到 53.1% / 54.3% AP,在 T4 GPU 上达到 108 / 74FPS,在速度和准确性上都优于以前先进的 YOLO。此外,RT-DETR-R50 在准确率上比 DINO-R50 高 2.2%,FPS 高出约 21 倍。在使用Objects365进行预训练后,RTDETR-R50 / R101达到55.3% / 56.2% AP。项目页面:https://zhao-yian.github.io/RTDETR。
1. Introduction
实时目标检测是一个重要的研究领域,具有广泛的应用,如目标跟踪[43]、视频监控[28]和自动驾驶[2]等。现有的实时检测器通常采用基于cnn的架构,最著名的是YOLO检测器[1,10 - 12,15,16,25,30,38,40],因为它们在速度和准确性之间合理的权衡。然而,这些检测器通常需要非最大抑制 (NMS) 进行后处理,这不仅会减慢推理速度,而且还引入了导致速度和准确性不稳定的超参数。此外,考虑到不同的场景对召回率和准确率有不同的重视,有必要仔细选择适当的NMS阈值,这阻碍了实时检测器的发展。
最近,端到端基于变压器的检测器(DETRs)[4,17,23,27,36,39,44,45]因其精简的体系结构和消除手工制作的组件而受到了学术界的广泛关注。然而,它们的高计算成本阻碍了它们满足实时检测要求,因此无 NMS 的架构没有表现出推理速度优势。这启发我们探索DETR是否可以扩展到实时场景,并在速度和准确性上都优于先进的YOLO检测器,消除了NMS对实时目标检测造成的延迟。
为了实现上述目标,我们重新思考 DETR 并对关键组件进行详细分析以减少不必要的计算冗余并且进一步提高准确性。对于前者,我们观察到虽然多尺度特征的引入有利于加速训练收敛[45],但它导致序列输入编码器的长度显着增加。由多尺度特征交互引起的高计算成本使得 Transformer 编码器成为计算瓶颈。因此,实现实时 DETR 需要对编码器进行重新设计。对于后者,以前的工作[42,44,45]表明难以优化的对象查询阻碍了DETR的性能,并提出了查询选择方案,将vanilla可学习嵌入替换为编码器特征。然而,我们观察到当前的查询选择直接采用分类分数来选择,忽略了检测器需要同时对对象的类别和位置进行建模的事实,这两者都决定了特征的质量。这不可避免地导致选择定位置信度较低的编码器特征作为初始查询,从而导致相当大的不确定性和损害 DETR 的性能。我们将查询初始化视为进一步提高性能的突破。
在本文中,我们提出了实时检测转换器(RT-DETR),据我们所知这是第一个实时端到端对象检测器。为了快速处理多尺度特征,我们设计了一个高效的混合编码器来代替普通的Transformer编码器,通过解耦不同尺度特征的尺度内交互和跨尺度融合,显著提高了推理速度。为了避免选择定位置信度较低的编码器特征作为对象查询,我们提出了不确定性最小查询选择,通过显式优化不确定性为解码器提供高质量的初始查询,从而提高准确性。此外,由于 DETR 的多层解码器架构,RT-DETR 支持灵活的速度调整以适应各种实时场景而无需重新训练。
RT-DETR 在速度和准确性之间实现了理想的权衡。具体来说,RT-DETR-R50 在 COCO val2017 和 T4 GPU 上的 108 FPS 上实现了 53.1%AP,而 RTDETR-R101 在速度和准确性方面都实现了 54.3% AP 和 74 FPS,优于先前高级 YOLO 检测器的 L 和 X 模型,图 1。我们还通过用较小的主干缩放编码器和解码器来开发缩放的 RT-DETR,其性能优于较轻的 YOLO 检测器(S 和 M 模型)。此外,RT-DETR-R50 在准确性方面优于 DINO-Deformable-DETR-R50 2.2% AP(53.1% AP vs50.9% AP),FPS 约为 21 倍(108FPS vs 5 FPS),显着提高了 DETR 的准确性和速度。在使用Objects365[35]进行预训练后,RTDETR-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检测器可以分为两类:基于锚点的[1,11,15,25,29,30,37,38]和无锚点[10,12,16,40],在速度和精度之间实现了合理的权衡,并被广泛应用于各种实际场景中。这些先进的实时检测器产生大量的重叠框,需要NMS后处理,这会减慢它们的速度。
2.2. End-to-end Object Detectors
端到端对象检测器以其精简的流程而闻名。Carion等人[4]首先提出了基于Transformer的端到端检测器DETR,由于其独特的特征,引起了广泛的关注。特别是,DETR 消除了手工制作的锚点和 NMS 组件。相反,它采用二分匹配并直接预测一对一的对象集。尽管 DETR 具有明显的优势,但存在一些问题:训练收敛缓慢、计算成本高、查询难以优化。已经提出了许多 DETR 变体来解决这些问题。加速收敛。Deformable-DETR [45] 通过提高注意力机制的效率来加速多尺度特征的训练收敛。DAB-DETR[23]和DN-DETR[17]通过引入迭代细化方案和去噪训练进一步提高了性能。Group-DETR [5] 引入了分组一对多分配。降低计算成本。高效的DETR[42]和稀疏DETR[33]通过减少编码器和解码器层数或更新查询的数量来减少计算成本。Lite DETR[18]通过交错方式减少低级特征的更新频率来提高编码器的效率。优化查询初始化条件DETR[27]和锚DETR[39]降低了查询的优化难度。朱等人。 [45] 提出了两阶段 DETR 的查询选择,DINO [44] 提出了混合查询选择来帮助更好地初始化查询。当前的 DETR 仍然计算量很大,无法实时检测。我们的 RT-DETR 大力地探索了计算成本降低并尝试优化查询初始化,优于最先进的实时检测器。
3. End-to-end Speed of Detectors
3.1. Analysis of NMS
NMS是一种广泛应用于目标检测的后处理算法,用于消除重叠输出框。NMS 需要两个阈值:置信度阈值和 IoU 阈值。具体来说,得分低于置信度阈值的框被直接过滤掉,每当任意(分到相同类别的)两个框的 IoU 超过 IoU 阈值时,得分较低的框将被丢弃。这个过程是迭代执行的,直到处理每个类别的所有框。因此,NMS的执行时间主要取决于盒子的数量和两个阈值。为了验证这一观察结果,我们利用YOLOv5[11](基于锚的)和YOLOv8[12](无锚)进行分析。
我们首先计算在同一输入上过滤具有不同置信度阈值的输出框后剩余的框数。我们将值从 0.001 采样到 0.25 作为置信度阈值,以计算两个检测器的剩余框的数量并将它们绘制在条形图上,这直观地反映了 NMS 对其超参数敏感,图 2。随着置信度阈值的增加,过滤掉更多的预测框,需要计算 IoU 的剩余框的数量减少,从而减少 NMS 的执行时间。
此外,我们使用YOLOv8来评估COCO val2017的准确性,并测试NMS操作在不同超参数下的执行时间。注意,我们采用的NMS操作是指TensorRTefficientNMSPluggin,它涉及多个内核,包括EfficientNMSFilter、RadixSort、EfficientNMS等,我们只报告EfficientNMS内核的执行时间。我们使用TensorRT FP16在T4 GPU上测试速度,输入和预处理保持一致。超参数和相应的结果如表1所示。从结果中我们可以得出结论,随着置信阈值的减小或IoU阈值的增加,efficiency NMS内核的执行时间也会增加。原因是高置信度阈值直接过滤掉更多的预测框,而高 IoU 阈值在每一轮筛选中过滤掉更少的预测框。(如果你对NMS充分了解,这段精简的解释就很好理解)我们还在附录中可视化了具有不同NMS阈值的YOLOv8的预测。结果表明,不适当的置信度阈值会导致检测器出现显着的false positives误报或false negatives误报。置信阈值为 0.001,IoU阈值为 0.7,YOLOv8 获得了最好的 AP 结果,但相应的 NMS 时间处于更高的水平。考虑到 YOLO 检测器通常报告模型速度并排除 NMS 时间,因此需要建立端到端速度基准。
3.2. End-to-end Speed Benchmark
为了公平地比较各种实时检测器的端到端速度,我们建立了一个端到端的速度基准。考虑到NMS的执行时间受输入的影响,有必要选择一个基准数据集并计算多个图像的平均执行时间。我们选择COCO val2017[20]作为基准数据集,并将TensorRT的NMS后处理插件附加到YOLO检测器上,如上所述。具体来说,我们根据基准数据集(不包括 I/O 和 MemoryCopy 操作)上相应准确度的 NMS 阈值来测试检测器的平均推理时间。我们利用基准来测试基于锚点的检测器YOLOv5[11]和YOLOv7[38]的端到端速度,以及无锚检测器PP-YOLOE[40]、YOLOv6[16]和YOLOv8[12]在带有TensorRT FP16的T4 GPU上。根据结果(cf.表 2),我们得出结论,无锚检测器在 YOLO 检测器上的性能优于基于锚点的检测器,因为前者比后者需要更少的 NMS 时间。原因是基于锚的检测器比无锚检测器产生更多的预测框(在我们的测试检测器中增加了三倍)。
4. The Real-time DETR
4.1. Model Overview
RT-DETR 由一个特征提取网络backbone、一个高效的混合编码器(hybrid encoder)和一个带有辅助预测头的 Transformer 解码器组成。RT-DETR的概述如图4所示。具体来说,我们将特征提取网络的最后三层的特征{S3, S4, S5}输入到编码器中。高效的混合编码器通过尺度内特征交互和跨尺度特征融合将多尺度特征转换为一系列图像特征(cf.第 4.2 节)。随后,使用不确定性最小查询选择来选择固定数量的编码器特征作为解码器的初始对象查询(cf.第 4.3 节)。最后,带有辅助预测头的解码器迭代优化对象查询以生成类别和框。
4.2. Efficient Hybrid Encoder
计算瓶颈分析。多尺度特征的引入加速了训练收敛并提高了性能[45]。然而,尽管可变形注意力降低了计算成本,但序列长度急剧增加仍然导致编码器成为计算瓶颈。如Lin等人[19]所述,编码器占GFLOPs的49%,但在Deformable-DETR中只贡献了AP的11%。为了克服这个瓶颈,我们首先分析了多尺度 Transformer 编码器中存在的计算冗余。直观地说,包含对象丰富语义信息的高级特征是从低级特征中提取的,使得对拼接(concat)的多尺度特征进行特征交互变得多余。因此,我们设计了一组不同类型的编码器的变体来证明同时在尺度内和跨尺度特征交互是低效的,图3。特别地,我们使用拥有更小的数据读取器和轻量级解码器(这两个技术被使用在我们的RT-DETR中)的DINO-Deformable-R50进行实验,首先去除DINO-Deformable-R50中的多尺度Transformer编码器作为变体A。然后,不同类型的编码器被插入到模型中以生成一系列基于 A 的变体,详细说明如下((各变型的详细指标见表3):
- A → B:变体 B 将单尺度 Transformer 编码器插入到 A 中,它使用一层 Transformer 块。多尺度特征共享编码器进行尺度内特征交互,然后concat作为输出。
- B → C:变体 C 引入了基于 B 的跨尺度特征融合,并将拼接的特征馈送到多尺度 Transformer 编码器以执行同时尺度内和跨尺度特征交互。
- C → D:变体 D 通过利用单尺度 Transformer 编码器和PANet-style [22] 结构解耦尺度内交互和跨尺度融合。(单尺度Transformer Encoder负责尺度内交互,PANet-style负责跨尺度特征融合)
- D → E:变体 E 增强了基于 D 的尺度内交互和跨尺度融合,采用了我们设计的高效混合编码器。(efficient hybrid encoder)
Hybrid design.
基于上述分析,我们重新思考编码器的结构,提出了一种有效的混合编码器,由基于注意力的尺度内特征交互(AIFI)和基于 CNN 的跨尺度特征融合(CCFF)两个模块组成。具体来说,AIFI 通过使用单尺度 Transformer 编码器仅在 S5 上执行尺度内交互,进一步降低了基于变体 D 的计算成本。原因是将自注意力操作应用于具有更丰富语义概念的高级特征可以捕获概念实体之间的连接,这有助于后续模块对对象的定位和识别。然而,由于缺乏语义概念以及重复和与高级特征交互混淆的风险,低级特征的尺度内交互是不必要的。为了验证这一观点,我们仅在变体 D 中的 S5 上执行尺度内交互,实验结果如表 3 所示(参见第 DS5 行)。与D相比,DS5 不仅显着减少了延迟(快 35%),而且提高了准确性(AP 高 0.4%)。CCFF是基于跨尺度融合模块优化的,该模块将多个由卷积层组成的融合块插入到融合路径中。融合块的作用是将两个相邻的尺度特征融合到一个新的特征中,其结构如图5所示。融合块包含两个1 × 1卷积来调整通道数,还使用了N个RepBlock(由RepConv[8]组成的)进行特征融合,两条路径输出通过元素相加被融合。我们将混合编码器的计算表述为:
4.3. Uncertainty-minimal Query Selection
为了减少在 DETR 中优化对象查询的难度,随后的几项工作 [42, 44, 45] 提出了查询选择方案,它们通常使用置信度分数从编码器中选择前 K 个特征来初始化对象查询(或仅位置查询)。
置信度分数表示特征包含前景对象的可能性。然而,检测器需要同时对对象的类别和位置进行建模,这两者都决定了特征的质量。因此,特征的性能分数是一个与分类和定位共同相关的潜在变量。基于分析,当前的查询选择导致所选特征的不确定性相当大,导致解码器的初始化次优,阻碍了检测器的性能。
为了解决这个问题,我们提出了不确定性最小查询选择方案,该方案显式地构造和优化认知不确定性 来 建模编码器特征的联合潜在变量,从而为解码器提供高质量的查询。具体来说,特征不确定性 U 定义为等式(2)中定位 P 和分类 C 预测分布之间的差异。为了最小化查询的不确定性,我们将不确定性集成到损失函数中以基于梯度的进行优化如等式(3)所示。
Effectiveness analysis.
为了分析不确定性最小查询选择的有效性,我们可视化了COCO val2017上所选特征的分类分数和IoU分数(即分别对应着目标检测任务的分类和定位能力),如图6所示。我们用大于0.5的分类分数绘制散点图。紫色和绿色点分别表示从不确定度最小查询选择和普通查询训练的模型中选择的特征
点越接近图右上角,对应特征的质量越高,即预测类别和框越有可能描述真实对象。图上面和图右侧密度曲线反映了两种类型的点数。
散点图最显着的特点是紫色点集中在图的顶部,而绿色点集中在右下角。这表明不确定性最小查询选择会产生更高质量的编码器特征。此外,我们对两种查询选择方案进行了定量分析。紫色点比绿色点多 138%,即分类分数小于或等于 0.5 的绿色点,可以认为是低质量的特征。两个分数都大于0.5的紫点比绿点多120%。同样的结论可以从密度曲线中得出,其中紫色和绿色之间的差距在图中右上角最为明显。定量结果进一步表明,不确定性最小查询选择为查询提供了更多具有准确分类和精确位置的特征,从而提高了检测器的准确性(cf.第 5.3 节)。
4.4. Scaled RT-DETR
由于实时检测器通常提供不同尺度的模型以适应不同的场景,RT-DETR还支持灵活的缩放。具体来说,对于混合编码器,我们通过调整嵌入维度和通道数来控制宽度,并通过调整 Transformer 层和 RepBlock 的数量来控制深度。
解码器的宽度和深度可以通过操纵对象查询和解码器层的数量来控制。此外,RT-DETR 的速度通过调整解码器层的数量来支持灵活的调整。我们观察到,最后删除几个解码器层对准确性的影响最小,但大大提高了推理速度(cf.第 5.4 节)。我们将配备 ResNet50 和 ResNet101 [13, 14] 的 RT-DETR 与 YOLO 检测器的 L 和 X 模型进行比较。Lighter RT-DETR 可以通过应用其他更小的(例如 ResNet18/34)或可扩展的(例如 CSPResNet [40])主干来设计,该主干具有缩放编码器和解码器。我们将缩放的 RT-DETR 与附录中的较轻 (S 和 M ) YOLO 检测器进行比较,它们在速度和准确性上都优于所有 S 和 M 模型。
5. Experiments
略
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)