DETRs Beat YOLOs on Real-time Object Detection

news2025/1/16 16:57:12

目录

  • 1、模型架构
    • 1.1高效混合编码器
      • 1.1.1 尺度内特征交互模块AIFI
      • 1.1.2 跨尺度特征融合CCFM
    • 1.2IoU感知查询选择
    • 总结

DETRs在实时目标检测中击败YOLO

问题:DETR的高计算成本,实时检测效果有待提高

解决:提出了一个实时的目标检测器

具体来说,设计了一个高效的混合编码器,通过解耦尺度内的交互和跨尺度融合来有效处理多尺度特征,并提出IoU感知查询选择,通过提供更高质量的初始对象查询编码器,进一步提高性能。

了解的知识:

NMS是目标检测后处理算法,用于消除检测器输出的重叠预测框。操作中,低于阈值的框直接过滤掉,当两个预测框的LoU超过阈值时,得分较低的预测框被舍弃,迭代执行这一过程,直到所以类别的盒子被处理完毕。因此NML的执行时间主要取决于预测框个数和两个阈值超参数。

1、模型架构

在这里插入图片描述
rt - detr概述。我们首先利用主干{S3, S4, S5}的最后三个阶段的特性作为编码器的输入。高效的混合编码器通过尺度内特征交互(AIFI)和跨尺度特征融合模块(CCFM)将多尺度特征转化为图像特征序列。iou感知的查询选择被用来选择固定数量的图像特征作为解码器的初始目标查询。最后,带辅助预测头的解码器迭代优化目标查询,生成框和置信度评分。

1.1高效混合编码器

提高训练收敛速度&性能–>多尺度特征&可变形注意力–>减少计算量

虽然注意力机制改进降低了计算开销,但输入序列长度的增加—》编码器计算量增大,阻碍了DETR的实时实现

高级特征是从具有丰富语义信息的低级特征中提取出来的。直观上看,多尺度特征间的交互是多余的。
在这里插入图片描述
两个模块组成,即基于注意力的尺度内特征交互模块(AIFI)和基于cnn的跨尺度特征融合模块(CCFM)。

1.1.1 尺度内特征交互模块AIFI

AIFI减少了计算冗余,该变量仅在S5上进行尺度内交互。

