RT-DETR:《DETRs Beat YOLOs on Real-time Object Detection》

2023-11-02

概述:

        基于Transformer的端到端检测器(DETR)的高计算成本问题尚未得到有效解决,这限制了它们的实际应用,并使它们无法充分利用无后处理的好处,如非最大值抑制(NMS)。本文首先分析了现代实时目标检测器中NMS对推理速度的影响,并建立了端到端的速度基准。为了避免NMS引起的推理延迟,作者提出了一种实时检测Transformer(RT-DETR),这是第一个实时端到端目标检测器。具体而言,设计了一种高效的混合编码器,通过解耦尺度内交互和跨尺度融合来高效处理多尺度特征,并提出了IoU感知的查询选择,以提高目标查询的初始化。此外,本文提出的检测器支持通过使用不同的解码器层来灵活调整推理速度,而不需要重新训练。


1. 问题

        问题1:现有的实时检测器通常采用基于CNN的架构,在检测速度和准确性方面实现了合理的权衡。但是需要NMS进行后处理,这通常难以优化并且不够鲁棒,导致检测器的推理速度延迟。

        法1:DETR由于消除了各种手工设计的组件,如非最大值抑制(NMS)。该架构极大地简化了目标检测的流水线,实现了端到端的目标检测。

        问题2:DETR的高计算成本问题尚未得到有效解决,这限制了DETR的实际应用,并导致无法充分利用其优势。这意味着,尽管简化了目标检测流水线,但由于模型本身的计算成本高,很难实现实时目标检测。

2. 方法

        一种高效的混合编码器+IoU-Aware查询选择

        1.作者发现,尽管多尺度特征的引入有利于加速训练收敛和提高性能,但它也会导致编码器中序列长度的显著增加。因此,由于计算成本高,Transformer编码器成为模型的计算瓶颈。为了实现实时目标检测,设计了一种高效的混合编码器来取代原来的Transformer编码器通过解耦多尺度特征的尺度内交互和尺度间融合,编码器可以有效地处理不同尺度的特征。

       2. 而且,先前的工作表明,解码器的目标查询初始化方案对检测性能至关重要。为了进一步提高性能,作者提出了IoU-Aware的查询选择,它通过在训练期间提供IoU约束来向解码器提供更高质量的初始目标查询。

        3.此外,作者提出的检测器支持通过使用不同的解码器层来灵活调整推理速度,而不需要重新训练,这得益于DETR架构中解码器的设计,并有助于实时检测器的实际应用。

3. 步骤

        RT-DETRBackbone+混合编码器+带有辅助预测头的Transformer解码器组成

1、首先,利用Backbone的S3,S4,S5最后3个阶段的输出特征作为编码器的输入;

2、然后,混合编码器通过尺度内交互和跨尺度融合将多尺度特征转换为一系列图像特征(如第4.2节所述);

3、随后,采用IoU-Aware查询选择从编码器输出序列中选择固定数量的图像特征,作为解码器的初始目标查询;

4、最后,具有辅助预测头的解码器迭代地优化对象查询以生成框和置信度得分。

        RT-Detr网络首先利用骨干网络{S3,S4,S5}的最后三个阶段的特征作为encoder的输入。encoder通过尺度内特征交互(AIFI,按文中的说法其实就是一个transformer layer)和跨尺度特征融合模块(CCFM)将多尺度特征转换为图像特征序列。IoU感知查询选择用于选择固定数量的图像特征以用作解码器的初始对象查询。最后,具有辅助预测头的decoder(与DINO的decoder相同)迭代地优化对象查询,以生成框和置信度分数。

        从包含关于图像中的对象的丰富语义信息的低级特征中提取高级特征。直观地说,对连接的多尺度特征进行特征交互是多余的。如图所示,为了验证这一观点,作者重新思考编码器结构,并设计了一系列具有不同编码器的变体(5组)

        该组变体通过将多尺度特征交互解耦为尺度内交互跨尺度融合的两步操作,逐步提高模型精度,同时显著降低计算成本。首先删除了DINO-R50中的多尺度变换编码器作为基线A。接下来,插入不同形式的编码器,以产生基于基线A的一系列变体,具体如下:

        A→ B: 变体B插入一个单尺度Transformer编码器,该编码器使用一层Transformer Block。每个尺度的特征共享编码器,用于尺度内特征交互,然后连接输出的多尺度特征

        B→ C: 变体C引入了基于B的跨尺度特征融合,并将连接的多尺度特征输入编码器以执行特征交互

       C→ D: 变体D解耦了多尺度特征的尺度内交互和跨尺度融合。首先,使用单尺度Transformer编码器进行尺度内交互,然后使用类PANet结构进行跨尺度融合

        D→ E: 变体E进一步优化了基于D的多尺度特征的尺度内交互和跨尺度融合,采用了设计的高效混合编码器

        基于上述分析,作者重新思考了编码器的结构,并提出了一种新的高效混合编码器。如图所示,所提出的编码器由两个模块组成,即基于注意力的尺度内特征交互AIFI)模块和基于神经网络的跨尺度特征融合模块(CCFM)。AIFI进一步减少了基于变体D的计算冗余,变体D仅在S5上执行尺度内交互。作者认为,将自注意力操作应用于具有更丰富语义概念的高级特征可以捕捉图像中概念实体之间的联系,这有助于后续模块对图像中目标的检测和识别。同时,由于缺乏语义概念以及与高级特征的交互存在重复和混淆的风险,较低级别特征的尺度内交互是不必要的。

        CCFM也基于变体D进行了优化,在融合路径中插入了几个由卷积层组成的融合块。融合块的作用是将相邻的特征融合成一个新的特征,其结构如图4所示。融合块包含N个RepBlock,两个路径输出通过元素相加进行融合

         可以将这个过程表述如下:

        其中Attn表示多头自注意力,Reshape表示将特征的形状恢复到与S5相同的形状,这是Faltten的inverse操作

