RT-DETR论文解读与代码

news2024/11/24 13:59:17

1.概述

        目前以大名鼎鼎的YOLO为代表的基于CNN的实时监测网络需要NMS进行后处理,导致不能很好的优化网络,并且网络不够健壮,从而导致检测器的推理速度出现延迟。研究者也分析了Anchor-based和Anchor-free的YOLO的性能,发现Anchor并不是影响实时监测的关键要素,而NMS后处理彩色。

        DETR很好的解决了后处理对于模型的限制,却受限于Transformer巨大的计算量,无法发挥实时监测性。

        因此,作者想要重构detr,使其具有实时性。研究者发现,虽然多尺度特征的引入有利于加速训练收敛和提高性能,但它也能显著增加输入编码器的序列的长度。因此,Transformer编码器由于计算成本高而成为模型的计算瓶颈。因此,作者设计了一种高效的混合编码器来代替原来的Transformer编码器。通过解耦多尺度特征的尺度内交互和跨尺度融合,该编码器可以有效地处理不同尺度的特征。此外,之前的工作表明,解码器的对象查询初始化方案对检测性能至关重要(Detr存在训练收敛缓慢和Query难以优化的问题)。为了进一步提高性能,作者提出了对iou进行感知的查询选择。通过在训练期间提供IoU约束,为解码器提供更高质量的初始对象查询。此外,提出的检测器支持通过使用不同的解码器层来灵活地调整推理速度,而不需要再训练,这得益于DETR架构中解码器的设计,方便了实时检测器的实际应用。

2. End-to-end Speed of Detectors

NMS的分析

        NMS是目标检测中广泛采用的一种后处理算法,用于消除检测器输出的重叠预测框。而NMS的速度容易受到预测框的个数和两个超参数的影响。

        在YOLOv5和YOLOV8进行验证,结合图和表格可以看到,置信度阈值越高,剩余的预测框的个数越少,NMS时间越短。而在同一置信度阈值的前提下,IOU阈值越高,NMS时间越长。

End-to-end Speed Benchmark

        对于需要NMS后处理的实时检测器,无锚检测器的性能优于基于锚的检测器,因为前者占用的后处理时间明显少于后者,这在以往的工作中被忽略了。造成这种现象的原因是,基于锚的探测器比无锚的探测器产生更多的预测框。

 4. The Real-time DETR

4.1. Model Overview

        RT-DETR由一个主干网、一个混合编码器和一个带有辅助预测头的Transformer解码器组成。模型架构的概述如图所示。具体来说,利用主干{S3、S4,S53}的最后三个阶段的输出特性作为编码器的输入。该混合编码器通过尺度内交互和跨尺度融合,将多尺度特征转换为一系列图像特征。随后,使用iou感知的查询选择从编码器输出序列中选择固定数量的图像特征,作为解码器的初始对象查询。最后,带有辅助预测头的解码器迭代地优化对象查询,生成预测框和置信度分数。

       

 4.2. Effificient Hybrid Encoder

        Computational bottleneck analysis. 多尺度特征会导致输入序列长度急剧增加,虽然能够加速训练的收敛性和提高性能,但是却大大提高了计算量。为了克服这一障碍,作者分析了多尺度Transformer编码器中存在的计算冗余,并设计了一组变体来证明尺度内和跨尺度特征的同时交互作用是计算效率低的。

        高级特征是从包含关于图像中对象的丰富语义信息的低级特征中提取出来的。直观地说 ,在连接的多尺度特征上执行特征交互是冗余的。为了验证这一观点,作者重新考虑了编码器的结构,并设计了一系列具有不同编码器的变体,如图5所示。 这将变量集通过将多尺度特征交互解耦为尺度内交互和跨尺度融合的两步操作,逐步提高模型精度,同时显著降低计算成本.我们首先删除DINO-R50 [40]中的多尺度变压器编码器作为基线a。接下来,插入不同形式的编码器,基于基线A产生一系列变体,阐述如下:
  • A→B:变体B插入一个单比例的Transformer编码器,它使用一层Transformer块。每个尺度的特征共享尺度内特征交互的编码器,然后将输出的多尺度特征连接起来
  • B→C:变体C引入了基于B的跨尺度特征融合,并将连接的多尺度特征输入编码器,进行特征交互。
  • C→D:变体D解耦了多尺度特征的尺度内相互作用和跨尺度融合。首先,利用单尺度变压器编码器进行尺度内交互,然后利用类似panet的结构进行跨尺度融合。
  • D→E:变体E进一步优化了基于D的多尺度特征的尺度内交互和跨尺度融合,采用了设计的高效混合编码器。

