论文泛读: DETRs Beat YOLOs on Real-time Object Detection

[toc[

DETRs Beat YOLOs on Real-time Object Detection

论文地址: https://openaccess.thecvf.com/content/CVPR2024/html/Zhao_DETRs_Beat_YOLOs_on_Real-time_Object_Detection_CVPR_2024_paper.html
代码地址: https://zhao-yian.github.io/RTDETR

动机

现状

  • YOLO系列因其在速度和准确性之间的合理权衡而成为最流行的实时目标检测框架。
  • 基于端到端Transformer的检测器(DETR)由于其检测方法而受到学术界的广泛关注。

问题

  • YOLO的速度和准确性受到非极大值抑制(NMS)的负面影响。基于Transformer的端到端检测器(DETR)提供了消除NMS的替代方案,但是高昂的计算成本限制了它们的实用性,并阻碍它们充分利用排除NMS的优势。
  • YOLO需要NMS进行后处理,这不仅减慢了推理速度,而且引入了超参数,导致速度和精度不稳定。而且考虑到不同的场景对召回率和准确率的重视程度不同,需要仔细选择合适的NMS阈值,这阻碍了实时检测器的发展。
  • DTER的高计算成本使其无法满足实时检测要求,因此无NMS架构并未表现出推理速度优势。这启发我们探索DTER是否可以扩展到实时场景,并在速度和精度上超越先进的YOLO检测器,消除NMS带来的实时物体检测延迟。

贡献

  • 提出了Real-Time DEtection TRansformer(RT-DETR),第一个实时端到端对象检测器可以解决上述困境。它不仅在速度和精度上优于之前先进的YOLO检测器,而且消除了NMS后处理对实时目标造成的负面影响检测。
  • 定量分析了NMS对YOLO检测器的速度和准确性的影响,并建立了端到端的速度基准来测试实时检测器的端到端推理速度。
  • RT-DETR支持通过解码器层数来灵活调整速度以适应各种场景而无需重新训练。

方法

  • 对于减少不必要的计算冗余问题,作者观察到虽然引入多尺度特征有利于加速训练收敛,但它导致输入编码器的序列长度显著增加。多尺度特征交互造成的高计算成本似的Transformer编码器成为计算瓶颈。因此需要重新设计编码器
  • 之前的工作表明难以优化的对象query阻碍了DETR的性能,并提出了query选择方案来用编码器替换普通的可学习嵌入特征。然而,作者观察到当前的query选择直接采用分类分数进行选择,忽略了检测器需要同时对对象的类别和位置进行建模的事实。这不可避免地会导致选择具有低定位信度的编码器特征作为初始query, 从而导致相当大的不确定性并损害DETR的性能。
  • RT-DTER借鉴先进的DETER, 分两步构建RT-DETR: 首先专注于提高速度的同时保持精度,其实在提高精度的同时保持速度。具体地说,设计了一种高效的混合编码器,通过解耦尺度内交互和跨尺度融合来快速处理多尺度特征,以提高速度。然后,提出不确定性最小query选择,为解码器提供高质量的初始query, 从而提高精度。此外,RT-DETR支持灵活的速度调整,通过调整解码器层数来适应各种场景,无需重新训练。

不同变体的编码器结构:

SSE表示单尺度Transformer编码器。MSE表示多尺度Transformer编码器。CSF表示跨尺度融合。AIFI和CCFF是在RT-DETR的混合编码器中设计的两个模块。
在这里插入图片描述

RT-DETR的结构:
在这里插入图片描述

CCFF的结构:
在这里插入图片描述

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

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

相关文章

ubuntu设置为自己需要的屏幕分辨率

先说一下我处理该问题的大体背景:我是学习Linux的新手,刚学完嵌入式Linux驱动开发相关课程。现在想接着学习一下QT开发。我是在电脑上装了虚拟机之后安装的ubuntu系统。因为换了电脑,所以重新装了ubuntu系统。但是,装完ubuntu系统…

SELF-INSTRUCT: Aligning Language Modelswith Self-Generated Instructions 学习

指令微调就是要训练模型执行用户的要求的能力。 文章首先说“指令微调”数据集经常是人工生成,有数量少等缺点。文章提供了一个让语言模型自己生成指令微调数据,自己学习的方法。首先会让一个语言模型自己生成要求,输入和输出,然…

【JS】使用MessageChannel实现深度克隆

前言 通常使用简便快捷的JSON 序列化与反序列化实现深克隆,也可以递归实现或者直接使用lodash。 但 JSON 序列化与反序列化 无法处理如下的循环引用: 实现 MessageChannel 内部使用了浏览器内置的结构化克隆算法,该算法可以在不同的浏览器上…

redis集群部署

因为Redis是c开发的,因此安装redis需要c语言的编译环境,即先需要安装gcc. 1.解压包 [rootredis01 Redis]# tar -zvxf redis-3.2.9.tar.gz 查看是否存在Makefile文件,存在则直接make编译redis源码 2.编译文件 [rootredis01 redis-3.2.9]# make 安装编译好的文件 [rootredi…

上传拍摄素材和后期剪辑素材太慢?镭速助力企业加速大文件传输

随着时光的流逝,当代人对视觉体验的要求越来越高,每一帧画面都追求极致的清晰度与细腻感。这无疑为影视制作带来了机遇,同时也带来了挑战。高清4K、8K视频等大文件的传输需求日益增长,传统的FTP、HTTP等数据传输方式已难以满足行业…

华硕天选Air:开学季的性价比之巅

正值开学季,华硕天选Air全能本以8999元的首发价回归,为学生和需求高性能笔记本的用户带来了超值的选择。 这款笔记本以其轻薄设计和强悍性能,成为市场上的热点。 轻薄设计,潮流先锋 华硕天选Air 2024采用了全新模具设计&#xf…

零基础学习Python(七)

1. 字符串常用方法 lower()、upper():转换为小写字符串、大写字符串 split(str):按照指定字符串str进行分割,结果为列表: email "123qq.com" print(email.split("")) [123, qq.com] count(str)&#xf…

python12 中,No module named‘distutils‘错误

python12跑redis的时候,突然发现报错“ No module nameddistutils ” distutils在python标准库从2012年就开始断更了,python12中已经移除该库,可以安装以下库进行解决。 pip install setuptools --upgrade “setuptools”是一个处理Python软…

OceanBase 功能解析之 Binlog Service

前言 MySQL,是在全球广泛应用的开源关系型数据库,除了其稳定性、可靠性和易用性,他早期推出的二进制日志功能,即binlog,也是MySQL广受欢迎的原因。 MySQL binlog,即二进制日志,是 MySQL 中用于…

爆品是测出来的,不是选出来的

我在亚马逊摸爬滚打了五年,深深感受到了"七分选品,三分运营"的重要性。不管你的产品图片、描述多么精美,如果不去精选和测试,很难保证能出单。我见过很多跨境新手在选品上卡了几个月,纠结于卖什么。但实际上…

光敏电阻传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.光敏电阻传感器介绍 2.原理图 三、程序设计 main.c文件 ldr.h文件 ldr.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 光敏电阻器是利用半导体的光电导效应制成的一种电阻值随入射光的强弱而改变的电阻器,又称为光…

上新!Matlab实现基于QRGRU-Attention分位数回归门控循环单元注意力机制的时间序列区间预测模型

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRGRU-Attention分位数回归门控循环单元注意力机制的时间序列区间预测模型; 2.多图输出、多指标输出(MAE、RMSE、MSE、R2),多输入单输出,含不同置信区间图、概率…

[000-01-015].第03节:SpringBoot中数据源的自动配置

我的后端学习大纲 SpringBoot学习大纲 1.数据访问流程: 2.搭建数据库开发场景: 2.1.导入JDBC场景: 2.2.分析自动导入的内容: 2.3.分析为何没有导入数据库驱动: 1.因为人家也不知道我要用啥数据库,所以在自…

衡石科技BI的API如何授权文档解析

授权说明​ 授权模式​ 使用凭证式(client credentials)授权模式。 授权模式流程说明​ 第一步,A 应用在命令行向 B 发出请求。 第二步,B 网站验证通过以后,直接返回令牌。 授权模式结构说明​ 接口说明​ 获取a…

如何禁止电脑访问网站

一、修改Hosts文件 找到Hosts文件:在Windows系统中,Hosts文件通常位于C:\Windows\System32\drivers\etc\目录下。 编辑Hosts文件:以管理员身份打开记事本或任意文本编辑器,然后找到并打开Hosts文件。 添加禁止访问的域名&#…

SSRF漏洞(二)

本文仅作为学习参考使用,本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 前言: 本文主要讲解依靠phpstudy搭建pikachu靶场。 phpstudy下载使用以及搭建本地SQL labs靶场 SSRF漏洞(一) 靶场搭建。 靶场链接&#xff1…

Linux:NAT等相关问题

目录 1:NAT背景 2:NAT IP转换过程 3:NATP 4:正向代理 5:反向代理 6:NAT和代理服务器 应用场景 实现方法 1:NAT背景 IPv4地址耗尽:随着互联网的迅速发展,连接到…

LMDeploy 量化部署实践

一、环境配置见:https://github.com/InternLM/Tutorial/blob/camp3/docs/L2/LMDeploy/readme.md 验证LMDeploy启动InternLM2_5-7b-chat conda activate lmdeploy lmdeploy chat /root/models/internlm2_5-7b-chat二、量化显存计算 参数计算: LMDeploy …

盘点15款工程软件,为制造业选型提供参考!

本文将盘点15款工程软件,供企业选型参考。 工程软件就如同工程领域的得力助手,能让工程建设的各个环节都变得更加高效、精准。 对于工程企业来说,如果没有合适的工程软件,就像工匠没有趁手的工具,难以打造出精良的作品…

linux查看系统安装时间命令,找出Linux操作系统(OS)安装日期和时间

你可能想知道你的计算机上何时安装了Linux操作系统,即OS的安装日期和时间,使用tune2fs、dumpe2fs、ls、basesystem、setup、setuptool命令能出来结果。请注意,如果你从模板安装了操作系统,那么它将显示模板生成日期,而不是实际操作系统安装日期。 方法1:如何使用tune2fs…