IoU-Aware查询选择

        DETR中的目标查询是一组可学习的嵌入,这些嵌入由解码器优化,并由预测头映射到分类分数和边界框。然而,这些目标查询很难解释和优化,因为它们没有明确的物理意义

后续工作改进了目标查询的初始化,并将其扩展到内容查询和位置查询(Anchor点)

        其中,Effificient detr、Dino以及Deformable detr都提出了查询选择方案,它们的共同点是利用分类得分从编码器中选择Top-K个特征来初始化目标查询(或仅位置查询)。然而,由于分类得分和位置置信度的分布不一致,一些预测框具有高分类得分,但不接近GT框,这导致选择了分类得分高、IoU得分低的框,而分类得分低、IoU分数高的框被丢弃

        这会削弱探测器的性能。为了解决这个问题,作者提出了IoU-Aware查询选择,通过约束模型在训练期间为具有高IoU分数的特征产生高分类分数并为具有低IoU得分的特征产生低分类分数。因此,与模型根据分类得分选择的Top-K个编码器特征相对应的预测框具有高分类得分和高IoU得分。将检测器的优化目标重新表述如下:

        其中ˆy和y表示预测和基本事实,ˆy={ˆc,ˆb}和y={c,b}分别表示类别边界框。我们将IOU分数引入分类分支的目标函数(类似于VFL[41]),以实现对阳性样本的分类和定位的一致性约束。

        首先根据分类得分选择前K个(在实验中K=300)编码器特征,然后可视化分类得分大于0.5的散点图。红点和蓝点是根据分别应用普通查询选择IoU感知查询选择训练的模型计算的。点越靠近图的右上角,对应特征的质量就越高,即分类标签和边界框更有可能描述图像中的真实对象。根据可视化结果发现最引人注目的特征是大量蓝色点集中在图的右上角,而红色点集中在右下角。这表明,使用IoU感知查询选择训练的模型可以产生更多高质量的编码器特征。

        此外,还定量分析了这两类点的分布特征。图中蓝色点比红色点多138%,即分类得分小于或等于0.5的红色点更多,这可以被视为低质量特征。然后,分析分类得分大于0.5的特征的IoU得分,发现IoU得分大于0.5时,蓝色点比红色点多120%。定量结果进一步表明,IoU感知查询选择可以为对象查询提供更多具有准确分类(高分类分数)和精确定位(高IoU分数)的编码器特征,从而提高检测器的准确性。

Scaled RT-DETR

        为了提供RT-DETR的可扩展版本,将ResNet网替换为HGNetv2。使用depth multiplier和width multiplier将Backbone和混合编码器一起缩放。因此,得到了具有不同数量的参数和FPS的RT-DETR的两个版本。对于混合编码器,通过分别调整CCFM中RepBlock数量和编码器的嵌入维度来控制depth multiplier和width multiplier。值得注意的是,提出的不同规模的RT-DETR保持了同质解码器,这有助于使用高精度大型DETR模型对轻型检测器进行蒸馏。这将是一个可探索的未来方向

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RT-DETR:《DETRs Beat YOLOs on Real-time Object Detection》 的相关文章

