关于计算机视觉:超越YOLOv8飞桨推出精度最高的实时检测器RTDETR

79次阅读

共计 3540 个字符,预计需要花费 9 分钟才能阅读完成。

家喻户晓,实时指标检测 (Real-Time Object Detection) 始终由 YOLO 系列模型主导。

飞桨在去年 3 月份推出了高精度通用指标检测模型 PP-YOLOE,同年在 PP-YOLOE 的根底上提出了 PP-YOLOE+。后者在训练收敛速度、上游工作泛化能力以及高性能部署能力方面均达到了很好的成果。而继 PP-YOLOE 提出后,MT-YOLOv6、YOLOv7、DAMO-YOLO、RTMDet 等模型先后被提出,始终迭代到往年开年的 YOLOv8。

而咱们始终在思考,实时指标检测器除了 YOLO 是否还有其余技术路线能够摸索呢?

YOLO 检测器有个较大的待改良点是须要 NMS 后处理,其通常难以优化且不够鲁棒,因而检测器的速度存在提早。为防止该问题,咱们将眼光移向了不须要 NMS 后处理的 DETR,一种基于 Transformer 的端到端指标检测器。然而,相比于 YOLO 系列检测器,DETR 系列检测器的速度要慢的多,这使得 ” 无需 NMS “ 并未在速度上体现出劣势。上述问题促使咱们针对实时的端到端检测器进行摸索,旨在基于 DETR 的优良架构设计一个全新的实时检测器,从本源上解决 NMS 对实时检测器带来的速度提早问题。

由此,咱们正式推出了——RT-DETR (Real-Time DEtection TRansformer),一种基于 DETR 架构的实时端到端检测器,其在速度和精度上获得了 SOTA 性能。

  • 点击文末浏览原文疾速体验 RT-DETR

https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/rtdetr

  • 论文地址:

https://arxiv.org/abs/2304.08069

对于 PaddleDetection 的技术问题欢送大家入群探讨,也欢送大家在 GitHub 点 star 反对咱们的工作!

NMS 剖析

书接上文,具体分析 NMS。

NMS 是指标检测畛域罕用的后处理技术,用于去除检测器产生的重叠较多的检测框,其蕴含两个超参数:置信度阈值和 IoU 阈值。具体来说,低于置信度阈值的框被间接过滤,并且如果两个检测框的交并比大于 IoU 阈值,那么其中置信度低的框会被滤除。该过程迭代执行,直到所有类别都被处理完毕。因而,NMS 算法的执行工夫取决于预测框数量和上述两个阈值。为了更好地阐明这一点,咱们应用 YOLOv5 (anchor-based) 和 YOLOv8 (anchor-free)  进行了统计和实测,测量指标包含不同置信度阈值下残余的检测框的数量,以及在不同的超参数组合下检测器在 COCO 验证集上的精度和 NMS 的执行工夫。试验结果表明,NMS 不仅会提早推理速度,并且不够鲁棒,须要筛选适合的超参数能力达到最优精度。这一试验后果无力证实设计一种实时的端到端检测器是具备重要意义的。

RT-DETR 结构设计

近年来,得益于研究者们在减速训练收敛和升高优化难度上做出的致力,DETR 系列模型曾经取得了优良的性能。然而,DETR 与现有实时检测器在速度上存在微小差距,因而,将其推向实时化面临微小的挑战。咱们在剖析了 DETR 变体模型的架构中各组件对速度和精度的影响后,将次要优化指标定在编码器局部。现有的多尺度 Transformer 编码器在多个尺度的特色之间进行注意力运算,同时进行尺度内和尺度间特色交互,计算耗费较大。为了缩小计算耗费,一个简略的方法是间接削减编码器层数。然而咱们认为这并不能从根本上解决问题并且势必会对精度造成较大影响,更实质的办法应该是要解耦这种尺度内和尺度间的同时交互,缩短输出编码器的序列长度。

为此,咱们设计了一系列编码器变体来验证解耦尺度内和尺度间特色交互的可行性并最终演变为咱们提出的 HybridEncoder,其包含两局部:Attention-based Intra-scale Feature Interaction (AIFI) 和 CNN-based Cross-scale Feature-fusion Module (CCFM)。最初的试验后果证实了这一思路是可行的,并且能够同时在速度和精度上带来正向收益。

