超越YOLO! RT-DETR 实时目标检测技术介绍

《博主简介》

小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。
更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~
👍感谢小伙伴们点赞、关注!

《------往期经典推荐------》

一、AI应用软件开发实战专栏【链接】

项目名称项目名称
1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】
3.【手势识别系统开发】4.【人脸面部活体检测系统开发】
5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】
7.【YOLOv8多目标识别与自动标注软件开发】8.【基于YOLOv8深度学习的行人跌倒检测系统】
9.【基于YOLOv8深度学习的PCB板缺陷检测系统】10.【基于YOLOv8深度学习的生活垃圾分类目标检测系统】
11.【基于YOLOv8深度学习的安全帽目标检测系统】12.【基于YOLOv8深度学习的120种犬类检测与识别系统】
13.【基于YOLOv8深度学习的路面坑洞检测系统】14.【基于YOLOv8深度学习的火焰烟雾检测系统】
15.【基于YOLOv8深度学习的钢材表面缺陷检测系统】16.【基于YOLOv8深度学习的舰船目标分类检测系统】
17.【基于YOLOv8深度学习的西红柿成熟度检测系统】18.【基于YOLOv8深度学习的血细胞检测与计数系统】
19.【基于YOLOv8深度学习的吸烟/抽烟行为检测系统】20.【基于YOLOv8深度学习的水稻害虫检测与识别系统】
21.【基于YOLOv8深度学习的高精度车辆行人检测与计数系统】22.【基于YOLOv8深度学习的路面标志线检测与识别系统】
23.【基于YOLOv8深度学习的智能小麦害虫检测识别系统】24.【基于YOLOv8深度学习的智能玉米害虫检测识别系统】
25.【基于YOLOv8深度学习的200种鸟类智能检测与识别系统】26.【基于YOLOv8深度学习的45种交通标志智能检测与识别系统】
27.【基于YOLOv8深度学习的人脸面部表情识别系统】28.【基于YOLOv8深度学习的苹果叶片病害智能诊断系统】
29.【基于YOLOv8深度学习的智能肺炎诊断系统】30.【基于YOLOv8深度学习的葡萄簇目标检测系统】
31.【基于YOLOv8深度学习的100种中草药智能识别系统】32.【基于YOLOv8深度学习的102种花卉智能识别系统】
33.【基于YOLOv8深度学习的100种蝴蝶智能识别系统】34.【基于YOLOv8深度学习的水稻叶片病害智能诊断系统】
35.【基于YOLOv8与ByteTrack的车辆行人多目标检测与追踪系统】36.【基于YOLOv8深度学习的智能草莓病害检测与分割系统】
37.【基于YOLOv8深度学习的复杂场景下船舶目标检测系统】38.【基于YOLOv8深度学习的农作物幼苗与杂草检测系统】
39.【基于YOLOv8深度学习的智能道路裂缝检测与分析系统】40.【基于YOLOv8深度学习的葡萄病害智能诊断与防治系统】
41.【基于YOLOv8深度学习的遥感地理空间物体检测系统】42.【基于YOLOv8深度学习的无人机视角地面物体检测系统】
43.【基于YOLOv8深度学习的木薯病害智能诊断与防治系统】44.【基于YOLOv8深度学习的野外火焰烟雾检测系统】
45.【基于YOLOv8深度学习的脑肿瘤智能检测系统】46.【基于YOLOv8深度学习的玉米叶片病害智能诊断与防治系统】
47.【基于YOLOv8深度学习的橙子病害智能诊断与防治系统】48.【车辆检测追踪与流量计数系统】
49.【行人检测追踪与双向流量计数系统】50.【基于YOLOv8深度学习的反光衣检测与预警系统】
51.【危险区域人员闯入检测与报警系统】

二、机器学习实战专栏【链接】,已更新31期,欢迎关注,持续更新中~~
三、深度学习【Pytorch】专栏【链接】
四、【Stable Diffusion绘画系列】专栏【链接】
五、YOLOv8改进专栏【链接】持续更新中~~
六、YOLO性能对比专栏【链接】,持续更新中~

《------正文------》

引言

img

在实时目标检测上,RT-DETR击败了YOLO。其核心改进如下:

  • 实时设计模型(RT-DETR)基于两个步骤提出:专注于在提高速度的同时保持精度,然后在提高精度的同时保持速度。
  • 高效的混合编码器旨在通过解耦尺度内相互作用和跨尺度融合来快速处理多尺度特征,以提高速度。
  • 然后,提出不确定性最小查询选择,为解码器提供高质量的初始查询,从而提高精度;