作者认为对语义特征更丰富的高层特征进行自注意操作,可以捕捉图像中概念实体的关系,用于后续的检测识别。同时认为低级特征与高级特征有交互重复和混淆的风险,所以认为低级特征的尺度内交互是不必要的。(ap值提高了0.4%,快了35%速度

1.1.2 跨尺度特征融合CCFM

在融合路径中插入多个卷积层组成的融合块,融合块的作用是将相邻的特征融合成一个新的特征
在这里插入图片描述
融合块包含N个RepBlocks,两条输出通过主元素添加的方式进行融合,过程如下
在这里插入图片描述
Attn是多头自注意力,reshape与flaten是逆操作

1.2IoU感知查询选择

DETR中的目标查询是一组可学习的嵌入,由解码器优化,并通过预测头映射到分类分数和边界框。然而,这些目标查询很难解释和优化,因为它们没有明确的物理意义。

但由于分类分数和位置置信度分布的不一致,部分预测盒分类分数高但与GT盒不接近,导致分类分数高、IoU分数低的预测盒被选中,而分类分数低、IoU分数高的预测盒被丢弃。这降低了检测器的性能。

为了解决这一问题,我们提出了基于IoU感知的查询选择方法,通过约束模型,在训练过程中对IoU分数高的特征产生高分类分数,对IoU分数低的特征产生低分类分数。因此,模型根据分类分数选择的前K个编码器特征对应的预测框,其分类分数和IoU分数都很高。我们重新制定探测器的优化目标如下:
在这里插入图片描述
其中:y‘和y分别表示预测和真实标记的图像,y’ = {c‘, b’}和y = {c, b}, c和b分别表示类别和边界框。我们将IoU分数引入到分类分支的目标函数中(类似于VFL[47])来实现对阳性样本分类和定位的一致性约束。

总结

问题:目前的实时检测器的推理速度被NMS延迟

为了避免NMS造成的延迟,我们设计了一个实时端到端检测器,其中包括两个关键的改进组件:可以有效地处理多尺度特征和IoU感知查询选择的混合编码器改进了对象查询的初始化。

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

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

相关文章

Hadoop依赖环境配置与安装部署

目录 什么是Hadoop?一、Hadoop依赖环境配置1.1 设置静态IP地址1.2 重启网络1.3 再克隆两台服务器1.4 修改主机名1.5 安装JDK1.6 配置环境变量1.7 关闭防火墙1.8 服务器之间互传资料1.9 做一个host印射1.10 免密传输 二、Hadoop安装部署2.1 解压hadoop的tar包2.2 切换…

Jetpack Compose 自定义 好看的TabRow Indicator

背景 Jetpack Compose 提供了强大的 Material Design 组件,其中 TabRow 组件可以用于实现 Material Design 规范的选项卡界面。但是默认的 TabRow 样式可能无法满足所有场景,所以我们有时需要自定义 TabRow 的样式。 Jetpack Compose 中使用 TabRow 简单使用 TabRow 一般可以…

QTday3(对话框、发布软件、事件处理核心机制)

一、Xmind整理: 二、上课笔记整理: 1.消息对话框(QMessageBox) ①基于属性版本的API QMessageBox::QMessageBox( //有参构造函数名QMessageBox::Icon icon, //图标const Q…

大数据课程K16——Spark的梯度下降法

文章作者邮箱:yugongshiyesina.cn 地址:广东惠州 ▲ 本章节目的 ⚪ 了解Spark的梯度下降法; ⚪ 了解Spark的梯度下降法家族(BGD,SGD,MBGD); ⚪ 掌握Spark的MLlib实现…

Python进行数据相关性分析实战

平时在做数据分析的时候,会要对特征进行相关性分析,分析某些特征之间是否存在相关性。本文将通过一个实例来对数据进行相关性分析与展示。 一、数据集介绍 本次分析的是企业合作研发模式效果分析,企业的合作研发大致分为 企企合作、企学合作…

D357周赛复盘:模拟双端队列反转⭐⭐+贪心

文章目录 2810.故障键盘1.直接用reverse解决2.双端队列 2811.判断能否拆分数组(比较巧妙的贪心)思路完整版 2812.找出最安全路径2810.故障键盘1.直接用reverse解决2.双端队列 2811.判断能否拆分数组(比较巧妙的贪心)思路完整版 28…

OS | 4 抽象:进程

OS | 4 抽象&#xff1a;进程 文章目录 OS | 4 抽象&#xff1a;进程CPU虚拟化的方法进程&#xff1a;是一种抽象非正式定义 进程的机器状态 进程API程序转换为进程的过程进程状态>>>>> 欢迎关注公众号【三戒纪元】 <<<<< CPU虚拟化的方法 操作…

分布式调度Elastic-job

分布式调度Elastic-job 1. 概述 1.1什么是任务调度 我们可以思考⼀下下⾯业务场景的解决⽅案: 某电商平台需要每天上午10点&#xff0c;下午3点&#xff0c;晚上8点发放⼀批优惠券某银⾏系统需要在信⽤卡到期还款⽇的前三天进⾏短信提醒某财务系统需要在每天凌晨0:10分结算前…

进程控制相关 API-创建进程、进程分离、进程退出、进程阻塞

进程控制相关 API p.s 进程控制中的状态转换 相关 API&#xff0c;用户很少用到&#xff0c;在此不提。 一般来说&#xff0c;这些内核标准 API&#xff0c;在执行出错&#xff08;可能是资源不够、权限不够等等&#xff09;会返回负值&#xff08;比如 -1&#xff09;&#…

Go实现LogAgent:海量日志收集系统【上篇——LogAgent实现】

Go实现LogAgent 项目架构图&#xff1a; 0 项目背景与方案选择 背景 当公司发展的越来越大&#xff0c;业务越来越复杂时&#xff0c;每个业务系统都有自己的日志。此时我们就应该将不同业务线的日志进行实时收集&#xff0c;存储到一个日志收集中心&#xff0c;最后再通过…

手写Mybatis:第7章-SQL执行器的定义和实现

文章目录 一、目标&#xff1a;SQL执行的定义和实现二、设计&#xff1a;SQL执行的定义和实现三、实现&#xff1a;SQL执行的定义和实现3.1 工程结构3.2 SQL执行实现的关系图3.3 执行器的定义和实现3.3.1 Executor 接口3.3.2 BaseExecutor 抽象基类3.3.3 SimpleExecutor 简单执…

编译工具:CMake(六) | 使用外部共享库和头文件

编译工具&#xff1a;CMake&#xff08;六&#xff09; | 使用外部共享库和头文件 步骤引入头文件搜索路径为 target 添加共享库 步骤 在/Compilation_tool/cmake 目录建立 t4 目录 建立src目录&#xff0c;编写源文件main.c&#xff0c;内容如下&#xff1a; #include <…

ModaHub魔搭社区——决胜大模型时代,算力、网络、向量数据库缺一不可

大模型应用场景日趋多样,需求也随着增加,进而倒逼着多元算力方面的创新,为满足AI工作负载的需求,采用GPU、FPGA、ASIC等加速卡的服务器越来越多。 根据IDC数据统计,2022年,中国加速服务器市场相比2019年增长44.0亿美元,服务器市场增量的一半更是来自加速服务器。 这意味…

shell bash中设置命令set

1 Preface/Foreword set命令用于shell脚本在执行命令时候&#xff0c;遇到异常的处理机制。 2 Usage 2.1 set -e 当执行命令过程中遇到异常&#xff0c;那么就退出脚本&#xff0c;不会往下执行其它命令。 #!/bin/bash #set -eroot GIT_TAG${CI_BUILD_TAG-NOTAG} GIT_REV…

MySQL创建用户时报错“Your password does not satisfy the current policy requirements“

MySQL创建用户时报错"Your password does not satisfy the current policy requirements" MySQL是一个流行的关系型数据库管理系统&#xff0c;它提供了许多安全性特性&#xff0c;其中之一是密码策略。在创建或更改用户密码时&#xff0c;MySQL会检查密码是否符合当…

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉农大图书馆

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉农大图书馆

HCIP---BGP协议

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 前言 根据AS自治系统可以将动态路由协议划分为IGP和EGP协议。IGP协议是应用在AS内部&#…

手摸手2-springboot编写基础的增删改查

目录 手摸手2-springboot编写基础的增删改查创建controller层添加service层接口service层实现添加mapper层mapper层对应的sql添加扫描注解,对应sql文件的目录 手摸手2-springboot编写基础的增删改查 创建controller层 实现 test 表中的添加、修改、删除及列表查询接口&#x…

PHP8函数包含文件-PHP8知识详解

在php中&#xff0c;可以使用以下函数来包含其他文件&#xff1a;include()、include_once()、require()、require_once()。 1、include(): 包含并运行指定文件中的代码。如果文件不存在或包含过程中出现错误&#xff0c;将发出警告。 <?php include filename.php; ?>…

【前端demo】背景渐变动画

文章目录 效果过程代码htmlcss 其他demo 效果 效果预览&#xff1a;https://codepen.io/karshey/pen/OJrXZwQ 过程 注意&#xff0c;直接在body上加height:100%可能也会出现height为0的情况&#xff0c;这是需要令html的height:100% 代码 html <!DOCTYPE html> <…