DETR Doesn’t Need Multi-Scale or Locality Design

论文名称:PlainDetr
发表时间:ICCV2023
开源代码
作者及组织: Yutong Lin,Yuhui Yuan等,来自西安交大,微软亚洲研究院。

前言

 自Detr以来,后续paper的改进的方向:主要是将归纳偏置重新又引入进Detr结构,比如DINO,ConditionDetr,HybridMatch等。但这与Detr原始简洁的结构设计背道而驰。于是本篇工作旨在保持Detr简洁结构设计上,提高其精度。
  关于DETR相关内容可参考:
   1)Detr
   2)DeformableDetr
   3)ConditionalDetr
   4)DAB-DETR
   5)DN-DETR
   6)DINO

1、方法

 文中首先设计了一个强的Detr的Baseline,在coco上12epoch的mAP=37.2。详细的配置参数如下图:表格中的小trick均来自其余论文。具体是啥就不详细介绍了,感兴趣可参考前言中文献 😏。

在这里插入图片描述

1.1.MIM预训练Backbone

  在目标检测中,MIM已经证实比全监督预训练的性能更好 ,消融实验表明:mim-swin-s比sup-swin-s的mAP从37.2提高到44.6。
 另外,MM中每层特征图中其实都蕴含了归纳偏置,故可以只用一层layer即可,无需FPN或者MultiHeadAttn。如下图,作者采用了©的结构,且实验表明,并没有掉点。
在这里插入图片描述
在这里插入图片描述

1.2.Box-to-Pixel Relative Position Bias

  原始Detr中cross-attention可表示为:
O = S o f t m a x ( Q K T ) V + X \begin{equation} O = Softmax(QK^ {\mathrm{T}} )V+X \end{equation} O=Softmax(QKT)V+X
  本文提出的BoxRPE可表示为:
O = S o f t m a x ( Q K T + B ) V + X \begin{equation} O = Softmax(QK^ {\mathrm{T}} +B)V+X \end{equation} O=Softmax(QKT+B)V+X
  其中,上式中的B的计算流程如下图所示:首先输入是一张图像及pred_box,两个五角星的位置分别表示pred_box的左上角和右下角角点。然后分别从X轴和Y轴对这两个角点进行编码:以 $\delta(x_1) $ 为0点,依次向左向右编码W个相对坐标[-4,7];然后经过MLP并广播得到B。
在这里插入图片描述

1.3. Bounding Box Regression re-param

  在Detr回归中,xywh均进行了归一化,但没有区分大小物体的损失权重:被大物体的损失主导。于是,作者重新编码了回归的范式:

在这里插入图片描述

 其中 l 表示第几层layer, t* 表示模型的gt值 ,然后跟预测框进行loss计算即可。

2、实验

 上述三个trick的消融实验如下图:
在这里插入图片描述

  跟其余方法对比实验:
在这里插入图片描述

思考

  相较于DeformableDetr,省去了MultiHeadAttn这个算子,且只用一层layer,结构变得简洁 。但是在源码中,作者在生成候选框时,其实还是采用了四层,作者说只用一层的话,会掉一个点左右,还需实测一下。

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

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

相关文章

react的高阶组件怎么用?

在 React 中,高阶组件(Higher-Order Component,HOC)是一种函数,接受一个组件作为参数,然后返回一个新的增强型组件。高阶组件本质上是一个函数,其目的是重用组件逻辑、增强组件功能以及在不改变…

pinia优化重复请求

目录 1 前言 2 使用步骤 2.1 安装pinia 2.2 定义一个store 2.3 在父组件即index.vue中调用方法 2.4 子组件使用获取到的值 1 前言 在我们的页面中常常存在多个组件,多个组件可能会对某个接口发送多次请求,为了避免这种情况,我们就需要使…

基于左逆的三点法测距,MATLAB函数

