DETRs Beat YOLOs on Real-time Object Detection论文详解

news2024/11/13 16:23:00

论文题目:DETRs Beat YOLOs on Real-time Object Detection

论文地址:https://arxiv.org/abs/2304.08069

论文代码:mirrors / facebookresearch / ConvNeXt · GitCode

等我毕业再打败吧,别打败YOLO,广大研究生们不同意

1. 摘要

        最近,基于端到端Transformer的检测器(DETRs)已经取得了显著的性能。然而,DETRs的高计算成本问题尚未得到有效解决,限制了它们的实际应用,并阻止它们充分利用无后处理的优点,例如非最大值抑制(NMS)。本文首先分析了现代实时目标检测器中NMS对推理速度的影响,并建立了一个端到端速度基准。为避免NMS引起的推理延迟,我们提出了Real-Time DEtection TRansformer(RT-DETR),这是我们所知道的第一个实时端到端物体检测器。具体来说,我们设计了一个高效的混合编码器,通过解耦内部尺度交互和跨尺度融合来高效处理多尺度特征,并提出了IoU感知的查询选择来改善物体查询的初始化。此外,我们提出的检测器支持通过使用不同的解码器层来灵活调整推理速度,无需重新训练,这有助于实时目标检测器的实际应用。我们的RT-DETR-L在COCO val2017上达到了53.0%的AP和在T4 GPU上达到了114 FPS,RT-DETR-X达到了54.8%的AP和74 FPS,在速度和准确性方面都优于相同规模的所有YOLO检测器。此外,我们的RT-DETR-R50在准确性方面比DINO-Deformable-DETR-R50提高了2.2%的AP,在FPS方面约高出21倍。

2. 主要贡献

本文的主要贡献总结如下:

(1) 我们提出了第一个实时端到端目标检测器,不仅在准确性和速度方面优于当前最先进的实时检测器,而且不需要后处理,因此它的推理速度不会延迟并保持稳定

(2) 我们详细分析了NMS对实时检测器的影响,并从后处理的角度得出了关于基于CNN的实时检测器的结论

(3) 我们提出的IoU感知的查询选择在我们的模型中显示出优秀的性能改进,为改进目标查询的初始化方案提供了新思路

(4) 我们的工作为端到端检测器的实时实现提供了可行的解决方案,所提出的检测器可以通过使用不同的解码器层灵活调整模型大小和推理速度,无需重新训练

3. 相关工作

3.1 实时目标检测器
       经过多年的持续发展,YOLO系列已经成为实时目标检测器的代名词,可以大致分为两类:基于锚点的和无锚点的。从这些检测器的性能来看,锚点不再是限制YOLO发展的主要因素。然而,上述检测器产生了大量冗余的边界框,需要在后处理阶段利用NMS进行过滤。不幸的是,这导致了性能瓶颈,而NMS的超参数对检测器的准确性和速度有重要影响。我们认为这与实时目标检测器的设计理念不相容。

3.2 端对端目标检测器
       端到端目标检测器以其简化的流程而闻名。DETR消除了传统检测流程中手动设计的锚点和NMS组件。相反,它采用二分图匹配并直接预测一对一的对象集。通过采用这种策略,DETR简化了检测流程并减轻了NMS导致的性能瓶颈。尽管DETR具有明显的优点,但它存在两个主要问题:训练收敛速度慢和难以优化的查询。许多DETR变体已被提出来解决这些问题。具体而言,Deformable-DETR 通过增强注意机制的效率来加速多尺度特征的训练收敛。Conditional DETR 和Anchor DETR 降低了查询的优化难度。DAB-DETR 引入了4D参考点,并逐层迭代地优化预测框。DN-DETR 通过引入查询去噪来加速训练收敛。DINO 在以前的工作基础上进行了改进,并实现了最先进的结果。尽管我们不断改进DETR的组件,但我们的目标不仅是进一步提高模型的性能,而且是创建一个实时的端到端目标检测器。

3.3 目标检测的多尺度特征
       现代目标检测器已经证明了利用多尺度特征来提高性能的重要性,特别是对于小物体。FPN 引入了一个特征金字塔网络,它融合了相邻尺度的特征。随后的工作扩展和增强了这个结构,并被广泛应用于实时目标检测器中。虽然可变形注意机制在一定程度上缓解了计算成本,但多尺度特征的融合仍会导致高计算负担。为了解决这个问题,一些工作尝试设计计算效率高的DETR。Efficient DETR 通过使用密集先验来初始化对象查询,从而减少编码器和解码器层数。Sparse DETR 有选择性地更新编码器标记,以减少解码器的计算开销。Lite DETR 通过交错方式降低低层特征的更新频率,增强了编码器的效率。尽管这些研究已经降低了DETR的计算成本,但这些工作的目标并不是将DETR推广为实时检测器。

4. 实时的DETR

4.1 模型概述
       所提出的RT-DETR由一个骨干网络、一个混合编码器和一个带有辅助预测头的变换器解码器组成。模型架构的概述如图所示。

具体来说:

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

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

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

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