混合设计:

        在此基础上,作者重新考虑了该编码器的结构,并提出了一种新的高效混合编码器。如图3所示,所提出的编码器由两个模块组成,即基于注意的尺度内特征交互(AIFI)模块和基于cnn的跨尺度特征融合模块(CCFM)。AIFI进一步减少了基于变体D的计算冗余,它只在S5上执行尺度内交互。作者认为,将自注意操作应用于具有更丰富语义概念的高级特征,可以捕获图像中概念实体之间的联系,便于后续模块对图像中对象的检测和识别。同时,由于缺乏语义概念,存在与高级特征交互的重复和混淆的风险,低级特征的尺度内交互是不必要的。为了验证这一观点,作者只对变体D中的S5进行了尺度内交互作用,与普通的变体D相比,DS5显著降低了延迟(快了35%),但提高了准确性(AP提高了0.4%)。这一结论对于实时探测器的设计至关重要。CCFM还基于变体D进行了优化,在融合路径中插入了几个由卷积层组成的融合块。融合块的作用是将相邻的特征融合成一个新的特征,其结构如图4所示。融合块包含N个重新块,双路径输出通过元素添加进行融合。可以将这个过程表述如下:

4.3. IoU-aware Query Selection

        DETR中的对象查询是一组可学习的嵌入,它们由解码器进行优化,并由预测头映射到分类分数和边界框。然而,这些对象查询很难进行解释和优化,因为它们没有明确的物理意义。其改进方案共同点是利用分类分数从编码器中选择前K个特征来初始化对象查询(或仅选择位置查询[40])。然而,由于分类分数的不一致分布和位置信心,一些预测框高分类分数但不接近真实框,导致高分类分数和低IOU的预测框被选择,而低分类分数和高IOU的预测框被丢弃。 这就损害了探测器的性能。为了解决这个问题,作者提出了IoU感知查询选择,让模型在训练期间对高IOU的特征产生高分类分数,对低IoU的特征产生低分类分数。因此,模型根据分类评分选择的前K个编码器特征对应的预测框具有较高的分类评分和较高的IoU评分。重新制定了检测器的优化目标(引入IOU)如下:

        为了分析所提出的IoU感知查询选择的有效性,作者对IOU score和分类分数进行了可视化,如图所示。红点和蓝点分别通过应用普通查询选择和iou感知查询选择训练的模型中计算出来。根据可视化结果,我们发现最显著的特征是大量的蓝色点集中在图的右上角,而红色的点集中在右下角。这表明,用iou感知的查询选择训练的模型可以产生更多高质量的编码器特征。 

  4.4. Scaled RT-DETR     

        作者将Backbone由ResNet替换为了HGNetv2,此外,作者还使用了不同的宽度和深度对模型进行拓展。作者提出的不同尺度的RT-DETR保持了一个均匀的解码器,这便于模型蒸馏。    

5. Experiments

        

5.3. Ablation Study on Hybrid Encoder

A-E不同混合编码器变体的性能

        

 5.4. Ablation Study on IoU-aware Query Selection

5.5. Ablation Study on Decoder
不同解码器层对模型的影响

 

 

 

        

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

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

相关文章

【Java基础篇】方法的使用(方法的重载和递归)

作者简介: 辭七七,目前大一,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏:Java.SE,本专栏主要讲解运算符,程序逻辑控制,方法的使用&…

打造智能生活方式

2个互联网工具与你分享 分享一: 随记单词是一款功能强大的单词记忆和管理应用程序。它为用户提供了便捷的学习工具和智能化的记忆方式,帮助用户轻松有效地记忆和掌握单词。 随记单词的特点之一是个性化记忆计划。用户可以根据自己的学习进度和需求&am…

如何使用MATLAB处理涡度通量数据

MATLAB MATLAB是美国MathWorks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人,控制系统等领域。 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂&#x…

苹果头显Vision Pro深度解读3 苹果头显visonOS开发指南

1 程序员visonOS开发指南 作为iOS开发者,切换到visionOS开发非常简单啊,过去的一些技术基本上都用得上。目前根据苹果WWDC官方的文档,视频,我们可以知道: 开发语言,使用的是swift object-c c c等,swif…

简化日志数据管理:利用 Elastic 灵活路由的力量

作者:Felix Barnsteiner,Nicolas Ruflin 在 Elasticsearch 8.8 中,我们在技术预览中引入了重新路由处理器(reroute processor),它可以根据灵活的路由规则将文档(例如日志)发送到不同…

Jmeter吞吐量控制器使用小结

吞吐量控制器(Throughput Controller)场景: 在同一个线程组里, 有10个并发, 7个做A业务, 3个做B业务,要模拟这种场景,可以通过吞吐量模拟器来实现.。 添加吞吐量控制器 如果你想学习jmeter性能测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网…

第十六届全国大学生信息安全竞赛CISCN---Cypto

1.Sign_in_passwd 打开环境,下载附件,用记事本打开flag的文件 发现里面是像base密码但又不像base密码的一串,第二行的%,就很像url密码啊,之前做题没接触过啊,还是做题做少了 没有啥解题思路,看…

