Deformable DETR(2020 ICLR)

news2025/1/10 22:55:59

Deformable DETR(2020 ICLR)

detr训练epochs缩小十倍,小目标性能更好

Deformable attention

  1. 结合变形卷积的稀疏空间采样和Transformer的关系建模能力

  2. 使用多层级特征层特征,不需要使用FPN的设计(直接使用backbone多层级输出)

    两种提升方法:

    1. bbox迭代细化机制
    2. 2.两阶段Deformable DETR

整体结构:

在这里插入图片描述

同样是6encoder,6decoder。

首先,运用了多层的图像特征,在一个采样点周围进行多层级的可变形注意力模块(紫色部分)

decoder用交叉注意力,红色的线指向第二个(cross,第一个是selfattention)

object query一样

详细展示

multihead-attention:
 MultiHeadAttn  ( z q , x ) = ∑ m = 1 M W m ⏟ \ R C × C v [ ∑ k ∈ Ω k A m q k W m ′ ⏟ \ R C v × C x k ]  where  A m q k ∝ exp ⁡ { ( U m z q ) T ( V m x k ) C v } U m , V m ∈ \ R C p × C \begin{array}{c} \text { MultiHeadAttn }\left(\mathrm{z}_{\mathrm{q}}, \mathrm{x}\right)=\sum_{m=1}^{M} \underbrace{W_{m}}_{\backslash \mathrm{R}^{C \times C_{v}}}[\sum_{k \in \Omega_{k}} A_{m q k} \underbrace{W_{m}^{\prime}}_{\backslash \mathrm{R}^{C_{v} \times C}} x_{k}] \\ \text { where } A_{m q k} \propto \exp \left\{\frac{\left(U_{m} z_{q}\right)^{T}\left(V_{m} x_{k}\right)}{\sqrt{C_{v}}}\right\} \quad U_{m}, V_{m} \in \backslash \mathbf{R}^{C_{p} \times C} \end{array}  MultiHeadAttn (zq,x)=m=1M\RC×Cv Wm[kΩkAmqk\RCv×C Wmxk] where Amqkexp{Cv (Umzq)T(Vmxk)}Um,Vm\RCp×C
deformable-attention:
DeformAttn ⁡ ( z q , p q , x ) = ∑ m = 1 M W m ⏟ \ R C × C v [ ∑ k = 1 K A m q k W m ′ ⏟ \ R C v × C x ( p q + Δ p m q k ) ] \operatorname{DeformAttn}\left(\mathrm{z}_{\mathrm{q}}, \mathrm{p}_{\mathrm{q}}, \mathrm{x}\right)=\sum_{m=1}^{M} \underbrace{W_{m}}_{\backslash \mathrm{R}^{C \times C v}}[\sum_{k=1}^{K} A_{m q k} \underbrace{W_{m}^{\prime}}_{\backslash \mathrm{R}^{C_{v} \times C}} x\left(p_{q}+\Delta p_{m q k}\right)] DeformAttn(zq,pq,x)=m=1M\RC×Cv Wm[k=1KAmqk\RCv×C Wmx(pq+Δpmqk)]

M:head

K:采样点

特征图:xl,l∈[1,L],表示多个尺度的特征图

p_q:参考点,query的坐标点

这里每个像素点z_q只和其对应的k个采样点算attention

  • z_q:query可以是encoder的图像或上一个decoder的输出(特征图中每个像素点都是一个维度为C的向量z_q)
  • 每个像素点的Reference Point也就是二维位置坐标为 p_q(在图像上生成很多采样点p_q,文章最后写了如何在encoder和decoder处获得reference point)。
  • M代表多头注意力机制中头的数目(论文中M=8)
  • 每一个头中只考虑 z_q 附近 K 个点(K远小于H x W,论文K=4)。
  • Δpmqk代表采样的位置偏移量(第一个linear),是一个二维的坐标(初始化采样点是固定的,但后续将通过全连接层计算预测更加值得关注的点的坐标)

K 个采样点由参考点 p_q和偏移量 Δpmqk共同得到,当然这个偏移量不可能就是一个整数,这里获取该偏移量上的特征时是使用了双线性插值的

之后再接通过权重norm,输出。

img