4.2 高效混合编码器
       (1)计算瓶颈分析。为了加速训练收敛和提高性能,朱等人[43]建议引入多尺度特征,并提出了可变形注意机制来减少计算量。然而,尽管注意机制的改进减少了计算开销,但输入序列长度的急剧增加仍使编码器成为计算瓶颈,阻碍了DETR的实时实现。如[17]中所报告的那样,编码器占Deformable-DETR[43]的49%的GFLOPs,但只贡献了11%的AP。为了克服这个障碍,我们分析了多尺度变换器编码器中存在的计算冗余,并设计了一组变体来证明内部尺度和跨尺度特征的同时交互在计算上效率低下。

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

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

• A → B: 变体B插入了一个单尺度变换器编码器,该编码器使用一个变换器块层。每个尺度的特征共享编码器进行内部尺度特征交互,然后将输出的多尺度特征进行级联。
• B → C: 变体C在B的基础上引入了跨尺度特征融合,将级联的多尺度特征馈送到编码器中进行特征交互。
• C → D: 变体D解耦了多尺度特征的内部尺度交互和跨尺度融合。首先,使用单尺度变换器编码器进行内部尺度交互,然后使用类似于PANet的结构进行跨尺度融合。

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

       (2) Hybrid design

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

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

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

Q= K = V = Flatten (S_{5}^{})

F_{5} = Reshape (Attn (Q,K,V) )

Output = CCFM ( {S_{3}S_{4}F_{5}} )

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

4.3 IoU感知查询选择

       DETR中的对象查询是一组可学习的嵌入向量,它们由decoder优化,并由预测头映射到分类分数和边界框。DINO的对象查询是利用分类分数从encoder中选择前K个特征来初始化对象查询。然而,由于分类得分和位置置信度的分布不一致,一些预测框具有高分类得分,但不接近GT框,这导致选择了分类得分高、IoU得分低的框,而分类得分低、IoU分数高的框被丢弃。这会削弱检测器的性能。为了解决这个问题,本文提出了IoU感知查询选择,通过约束模型在训练期间为具有高IoU分数的特征产生高分类分数,并为具有低IoU得分的特征产生低分类分数。因此,与由根据分类得分的模型选择的前K个编码器特征相对应的预测框具有高分类得分和高IoU得分。本文将DETR的二分匹配重新表述如下:

{L}(\hat{y},y)​ =L{box} (\hat{b},b) + L{cls}(\hat{c},c,IoU)

        通过IoU感知查询选择,在COCO MAP有了显著提升。其中,\hat{y} 和 y 分别表示预测和真实值,c和b分别表示类别和边界框。我们将IoU分数引入到分类分支的目标函数中,以实现对正样本的分类和定位的一致性约束。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/708736.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ROS:通信机制实操

目录 ROS:通信机制一、话题发布实操1.1需求1.2分析1.3实现流程1.4实现代码1.4.1C版1.4.2Python版 1.5执行 二、话题订阅实操2.1需求2.2分析2.3流程2.4实现代码2.4.1启动无辜GUI与键盘控制节点2.4.2C版 ROS:通信机制 一、话题发布实操 1.1需求 编码实现…

Airtest:Windows桌面应用自动化测试一

Airtest:Windows桌面应用自动化测试一 一、为什么选择Airtest?二、官方文档三、环境搭建四、简易操作1、模拟双击桌面应用2、连接应用窗口(1)嵌入方式连接(2种方式连接应用窗口)(2)非嵌入方式连…

设计模式学习之代理模式

设计模式系列往期文章 设计模式学习之策略模式设计模式学习之策略模式在前端的应用设计模式学习之简单工厂模式设计模式学习之工厂方法模式设计模式学习之抽象工厂模式设计模式学习之策略模式和简单工厂模式的对比设计模式学习之观察者模式设计模式学习之模板方法模式 代理模…

怎么把录音转文字?录音转文字怎么操作

以前在采访过程中,总是需要及时记录采访者的回答,并把这些回答准确地记录到笔记本上。然而手写记录不仅效率低下,还可能因为笔迹潦草而导致记录错误。 后来在前辈的指导下,我才知道可以使用录音转文字工具来解决这些问题&#xf…

[安洵杯 2019]game

前言 llvm混淆,第一次接触到,没找到可以直接反混淆的工具,但看了相关知识后,发现有效代码依旧是原有的那一小部分,所以可以直接看有意义的部分代码,有时间好好了解下吧 代码分析 v8是我们输入的&#xff…

设计模式篇(Java):适配器模式

设计模式篇(Java):建造者模式 八、适配器模式 8.1 适配器模式基本介绍 生活中的适配器例子 比如生活中的插座,在不同国家插座有着不同的规格,如果我们从一个国家去另外一个国家需要使用插座时就需要一个中间转换器把两种不同规则的插座适配一…

【数据结构导论】第 3 章:栈、队列和数组

目录 一、栈 (1)栈的基本概念 ① 定义 ② 示意图 ③ 栈的特点 ④ 栈的基本运算 (2)栈的顺序实现 ① 顺序栈及常用名词 ② 顺序栈的类型定义 ③ 顺序栈的基本运算 Ⅰ. 初始化 Ⅱ. 判栈空 Ⅲ. 进栈 Ⅳ. 出栈 Ⅴ. …