1. YOLO存在的问题

img

  • 非极大值抑制NMS的执行时间主要取决于检测框数和两个阈值。
  • 随着置信度阈值的增加,更多的预测框被过滤掉,需要计算IoU的剩余框数减少,从而减少了NMS的执行时间。
  • 另一个观察结果是,无锚探测器的性能优于基于锚的探测器,其精度与YOLO探测器相当,因为前者比后者需要更少的NMS时间。

2. RT-DETR介绍

2.1. 概述

img

  • 主干 {S3,S4,S5} 最后三级的特征被输送到编码器中。
  • 高效的混合编码器通过尺度内特征交互AIFI跨尺度特征融合CCFF,将多尺度特征转化为一系列图像特征。
  • 随后,采用不确定性最小查询选择来选择固定数量的编码器特征作为解码器的初始对象查询。
  • 最后,带有辅助检测头的解码器迭代优化对象查询以生成类别和框。

2.2. 高效混合编码器

img

  • 编码器占 GFLOP 的 49%,但在可变形 DETR 中仅贡献 11% 的 AP。需要优化的编码器设计。
  • A:DINO-Deformable-R50具有更小尺寸的数据编码器和更轻的解码器。
  • A → B:变体 B 将单尺度 Transformer 编码器插入 A,该编码器使用一层 Transformer 模块。多尺度要素共享编码器以进行尺度内特征交互,然后连接作为输出。
  • B → C:变体 C 引入了基于 B 的跨尺度特征融合,并将串联的特征输送到多尺度 Transformer 编码器中,以同时执行尺度内和跨尺度特征交互。
  • C → D:变体 D 通过前者使用单尺度 Transformer 编码器和后者使用 PANet 式结构,将尺度内相互作用和跨尺度融合解耦。

D → E:变体 E 采用了作者设计的高效混合编码器,增强了基于 D 的尺度内交互和跨尺度融合。

  • 提出了基于注意力的尺度内特征交互(AIFI)和基于CNN的跨尺度特征融合(CCFF)2个组成部分

2.2.1. AIFI尺度内特征交互

具体而言,AIFI通过仅在S5上与单尺度Transformer编码器执行尺度内交互,进一步降低了基于变体D的计算成本。

  • 在 S5 上使用 D 不仅可以显著降低延迟(提高 35%),还可以提高准确性(AP 提高 0.4%)。

2.2.2. CCFF跨尺度特征融合

img

  • 融合块的作用是将两个相邻的尺度特征融合成一个新特征,如上所述。
  • 使用两个 1 × 1 卷积来调整通道数,使用 N 个由 RepConv (RepVGG) 组成的 RepBlock 进行特征融合,并通过逐元加法融合双路径输出。
  • 混合编码器的配方如下:

img

2.3. 不确定性最小查询选择

  • 基于DETR的先前工作使用置信度分数来选择查询的前K个特征,这导致所选特征具有相当大的不确定性,导致解码器的初始化次优。

特征不确定性 U 定义为定位 P 与分类 C 的预测分布之间的差异,并添加到损失函数中。

img

img

  • 紫色和绿色点分别表示使用不确定性最小查询选择和普通查询选择训练的模型中的选定特征。

紫色的点集中在图的右上角,而绿色的点集中在右下角。这表明不确定性最小查询选择会产生更高质量的编码器特征。

2.4. 缩放的RT-DETR

  • 具体来说,对于混合编码器,宽度通过调整嵌入尺寸和通道数来控制,深度通过调整 Transformer 层数和 RepBlock 来控制。
  • 解码器的宽度和深度可以通过操作对象查询和解码器层的数量来控制。
  • 此外,RT-DETR的速度支持通过调整解码器层数进行灵活调整。

3. 实验结果

3.1. SOTA比较

img

  • 与YOLOv5-L / PP-YOLOE-L / YOLOv6-L相比,RT-DETR-R50将精度提高了4.1%/1.7%/0.3% AP,FPS提高了100.0%/14.9%/9.1%,参数数量减少了8.7%/19.2%/28.8%。
  • 与YOLOv5-X / PP-YOLOE-X相比,RT-DETR-R101的准确率提高了3.6%/2.0%,FPS提高了72.1%/23.3%,参数数量减少了11.6%/22.4%。
  • 与YOLOv7-L / YOLOv8-L相比,RT-DETR-R50将准确度提高了1.9%/0.2% AP,并将FPS提高了96.4%/52.1%。
  • 与YOLOv7-X / YOLOv8-X相比,RT-DETR-R101将准确度提高了1.4%/0.4% AP,并将FPS提高了64.4%/48.0%。

