Deformable DETR(2020 ICLR)
Deformable DETR(2020 ICLR)
detr训练epochs缩小十倍,小目标性能更好
Deformable attention
-
结合变形卷积的稀疏空间采样和Transformer的关系建模能力
-
使用多层级特征层特征,不需要使用FPN的设计(直接使用backbone多层级输出)
两种提升方法:
- bbox迭代细化机制
- 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 Wm′xk] where Amqk∝exp{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=1∑M\RC×Cv Wm[k=1∑KAmqk\RCv×C Wm′x(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,输出。
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
相关文章:
Deformable DETR(2020 ICLR)
Deformable DETR(2020 ICLR) detr训练epochs缩小十倍,小目标性能更好 Deformable attention 结合变形卷积的稀疏空间采样和Transformer的关系建模能力 使用多层级特征层特征,不需要使用FPN的设计(直接使用backbone多层级输出&a…...
springboot01
目录 新建Maven工程,什么都不选 pom.xml加上 新建包top.cjz.controller 新建类HelloController 新建类HelloApplication 运行浏览器访问 新建Maven工程,什么都不选 pom.xml加上 <!--springboot工程需要继承的父工程--> <parent…...
虚拟机中window/ubuntu系统如何联网?
以下内容源于网络资源的学习与整理,如有侵权请告知删除。 参考博客 (1)VMware虚拟机中Windows11无法连接网络 (2)图解vmware虚拟机win8无线上网 (3)VMware中VMnet0、VMnet1、VMnet8是什么 &…...
计算物理专题----随机游走实战
计算物理专题----随机游走实战 Problem 1 Implement the 3D random walk 拟合线 自旋的 拟合函数(没有数学意义) 参数:0.627,3.336,0.603,-3.234 自由程满足在一定范围内的均匀分布以标准自由程为单位长度,…...
《思维与智慧》简介及投稿邮箱
《思维与智慧》自1982年创刊,经国家新闻出版署批准,由河北省教育厅主管,河北行知文化传媒有限责任公司主办的益智励 志类大众文化期刊。 《思维与智慧》办刊宗旨是:“开发思维,启迪智慧,滋润心灵”&#x…...
flask+python快速搭建
app.py """APP 入口模块""" from traceback import format_excfrom api_limiter import limiter from flask import Flask, jsonify import loggingfrom controller import api_sql_blueapp Flask(__name__) limiter.init_app(app) app.regist…...
基于微信小程序的美术馆预约平台设计与实现(源码+lw+部署文档+讲解等)
前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻…...
ruoyi-vue-pro yudao 项目商城 mall 模块启用及相关SQL脚本
目前ruoyi-vue-pro 项目虽然开源,但是商城 mall 模块被屏蔽了,查看文档却要收费 199元(知识星球),价格有点太高了吧。 分享下如何启用 mall 模块,顺便贴上sql相关脚本。 一、启用模块 修改根目录 pom.xm…...
default 和 delete 与默认构造函数 的使用
前言 使用default和delete关键字来干预编译器自动生成的函数。让我详细解释一下这些知识点: 正文 编译器生成的默认构造函数: 如果类A没有定义任何构造函数,那么编译器会自动生成一个无参的默认构造函数 A()。这个默认构造函数实际上是一个…...
【开发篇】一、热部署
文章目录 1、手工启动热部署2、自动启动热部署3、热部署范围配置4、关闭热部署功能 1、手工启动热部署 日常开发与调试,改几行代码想看效果就得手动点重启,很繁琐,接下来考虑启动热部署。首先引入springboot开发者工具: <dep…...
点云从入门到精通技术详解100篇-定子装配过程中基于深度学习的易变形材料的点云分割(下)
目录 4.3.2 校正网络 4.3.3 浅层特征提取网络 4.3.4 空间边界 Transformer 深层特征提取网络 4.3.5 损失函数...
谷歌浏览器关闭自动更新功能
背景:自动化测试需要下载webdriver驱动,然而浏览器自动更新会导致原来的驱动版本与现有浏览器版本不匹配,所以要禁用掉浏览器自动更新功能。 1.右键-我的电脑-打开管理; 2.选择任务计划程序-任务计划程序库-找到两个chrome自动更新…...
电商业务--技术负责人 250K*15
职位描述 研发团队管理 系统搭建 技术管理 系统架构 岗位职责 负责/参与到中大型负责系统的整体架构和设计; 根据业务特点和行业最佳实践,设计符合多个市场物流业务需求,且具备可扩展能力的系统架构和业务架构承担团队稳定性建设工作&#…...
MySQL只同步单个表或多个表,非全部同步!
replicate-do-table 是 MySQL 复制配置中的一个选项,它允许您指定要在从服务器上复制的表。如果您想要只复制主服务器上特定的表到从服务器,您可以使用这个选项。 以下是如何操作 replicate-do-table 的步骤: 停止从服务器: 在从服务器上执行…...
【论文基本功】【LaTeX】个人常用易忘LaTeX命令
【论文基本功】【LaTeX】个人常用易忘LaTeX命令 1. 基本符号2. 引用3. 字体及符号大小4. 其他参考 1. 基本符号 符号LaTeX命令备注 ∣ ⋅ ∣ | \cdot | ∣⋅∣| \cdot |绝对值 ∣ ∣ ⋅ ∣ ∣ || \cdot || ∣∣⋅∣∣\| \cdot \|范数 ⌈ ⋅ ⌉ \lceil \cdot \rceil ⌈⋅⌉\lce…...
JVM参数调优——G1收集器
开启 G1 Collector G1收集器的出现除了提供可控的低延迟GC,解决历史收集器的一些弊病,同时还尽力简化调优参数 对于大多数应用,开启收集器,再配置一下Xms和Xmx就足够了(不建议配置Xmn) -XX:UseG1GC核心参…...
Linux cp命令使用指南:详细教程及实际应用场景解析
文章目录 Linux中的cp命令使用指南1. 简介1.1 Linux操作系统简介1.2 文件系统和目录结构1.3 cp命令概述 2. cp命令基本用法2.1 复制文件2.2 复制目录2.3 复制多个文件或目录2.4 递归复制2.5 强制覆盖已存在文件2.6 保留文件权限和属性 3. 高级用法3.1 保留符号链接3.2 仅复制更…...
树结构数据在table中回显 treeselect disabled
<el-table-column label"产业认定" align"center" prop"industryIdentification"><template slot-scope"scope"><treeselectv-if"scope.row.industryIdentification"v-model"scope.row.industryIdentif…...
BOA服务器移植
BOA服务器移植 1、源码下载 http://www.boa.org/ News! (last updated 23 February 2005) Latest Released Version (0.94.13) here (signature here) --- 下载地址1.1 boa简介: 其可执行代码只有大约60KB左右,Boa是一个单任务的HTTP服务器ÿ…...
洛谷刷题入门篇:顺序结构
链接如下:https://www.luogu.com.cn/training/100#problems 一、Hello,World! 题目链接:https://www.luogu.com.cn/problem/B2002 题目描述 编写一个能够输出 Hello,World! 的程序。 提示: 使用英文标点符号;Hello,World! 逗…...
LVS+Haproxy
LVSHaproxy 一、Haproxy简介1.1、Haproxy应用分析1.2、Haproxy的特性1.3、常见负载均衡策略1.4、LVS、Haproxy、Nginx区别1.5、 Haproxy的优点1.6、常见的Web集群调度器 二、Haproxy部署实例四、日志定义优化 一、Haproxy简介 Haproxy 是一个使用C语言编写的自由及开放源代码软…...
Linux知识
文章目录 一、Apt1、查看操作系统信息2、换源3、比较4、用法5、ubuntu获取源码 二、pkg-config三、调试glibc 一、Apt 1、查看操作系统信息 使用以下命令查看本机的操作系统和位数信息: uname -m && cat /etc/*release输出: x86_64 DISTRIB_I…...
Java基础(三)
前言:前面主要涉及到java的基本语法,接下来本篇博客主要记录Java中Collections类、泛型、以及File类、IO流的学习。 目录 数据结构 泛型 集合 分类 Collection的分类 collection常用方法 collection遍历方式 迭代器 for循环 Lambda表达式 Lis…...
[Firefox/快捷键] 禁用Ctrl-W快捷键
最近给Firefox这一快捷键坑了几次。恰好发现在CMU也有人遇到类似的烦恼,找到一篇基于Linux的教程。 我使用的是Windows,所以根据自己的情况做了些修改,成功了。小众需求就犯懒直接将笔记贴上了,如果有谁用得上的话,我写…...
Git常用命令diff和mv
Git常用命令diff和mv 1、diff # 查看工作区和暂存区所有文件的对比 # 该命令可以显示尚未添加到stage的文件的变更 $ git diff# 查看工作区和暂存区单个文件的对比 $ git diff file# 显示暂存区和上一个commit的差异 # 查看暂存区与指定提交版本的不同,版本可缺省为HEAD $ gi…...
【谢希尔 计算机网络】第3章 数据链路层
数据链路层 数据链路层的地位 网络中的主机、路由器等都必须实现数据链路层局域网中的主机、交换机等都必须实现数据链路层不同链路层可能采用不同的数据链路层协议 数据链路层信道类型 点对点信道 使用一对一的点对点通信方式广播通信 必须使用专用的共享系电脑协议来协调这些…...
《DevOps实践指南》- 读书笔记(九)
DevOps实践指南 25. 附录附录 1 DevOps 的大融合精益运动敏捷运动Velocity 大会运动敏捷基础设施运动持续交付运动丰田套路运动精益创业运动精益用户体验运动Rugged Computing 运动 附录 2 约束理论和核心的长期冲突附录 3 恶性循环列表附录 4 交接和队列的危害附录 5 工业安全…...
数据库数据恢复-SQL SERVER数据库分区被格式化的数据恢复方案
SQL SERVER数据库故障类型: 1、SQL SERVER数据库文件被删除。 2、SQL SERVER数据库所在分区格式化。 3、SQL SERVER数据库文件大小变为“0”。 4、使用备份还原数据库时覆盖原数据库。 SQL SERVER数据库故障原因: 1、人为误操作。 2、文件系统损坏&#…...
ubuntu安装ffmpeg
Ubuntu安装FFMPEG Ubuntu安装FFMPEG 安装FFMPEG(支持GPU加速) 1.安装ffnvvodec2.安装libx2643.安装ffmpeg4.查看并测试5.卸载 安装FFMPEG(CPU版本) 安装FFMPEG(支持GPU加速) 默认已经安装cuda10.2、cud…...
CentOS上安装Docker
要在CentOS上安装Docker,可以按照以下步骤进行操作: 更新系统软件包列表: sudo yum update安装必要的软件包,以便可以通过HTTPS使用仓库并使用最新的内核: sudo yum install -y yum-utils device-mapper-persistent…...
网站服务器 数据库服务器/360竞价推广客服电话
并发冲突问题剖析悲观锁与乐观锁两种并发控制方案基于_version进行乐观锁并发控制(1)_version元数据PUT /test_index/test_type/6 {"test_field": "test test" }{"_index": "test_index","_type": &q…...
弄个小程序要多少钱/搜索引擎优化简称
1.定义变量:declare name varchar(20) 用declare定义一个名字为name的字符串类型的变量,变量前面需要加 2.为变量赋值:set name %奥迪% ,用set来进行赋值操作(也可以用select)这里的值可以是一个值也可以…...
免费自己做网站手机软件/脑白金网络营销
硬盘安装。无需光盘、U盘;Win8.1为主,Ubuntu14.04为辅,可将Windows或Ubuntu设置为开机默认启动项。在Ubuntu下可查看、操作Windows系统下的文件;适用于安装和14.04版本号相近的Ubuntu系统。假设以上所述正是你所须要的,…...
做网站编码/seo推广技术
1, Java的基本部分 1.1 java中int数据占几个字节 1.2 有了基本类型, 为什么还需要包装类型? 1.3 说一下""和equals方法的区别? 1.4 讲一下String和StringBuilder的区别(final)?StringBuffer和StringBuilder的区别? 1.5, 讲一下java中的集合? 1.6 Ar…...
优秀个人网站设计/网站设计公司哪家专业
在.NET里,客户端与服务端进行数据交互我想大多数朋友都遇到过这样的问题,语言不同,又怎么来实现交互呢.客户端的 JavaScript是弱类型语言,服务端是强类型语言(如:C#,VB.NET,VC,J#等).两个不同语言之间的交互是不是要借助于别的东西呢.我在这里可以告诉大家的是:答案不一定,但是…...
莱芜话题 莱芜在线/长沙seo关键词排名
效果图 带描边的粒子效果 原图 承接上文 特效设...