Deformable Attention使用的地方:

  • Encoder中的Self-Attention使用Deformable Attention替换.
  • Decoder中的Cross-Attention使用Deformable Attention替换,selfattention没替换,关注的还是原始的qkv

原始DETR:分类头,bbox预测头输出四个值(中心点和宽高)

deformable detr:bbox的预测头的预测结果是相对于参考点的坐标偏移量,这样的设计可以降低优化难度网络

首先会经过Linear得出参考点的初始坐标,因此最后的bbox的输出不再是表示坐标值,而是表示了坐标的偏移量,用以对参考点的坐标进行修正,这样也更加符合网络的设计

在这里插入图片描述

deformable detr几个变体:

变体1:bbox强化 bbox refinement(不是辅助分类)

reference point:encoder:gird H*W

decoder:经过linear后生成的300个坐标( 参考点的获取方法为object queries通过一个nn.Linear得到每个对应的reference point)

不适用bbox强化,decoder连续作用

使用:

过一个decoder,算一次bbox坐标(加上reference point),传入下一层,反复

变体2:two-stage

6encoder -> memory(output)-> 传入两个FFN分类头(cls,bbox) -> bbox输出 和memory-> 6decoder

其他:

num_class没有no object(+1),但是有类似的处理过程

matcher的label loss计算不同:

原始:直接过softmax

这里用的是focal bce loss

参考:

um_class没有no object(+1),但是有类似的处理过程

matcher的label loss计算不同:

原始:直接过softmax

这里用的是focal bce loss

参考:

https://www.bilibili.com/video/BV1B8411M73e/?spm_id_from=333.788&vd_source=4e2df178682eb78a7ad1cc398e6e154d

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

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

相关文章

cgroup version jdk version k8s

bug info: in centos, linux 3.10, cgroup:v1, service works well. in ubuntu 22.04 LTS, linux 5, systemd:v2, service is always crash on boot, or running some minutes then killed by OOM. deploy.yaml文件相关内容: specify limits:memory 1000M in yaml, killed …

区域气象-大气化学在线耦合模式(WRFChem)在大气环境领域实践技术应用

随着我国经济快速发展,我国面临着日益严重的大气污染问题。近年来,严重的大气污染问题已经明显影响国计民生,引起政府、学界和人们越来越多的关注。大气污染是工农业生产、生活、交通、城市化等方面人为活动的综合结果,同时气象因…

Redis缓存相关问题

目录 缓存穿透 缓存雪崩 缓存击穿 Redis集群方案 主从复制Replication 哨兵sentinel 高可用介绍 Redis sentinel介绍 Redis sentinel使用 配置sentinel 启动sentinel 测试sentinel Redis内置集群cluster Redis cluster介绍 哈希槽方式分配数据 Redis cluster的…

ubuntu18.04 编译edk2项目下的intel架构bios

看了国内的edk2编译文章. 大不部分都是编译 用于虚拟机(qemu)或者模拟器上运行的 很少有编译edk2项目 出 真机的 bios 希望本文章对你有帮助, 请注意 github,com因为被墙了. 所有需要用gitee代替 参考来源 https://gitee.com/binout/edk2-platforms/tree/master https:/…

PHP8的类与对象的基本操作之类常量-PHP8知识详解

php 8引入了一种新的特性,称为类常量(class Constants)。类常量是在类中定义的常量,类似于全局常量,但作用域仅限于定义它们的类。 在PHP 8中,类常量的作用域被限制在定义它们的类中。这意味着只有类的成员…

