Deformable - DETR—DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION可变形的DERT

Deformable - DETR用于端到端物体检测的可变形的DERT解析

Deformable Convolution 可变形卷积

首先我们要先掌握好普通卷积的定义公式为:

y ( p 0 ) = ∑ p n ∈ R w ( p n ) ⋅ x ( p 0 + p n ) \mathbf{y}\left(\mathbf{p}_{0}\right)=\sum_{\mathbf{p}_{n} \in \mathcal{R}} \mathbf{w}\left(\mathbf{p}_{n}\right) \cdot \mathbf{x}\left(\mathbf{p}_{0}+\mathbf{p}_{n}\right) y(p0)=pnRw(pn)x(p0+pn)

其中我们的p0代表的是进行卷积操作的时候,卷积核与输入图像重合区域的中心点坐标

在这里插入图片描述

同时公式中提到了pn是属于R的 R定义了卷积操作的kernel sizedilation 可以理解是一个相对位置矩阵。

R = {(-1, -1), (-1,0), … , (0, 1),(1, 1)}

在这里插入图片描述

可变形卷积的定义公式为:

y ( p 0 ) = ∑ p n ∈ R w ( p n ) ⋅ x ( p 0 + p n + Δ p n ) \mathbf{y}\left(\mathbf{p}_{0}\right)=\sum_{\mathbf{p}_{n} \in \mathcal{R}} \mathbf{w}\left(\mathbf{p}_{n}\right) \cdot \mathbf{x}\left(\mathbf{p}_{0}+\mathbf{p}_{n}+\Delta \mathbf{p}_{n}\right) y(p0)=pnRw(pn)x(p0+pn+Δpn)

△pn 是学习到的值,是浮点型数据,由图像经过普通卷积计算得到(通常也将其称为位置偏移)

既然说△pn是一个可以学习到浮点数值,那么第一步我们就应该明确如何的得到我们的△pn的值用来参与可变形卷积的计算呢?

我们列举下面的一个示例来进行进一步的说明:

  • conv3x3
  • in channel=3
  • outchannel=18 (outchannel=2*kernelsize*kernelsize)
  • stride=1
  • padding =1

在这里插入图片描述

我们的卷积核在黄色的位置处来进行普通的卷积运算。(每一个卷积核与3通道的输入进行计算的结果即为18个通道中的一个通道的黄色区域位置。

我们将两个通道看成是一个整体:计算得到的值分别作为x和y

我们经过展平处理之后就可以得到kernelsize*kernelsize个(x,y)坐标信息,可以将其看作是一个矩阵。

在这里插入图片描述

每一个的位置的xy坐标即为我们需要的△pn 的值,它就对应的是卷积核同样的位置处的△pn的值。

到此我们就了解到了△pn值的由来了。

可变形卷积的操作过程

之后我们就需要关注可变形卷积的操作过程了。

在这里插入图片描述

我们首先将得到的△pn的结果带入到可变形卷积后面的那部分公式中

p = p 0 + p n + Δ p n = ( 3 , 4 ) + ( − 1 , 1 ) + ( 1.6 , 3.2 ) = ( 3.6 , 8.2 ) \mathbf{p}=\mathbf{p}_{0}+\mathbf{p}_{n}+\Delta \mathbf{p}_{n}=(3,4)+(-1,1)+(1.6,3.2)=(3.6,8.2) p=p0+pn+Δpn=(3,4)+(1,1)+(1.6,3.2)=(3.6,8.2)

得到的就是我们蓝色的像素点偏移之后的位置坐标 (紫色位置处的红点)因为是浮点数近似为一个亚像素位置

(3.6,8.2)临近的4个像素点分别为(3,8)、(3,9)、(4,8)、(4,9)

我们根据同样的方式就可以得到另外的8个亚像素点的位置信息。

在这里插入图片描述

我们通过矩阵计算的方式得到这种情况下的可变形卷积运算所得到值,将其放入的输出的指定位置。

那么问题就产生了,偏移过的亚像素点的像素值是什么?又该如何得到呢?

其是通过双线性插值的方法来求得最后我们在对这个双线性插值算法来进行一个补充说明。

论文简介

DETR—DEFORMABLE TRANSFORMERS FOR END-TO-END OBJECT DETECTION

是2021年发表在ICLR上的论文,作者来自商汤科技,中科大,和香港中文大学。

DETR has been recently proposed to eliminate the need for many hand-designed components in object detection while demonstrating good performance. However, it suffers from slow convergence and limited feature spatial resolution, due to the limitation of Transformer attention modules in processing image feature maps. To mitigate these issues, we proposed Deformable DETR, whose attention modules only attend to a small set of key sampling points around a reference. Deformable
DETR can achieve better performance than DETR (especially on small objects) with 10× less training epochs. Extensive experiments on the COCO benchmark demonstrate the effectiveness of our approach. Code is released at https://github.com/fundamentalvision/Deformable-DETR.

DERT-存在的问题

  1. 收敛速度慢
  2. 特征空间的分辨率有限

收敛速度慢的问题

论文中在第三段对其进行了一定的解释说明:

在这里插入图片描述
我们的query和key的数量分别是 Nq和Nk其中的Um和Vm实际上就相当于之前的Wq和Wv矩阵,经过参数的初始化之后就得到了实际上的query和key其服从0 1的均匀分布

A m q k = softmax ⁡ ( Q K T d k ) A_{m q k}=\operatorname{softmax}\left(\frac{Q K^{T}}{\sqrt{d_{k}}}\right) Amqk=softmax(dk QKT)

我们softmax中间的注意力分数定义为1/NK(论文中说当Nk的值很大时候),我们因为服从N(0,1)导致每一个key的关注度是平等的,所以就会出现要经过很长时间的训练才可以得到该有的注意力效果。

特征空间分辨率有限的问题

这是Transform在cv领域普遍遇到的问题。

在Feature map上计算attention的时候,每一个像素我们看作就是一个token。

token_num=H*W 相似度数量=token_num * token_num

在这里插入图片描述

我们的detr是通过CNN提取出了feature map的特征信息。但token不能太大,也就会导致说得到的map不能太大。

结合之前的yolo的一些知识,我们知道feature map比较小的话就会使得检测小物体是非常的不利的。

在这里插入图片描述

Deformable DETR, whose attention modules only attend to a small set of key sampling points around a reference.

可变形 DETR,其注意力模块仅关注参考周围的一小组关键采样点。(这样的计算量就可以明显的减少)

整体的网络结构

我们通过对比,学习一下Deformable - DETR和DERT在网络结构上的不同之处。

  1. Deformable - DETR通过backbone提取出了多个尺度feature map的信息。
    在这里插入图片描述
  2. Transformer中,Encoder部分的Multi-Head Self-Attention改为Multi-Scale Deformable Attention
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序小旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值