【JavaSE】程序逻辑控制

目录 【1】概念 【2】顺序结构 【3】分支结构 【3.1】if 语句 【3.2】switch 语句 【4】循环结构 【4.1】while 循环 【4.2】for 循环 【4.3】do while 循环 【4.4】break 关键字 【4.5】continue 关键字 【5】输入输出 【5.1】输出到控制台 【5.2】从键盘输入 …

第38节:cesium 风场效果(含源码+视频)

结果示例: 完整源码: <template><div class="viewer"><vc-viewer @ready="ready" :logo="false"><!

抖音seo矩阵系统源码开发部署|抖音小程序接入(一)

一、 开发部署步骤&#xff1a; &#xff08;1&#xff09;申请开放平台服务商 &#xff08;2&#xff09;申请开放平台网站应用 &#xff08;3&#xff09;申请开放平台应用权限 &#xff08;4&#xff09;提交各个API接口申请文档 &#xff08;5&#xff09;审核通过技…

JVM实战-2023线上项目突发OOM以及快速定位解决全过程

现象描述&#xff1a; 用户在进行报表下载过程中&#xff0c;每隔几天系统就会报错500&#xff0c;导致无法进行报表下载。 原因分析: 通过查看系统log日志以及gc日志&#xff0c;发现是因为下载报表过程中JVM频繁进行Full GC&#xff0c;而且老年代的堆内存不断增加且无法回…

chatgpt赋能python:Python彻底删除指南:为什么需要彻底删除Python?

Python彻底删除指南&#xff1a;为什么需要彻底删除Python&#xff1f; Python是一种高级编程语言&#xff0c;它广泛用于各种应用程序的开发。但是&#xff0c;对于某些开发者来说&#xff0c;可能需要从他们的计算机中彻底删除Python。这可能是因为他们需要将Python版本更新…

Linux--打印内容或者插入内容:echo

语法&#xff1a; echo 内容 作用&#xff1a;打印内容到显示器echo 内容 > 不存在的文件 作用&#xff1a;文件创建&#xff0c;并将内容插入新创建的文件中echo 内容 > 存在的文件 作用&#xff1a;覆盖文件原有的内容 echo 内容 >> 存在的文件 作用&#xff1a…

Redis的持久化机制(2)

AOF 以独立日志的方式记录每次写命令&#xff08;读操作不记录&#xff09;&#xff0c;重启时再重新执行AOF文件中的命令来恢复数据。AOF会先把命令追加在AOF缓冲区&#xff0c;然后根据对应策略写入硬盘&#xff08;appendfsync&#xff09;&#xff0c;它只许追加文件但不可…

【vue:淘宝rem自适应 】

vue:淘宝rem自适应 1.安装lib-flexible&#xff1a;cnpm install lib-flexible --save 2.在main.js中引入&#xff1a;import lib-flexible/flexible.js’ 3.配置flexible找到vue-cli路径node_modules/lib-flexible/flexible.js&#xff0c;然后修改rem换算单位 4.配置px to re…

ThreadLocal-线程安全利器

原文链接&#xff1a;https://www.jylt.cc/#/detail?activityIndex2&id9df3fd62d6ee13ff555c30157798b092 ThreadLocal是什么 ThreadLocal用来提供线程内部的局部变量&#xff0c;是各个线程独有的&#xff0c;该变量无法被其他线程访问。主要有以下作用&#xff1a; 解…

pyqt5实现线程与弹窗功能

pyqt5实现线程与弹窗功能 效果图&#xff1a; 示例下载 点我下载 https://download.csdn.net/download/lm_is_dc/87982279 简介 Pyqt5线程使用 QThread, pyqtSignal, QMutex, QWaitCondition来实现&#xff0c;涉及到线程&#xff0c;锁&#xff0c;信号量&#xff0c;线程…

深入理解计算机系统(2)_计算机基本组成

深入理解计算机系统系列文章目录 第一章 计算机的基本组成 1. 内容概述 2. 计算机基本组成 第二章 计算机的指令和运算 第三章 处理器设计 第四章 存储器和IO系统 文章目录 深入理解计算机系统系列文章目录前言参考资料一、组成架构&#xff08;冯/图&#xff09;1. 组成架构2…

42. 接雨水

题目链接&#xff1a;力扣 解题思路&#xff1a;从左往右按列进行计算&#xff0c;依次计算每一列能够接到的雨水数量。对于当前列能够接到的雨水数量是由左右两边最高的两根柱子决定的&#xff0c;类似于木桶定律&#xff08;一只水桶能装多少水取决于它最短的那块木板&#x…

AI实践-定制你的专属简历-软件测试

简历对于找到一份理想的工作至关重要。但是&#xff0c;准备简历这一过程却让人感到头疼和繁琐&#xff0c;而且如何突出自己的优势&#xff0c;也是许多求职者遇到困惑。 chatgpt不会受到情感和个人喜好的影响&#xff0c;能够通过算法和数据分析为您编写最合适的简历。并且可…