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

2023-11-10

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 用于目标检测的多尺度特征

现有的目标检测器已经证明了利用多尺度特征来提升性能的重要性,特别是对于小目标。

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

【RT-DETR】《DETRs Beat YOLOs on Real-time Object Detection》译读笔记 的相关文章

  • 【简单入门】ChatGPT prompt engineering (中文版)笔记

    目录 思维导图 一 资料 二 指南 环境配置 两个基本原则 最重要 原则一 编写清晰 具体的指令 策略一 使用分隔符清晰地表示输入的不同部分 分隔符可以是 lt gt
  • MySQL 高级篇 -- 性能分析

    文章目录 一 基础知识 1 1 数据库服务器的优化步骤 1 2 查看系统性能参数 1 3 统计 SQL 查询成本 1 4 查看 SQL 执行成本 二 mysqldumpslow 慢日志分析 2 1 相关变量 2 2 案例准备 2 3 测试
  • Mac下Fiddler的安装、配置与使用

    环境安装 Mono安装 首先 Mac下需要使用 Net编译后的程序 需要用到跨平台的方案Mono 现阶段微软已推出跨平台的方案 Net Core 不过暂时只支持控制台程序 安装程 可以从 http www mono project com
  • 第二十四课、二十五课,高级光照(blinn),Gamma矫正

    高级光照 blinn 这里主要是矫正了 视口方向和反射方向夹角太小造成的阴影轮廓现象 但是在我的项目中 只要给blinn光照的shiness乘4 基本与冯氏光照没有区别 if light blinn vec3 halfwayDir norm
  • 从零开始的Spring Security Oauth2(一)

    使用配置 1 简易的分为三个步骤 配置资源服务器 配置认证服务器 配置spring security 2 oauth2根据使用场景不同 分成了4种模式 授权码模式 authorization code 简化模式 implicit 密码模式
  • Unity的画面高质量传输( FMETP STREAM 实时画面传输案例)

    Unity中实现画面传输首先要保证在同一个局域网下 其次 用到的FMETP STREAM插件进行画面传输的时候不分Server端和Client端 下面我们看一个案例 用大屏和小屏举例 我们要实时把小屏内容传输到大屏上 首先建两个空物体Ser
  • 矩阵分析L6矩阵函数

    一 范数 1 范数与内积 内积 对两个空间进行内积运算可以得到一个实数集 范数 对一个空间可以直接进行向量 大小 的衡量 得到实数集 2 向量范数 正定性 范数为0 则每个向量必为0 3 例题 向量范数判断 4 p级范数 注意 范数 Y 若
  • 老猿学5G扫盲贴:R15/R16中计费架构和计费原则涉及的规范文档

    专栏 Python基础教程目录 专栏 使用PyQt开发图形界面Python应用 专栏 PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一 概述 在R16的32 240文档对应规范为3GPP TS 32 240 V16 1 0
  • [Java Web开发]Servlet学习

    目录 一 什么是Servlet 二 Servlet生命周期 三 Servlet工作过程 四 Servlet项目实战 一 什么是Servlet Servlet是SUN公司提供的一门用于开发动态web资源的技术 它是Java Web三大组件 之
  • Linux 内核蓝牙驱动移植

    实验原理 FS MP1A开发板蓝牙采用 AP6236 AP6212 WIFI蓝牙二合一芯片 蓝牙部分通过 usart3与 SoC 进行数据交互 注意 此部分内容为 AP6236 AP6212 移植过程 如果 WIFI 蓝牙是 USB 模块可
  • 技术部岗位职责——技术部经理

    一 制定工作计划 根据企业新产品开发 工艺技术改进计划制定技术部的年度 季度工作目标和工作计划 经批准后组织实施 根据产品研发与工艺技术发展需要 制定工艺试验研究计划 并组织实施 二 技术研发管理 编制本部门各项管理程序 新产品工艺技术标准
  • OpenWrt Makefile 整体分析

    分析版本 svn svn openwrt org cn openwrt branches backfire OpenWrt基本结构 target Linux 目录里面是各平台 arch 的相关代码 target linux config 文
  • oracle中存储过程 查询出多条数据的处理方法

    oracle中存储过程 查询出多条数据的处理方法 用游标处理 定义游标 cursor a is select begin open a loop fetch a into 自己定义的变量 开始操作 end loop close a end
  • Charles下载ssl证书-app端

    1 点击help 选择SSL Proxying 选择安装app端ssl证书 2 这里可以看到我们的IP 以及端口号 3 在手机端更改WiFi的代理 切换为手动代理 IP端口更改为提示的信息 注意电脑端跟移动端必须保持在同一网络下 4 这里电
  • Secure Federated Matrix Factorization学习总结

    Secure Federated Matrix Factorization学习总结 背景 传统的矩阵分解推荐系统 会泄漏用户的评分信息 特征向量 可能大家会觉得泄漏这两种信息不重要 但是通过这两种信息 恶意攻击者可以进行inference
  • 域渗透笔记-证书服务器(ADCS)安装

    什么是ADCS AD CS证书服务 SSL证书 可以部署企业根或独立根建立SSL加密通道 这是所有服务器证书 无论品牌 申请方式都可以起到的功能 唯一的价值区别在于加密强度 目前 达到128位对称加密强度的服务器证书均可以实现有保障的加密通
  • python抢淘宝的东西-Python 实现毫秒级淘宝抢购脚本的示例代码

    本篇文章主要介绍了Python 通过selenium实现毫秒级自动抢购的示例代码 通过扫码登录即可自动完成一系列操作 抢购时间精确至毫秒 可抢加购物车等待时间结算的 也可以抢聚划算的商品 博主不提供任何服务器端程序 也不提供任何收费抢购软件

