1.解决问题

  • DETR需要比现有的目标检测器更长的训练时间来收敛。
  • DETR在检测小物体方面的性能相对较低,并且无法从高分辨率特征地图中检测到小物体。
  • 可变形卷积可以识别重要特征,但是无法学习重要特征之间的联系

transformer组件在处理图像特征图中的不足。在初始化时,注意模块对特征图中的所有像素施加了几乎一致的注意权重。长时间的训练周期是为了学习注意权重,以关注稀疏的有意义的位置。另一方面,transformer编码器中的注意权值计算是二次计算w.r.t.像素数。因此,处理高分辨率的特征映射具有非常高的计算和内存复杂性。

2.核心思想

Deformable DETR,它的注意模块只关注一个目标周围的一小部分关键采样点。Deformable DETR可以获得比DETR(特别是在小物体上)更好的性能,在训练时间少10×的时期。

3.实施细节

可变形注意模块无论特征图的空间大小如何,都只关注参考点周围的一小组关键采样点(reference point)。通过为每个queries只分配少量固定数量的keys,可以缓解收敛性和特征空间分辨率的问题。

对于初始化,首先初始化采样附近的n个点(默认为4),即认为附近的点的特征对该点的关系最强,但是一定是吗?不一定,那么我们可以通过网络学习,偏移到关系最强的点。但是神经网络学习到的偏移不一定是小数,怎么办呢?那么我们就可以通过周围的点进行插值得到该点的特征。

公式详解:

 表示初始的采样的关键点,表示偏移量,表示特征的权重,即表示特征映射,

表示queries与keys的点乘,即注意力,其中都是通过全连接而来。

如下图所示, 表示特征图上的原始特征,经过全连接层做特征映射,同时采样出3个采样点。同时经过全连接层可得到注意力权重(qk)

Multi-scale Deformable Attention Module. 

为输入的多尺度特征映射(特征金字塔),其中。表示尺度信息,为每个queries的参考点的归一化坐标,即因为有多个尺度,需要将绝对坐标转为相对坐标,则应用多尺度可变形注意模块为

外部的m表示多头注意力机制,L表示特征金字塔的维度,作者可能认为不同尺度同一位置的特征相似,因此,做相加操作。K表示采样的特征点

4.整体架构

对于输入图片,首先经过Multi-scale Deformable self-Attention选取特征点,并做特征映射,生成向量,对于位置编码,有两种,一种是在相对位置编码加上绝对level级别编码,另外一种是加入可学习的level编码。然后输入decoder中,对于decoder,首先初始化300个初始化向量,经过self-Attention的处理,然后与ecoder特征做注意力运算,最后做预测。

5.预测头的设置

Iterative Bounding Box Refifinement. 建立了一种简单有效的迭代边界框细化机制,以提高检测性能。在这里,每个解码器层根据上一层的预测来细化边界框。        

Two-Stage Deformable DETR. 在原始的DETR中,解码器中的对象查询与当前图像无关。受两阶段目标探测器的启发,我们探索了可变形DETR的一种变体,用于生成区域建议作为第一阶段。生成的区域建议将被输入解码器作为对象查询以进一步细化,形成一个两阶段可变形的DETR。
        在第一阶段,为了实现高召回率的建议,多尺度特征图中的每个像素都将作为一个对象查询。然而,直接将对象查询设置为像素会给解码器中的自注意模块带来不可接受的计算和内存成本,其复杂度随着查询的数量呈二次增长。为了避免这个问题,我们去掉了解码器,并形成了一个仅限编码器的可变形的DETR,用于区域提案的生成。在它中,每个像素被分配为一个对象查询,它直接预测一个边界框。得分最高的边界框被选为区域提案。在将区域提案提交到第二阶段之前,不应用NMS。

 

