首页 > 其他分享 >超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!

超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!

时间:2023-04-25 13:08:05浏览次数:65  
标签:RT NMS 检测器 实时 YOLOv8 飞桨 DETR 精度

众所周知,实时目标检测( Real-Time Object Detection )一直由 YOLO 系列模型主导。

飞桨在去年 3 月份推出了高精度通用目标检测模型 PP-YOLOE ,同年在 PP-YOLOE 的基础上提出了 PP-YOLOE+ 。后者在训练收敛速度、下游任务泛化能力以及高性能部署能力方面均达到了很好的效果。而继 PP-YOLOE 提出后,MT-YOLOv6、YOLOv7、DAMO-YOLO、RTMDet 等模型先后被提出,一直迭代到今年开年的 YOLOv8。

超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!_目标检测


而我们一直在思考,实时目标检测器除了 YOLO 是否还有其他技术路线可以探索呢?

YOLO 检测器有个较大的待改进点是需要 NMS 后处理,其通常难以优化且不够鲁棒,因此检测器的速度存在延迟。为避免该问题,我们将目光移向了不需要 NMS 后处理的 DETR,一种基于 Transformer 的端到端目标检测器。然而,相比于 YOLO 系列检测器,DETR 系列检测器的速度要慢的多,这使得"无需 NMS "并未在速度上体现出优势。上述问题促使我们针对实时的端到端检测器进行探索,旨在基于 DETR 的优秀架构设计一个全新的实时检测器,从根源上解决 NMS 对实时检测器带来的速度延迟问题。

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

超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!_编码器_02


  • 点击文末阅读原文快速体验 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 不仅会延迟推理速度,并且不够鲁棒,需要挑选合适的超参数才能达到最优精度。这一实验结果有力证明设计一种实时的端到端检测器是具有重要意义的。

超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!_sed_03


RT-DETR结构设计

近年来,得益于研究者们在加速训练收敛和降低优化难度上做出的努力, DETR 系列模型已经获得了优秀的性能。然而,DETR 与现有实时检测器在速度上存在巨大差距,因此,将其推向实时化面临巨大的挑战。我们在分析了 DETR 变体模型的架构中各组件对速度和精度的影响后,将主要优化目标定在编码器部分。现有的多尺度 Transformer 编码器在多个尺度的特征之间进行注意力运算,同时进行尺度内和尺度间特征交互,计算消耗较大。为了减少计算消耗,一个简单的办法是直接削减编码器层数。但是我们认为这并不能从根本上解决问题并且势必会对精度造成较大影响,更本质的方法应该是要解耦这种尺度内和尺度间的同时交互,缩短输入编码器的序列长度。

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

超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!_目标检测_04


超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!_sed_05

为了进一步提高 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 检测器进行蒸馏,我们认为这是未来可探索的一个方向。

超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!_sed_06


超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!_目标检测_07

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

超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!_编码器_08

对于 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 进行相应的调整即可实现检测器的缩放。

实验结果

01 和实时检测器对比

超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!_目标检测_09

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


02 和端到端检测器对比

RT-DETR-R50 在 COCO val2017 上的精度为 53.1% AP,在 T4 GPU 上的 FPS 为 108,RT-DETR-R101 的精度为 54.3% AP,FPS 为 74。总结来说,RT-DETR 比具有相同 backbone 的 DETR 系列检测器有比较显著的精度提升和速度提升。

详细的实验数据见下表:

超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!_编码器_10


03 Decoder 消融实验

我们还对 Decoder 不同层的输出评估了精度,并测试了对应的检测器推理时间。RT-DETR 通过在推理时使用不同层数的 Decoder ,可以灵活的调整推理速度而不需要重新训练。我们发现减少少数的层( 1~2 )对精度产生的影响很小,而且可以显著提高推理速度,这为提供更轻量级的 RT-DETR(S or M) 提供了可行方案。

超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!_编码器_11


总结

在本文中,我们提出了一个实时的端到端检测器 RT-DETR ,克服了 NMS 对实时检测器推理速度的延迟和对精度的影响,对 DETR 的实时化进行了初步的探索和尝试,并提供了一种可行的解决方案。我们认为 RT-DETR 还有很多可以改进的地方,例如在小目标上的性能指标尚不如 YOLO 系列的部分检测器。在今后的研究中还可以继续优化,从而为实时目标检测这一领域提供更优的解决方案,为实际应用带来更好的体验。

