论文学习:RT-DETR

RT-DETR

摘要

  • DETR取得显著性能,但高成本计算使其无法发挥无NMS的优势,无法实际应用。
  • 本文分析了NMS对准确性和速度的负面影响,并建立端到端的速度基准。
  • 第一个实时端到端检测器,高效处理多尺度特征,并提出IoU-aware query selection,向解码器提供了更高质量的初始object queries
  • 可以灵活调整解码器层数来调整推理速度,不需要重新训练。
  • 速度和精度都优于相同规模最先进的YOLO检测器。

介绍

  • 尽管多尺度特征的引入有利于加速训练收敛和提高性能[49],但它也会导致编码器中序列长度的显著增加。
  • 设计了高效的混合编码器来取代原来的transformer编码器。解耦了多尺度特征的尺度内交互和尺度间融合。
  • 解码器的object queries初始化方案对检测性能至关重要,提出了IoU-aware query selection,通过在训练期间提供IOU约束来向解码器提供高质量的初始object queries
  • 可以灵活调整解码器层数来调整推理速度,不需要重新训练。
  • 文章贡献:1.第一个实时端到端对象检测器,速度精度达到SOTA。2.分析了NMS的影响。3.通过调整解码器层数,灵活调整推理速度不需要重新训练。

在这里插入图片描述

相关工作

  • 实时对象检测:YOLO系列为标杆,锚框不再制约YOLO速度,而是NMS。
  • 端到端目标检测:DETR,(收敛慢,查询难优化);deformableDETR,通过提高注意力机制的效率,加速了多尺度特征的训练收敛;Conditional DETR、Anchor DETR 降低了查询的优化难度;DAB-DETR引入4D参考点,并逐层优化预测框;DN-DETR通过引入查询去噪来加速训练收敛。Group-DETR通过引入分组一对多任务来加速训练。DINO建立在以前的工作基础上,取得了最先进的成果。
  • 目标检测的多尺度特征:多尺度特征可以提高性能,尤其对于小物体,FPN在对象检测中广泛使用,引入DETR后提高了性能,但计算成本显著增加;Efficient DETR通过使用密集先验初始化对象查询来减少编码器和解码器层的数量。Sparse DETR选择性地更新期望由解码器引用的编码器令牌,从而减少计算开销。Lite DETR通过以交错方式降低低级别特征的更新频率来提高编码器的效率。这些工作减少了计算成本,但并没有使DETR成为实时检测器

检测器的端到端速度

  • NMS的分析:NMS的执行时间取决于预测框的数量和两个超参数(得分阈值,IOU阈值);文章实验了有锚和无锚,的不同得分阈值下的锚框数量,不同得分阈值和IOU阈值下的AP和NMS耗时。证明了NMS对超参数的敏感性
  • 在这里插入图片描述
  • 建立了统一的推理速度基准后,测试了不同检测器的推理速度,结论为无锚在同等精度上优于基于锚的(会产生更多的预测框),后处理时间名明显减少。
  • 在这里插入图片描述

RT-DETR模型

  • 模型概述:由主干、混合编码器和带辅助预测头的变换解码器组成。

  • 利用骨干{S3,S4,S5}的最后三个阶段的输出特征作为编码器的输入。混合编码器通过尺度内交互(AIFI)和跨尺度融合(CCFM)将多尺度特征转换为一系列图像特征。随后,采用IoU感知查询选择从编码器输出序列中选择固定数量的图像特征,作为解码器的初始对象查询。最后,具有辅助预测头的解码器迭代地优化对象查询以生成框和置信度得分。

  • 在这里插入图片描述

  • 高效混合编码器:优化了Deformable-DETR中多尺度transformer编码器中的计算冗余,连接的多尺度之间进行特征交互是多余的,并设计了ABCDE一系列的编码器变体进行实验验证;证明多尺度特征交互解耦为尺度内交互和跨尺度融合后提高了模型准确性并显著降低了计算成本

  • 在这里插入图片描述

  • 在这里插入图片描述

  • 混合编码器结构: 基于注意力的AIFI和基于CNN的CCFM;AIFI仅在S5上执行尺度交互;CCFM在融合路径中插入了几个由卷积层组成的融合块,融合块将相邻特征合并为一个新特征;

  • 在这里插入图片描述

  • RepBlock是什么?

  • IoU-aware Query Selection:DETR中的object queries ,难以解释和优化;后续工作对其初始化进行改进,增加了内容查询和位置查询。查询选择方案:利用分类得分从编码器中选择前K个特征来初始化object queries,但由于分类分数和位置置信度分布不一致,导致了高分类分数和低IOU分数的框;本文提出的IoU-aware Query Selection,在训练过程中约束模型为具有高IOU分数的特征产生高分类分数,为具有低IOU得分的特征产生低分类分数。因此选出的前K个预测框具有高分类得分和高IOU得分。将IOU分数引入分类分支的目标函数中

  • 有效性分析:通过可视化普通选择(红)和IoU-aware Query Selection(蓝),可以发现蓝的更多且质量更好(靠右上)

  • 在这里插入图片描述

