【RT-DETR】《DETRs Beat YOLOs on Real-time Object Detection》译读笔记

DETRs Beat YOLOs on Real-time Object Detection

摘要

  近期,基于端到端的 transformer-based的检测器(DETRs)取得了卓越的性能。然而,DETRs类模型计算成本高的问题尚未得到有效解决,这限制了它们的实际应用,并使它们无法充分利用其无后处理的优势,例如 non-maximum suppression (NMS)。本文首先分析了NMS在现有实时检测器中对推理速度的影响,并建立了端到端的速度基准。为了避免由NMS引起的推理时延,本文提出了 Real-Time DEtection TRansformer (RT-DETR),据本文所知,这是首个实时的端到端目标检测器。具体来说,本文设计了一种高效的 hybrid encoder,通过解耦尺度内交互和尺度间融合,来高效地处理多尺度特征,并提出 IoU-aware 的query选择来提升目标查询的initialization。此外,本文的检测器支持使用不同的解码器层,来灵活地调整推理速度,而无需重新训练,这将有助于实时检测器的实际应用。本文的 RT-DETR-L 在 COCO val2017 上实现了 53.0 % 53.0\% 53.0%*的mAP,同时在 T4 GPU 上达到了 114 FPS;RT-DETR-X 实现了  54.8 % A P 54.8\%AP 54.8%AP和 74 FPS,在速度和精度上由于所有相同规模的YOLO检测器。此外,本文的 RT-DETR-R50 实现了  53.1 % A P 53.1\%AP 53.1%AP和  108 F P S 108 FPS 108FPS,其准确率比 DINO-Deformable-DETR-R50 高出 2.2 % A P 2.2\%AP 2.2%AP,在FPS上高出约21倍。源代码和预训练模型将在PaddleDetection上提供。

1. 引言

  目标检测是一项基础的视觉任务,用于识别和定位图像中的目标。现今的目标检测器由两种典型的架构:CNN-based和Transformer-based。在近些年来,大量的研究针对基于CNN的目标检测器展开。这些检测器的架构已经从最初的两阶段【9_FastRCNN, 26_FasterRCNN, 3_CascadeRCNN】发展到单阶段【19_RetinaNet, 31_FCOS, 1_YOLOv4, 10_YOLOv5, 22_PP-YOLO, 13_PP-YOLOv2, 36_PP-YOLOE, 14_YOLOv6, 7_YOLOX, 33_YOLOv7, 11_YOLOv8】;并出现了两种检测范式,anchor-based【19_RetinaNet, 22_PP-YOLO, 13_PP-YOLOv2, 10_YOLOv5, 33_YOLOv7】和 anchor-free【31_FCOS, 7_YOLOX, 36_PP-YOLOE, 14_YOLOv6, 11_YOLOv8】。这些研究在检测速度和准确性方面都取得了重大进展。基于Transformer的目标检测器(DETRs)【4_DETR, 29_SparseRCNN, 34_DeFCN, 43_DeformableDETR, 23_ConditionalDETR, 35_AnchorDETR, 20_DAB-DETR, 16_DN-DETR, 40_DINO】 自提出依赖就受到了学术界的广泛关注,因其消除了多种手工设计的组件,例如:非极大值抑制(NMS)。此架构大大简化了目标检测的流水线,实现了端到端的目标检测。
  实时目标检测是一个重要的研究领域,具有广泛的应用,如目标跟踪【39_MOTR, 42_ByteTrack】、视频监控【24_ISTL】、自动驾驶【2_Anomaly_Detect_Survey, 38_Survey_Autonomous_Drive】等。现有的实时检测器通常使用基于CNN的架构,在检测速度和准确率上实现了合适的权衡。然而,这些实时检测器通常需要使用NMS来进行后处理,这项操作难以优化且不够鲁棒,导致这些检测器的推理速度出现延迟。近期,对于基于transformer的检测器,由于研究者们对加速训练收敛和降低优化困难方面的努力,此类检测器取得了显著的性能。然而,DETRs类模型计算成本高的问题一直没有得到有效解决,这限制了DETRs的实际应用,导致其优势无法得到充分利用。这意味着DETRs虽然简化了目标检测的流程。但由于模型本身的高计算成本,难以实现实时的目标检测。以上问题自然而然地启发我们思考是否可以将DETR扩展到实时场景,充分利用端到端检测器,来避免NMS造成地延迟。
  为了实现以上目标,本文重新思考了DETR,对其关键组件进行详细的分析和实验,以减少不必要的计算冗余。具体来说,本文发现虽然多尺度特征的引入有利于加速模板收敛和提高性能【43_DeformableDETR】,但它也会导致输入编码器的序列长度显著增加。于是,由于计算成本高,the transformer encoder 成为了模型的计算瓶颈。为了实现实时目标检测,本文设计了一种高效的 hybrid encoder 来取代 the original transformer encoder。通过解耦多尺度特征的尺度内交互和尺度间融合,混合编码可以有效地处理来自不同尺度的特征。此外,已有的工作【35_AnchorDETR, 20_DAB-DETR】表明解码器中 object query initialization scheme 对于检测性能至关重要。为了进一步提升性能,本文提出了IoU感知的目标查询选择,通过在训练期间提供 IoU constraints,来为编码器提供更高质量的初始对象查询。此外,本文提出的检测器支持使用不同的解码器层,来弹性地调整推理速度,且无需重新训练,这得益于DETR架构中解码器的设计,有助于实时检测器的实际应用。
  本文提出了 Real-Time DEtection TRansformer (RT-DETR),据本文所知,这是首个实时的端到端目标检测器。RT-DETR不仅在精度和速度上优于当前最先进的实时检测器,而且不需要后处理,因此检测器的推理速度没有延迟且保持稳定,可充分利用端到端框架的优势。本文提出的 RT-DETR-L 在COCO val2017 上实现了 53.0 53.0%AP 53.0,在 NVIDIA Tesla T4 GPU 上实现了114FPS;与此同时,RT-DETR-L达到了 54.8 54.8%AP 54.8和74FPS,在速度和精度上优于所有同规模的YOLO检测器。因此,本文的 RT-DETR 成为了实时检测的新SOTA,如图1所示。