DEFORMABLE DETR详解相关推荐

  1. 深度学习之目标检测(十一)--DETR详解

    深度学习之目标检测(十一)-- DETR详解 目录 深度学习之目标检测(十一)-- DETR详解 1. 前言 2. DETR 框架 2.1 CNN Backbone 2.2 Transformer E ...

  2. Deformable ConvNet算法详解(对象尺寸/形状变换)

    Deformable ConvNet算法详解(DCN) 算法背景 算法细节 Deformable convolution Deformable RoI pooling Deformable ConvN ...

  3. 经典文献阅读之--Deformable DETR

    0. 简介 已经好久不写深度学习相关的博客了.但是我觉得DETR值得我重新拾起来进行详细介绍.Deformable DETR作为这两年来最有名的DETR变种之一,当然代码量也是比较多的.这里我们从论文 ...

  4. Deformable DETR源码解读

    文章目录 一:网络创新点 二:流程详解 [part 1]deformable_detr模块 [part 2]deformable_transformer模块 [part3]Encoder模块 [par ...

  5. 深度学习(十四)——Softmax详解, 目标检测, RCNN

    https://antkillerfarm.github.io/ Softmax详解 首先给出Softmax function的定义: yc=ζ(z)c=ezc∑Cd=1ezd for c=1,-,C ...

  6. 强的离谱, Transformer 模型与联邦机器学习详解!

    Transformer 作为一种基于注意力的编码器 - 解码器架构,不仅彻底改变了自然语言处理(NLP)领域,还在计算机视觉(CV)领域做出了一些开创性的工作.与卷积神经网络(CNN)相比,视觉 Tr ...

  7. 深度学习之图像分类(十九)-- Bottleneck Transformer(BoTNet)网络详解

    深度学习之图像分类(十九)Bottleneck Transformer(BoTNet)网络详解 目录 深度学习之图像分类(十九)Bottleneck Transformer(BoTNet)网络详解 1 ...

  8. YOLO v1论文详解

    YOLO v1:一体化的,实时物体检测 声明:笔者翻译论文仅为学习研究,如有侵权请联系作者删除博文,谢谢! 源论文地址:https://arxiv.org/pdf/1506.02640.pdf 注:文 ...

  9. ViT:视觉Transformer backbone网络ViT论文与代码详解

    Visual Transformer Author:louwill Machine Learning Lab 今天开始Visual Transformer系列的第一篇文章,主题是Vision Tran ...

最新文章

  1. 超强图文|并发编程【等待/通知机制】就是这个feel~
  2. 2014年第五届蓝桥杯决赛Java本科B组试题解析
  3. springside地址
  4. Qt中的QMessageBox
  5. sysfs: cannot create duplicate filename '/class/spi_master/spi1'
  6. 浏览器事件捕获冒泡以及阻止冒泡
  7. python处理大数据越来越慢_请问使用JdbcTemplate读取大数据很慢如何优化?(十几万数据)...
  8. linux 清除内存和Cache方法
  9. 20张Python高清数据分析全知识地图,数据分析发展路线
  10. CRA与craco配置移动端
  11. 【软件工程】需求规格说明书
  12. 基于A*搜索算法迷宫游戏开发
  13. 机械设计自动化行业现在吃香吗?有前途吗?
  14. 图象关于y轴对称是什么意思_函数图象关于y轴对称是什么函数
  15. Excel 技巧百例:数据透视表的排序
  16. react 使用 useEffect 及踩坑
  17. 大数据的特征介绍,大数据技术主要分为哪几部分?
  18. 白帽子讲web安全概览
  19. 如何使用parted划分2bt以上磁盘
  20. 程序员c语言基础,《软考程序员》C语言基础

热门文章

  1. excel相乘后求和_excel怎么求和相乘,5种超实用的Excel求和方式
  2. C#调用CodeSoft控制两台打印机打印
  3. 独立成分分析(Independent Component Analysis,ICA)模型介绍
  4. 逻辑回归(Logistic Regression)原理及损失函数、极大似然估计
  5. 记录一次成都阿里一面的经历
  6. 检测触摸事件(用户触摸屏幕时提示信息)
  7. 深入浅出DPDK学习笔记(3)——— Cache和内存
  8. HTC G7 相机故障,自己动手维修详细步骤
  9. 使用Mac截图死机了怎么办?
  10. 迷宫2 ——单调队列解决bfs问题