为了进一步提高 RT-DETR 的精度,咱们又将眼光移向了 DETR 架构的另外两个要害组件:Query Selection 和 Decoder。Query Selection 的作用是从 Encoder 输入的特色序列中抉择固定数量的特色作为 object queries,其通过 Decoder 后由预测头映射为置信度和边界框。现有的 DETR 变体都是利用这些特色的分类分数间接抉择 top-K 特色。然而,因为分类分数和 IoU 分数的散布存在不统一,分类得分高的预测框并不一定是和 GT 最靠近的框,这导致高分类分数低 IoU 的框会被选中,而低分类分数高 IoU 的框会被抛弃,这将会侵害检测器的性能。

为解决这一问题,咱们提出了 IoU-aware Query Selection,通过在训练期间束缚检测器对高 IoU 的特色产生高分类分数,对低 IoU 的特色产生低分类分数。从而使得模型依据分类分数抉择的 top-K 特色对应的预测框同时具备高分类分数和高 IoU 分数。咱们通过可视化这些编码器特色的置信度分数以及与 GT 之间的 IoU 分数后发现,IoU-aware Query Selection(蓝色点)明显提高了被选中特色的品质(集中于右上角)。对于 Decoder,咱们并没有对其构造进行调整,目标是为了方便使用高精度的 DETR 的大检测模型对轻量级 DETR 检测器进行蒸馏,咱们认为这是将来可摸索的一个方向。

最终咱们的 RT-DETR 整体构造如下图所示:

对于 backbone 局部,咱们采纳了经典的 ResNet 和可缩放的 HGNetv2 两种,咱们本次应用两种 backbone 各训练了两个版本的 RT-DETR,以 HGNetv2 为 backbone 的 RT-DETR 包含 L 和 X 版本,以 ResNet 为 backbone 的 RT-DETR 则包含 RT-DETR-R50 和 RT-DETR-R101。RT-DETR-R50 / 101 不便和现有的 DETR 变体进行比照,而 RT-DETR-L / X 则用来和现有的实时检测器(YOLO 系列模型)进行比照。

对于数据加强和训练策略局部,咱们的数据加强采纳的是根底的随机色彩抖动、随机翻转、裁剪和 Resize,并且在验证和推理时图像的输出尺寸对立为 640,与 DETR 系列的解决形式有较大的不同,次要是为了满足实时性的要求。咱们的训练策略则是和 DETR 系列基本相同,优化器同样采纳 AdamW,默认在 COCO train2017 上训练 6x,即 72 个 epoch。

另外,思考到多样化的利用场景,实时检测器通常会提供多个不同尺度的模型,RT-DETR 同样能够进行缩放,咱们通过调整 CCFM 中 RepBlock 的数量和 Encoder 的编码维度别离管制 Hybrid Encoder 的深度和宽度,同时对 backbone 进行相应的调整即可实现检测器的缩放。

试验后果

和实时检测器比照

RT-DETR-L 在 COCO val2017 上的精度为 53.0% AP,在 T4 GPU 上的 FPS 为 114,RT-DETR-X 的精度为 54.8% AP,FPS 为 74。雷同尺度的版本下,RT-DETR 比 YOLO 系列检测器的精度都更高一些,端到端速度都更快一些。

和端到端检测器比照

RT-DETR-R50 在 COCO val2017 上的精度为 53.1% AP,在 T4 GPU 上的 FPS 为 108,RT-DETR-R101 的精度为 54.3% AP,FPS 为 74。总结来说,RT-DETR 比具备雷同 backbone 的 DETR 系列检测器有比较显著的精度晋升和速度晋升。具体的试验数据见下表:

Decoder 融化试验

咱们还对 Decoder 不同层的输入评估了精度,并测试了对应的检测器推理工夫。RT-DETR 通过在推理时应用不同层数的 Decoder,能够灵便的调整推理速度而不须要从新训练。咱们发现缩小多数的层 (1~2) 对精度产生的影响很小,而且能够显著进步推理速度,这为提供更轻量级的 RT-DETR(S or M) 提供了可行计划。

总结

在本文中,咱们提出了一个实时的端到端检测器 RT-DETR,克服了 NMS 对实时检测器推理速度的提早和对精度的影响,对 DETR 的实时化进行了初步的摸索和尝试,并提供了一种可行的解决方案。咱们认为 RT-DETR 还有很多能够改良的中央,例如在小指标上的性能指标尚不如 YOLO 系列的局部检测器。在今后的钻研中还能够持续优化,从而为实时指标检测这一畛域提供更优的解决方案,为理论利用带来更好的体验。预训练模型、部署等应用教程已全面公布,欢送大家试用!具体链接可点击文末 浏览原文 疾速体验!

正文完
 0