随机推荐

  • ubuntu 服务器子账户密码修改,ubuntu server下 web 配置站点访问用户和密码进行授权访问...

    nginx提供了ngx http auth basic module 模块实现让用户只有输入正确的用户名密码才允许访问web内容 默认情况下 nginx 已经安装了该模块 我们只需要给配置一个用户名和密码的文件 就可以实现所需功能 这里要用
  • word转成pdf,没有目录栏

    刚记录了 word转pdf目录不能跳转的解决方法 链接如下 https blog csdn net qq 40467670 article details 130403773 现在又遇到一个问题 即我们通过上述方法得到的pdf 用pdf阅读
  • Essential Google Cloud Infrastructure: commands and notes in lab

    最后更新2022 03 12 查看用户及授权信息 gcloud auth list 查看当前project gcloud config list project 以及 gcloud config list all components是啥呢
  • 麦克内马尔检验(McNemar‘s Test)

    麦克内马尔检验 McNemar s Test 配对标称数据的麦克内马尔检验 McNemar s Test from mlxtend evaluate import mcnemar 概述 McNemar的检验 1 有时也称为 受试者内卡方检验
  • 使用Java写一个简单的五子棋游戏

    五子棋的由来 五子棋起源于中国 相传中华民族的祖先轩辕黄帝无意之中画了一些纵横交叉的线段 然后在上面摆上小石块 就想出了连五子的玩法 实现过程 创建棋盘类 Board java public class Board public stati
  • 管理软件到底有没有前途-从国家十一五信息化战略规划来看

    阿朱 ID david lv 发表于 2008年10月25日 17 06 00 http blog csdn net david lv archive 2008 10 25 3143319 aspx 我的朋友昨天又和我交流了 我前几天写的两
  • 服务器封包协议号,DHCP协议的租约确认和封包格式

    对于DHCP协议我们总是有很多内容需要介绍 在之前我们已经对概念 结构和工作流程有了一定的了解了 这里 我们将要在流程中补充一部分知识 另外在对DHCP协议的封包格式进行重点讲述 租约确认 当 DHCP服务器接收到客户端的 DHCPrequ
  • 在Unity中如何使用System.Drawing

    NET类库System Drawing提供了一系列的图形函数 但由于其使用的是GDI接口 与DirectX和OpenGL之间不兼容 在Unity中默认是不被支持的 但有时候 我们想在Unity中使用一些基于System Drawing编写的
  • Linux下socket异步通讯聊天程序

    Linux下socket异步通讯聊天程序 转 original from http yangqi org linux socket asynchronous im system Posted by yangqi 2010年02月17日 We
  • 基于SpringBoot+Vue 的逍遥大药房管理系统

    文章目录 一 效果演示 二 前言介绍 二 主要技术 三 系统设计 部分 3 1 系统模块设计 四 数据库设计 部分 五 运行截图 部分 5 1 系统功能模块 5 2 管理员功能模块 六 源码获取 一 效果演示 基于SpringBoot Vu
  • pytest的时候脚本报错AttributeError: module ‘xxx‘ has no attribute ‘xxx‘ 解决方法

    ex modfile mod file E AttributeError module array has no attribute file 解决 py脚本的文件名 不要与python预留字 模块名等相同 所以要修改文件名 如果第一步还不
  • 编译原理LR(1)语法分析器 C++实现

    LR 1 语法分析器 C 语言编写 已通过VS2019调试 文章目录 LR 1 语法分析器 一 测试结果 二 测试文件 三 核心代码 四 完整代码 感谢阅读 如有错误 恳请指正 一 测试结果 二 测试文件 在D盘下建立test txt和to
  • 【实践篇】DDD脚手架及编码规范

    一 背景介绍 我们团队一直在持续推进业务系统的体系化治理工作 在这个过程中我们沉淀了自己的DDD脚手架项目 脚手架项目是体系化治理过程中比较重要的一环 它的作用有两点 1 可以对新建的项目进行统一的规范 2 对于指导老项目进行DDD的改造提
  • [答疑]同事认为应该先画序列图,强烈反对先画类图

    DDD领域驱动设计批评文集 软件方法建模师 不再考查基础题 软件方法 各章合集 匿 2023 8 28 17 19 团队分享会 我和同事分享了学习软件方法下的心得 我说根据需求规格说明书画出类图 再画时序图添加类的方法 有一个高开就说应该先
  • linux中的shell及不同的shell种类的区别

    1 Linux中的shell介绍 用户登录到Linux系统后 系统将启动一个用户shell 在这个shell中 可以使用shell命令或声明变量 也可以创建并运行shell脚本程序 运行shell脚本程序时 系统将创建一个子shell 此时
  • 全球及中国智能家居市场十四五竞争形势及营销模式咨询报告2021-2027年

    全球及中国智能家居市场十四五竞争形势及营销模式咨询报告2021 2027年 HS HS HS HS HS HS HS HS HS HS HS HS HS HS 修订日期 2021年10月 搜索鸿晟信合研究院查看官网更多内容 第一章 智能家居
  • Android下使用Gson fromJson数据总是返回null

    Gson的使用相当简单 可以在json和java对象之间很方便的做转换 特别是依赖GsonFormat 工具 可以自动生成POJO的Bean 类 使用方法网上介绍很多 就不再熬述 最近在Android client端对接某开源平台 通过Re
  • 豆瓣图书统计可视化分析

    s此博客是建立于爬虫基础之上 首先我们需要对豆瓣网站的图书进行爬取 这里将不再展示爬取部分 直接进行数据清洗及可视化分析部分 一 准备数据集 数据集在下方链接当中 如需请自取 https pan baidu com s 146N5YQfE0
  • games103,作业1(逻辑梳理)

    理论相关部分可以参照刚体动力学 作业框架已知条件 兔子模型的顶点集 每个墙体的上的点P及法线N 兔子初始速度 角速度w 线速度v 全局速度衰减系数 linear decay angular decay 全局弹性系数 restitution
  • RT-DETR:《DETRs Beat YOLOs on Real-time Object Detection》

    概述 基于Transformer的端到端检测器 DETR 的高计算成本问题尚未得到有效解决 这限制了它们的实际应用 并使它们无法充分利用无后处理的好处 如非最大值抑制 NMS 本文首先分析了现代实时目标检测器中NMS对推理速度的影响 并建立