这表明所提出的RT-DETR实现了最先进的实时检测性能。

  • 与 DINO-Deformable-DETR-R50 相比,RT-DETR-R50 将精度提高了 2.2% AP,将速度提高了 21 倍(108 FPS 对 5 FPS),两者都得到了显着提高。

RT-DETR 在速度和精度方面都优于所有具有相同主干的 DETRs。

3.2. 消融研究

编码器变体

img

所提出的混合编码器在速度和精度之间实现了更好的权衡。

img

  • 通过不确定性最小查询选择选择的编码器特征不仅增加了高分类分数的比例(0.82% vs 0.35%),而且提供了更高质量的特征(0.67% vs 0.30%)。

不确定性最小查询选择实现了 0.8% AP 的改进(48.7% AP vs 47.9% AP)。

img

RT-DETR支持灵活的速度微调,无需重新训练即可调整解码器层数,从而提高其实用性。


关注文末名片G-Z-H:【阿旭算法与机器学习】,发送【开源】可获取更多学习资源

在这里插入图片描述

好了,这篇文章就介绍到这里,喜欢的小伙伴感谢给点个赞和关注,更多精彩内容持续更新~~
关于本篇文章大家有任何建议或意见,欢迎在评论区留言交流!

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

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

相关文章

免杀笔记 ----> DLL注入

这段时间我们暂时没什么事情干的话我们就继续更新我们的免杀笔记力!!! :今天我们讲DLL注入 目录 1.DLL注入 2.直接加载DLL? 3.远程线程注入 获取Handle 远程申请内存空间 将我们的CS的DLL加载入内存 创建远程线…

02:C语言数据类型

C语言数据类型 1、整型变量2、浮点型变量3、字符型变量4、有符号数和无符号数 1、整型变量 #include <stdio.h>int main(void) { /* int a; //定义一个整型变量aint b; //定义一个整型变量bint c; //定义一个整型变量c */ /* int a,b,c; //也可以这样定义a 25;b 6; *…

【Linux】进程信号_4

文章目录 八、进程信号3. 信号的处理4. 可重入函数5. volatile 未完待续 八、进程信号 3. 信号的处理 当某个信号的处理函数被调用时&#xff0c;操作系统会自动将当前信号假如进程的信号屏蔽字当中。如果处理完该信号&#xff0c;该信号同样也会自动从信号屏蔽字中 移除。该…

Apache Seata core 模块源码分析

本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 本文来自 Apache Seata官方文档&#xff0c;欢迎访问官网&#xff0c;查看更多深度文章。 一 . 导读 core 模块定义了事务的类型、状态&#xff0c;通用的行为&#xff0c;client 和 s…

毕业季有感

本文介绍一些刚毕业、即将入职前的随想与心得。 毕业和上班无缝衔接。要离开北京了&#xff0c;来到天津。 我一向很喜欢探索新环境&#xff0c;每一次要到新的学校、新的城市、新的单位都会很激动&#xff1b;这一次也是一样&#xff0c;在一开始几乎只有对新环境的憧憬。但是…

7.6第三天作业

一、在数据库中创建一个表student&#xff0c;用于存储学生信息 CREATE TABLE student( id INT PRIMARY KEY, name VARCHAR(20) NOT NULL, grade FLOAT ); &#xff08;1.&#xff09;先创建一个数据库 &#xff08;2.&#xff09;创建student表 查看是否创建成功 1、向studen…

http读书笔记

持久化 HTTP/1.1 和一部分的 HTTP/1.0 想出了 持久连接&#xff08;HTTP Persistent Connections&#xff0c; 也称为 HTTP keep-alive 或 HTTP connection reuse&#xff09; 的方法。 持久连接的特点是&#xff0c; 只要任意一端 没有明确提出断开连接&#xff0c; 则保持 T…

MySQL第三天作业

一、在数据库中创建一个表student&#xff0c;用于存储学生信息 CREATE TABLE student( id INT PRIMARY KEY, name VARCHAR(20) NOT NULL, grade FLOAT ); 1、向student表中添加一条新记录 记录中id字段的值为1&#xff0c;name字段的值为"monkey"…

【Linux】查找命令——which,type,find,whereis,locate

命令与文件的查找 文件的查找可就厉害了&#xff0c;因为我们常常需要知道哪个文件放在哪里&#xff0c;才能够对该文件进行一些修改或维护等操作。 有时候某些软件配置文件的文件名是不变的&#xff0c;但是各Linux发行版放置的目录则不同。 此时就要利用一些查找命令将该配…

25.【C语言】循环结构之for 上