在这里插入图片描述
此外,本文提出的 RT-DETR-R50 达到了 53.1 % A P 53.1\%AP 53.1%AP和108FPS,而 RT-DETR-R101 达到了 54.3 % A P 54.3\%AP 54.3%AP和74FPS。其中,RT-DETR-R50在精度上比 DINO-Deformable-DETR-R50 高出 2.2 % A P 2.2\%AP 2.2%AP 53.1 % A P 53.1\%AP 53.1%AP vs 50.9 % A P 50.9\%AP 50.9%AP),在FPS上高出约21倍(108 FPS vs 5 FPS)。
  本文的主要贡献归纳如下:( i i i)本文提出了首个实时的端到端目标检测器,它不仅在精度和速度方面优于当前最先进的检测器,且不需要后处理,于是推理速度不会延迟而保持稳定;( i i ii ii)本文详细分析了NMS对实时检测器的影响,并从后处理上得出了 CNN-based 实时检测器的相关结论;( i i i iii iii)本文提出的IoU感知的 query selection在本文模型中显示出卓越的性能提升,这为改进对象查询的初始化方法提供了新的思路;( i v iv iv)本文的工作为端到端检测器的实时实现提供了一个可行的解决方案,并且提出的检测器可以通过不同的解码器层灵活地调整模型大小和推理速度,且不需要重新训练。

2. 相关工作

2.1 实时目标检测器

  通过多年的不断发展,YOLO系列【25_YOLOv3, 1_YOLOv4, 32_Scaled-YOLOv4, 22_PP-YOLO, 13_PP-YOLOv2, 10_YOLOv5, 7_YOLOX, 36_PP-YOLOE, 14_YOLOv6, 33_YOLOv7, 11_YOLOv8】已经成为实时检测器的代名词,大致可以分为两大类:anchor-based【25_YOLOv3, 1_YOLOv4, 32_Scaled-YOLOv4, 10_YOLOv5, 33_YOLOv7】和 anchor-free【7_YOLOX, 36_PP-YOLOE, YOLOv6, 14_YOLOv8】。从这些检测器的性能来看,anchor已经不再是限制YOLO发展的主要因素。然而,上述检测器产生了大量的冗余限位框(bounding boxes),需要在后处理阶段使用NMS来过滤它们。不幸的是,这会导致性能瓶颈,并且NMS的超参数会对检测器的精度和速度有很大影响。本文认为这与实时目标检测器的设计理念不符合。