实验

  • 在COCO上进行实验,对比YOLO,SOTA和其他端到端检测器,都有显著提升
  • 混合编码器的消融实验,见ABCDE的对照表,证明了尺度内特征交互,跨尺度特征融合,解耦两者和只对最高S5进行编码的正确性。
  • IoU-aware Query Selection的消融实验:根据分类得分选择前K个编码器特征作为内容查询,并将这些所选特征对应的边界框用作初始位置查询,结果证明可以显著提升高分类和IOU分数的比例
  • 在这里插入图片描述
  • 解码器消融实验:实验了不同层数的RT-DETR的每个解码层的准确率和速度,精度的提升率逐层减少而时间消耗每层不变。
  • 在这里插入图片描述

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

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

相关文章

osgPBR(十五)镜面IBL--查看不同级别的HDR环境贴图

首先&#xff0c;设置可以使用Mipmap&#xff0c;启用三线性过滤&#xff0c;设置最大级别和最小级别 osg::ref_ptr<osg::TextureCubeMap> tcm new osg::TextureCubeMap; tcm->setTextureSize(128, 128);tcm->setFilter(osg::Texture::MIN_FILTER, osg::Texture:…

《幸福之路》罗素(读书笔记)

目录 作者简介 作者的感悟 经典摘录 一、不幸福的成因 1、一部分要归咎于社会制度 2、一部分则得归咎于个人心理——当然&#xff0c;你可以说个人心理是社会制度的产物。 二、欠缺某些想要的东西&#xff0c;是快乐的必要条件 三、无聊与刺激 四、现代人的精神疲劳 五…

【C++】vector相关OJ

文章目录 1. 只出现一次的数字2. 杨辉三角3. 电话号码字母组合 ヾ(๑╹◡╹)&#xff89;" 人总要为过去的懒惰而付出代价ヾ(๑╹◡╹)&#xff89;" 1. 只出现一次的数字 力扣链接 代码展示&#xff1a; class Solution { public:int singleNumber(vector<i…

【“栈、队列”的应用】408数据结构代码

王道数据结构强化课——【“栈、队列”的应用】代码&#xff0c;持续更新 链式存储栈&#xff08;单链表实现&#xff09;&#xff0c;并基于上述定义&#xff0c;栈顶在链头&#xff0c;实现“出栈、入栈、判空、判满”四个基本操作 #include <stdio.h> #include <…

大数据-玩转数据-Flink SQL编程实战 (热门商品TOP N)

一、需求描述 每隔30min 统计最近 1hour的热门商品 top3, 并把统计的结果写入到mysql中。 二、需求分析 1.统计每个商品的点击量, 开窗2.分组窗口分组3.over窗口 三、需求实现 3.1、创建数据源示例 input/UserBehavior.csv 543462,1715,1464116,pv,1511658000 662867,22…

基于阶梯碳交易的含P2G-CCS耦合和燃气掺氢的虚拟电厂优化调度(matlab代码)

目录 1 主要内容 系统结构图 P2G-CCS 耦合模型 其他算例对比 2 部分代码 3 下载链接 1 主要内容 该程序复现《基于阶梯碳交易的含P2G-CCS耦合和燃气掺氢的虚拟电厂优化调度》模型&#xff0c;以碳交易和碳封存成本、燃煤机组启停和煤耗成本、弃风成本、购气成本之和为目标…

vertx的学习总结6

Beyond the event bus 一、章节覆盖&#xff1a; 如何在事件总线之上公开服务 verticles和事件总线服务的异步测试 动态代理&#xff1a; MyService 接口 package porxy.test;import io.vertx.codegen.annotations.ProxyGen;ProxyGen public interface MyService {void he…

智慧公厕:城市公共厕所的未来之路

随着城市化进程的不断推进&#xff0c;人们对城市环境质量的要求也越来越高。在城市管理中&#xff0c;公厕作为一个必不可少的公共设施&#xff0c;不仅关乎城市的文明形象&#xff0c;还与市民的生活质量密切相关。为了解决传统公厕存在的问题&#xff0c;智慧公厕应运而生。…

Go-Python-Java-C-LeetCode高分解法-第八周合集

