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

news2025/2/24 12:35:06

《博主简介》

小伙伴们好,我是阿旭。专注于人工智能、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.coloradmin.cn/o/1902202.html

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

相关文章

Thisjavabean对象数组

This 1.概念 this是一个对象this是一个构造函数 2.介绍 解决局部变量和成员变量命名冲突 this在面向对象-封装那一篇里,有被两个地方提及。 但我们先简单给一个例子: public Person(String name, String phone, String qqPassword, String bankCar…

【踩坑】修复报错Cannot find DGL libdgl_sparse_pytorch_2.2.0.so

转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~ 目录 错误复现 原因分析 解决方法 错误复现 import dgldataset dgl.data.CoraGraphDataset() graph dataset[0] graph.adjacency_matrix() 原因分…

Python 学习中什么是元组,如何使用元组?

什么是元组 元组(Tuple)是Python内置的一种数据结构,用于存储多个数据项。与列表类似,元组也可以存储不同类型的数据,但它们之间存在一个重要区别:元组是不可变的,也就是说,一旦创建…

笔记13:switch多分支选择语句

引例: 输入1-5中的任意一共数字,对应的打印字符A,B,C,D,E int num 0; printf("Input a number[1,5]:"); scanf("%d",&num); if( num 1)printf("A\n"); else if(num2)printf("B\n"); else i…

文化财经macd顶底背离幅图指标公式源码

DIFF:EMA(CLOSE,12) - EMA(CLOSE,26); DEA:EMA(DIFF,9); MACD:2*(DIFF-DEA),COLORSTICK; JC:CROSS(DIFF,DEA); SC:CROSSDOWN(DIFF,DEA); N1:BARSLAST(JC)1; N2:BARSLAST(SC)1; HH:VALUEWHEN(CROSSDOWN(DIFF,DEA),HHV(H,N1));//上次MACD红柱期间合约最大值 HH2:VALUEWHE…

HTML(26)——平面转换-旋转-多重转换-缩放

旋转 属性:transform:rotate(旋转角度) 角度的单位是deg。 取值为正,顺时针旋转取值为负,逆时针旋转 默认情况下,旋转的原点是盒子中心点 改变旋转的原点可以使用属性:transform-origin:水平原点位置 垂直原点位置 取值&a…

springboot+vue原创歌曲分享平台 LW +PPT+源码+讲解

3 平台分析 3.1平台可行性分析 3.1.1经济可行性 由于本平台是作为毕业设计平台,且平台本身存在一些技术层面的缺陷,并不能直接用于商业用途,只想要通过该平台的开发提高自身学术水平,不需要特定服务器等额外花费。所有创造及工作…

[BJDCTF 2nd]简单注入

sqlsqlsqlsqlsql又来喽 过滤了单双引号,等于符号,还有select等,但是这里没有二次注入 。扫描发现hint.txt 看出题人的意思是,得到密码即可获得flag。 select * from users where username$_POST["username"] and passw…

编写优雅Python代码的20个最佳实践

想要让你的代码像艺术品一样既实用又赏心悦目吗?今天我们就来聊聊如何通过20个小技巧,让你的Python代码从平凡走向优雅,让同行看了都忍不住点赞! **温馨提示:更多的编程资料,领取方式在: 1. 拥…

最小代价生成树实现(算法与数据结构设计)

课题内容和要求 最小代价生成树的实现,分别以普利姆算法和克鲁斯卡尔算法实现最小代价生成树,并分析两种算法的适用场合。 数据结构说明 普利姆算法实现最小代价生成树的图采用邻接表存储结构,还有辅助数据结构,数组nearest&am…

Lambda架构

1.Lambda架构对大数据处理系统的理解 Lambda架构由Storm的作者Nathan Marz提出,其设计目的在于提供一个能满足大数据系统关键特性的架构,包括高容错、低延迟、可扩展等。其整合离线计算与实时计算,融合不可变性、读写分离和复杂性隔离等原则&…

揭秘“消费即收益”的循环购模式 商家智慧还是消费陷阱?

大家好,我是你们的电商策略顾问吴军。今天,我将带大家深入剖析一种新兴的商业模式——循环购模式,它以其独特的“消费赠礼、每日返利、提现自由”特性,在电商界掀起了不小的波澜。那么,这种模式究竟有何魅力&#xff1…

ip地址突然变了一个城市怎么办

在数字化日益深入的今天,IP地址不仅是网络连接的标识,更是我们网络行为的“身份证”。然而,当您突然发现您的IP地址从一个城市跳转到另一个城市时,这可能会引发一系列的疑问和担忧。本文将带您深入了解IP地址突变的可能原因&#…

Android ViewPostImeInputStage输入事件处理

InputDispatcher向InputChannel使用socket写入输入事件,触发InputEventReceiver调用来接收输入事件。 ViewPostImeInputStage处理view控件的事件 frameworks/base/core/java/android/view/InputEventReceiver.java dispatchInputEvent frameworks/base/core/jav…

Shell编程类-网站检测

Shell编程类-网站检测 面试题参考答法 a(1 2 3 4) echo ${a[0]} echo ${a[*]}这里声明一个数值,并选择逐个调用输出还是全部输出 curl -w %{http_code} urL/IPADDR常用-w选项去判断网站的状态,因为不加选择访问到的网站可能出现乱码无法判断是否网站down…

Nuxt框架中内置组件详解及使用指南(一)

title: Nuxt框架中内置组件详解及使用指南(一) date: 2024/7/6 updated: 2024/7/6 author: cmdragon excerpt: 本文详细介绍了Nuxt框架中的两个内置组件和的使用方法与功能。确保包裹的内容仅在客户端渲染,适用于处理浏览器特定功能或异步…

第1章 项目背景(学成在线),项目介绍,环境搭建

1.项目背景 1.1 在线教育市场环境 以下内容摘自https://report.iresearch.cn/content/2021/01/358854.shtml 在线教育行业是一个有着极强的广度和深度的行业,从校内到校外;从早幼教到职业培训;从教育工具到全信息化平台等等。 2020年的新…

智慧文旅(景区)解决方案PPT(42页)

智慧文旅解决方案摘要 行业分析中国旅游业正经历消费大众化、需求品质化、发展全域化和产业现代化的发展趋势。《“十三五”旅游业发展规划》的发布,以及文化和旅游部的设立,标志着旅游业的信息化和智能化建设成为国家战略。2018年推出的旅游行业安全防范…

Linux:Ubuntu18.04下开机自启动QT图形化界面

Linux:Ubuntu18.04下开机自启动QT图形化界面 Chapter1 Linux:Ubuntu18.04下开机自启动QT图形化界面一、创建rc.local文件二、建立rc-local.service文件三、启动服务查看启动状态四、重启 Chapter2 将QT应用作为开机自启动(Linux系统&#xff…

ePTFE膜(膨体聚四氟乙烯膜)应用前景广阔 本土企业技术水平不断提升

ePTFE膜(膨体聚四氟乙烯膜)应用前景广阔 本土企业技术水平不断提升 ePTFE膜全称为膨体聚四氟乙烯膜,指以膨体聚四氟乙烯(ePTFE)为原材料制成的薄膜。ePTFE膜具有耐化学腐蚀、防水透气性好、耐候性佳、耐磨、抗撕裂等优…