【配电变电站的最佳位置和容量】基于遗传算法的最优配电变电站放置(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

uploadifive上传工具php版使用

uploadifive自带的DEMO文件。 下载地址&#xff1a; http://www.uploadify.com/download/ <!DOCTYPE HTML> <html> <head> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"> <title>UploadiFive Test&…

C4BUILDER—用于构建C4模型图的Web项目

c4builder是什么&#xff1f; c4builder&#xff1a; 字面理解是产生C4架构图的构建器。 c4builder是一个轻量级的nodejscli工具&#xff0c;用于仅使用文本构建、维护和共享软件体系结构项目。 c4builder是一种架构设计工具&#xff0c;可以帮助开发人员和架构师描述和可视化…

结合购物车功能,了解RedisTemplate中的BoundHashOperations源码

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;CSDN实力新星&#xff0c;后端开发两年经验&#xff0c;曾担任甲方技术代表&#xff0c;业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开…

零代码编程:用ChatGPT批量删除文件名称中的部分内容

要批量删除文件名称中的某些特定字符&#xff0c;可以在ChatGPT中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个文件重命名的任务。具体步骤如下&#xff1a; 本地电脑&#xff1a;E:\peppa4 文件夹下有很多mp4文件&#xff0c;比如Peppa Pig Season…

轮换对称性

二重积分 普通对称性–D关于 y x yx yx对称&#xff1a; ∬ D f ( x , y ) d σ { 2 ∬ D 1 f ( x , y ) d σ f ( x , y ) f ( y , x ) 0 f ( x , y ) − f ( y , x ) \iint_{D}f(x,y)d\sigma\begin{cases} 2\iint_{D_1}f(x,y)d\sigma\ \ \ \ \ \ f(x,y)f(y,x) \\ 0 \ \…

每天几道Java面试题:IO流(第五天)

目录 第五幕 、第一场&#xff09;街边 友情提醒 背面试题很枯燥&#xff0c;加入一些戏剧场景故事人物来加深记忆。PS:点击文章目录可直接跳转到文章指定位置。 第五幕 、 第一场&#xff09;街边 【衣衫褴褛老者&#xff0c;保洁阿姨&#xff0c;面试者老王】 衣衫褴褛老…

ATFX汇市:美联储宣布维持利率不变,鲍威尔继续发表鹰派言论

ATFX汇市&#xff1a;今日凌晨02:00&#xff0c;美联储公布9月利率决议结果&#xff0c;宣布维持5.25%5.5%的联邦基金利率区间不变。2:002:05&#xff0c;美元指数从最低104.75飙涨至最高105.21&#xff0c;对应EURUSD的汇率从最高1.0727下跌至最低1.0674&#xff0c;跌幅53基点…

如何将 Transformer 应用于时间序列模型

在机器学习的广阔前景中&#xff0c;transformers 就像建筑奇迹一样高高耸立&#xff0c;以其复杂的设计和捕获复杂关系的能力重塑了我们处理和理解大量数据的方式。 自 2017 年创建第一个 Transformer 以来&#xff0c;Transformer 类型呈爆炸式增长&#xff0c;其中包括 Chat…

VS|vs2017跨平台编译linuxC++ConsoleQtGUI

未完成 待更新 文章目录 首先安装vs时要勾选上使用C的Linux开发使用Vs2017创建跨平台C Console项目配置Vs的SSH连接 Debug >> Option >> Cross Plaform文件加入到Linux项目&#xff0c;使用Windows下的文件即可。将所有项目包含.CPP、.h文件包含进Linux项目设置项…

案例丨如何提升可视化分析能力?听听这两家企业怎么说

神策分析 2.5 版本正式发布经营分析能力以来&#xff0c;已有不少客户接入使用&#xff0c;并充分实现了可视化分析能力的提升。 本文将为大家分享两家客户的真实反馈&#xff0c;希望能够帮助您进一步了解神策经营分析的能力。 案例一&#xff1a;神策数据助力美篇打造公司级“…

Linux学习之gdb的使用

目录 1.Debug与Release模式 如何证明debug是可以被调试的&#xff1f; 2.Linux调试器-gdb使用 gdb调试的指令 指令一&#xff1a;list&#xff08;l&#xff09; 查看源代码 编辑 ​编辑 命令二&#xff1a;run&#xff08;r&#xff09;运行程序 命令三&#xff…

mall电商项目(学习记录1)

1.简介 mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管…

基于movie lens-100k数据集的协同过滤算法实现

基于movie lens-100k数据集的协同过滤算法实现 数据集处理 基于用户的协同过滤算法的实现 基于物品的协同过滤算法的实现 数据集处理 import pandas as pdu_data pd.read_csv(D:/PyCharmWorkSpace/ml-100k/ml-100k/u.data) u_genre pd.read_csv(D:/PyCharmWorkSpace/ml-10…

c: Sorting Algorithms

SortAlgorithm.h /*****************************************************************//*** \file SortAlgorithm.h* \brief 业务操作方法* VSCODE c11 https://github.com/hustcc/JS-Sorting-Algorithm/blob/master/2.selectionSort.md* https://www.programiz.com/d…