基于左逆的三点法MATLAB程序 不一定能用,可以借鉴,在锚点数量极少的时候,右拟无法使用,可以使用这个左逆(当然,直接用pinv也行) function [p_out] triposition(R_calcu,baseP) % p [5,5;10,…

分布式微服务 - 3.服务网关 - 4.Gateway

分布式微服务 - 3.服务网关 - 4.Gateway 项目示例: 项目示例 - 3.服务网关 - 3.Gateway 内容提要: 基本使用:配置方式、代码方式内置断言、自定义断言内置局部过滤器、自定义内置和全局过滤器 文档: 官网官网文档 基本使用…

重建3D结构方式 | 显式重建与隐式重建(Implicit Reconstruction)

在3D感知领域,包括3D目标检测在内,显式重建和隐式重建是两种不同的方法来表示和处理三维数据。它们各自有优势和局限,适用于不同的场景和需求。 显式重建(Explicit Reconstruction) 显式重建是指直接构建场景或物体的三…

云计算 3月12号 (PEX)

什么是PXE? PXE,全名Pre-boot Execution Environment,预启动执行环境; 通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统; 由Intel和Systemsoft公司于199…

DEAP 自定义交叉操作

在遗传算法中,使用DEAP库来实现自定义的交叉操作可以非常灵活。如果你想模拟多个染色体的情况,通过在染色体的特定区间进行交叉,你需要自定义一个交叉函数。以下是一个示例,展示如何实现一个自定义的交叉函数,该函数允…

libigl 网格面片随机赋色

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 libigl的赋色方式非常简单,它统一由一个Eigen矩阵来进行管理,我们在进行赋色等操作时,只需要修改该矩阵即可(法向量等特征也是类似的操作)。 二、实现代码 //igl #include <igl/readOBJ.h> #include &l…

JVM简单调优

jdk自带了许多对jvm进行监控的程序&#xff0c;例如JVisualVM、jstack等等。 现在进行一些简单的对jvm的监控。 我们可以使用JVisualVM来对堆区进行图形化监控。 我们可以在命令行输入jvisualvm&#xff0c;然后就进入了jvisualvm的图形化界面。 然后我们随便执行一个主方法…

CDQ分治+树状数组,LOJ6270. 数据结构板子题

一、题目 1、题目描述 有 n 个区间&#xff0c;第 i 个区间是 [l_i,r_i]&#xff0c;它的长度是 r_i-l_i。 有 q 个询问&#xff0c;每个询问给定 L,R,K&#xff0c;询问被 [L,R] 包含的且长度不小于 K 的区间数量。 你想&#xff0c;像这种板子题&#xff0c;你随手写&#x…

gen_arrow_contour_xld

生成一个箭头轮廓算子 gen_arrow_contour_xld( : Arrow : Row1, Column1, Row2, Column2, HeadLength, HeadWidth : ) 该算子一般配合 area_center (region, Area, Row, Column) orientation_region (region, Phi) 算子使用&#xff0c;生成一个箭头轮廓。 area_center_xld…

C#+datax实现定时增量同步

要使用C#和DataX实现定时增量同步&#xff0c;你可以使用以下步骤&#xff1a; 1. 安装DataX&#xff1a;首先&#xff0c;确保你已经安装了DataX。你可以从DataX的官方仓库中获取最新版本。 2. 配置DataX 任务&#xff1a;创建一个DataX任务&#xff0c;定义源&#xff08;sou…

springcloud gateway网关动态配置限流

上一篇记录了gateway网关的基础功能和配置&#xff0c;并且使用了默认的限流功能。 springcloud gateway网关-CSDN博客 这里简单记录一下gateway网关集成mybatisPlus实现动态限流。gateway网关默认的限流方式各项限流参数都是在配置文件中配置&#xff0c;不够灵活&#xff0…

【LLMs+小羊驼】23.03.Vicuna: 类似GPT4的开源聊天机器人( 90%* ChatGPT Quality)

官方在线demo: https://chat.lmsys.org/ Github项目代码&#xff1a;https://github.com/lm-sys/FastChat 官方博客&#xff1a;Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90% ChatGPT Quality 模型下载: https://huggingface.co/lmsys/vicuna-7b-v1.5 | 所有的模…

STM32输入捕获频率和占空比proteus仿真失败

这次用了两天的时间来验证这个功能&#xff0c;虽然实验没有成功&#xff0c;但是也要记录一下&#xff0c;后面能解决了&#xff0c;回来再写上解决的办法&#xff1a; 这个程序最后的实验结果是读取到的CCR1和CCR2的值都是0&#xff0c;所以没有办法算出来频率和占空比。 还…

如何创建Gitflow图表

如何创建Gitflow图表 drawio是一款强大的图表绘制软件&#xff0c;支持在线云端版本以及windows, macOS, linux安装版。 如果想在线直接使用&#xff0c;则直接输入网址drawon.cn或者使用drawon(桌案), drawon.cn内部完整的集成了drawio的所有功能&#xff0c;并实现了云端存储…

排序算法之快速排序算法介绍

目录 快速排序介绍 时间复杂度和稳定性 代码实现 C语言实现 c实现 java实现 快速排序介绍 快速排序(Quick Sort)使用分治法策略。 它的基本思想是&#xff1a;选择一个基准数&#xff0c;通过一趟排序将要排序的数据分割成独立的两部分&#xff1b;其中一部分的所有数据…

确定比赛名次-拓扑排序

题目链接&#xff1a;https://vjudge.net/problem/HDU-1285 邻接矩阵存储版 #include<iostream> #include<queue> #include<cstring> #include<functional> #include<vector> using namespace std; const int N 510; int n, m;int g[N][N], i…

CSS 面试题及答案

CSS 面试题及答案 问题&#xff1a;什么是盒模型&#xff08;Box Model&#xff09;&#xff1f; 答案&#xff1a; 盒模型是指在网页布局时&#xff0c;每个元素都被看作一个矩形盒子&#xff0c;包括内容区域、内边距、边框和外边距。这些部分组合在一起构成了元素的盒模型。…

C++Qt学习——添加资源文件

目录 1、创建好了文件之后&#xff0c;在左边空白处按下CtrlN&#xff0c;创建Qt 以及Qt Resource File 2、写入名称&#xff0c;点击下一步 3、可以发现已经创建好啦。 4、点击Add Prefix 5、写上前缀&#xff0c;最好加上斜杠 6、选择提前放好的图片或者icon 7、发…