前言 本题解Go语言部分基于 LeetCode-Go 其他部分基于本人实践学习 个人题解GitHub连接&#xff1a;LeetCode-Go-Python-Java-C 欢迎订阅CSDN专栏&#xff0c;每日一题&#xff0c;和博主一起进步 LeetCode专栏 我搜集到了50道精选题&#xff0c;适合速成概览大部分常用算法 突…

大模型部署手记(3)通义千问+Windows GPU

1.简介 组织机构&#xff1a;阿里 代码仓&#xff1a;GitHub - QwenLM/Qwen: The official repo of Qwen (通义千问) chat & pretrained large language model proposed by Alibaba Cloud. 模型&#xff1a;Qwen/Qwen-7B-Chat-Int4 下载&#xff1a;http://huggingface…

【AI视野·今日Sound 声学论文速览 第十八期】Wed, 4 Oct 2023

AI视野今日CS.Sound 声学论文速览 Wed, 4 Oct 2023 Totally 4 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Mel-Band RoFormer for Music Source Separation Authors Ju Chiang Wang, Wei Tsung Lu, Minz Won最近&#xff0c;基于多频段频谱图的方法…

windows server 2012 服务器打开系统远程功能

服务器上开启远程功能 进入服务器&#xff0c;选择“添加角色和功能” 需要选择安装的服务器类型&#xff0c;如图所示 然后在服务器池中选择你需要使用的服务器。 选择完成后&#xff0c;在图示列表下勾选“远程桌面服务” 再选择需要安装的功能和角色服务。 选择完成确认内容…

大模型部署手记(4)MOSS+Jetson AGX Orin

1.简介 组织机构&#xff1a;复旦大学 代码仓&#xff1a;GitHub - OpenLMLab/MOSS: An open-source tool-augmented conversational language model from Fudan University 模型&#xff1a;fnlp/moss-moon-003-sft-int4 下载&#xff1a;https://huggingface.co/fnlp/mos…

C++_pen_友元

友元&#xff08;破坏封装&#xff09; 我故意让别人能使用我的私有成员 友元类 friend class B;友元函数 friend void func();友元成员函数 friend void A::func();例 #include <stdio.h>class A;class C{ public:void CprintA(A &c); };class B{ public:void Bpri…

qt 5.15.2 安卓 macos

macos环境安卓配置 我的系统是monterey12.5.1 打开qt的配置界面 这里版本是java1.8&#xff0c;注意修改这个json文件&#xff0c;显示包内容 {"common": {"sdk_tools_url": {"linux": "https://dl.google.com/android/repository/comm…

lv7 嵌入式开发-网络编程开发 07 TCP服务器实现

目录 1 函数介绍 1.1 socket函数 与 通信域 1.2 bind函数 与 通信结构体 1.3 listen函数 与 accept函数 2 TCP服务端代码实现 3 TCP客户端代码实现 4 代码优化 5 练习 1 函数介绍 其中read、write、close在IO中已经介绍过&#xff0c;只需了解socket、bind、listen、acc…

Python爬虫案例入门教程(纯小白向)——夜读书屋小说

Python爬虫案例——夜读书屋小说 前言 如果你是python小白并且对爬虫有着浓厚的兴趣&#xff0c;但是面对网上错综复杂的实战案例看也看不懂&#xff0c;那么你可以尝试阅读我的文章&#xff0c;我也是从零基础python开始学习爬虫&#xff0c;非常清楚在过程中所遇到的困难&am…

简单查找重复文本文件

声明这是最初 我的提问给个文本分类清单input查找文件夹下 .py .txt .excel .word 一模一样的文本不是找文件名 找相同格式下的文件文本是否一样 文件单独复制到文件夹下两个文件全部复制到文件夹下 print 打印相同文本文件的名字 比如查找到了3.py与4.5.是.py文件中的文本文件…

Scala第一章节

Scala第一章节 scala总目录 章节目标 理解Scala的相关概述掌握Scala的环境搭建掌握Scala小案例: 做最好的自己 1. Scala简介 1.1 概述 ​ Scala(斯嘎拉)这个名字来源于"Scalable Language(可伸缩的语言)", 它是一门基于JVM的多范式编程语言, 通俗的说: Scala是一…

JAVAWeb业务层开发->普通和基于MP

普通方式业务层开发 service定义接口&#xff08;主要实现逻辑层面的业务功能&#xff09; serviceImpl实现该接口 注意事项&#xff1a; 逻辑判断的代码可以使用&#xff1e;号&#xff0c;使得返回结果为布尔类型。 小结&#xff1a;每一个接口写完都要写测试类去检测&#…