2.2 端到端目标检测器

端到端目标检测器【5_DETR, 34_SparseRCNN, 39_DeFCN, 49_DeformableDETR, 27_ConditionalDETR, 40_AnchorDETR, 24_DAB-DETR, 20_DN-DETR, 46_DINO, 6_GroupDETR】以其简洁的流程而闻名。Carion等人【5_DETR】首次提出了基于Transformer的端到端目标检测器,名为DETR(DEtection TRansformer)。由于其独特的特性而引起了广泛的关注。特别是,DETR消除了传统检测流程中手工设计的锚框以及NMS组件。相应地,它使用二分匹配并直接预测一对一的物体集合。通过采用这种策略,DETR简化了检测流程并缓解了由NMS引起的性能瓶颈。尽管DETR具有明显的优势,但它存在两个主要问题:训练收敛慢和queries难以优化。目前已经提出了许多DETR的变体来解决这些问题。具体来说,Deformable-DETR【49_DeformableDETR】使用多尺度特征来提高注意力机制的效率从而加速训练收敛。ConditionalDETR【27_ConditionalDETR】和AnchorDETR【40_AnchorDETR】降低了查询(the queries)的优化难度。DAB-DETR【24_DAB-DETR】引入了4D参考点,并通过逐层迭代优化预测框。DN-DETR【 20_DN-DETR】通过引入查询去噪来加速训练收敛。Group-DETR【6_GroupDETR】通过引入组内(groupwise)一对多分配加速训练。DINO[46]之前的工作并取得了最先进的结果。尽管本文也在不断改进DETR的组件,不过本文的目标不仅是进一步提高性能,而且是创建一个实时的端到端目标检测器。

2.3 用于目标检测的多尺度特征

现有的目标检测器已经证明了利用多尺度特征来提升性能的重要性,特别是对于小目标。FPN[22_FPN]引入了一种特征金字塔网络,该网络将相邻尺度的特征进行融合。后续的若干工作[25_PAN, 11_NAS-FPN, 35_EfficientDet, 13_YOLOv5, 18_YOLOv6, 38_YOLOv7, 14_YOLOv8]进一步扩展和完善了这一结构,并且这些改进被广泛地应用于实时目标检测器中。Zhu等人[49_DeformableDETR]首次将多尺度特征引入DETR,这提高了DETR的性能和训练收敛速度,但同时也导致了DETR计算成本的显著增加。尽管可变形注意力机制在一定程度上减轻了计算成本,但多尺度特征的融合仍然导致了较高的计算负担。为了解决这个问题,一些研究尝试设计出计算效率更高的DETR模型。EfficientDETR[43_EfficientDETR]通过用密集先验初始化 object queries 的方式来减少编码器层和解码器层的数量。SparseDETR[32_Sparse DETR]选择性地更新那些预计会被解码器(decoder)引用的编码器令牌,从而减少计算开销。LiteDETR[19_LiteDETR]通过交错方式降低 low-level特征的更新频率,从而提高了编码器的效率。虽然这些研究均降低了DETR的计算成本,但它们的目的并不是推动DETR成为实时检测器。

3. 检测器的端到端速度

3.1 非极大值抑制(NMS)分析

NMS是目标检测中广泛应用的一种后处理算法,其目的是消除检测器输出的重叠预测框。NMS算法需要两个超参数:得分阈值和交并比(IoU)阈值。特别是,对于得分低于分数阈值的预测框会被直接过滤掉,而在任何时候,若两个预测框之间的交并比超过IoU阈值,则会丢弃分数较低的那个框。这个过程会迭代执行,直到处理完每个类别中的所有框为止。因此,NMS算法的执行时间主要取决于输入预测框的数量及这两个超参数的设置。
  为了验证上述观点,本文利用 anchor-based的YOLOv5【13_YOLOv5】和 anchor-free的YOLOv8【14_YOLOv8】进行实验。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值