预训练模型、部署等使用教程已全面发布,欢迎大家试用!

标签:RT,NMS,检测器,实时,YOLOv8,飞桨,DETR,精度
From: https://blog.51cto.com/u_15512933/6223746

相关文章

  • 第四届CECC中国计算机教育大会召开 飞桨持续加码产教融合教育新生态​
    大模型作为人工智能发展的新方向,对人才的需求和培养带来了新挑战。4月21日至22日,以“新时代新挑战新任务”为主题的第四届中国计算机教育大会(CECC)在厦门召开,飞桨承办“人工智能与大模型”论坛同期举办。立足前沿科技与产业发展潮头,以新时代AI人才发展为目标,教育部高等学校计算机......
  • OpenWrt 系统日志之logread
    OpenWrt系统日志之logread在busybox中实现了syslogd和logread.syslogd用来记录log,logged则用来读取log. logread的代码很简洁,主要实现过程是:连接共享内存->信号量加锁->读取共享内存中的信息并输出->信号量解锁。  【转】(147条消息)OpenWrt系统日志之logread_钱国......
  • Artifact Appendix 用处
    在论文中,ArtifactAppendix(实证附录)通常是指附带的、与研究相关的软件、数据、工具、代码等实证材料和文档的集合。这些实证材料可以帮助读者验证研究的正确性、复现研究结果,也可以帮助其他研究者进一步拓展和改进研究工作。ArtifactAppendix的内容可能因研究内容的不同而有所......
  • Echarts4.0 迁徙图模拟Echarts2.0样式
     由于公司业务需求做Echarts4.0的迁徙图,但是Echarts4.0默认的迁徙图的飞行轨迹和迁徙线的颜色都是一样的,比较单调,现在模拟Echarts2.0的样式模拟了一个demo,虽然没有全部相同,但大体相近。备忘一下letminigrateChart=echarts.init(document.getElementById("MinigrateChart"));......
  • defineProperty
    传说大名鼎鼎的vue.js是通过它实现双向绑定的。俗称属性拦截器。而且专门用来监控对象属性变化的Object.observe方法也被草案发起人撤回了(此方法在node环境中仍能使用)。可见defineProperty的威力之大了。作用在创建普通属性时属性描述符会使用默认值,我们也可以使用Object.defin......
  • @JvmDefault is only supported since JVM target 1.8. Recompile with '-jvm-target
    问题Logcat提示’@JvmDefault’isonlysupportedsinceJVMtarget1.8.Recompilewith'-jvm-target1.8’解决在gradle中插入以下代码android{//..其他代码...kotlinOptions{jvmTarget="1.8"}}问题Logcat提示:Usageof‘@JvmDefault......
  • arthas现网排查 查看方法出入参
    docker容器内使用arthas定位问题:1、进入容器dockerexec-itxxxxxbash2、cd到arthas-boot.jar存放所在目录3、java-jararthas-boot.jar查看方法出入参watch类名空格方法名{params,returnObj,throwExp}-x2params---入参returnObj---出参throwExp......
  • 2014 Pacific Northwest Region Programming Contest—Division 2 Problem U — lim
    Incollegefootball,manydifferentsourcescreatealistoftheTop25teamsinthecountry.Sinceit’ssubjective,theselistsoftendiffer,butthey’reusuallyverysimilar.Yourjobistocomparetwooftheselists,anddeterminewheretheyaresimi......
  • XI Samara Regional Intercollegiate Programming Contest Problem C. Third-Party
    Pavelisdevelopingagame.Todothat,heneedsfunctionsavailableinathird-partylibrarytoofamoustobecalled.Itisknownthatthefunctionifirstappearedinversionaiandexisteduntilversionbi,andstartingfromtheversionbi+1,it......
  • [REACT_DOC]-Quick Start
    目录QuickStart创建以及嵌套组件用JSX书写标记(markup)添加样式展示数据条件渲染列表渲染事件响应更新屏幕使用Hooks在组件之间共享数据QuickStart概览:如何创建以及嵌套组件如何添加markup和样式如何展示数据如何条件渲染,如何渲染列表如何响应事件并更新渲染如何......