【转】Deformable ConvNets论文笔记

转自:http://m.blog.csdn.net/yucicheung/article/details/78113843

2.1 Deformable Convolution
2D的卷积包括两个步骤:1)用一个规则的网格 R 在输入特征图上进行采样;2)对于采样的值用w进行加权再求和。网格 R 定义了感受野大小和扩张量。比如

R={(1,1),(1,0),,(0,1),(1,1)}
定义了一个 3×3 的核并且扩张量(空洞)为1。
对于在输出特征图 y 上的每一个位置 p0 来说,我们有
y(p0)=pnRw(pn)x(p0+pn),   (1)
其中 pn 会穷举在 R 中的位置。
在可变形卷积中,用偏移 {Δpn|n=1,,N} 对规则的网格 R 进行扩充,其中 N=|R|. 公式(1)就变成
y(p0)=pnRw(pn)x(p0+pn+Δpn).   (2)

现在,采样就在不规则有偏移的位置 pn+Δpn 上进行。因为这个偏移 Δp 通常是小数,等式(2)要按以下进行双线性插值
x(p)=qG(q,p)x(q),   (3)
其中 p 表示一个任意的(小数)位置(对于等式(2) p=p0+pn+Δpn ), q 穷举在特征图 x 上的所有整数空间位置,并且 G() 是双线性插值的核。注意 G 是二维的。它被分成两个一维的核
G(q,p)=g(qx,px)g(qy,py),   (4)
其中 g(a,b)=max(0,1|ab|). 等式(3)的计算会很快因为 G(q,p) 只在几个 q 上是非零的。
Fig2
正如在图2中描述的一样,偏移是通过在同一个输入特征图上再应用一个卷积层来获得的。卷积核的空间分辨率和扩张量和目前的卷积层一样(比如,在图2中也是 3×3 扩张量为1)。输出的偏移的域的和输入的特征图有相同的空间分辨率。通道维度 2N 对应着 N 个2D的偏移。在训练中,用于产生输出特征和偏移的卷积核同时在进行学习。要学习到偏移量,梯度通过等式(3)和(4)中的双线性操作进行反向传播。详情参见附录A.
2.2 Deformable RoI pooling
在所有基于region proposal候选区域的物体检测方法中都有用到RoI pooling。它把一个输入的任意大小的矩形区域转化为一个固定大小的特征。
RoI pooling 给定一个输入特征图 x 和一个大小为 w×h 的RoI以及其左上角 p0 ,RoI pooling把RoI分成 k×k(k 是自由参数)个长方块并且输出一个 k×k 的特征图 y 。对第 (i,j) 个长方块 (0i,j<k) ,有
y(i,j)=pbin(i,j)x(p0+p)/nij    (5)
其中 nij 是在长方块中的像素点数。第 (i,j) 个长方块范围是 iwkpx<(i+1)wk 并且 jhkpy<(j+1)hk .
类似于等式(2),在可变形RoI pooling中,偏移 {Δpij|0i,j<k} 会被加入到空间长方块的位置上。这样等式(5)就变成
y(i,j)=pbin(i,j)x(p0+p+Δpij)/nij    (6)

Δpij 往往是小数。等式(6)通过等式(3)和(4)中的双线性插值来实现。
Fig3
Fig3画出了如何获取偏移。首先,RoI pooling(等式5)产生pooled的特征图。从这些图中,一个fc层产生归一化后的偏移 Δp^ij ,这个归一化的量之后会被转化为公式(6)中的偏移量 Δpij ,通过与RoI的宽和高做元素间的乘法,即 Δpij=γΔp^ij(w,h) .这里面的 γ 是一个提前定义好的标量用来调节偏移的幅度。跟据经验设为 γ=0.1 。偏移归一化是有必要的,为了让偏移的学习不因RoI的尺寸不同而变化。fc层用反向传播来学习,细节在附录A中。
Position-Sensitive(PS) RoI Pooling 这是全卷积的,并且和RoI Pooling不同。 通过一个卷积层,所有的输入特征图都首先被转化,对每个物体类别有 k2 个分数图(如果物体类别是 C ,那么总共有 C+1 种),就如在图4中最底下的那个分支一样。不需要在类别之间进行区分,这种分数图被表示为 {xi,j} 其中 (i,j) 对所有长方块进行穷举。Pooling会在这些分数图上进行,对于第 (i,j) 个长方块的输出值是通过相应的长方块的分数图 xi,j 进行求和而获得的。简言之,与等式(5)中的RoI Pooling不同的地方是一个本来是一个整体的特征图 x ,现在换成了一个特定的对位置敏感的分数图 xi,j .
在deformable PS RoI pooling中,只在等式(6)中更改了一处,就是将 x 改为了 xi,j 。然而,学习偏移的方式是不同的。它遵循了 论文全卷积的精神,就如同图4描述的一样。在最高的分支中,一个卷积层生成完全的空间像素偏移域。对于每一个RoI(同时也对于每一个类别),PS RoI pooling会被应用在这些域上以获取归一化的偏移量 Δp^ij ,然后通过上述deformable RoI pooling中一样的方法变成真正的偏移量 Δpij
Fig4
2.3 Deformable ConvNets
deformable convolution和RoI pooling模块与它们的平凡版本有相同的输入和输出,因此,就能方便地替换现有CNN中对应的普通模块。在实际训练中,这些添加的用于学习偏移的conv和fc层都以零权重初始化。学习率设为现有层的学习率的 β 倍(默认 β=1 ,在Faster R-CNN中的fc层设 β=0.01 )。它们要利用等式(3)和(4)中的双线性插值,通过BP的方法训练。最终的CNN就叫做deformable ConvNets。
要把deformable ConvNets和目前为止最好的CNN架构结合起来,我们注意到这些架构都是由两个阶段组成:第一,一个深度的全卷积网络在整张输入图上产生特征图;第二,一个范围窄的针对特定任务的网络由特征图来生成结果。我们在以下内容中对这两点进行详细说明。
Deformable Convolution for Feature Extraction



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值