随机推荐

  • 关于解决Uncaught SyntaxError: The requested module ‘/node_modules/.vite/deps/vue-router.js?v=569ce1cd‘ d

    1 按照官方文档我们需要引入VueRouter 但是会报错 大致翻译为 请求的模块 node modules vite deps vue router js V 569ce1cd 没有提供名为 default 的导出 因为vue底层代码 导
  • 输入一个字符串,编写函数统计该字符串中的字母、数字和其他字符的个数;

    欢迎加qq群 453398542 学习讨论 会定期分享资料课程 解答问题 输入一个字符串 编写函数统计该字符串中的字母 数字和其他字符的个数 include
  • 高通9008固件下载备份工具

    高通9008固件下载备份工具 www bbs 16rd com
  • Spring项目配置文件中RabbitMQ监听器各个参数的作用

    spring rabbitmq listener simple concurrency 设置监听器容器的并发消费者数量 默认为1 即单线程消费 spring rabbitmq listener simple max concurrency
  • MySql数据库varchar和java字符串length()长度tips

    Java 中字符串以 Unicode 方式编码的 其长度通常计算的是字符数 一个中文也算一个字符 public static void main String args String fileName 中文English 12345 中文
  • CTFshow之web5

    CTFshow web web5 考察md5绕过 web5 考察md5绕过 首先打开页面是一个页面源码 我们先来进行代码审计 看有没有可以利用的地方 重点审计这段代码
  • Bitlocker加密,与解除加密

    引文 应为C盘空间不够用了 想着用U盘从新给C盘分下区 操作时才发现我系统里的磁盘都是Bitlocker加密的 分区工具操作不了磁盘 所以就找到一下方法来解决 1 先讲一下解除加密 直接点击 设置 gt 隐私和安全性 gt 设备加密 gt
  • Android PackageManagerService源码分析和APK安装原理详解

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 一 PackageManagerService简称PMS PackageManagerService是An
  • Unity Physics.OverlapSphere实现冲击波

    知识点1 球形射线检测 根据 层级Layer 和 半径值球形范围 内 过滤获得 Collider数组 用途 冲击波 对范围内游戏对象造成伤害 Physics OverlapSphere gameObject transform positi
  • 熔断,降级,限流区别

    熔断 限流 降级都是保持系统稳定运行的策略 但针对的场景有所不同 熔断 服务熔断的作用类似于我们家用的保险丝 当某服务出现不可用或响应超时的情况时 为了防止整个系统出现雪崩 暂时停止对该服务的调用 上面的解释中有两个很关键的词 一个是暂时
  • 推荐几个好用又好玩的vscode插件!

    推荐几个有用的插件 会提高你的开发效率 走过路过不要错过 一 koroFileHeader 先来一个镇场子的 一键生成佛祖保佑 下载koroFileHeader插件 安装之后 新建一个文件 这时候会自动生成一个模板 显示作者的相关信息 当然
  • 如何用原生JS写一个简单购物车?来这篇文章告诉你。

    首先声明这仅仅只是个人理解而已 有什么错误或者缺少大家尽管在评论区发出来 共同学习 一起进步 首先呢 我们要创建一个HTML基础代码 基础HTML代码模板如下 他是比较关键的 是我们接下来了解的属性相关 可以直接复制拿来用的哈 它的意义就是
  • Redis进阶实践之十一 Redis的Cluster集群搭建

    https www cnblogs com PatrickLiu p 8458788 html 一 引言 本文档只对Redis的Cluster集群做简单的介绍 并没有对分布式系统的所涉及到的概念做深入的探讨 本文只是针对如何设置集群 测试和
  • 人物关系图谱:ECharts 实现

    目录 1 什么是ECharts 2 开始简单配置关系图 3 完整代码 1 什么是ECharts ECharts是百度开源的纯 Javascript 图表库 目前开源可以与highcharts相匹敌的一个图表库 相信有很多国内用户使用 官网
  • 一、PID控制原理

    在模拟控制系统中 控制器最常用的控制规律是PID控制 模拟PID控制系统原理框图如下图 系统由模拟PID控制器和被控对象组成 PID控制器是一种线性控制器 它根据给定值Yd t 与实际输出值Y t 构成控制偏差 err Yd Y PID的控
  • 接口继承接口,类实现接口

    接口继承接口 1 类与类之间是单继承的 直接父类只有一个 2 类与接口之间是多实现的 一个类可以有多个接口 3 接口与接口之间是多继承的 注意事项 1 多个父接口当中的抽象方法如果重复没有关系 抽象的没事 没有方法体 2 多个父接口当中的默
  • windows为配置安全策略

    文章目录 限制 Management Manage01 05 只能从Client登录 限制 Finance F01 10 不能关闭计算机和重启计算机 所有的域计算机和域用户都能自动注册证书 证书颁发机构已经颁发过一次就不再重复颁发 除非证书
  • ChatGPT国内镜像软件推荐

    1 ChatGPT镜像是什么 ChatGPT镜像是一种技术方案 它将OpenAI的ChatGPT模型与相关技术部署在用户本地或私有服务器上 采用这种方式 用户可以在自己的环境中运行ChatGPT模型 无需依赖于OpenAI的在线API服务
  • 考研复试数据库原理课后习题(十四)——内存数据库系统

    内存数据库系统 1 内存数据库和磁盘数据库有什么区别 2 内存数据库的特点有哪些 内存是计算机存储体系结构中能够被程序可控访问 相对于硬件控制的cache 的最高层次 是能够提供大量数据存储的最快的存储层 内存数据库具有几个重要特性 高吞吐
  • 【RT-DETR】《DETRs Beat YOLOs on Real-time Object Detection》译读笔记

    DETRs Beat YOLOs on Real time Object Detection 摘要 近期 基于端到端的 transformer based的检测器 DETRs 取得了卓越的性能 然而 DETRs类模型计算成本高的问题尚未得到