1.基本使用 类比while 在while循环中&#xff0c;有三个不可或缺的部分&#xff1a;初始化&#xff0c;判断部分&#xff0c;调整部分 int i 0;//初始化 while (i < 10)//判断部分 {……i;//调整部分 }三个部分太分散&#xff0c;用for循环可集为一体&#xff0c;简洁 …

使用shell脚本实现DM8开机自动启动

编写shell脚本 #!/bin/bashsu -dmdba >>EOF cd /home/dmdba/dmdbms/bin ./DmServiceDMTEST start echo "dm start ... " EOF注意&#xff1a;DmServiceDMTEST每个服务器设置的不一样&#xff0c;根据实际进行更换 授权脚本可执行权限 chmod -x /dmdata/dmse…

搭建互联网医院实战:从源码到在线问诊APP的全流程开发

今天&#xff0c;笔者将讲述在线问诊APP的全流程开发&#xff0c;帮助开发者理解和掌握搭建互联网医院的核心技术和步骤。 一、需求分析与设计 需求分析包括明确目标用户、功能需求、性能需求等。设计阶段则包括系统架构设计、数据库设计和前后端界面设计等。 1.目标用户&…

最小权顶点覆盖问题-优先队列分支限界法-C++

问题描述: 给定一个赋权无向图 G(V,E)&#xff0c;每个顶点 v∈V 都有一个权值 w(v)。如果 U⊆V&#xff0c;U⊆V&#xff0c;且对任意(u,v)∈E 有 u∈U 或 v∈U&#xff0c;就称 U 为图 G 的一个顶点覆盖。G 的最小权顶点覆盖是指 G 中所含顶点权之和最小的顶点覆盖。对于给定…

提取重复数据

直接上控制台代码&#xff1a; Module Module1Sub Main()Console.WriteLine("请输入数据&#xff0c;以""&#xff0c;""相隔&#xff1a;")Dim str As String Console.ReadLineDim result From x In str.Split(",")Group By x Int…

NTP协议格式解析

1. NTP时间戳格式 SNTP使用在RFC 1305 及其以前的版本所描述标准NTP时间戳的格式。与因特网标准标准一致&#xff0c; NTP 数据被指定为整数或定点小数&#xff0c;位以big-endian风格从左边0位或者高位计数。除非不这样指定&#xff0c;全部数量都将设成unsigned的类型&#…

Android Graphics 显示系统 - 监测、计算FPS的工具及设计分析

“ 在Android图像显示相关的开发、调试、测试过程中&#xff0c;如何能有效地评估画面的流畅度及监测、计算图层渲染显示的实时FPS呢&#xff1f;本篇文章将会提供一种实用、灵巧的思路。” 01 设计初衷 面对开发测试中遇到的卡顿掉帧问题&#xff0c;如何在复现卡顿的过程中持…

代码随想录算法训练营第四十五天| 300.最长递增子序列、 674. 最长连续递增序列、 718. 最长重复子数组

300.最长递增子序列 题目链接&#xff1a;300.最长递增子序列 文档讲解&#xff1a;代码随想录 状态&#xff1a;不会&#xff0c;递推状态的时候只想着如何从dp[i-1]推导dp[i]&#xff0c;没想过可能需要枚举dp[0-i] 思路&#xff1a; 找出所有比自己小的数字的dp[j],在这些dp…

SpringBoot 实现视频分段播放(通过进度条来加载视频)

需求&#xff1a;现在我本地电脑中有一个文件夹&#xff0c;文件夹中都是视频&#xff0c;需要实现视频播放的功能。 问题&#xff1a;如果通过类似 SpringBoot static 文件夹的方式来实现&#xff0c;客户端要下载好完整的视频之后才可以播放&#xff0c;并且服务端也会占用大…

秋招突击——7/5——设计模式知识点补充——适配器模式、代理模式和装饰器模式

文章目录 引言正文适配器模式学习篮球翻译适配器 面试题 代理模式学习面试题 装饰器模式学习装饰模式总结 面试题 总结 引言 为了一雪前耻&#xff0c;之前腾讯面试的极其差&#xff0c;设计模式一点都不会&#xff0c;这里找了一点设计模式的面试题&#xff0c;就针对几个常考…

计算机图形学入门24:材质与外观

1.前言 想要得到一个漂亮准确的场景渲染效果&#xff0c;不只需要物理正确的全局照明算法&#xff0c;也要了解现实中各种物体的表面外观和在图形学中的模拟方式。而物体的外观和材质其实就是同一个意思&#xff0c;不同的材质在光照下就会表现出不同的外观&#xff0c;所以外观…