基于Jeecg-boot的flowable流程支持拒绝同意流程操作

更多功能看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/nbcio-boot 前端代码:https://gitee.com/nbacheng/nbcio-vue.git 在线演示(包括H5) : http://122.227.135.243:9888 因为看很多朋友需要…

利用Transformer BEV解决自动驾驶Corner Case的技术原理

摘要: 本文总结了Transformer和BEV技术在自动驾驶中的原理和应用,特别是如何解决Corner Case问题。 自动驾驶系统在实际应用中需要面对各种复杂的场景,尤其是Corner Case(极端情况)对自动驾驶的感知和决策能力提出了更…

访问者模式(十八)

相信自己,请一定要相信自己 上一章简单介绍了命令模式(十七), 如果没有看过, 请观看上一章 一. 访问者模式 引用 菜鸟教程里面访问者模式介绍: https://www.runoob.com/design-pattern/visitor-pattern.html 在访问者模式(Visitor Pattern&#xff09…

大模型入门(六)—— RLHF微调大模型

一、RLHF微调三阶段 参考:https://huggingface.co/blog/rlhf 1)使用监督数据微调语言模型,和fine-tuning一致。 2)训练奖励模型     奖励模型是输入一个文本序列,模型给出符合人类偏好的奖励数值,这个奖…

大数据技术——用户与组管理

一、实验目的 1.了解linux用户和组 2.熟练掌握liunx用户和组的基本操作 3.进一步了解linux系统 二、实验内容 1.用户账号的添加、删除与修改。 2.用户口令的管理 3.用户组的管理 三、实验原理或流程 Linux系统是一个多用户多任务的分时操作系统,任何一个要使…

阿里面试了7轮...就这么狠的吗?

引言 今年的大环境非常差,互联网企业裁员的现象比往年更严重了,可今年刚好是我的第一个“五年计划”截止的时间点,说什么也不能够耽搁了,所以早早准备的跳槽也在疫情好转之后开始进行了。但是,不得不说,这…

ApacheStreamPark2.1.0部署及执行flink-cdc任务同步mysql表的数据到es的实践

文章目录 [toc] 1.ApacheStreamPark是什么?2.介绍2.1 特性2.2 架构2.3 Zeppelin和StreamPark的对比 3.相关连接4.部署4.1 二进制包编译构建4.2 镜像构建4.3 初始化sql4.4 部署4.4.1 Docker-compose.yaml部署脚本4.4.2 配置文件准备4.4.3 flink启动配置4.4.4 streamp…

7. WebGPU 将图像导入纹理

我们在上一篇文章中介绍了有关使用纹理的一些基础知识。在本文中,我们将介绍从图像导入纹理。 在上一篇文章中,通过调用 device.createTexture 创建了一个纹理,然后通过调用 device.queue.writeTexture 将数据放入纹理中。 device.queue 上还…

从小白到大神之路之学习运维第41天---第三阶段---Redis高可用集群(redis 的主从复制、redis的哨兵模式操作)

第三阶段基础 时 间:2023年6月15日 参加人:全班人员 内 容: Redis高可用集群 目录 一、redis主从复制原理介绍 主从复制特点: 主从复制实现原理: 二、主从复制实现操作(多机实例实现&#xff09…

Mysql 表的七种联接方式【附带练习sql】

联接 七种JOIN介绍 图形联接方式说明SQL内联接共有部分SELECT <select_list> FROM TableA A INNER JOIN TableB B ON A.Key B.Key;左联接A表独有共有部分SELECT <select_list> FROM TableA A LEFT JOIN TableB B ON A.Key B.Key;右联接B表独有共有部分SELECT &…

linux spi相关调试

在Linux系统中&#xff0c;SPI 的用户模式设备接口的驱动源码位于 drivers/spi/spidev.c&#xff0c;在应用层生成 /dev/spidev* 的节点&#xff0c;可以通过 read、 write 达到与硬件设备的 SPI 通信。下面介绍spidev驱动移植和应用程序编写方法。 SPI &#xff08;serial pe…

阿里 P8 面试官总结的《2023 最新 java 面试题》限时开源了

国内的互联网面试&#xff0c;恐怕是现存的、最接近科举考试的制度。 以美国为例&#xff0c;北美工程师面试比较重视算法&#xff08;Coding&#xff09;&#xff0c;近几年也会加入 Design 轮&#xff08;系统设计和面向对象设计 OOD&#xff09;和 BQ 轮&#xff08;Behavi…

怎么学习数据库的相关知识? - 易智编译EaseEditing

学习数据库的相关知识可以按照以下步骤进行&#xff1a; 确定学习目标&#xff1a; 了解数据库的基本概念、原理和常用术语&#xff0c;学习数据库管理系统&#xff08;DBMS&#xff09;的功能和特性&#xff0c;以及掌握数据库设计和查询语言等方面的知识。 学习数据库基础知…