论文链接:Deformable Convolutional Networks
1.Introduction
目标检测当中数据有一个问题,图片中物体的尺寸,姿势,方向都是不同的,这对检测的结果有很大的影响,这个问题通常有两个解决办法:1. 通过数据增强,扩大数据量,只要数据量足够大,训练好的模型可以很好的识别。2.通过技术找到图片中不变的信息,例如使用SIFT算子(了解不多)或者滑动窗口。但是这两种方法都是有局限性,前者,当有数据未在训练数据中存在的时候,无法识别,例如所有的训练数据都是正着,或者斜着的,突然有个倒着的图片,无法识别。后者,提取的算法太复杂,不容易实现。于是本文提出deformable cnns和deformable roipooling,训练网络,自适应的改变特征区域
2.Deformable Convolution Networks
假设卷积核是3x3,那么在特征图上一共有九个方向,定义为:
R
=
{
(
−
1
,
−
1
)
,
(
−
1
,
0
)
,
(
−
1
,
1
)
,
(
0
,
−
1
)
,
(
0
,
0
)
,
(
0
,
1
)
,
(
1
,
−
1
)
,
(
1
,
0
)
,
(
1
,
1
)
R=\{(-1,-1),(-1,0),(-1,1),(0,-1),(0,0),(0,1),(1,-1),(1,0),(1,1)
R={(−1,−1),(−1,0),(−1,1),(0,−1),(0,0),(0,1),(1,−1),(1,0),(1,1)
先看一下普通的卷积公式
这是对特征图像素点
p
0
p_0
p0为中心卷积过程,
w
(
p
n
)
w(p_n)
w(pn)是卷积核在
p
n
p_n
pn位置的值,所谓的deformable conv就是在卷积的时候对
p
n
p_n
pn加一个偏移值
∆
p
n
∆p_n
∆pn,这一个偏移值怎么来的呢?看上图红框框出的位置,对特征图进行一次卷积,卷积后的通道数是2*N,N代表卷积核的像素点个数,比如3x3的卷积核N=9,于是卷积公式变成了下式子:
但是有一个问题,
p
0
+
p
n
+
∆
p
n
p_0 + p_n+ ∆ p_n
p0+pn+∆pn不是一个整数,但是位置必须是整数,于是使用双线性插值解决这一个问题,公式变成了如下:
其中
p
=
p
0
+
p
n
+
∆
p
n
p = p_0 + p_n+∆ p_n
p=p0+pn+∆pn,而q代表p周围四个整数位置点的取值,例如
x
:
(
i
+
u
,
j
+
v
)
可
由
坐
标
为
x
(
q
1
)
:
(
i
,
j
)
、
x
(
q
2
)
:
(
i
+
1
,
j
)
、
x
(
q
3
)
:
(
i
,
j
+
1
)
、
x
(
q
4
)
:
(
i
+
1
,
j
+
1
)
x: (i+u,j+v) 可由坐标为 x(q1): (i,j)、x(q2): (i+1,j)、x(q3): (i,j+1)、x(q4): (i+1,j+1)
x:(i+u,j+v)可由坐标为x(q1):(i,j)、x(q2):(i+1,j)、x(q3):(i,j+1)、x(q4):(i+1,j+1)确定
g
(
a
,
b
)
=
m
a
x
(
0
,
1
−
∣
a
−
b
∣
)
g(a, b) = max(0, 1 − |a − b|)
g(a,b)=max(0,1−∣a−b∣)将
g
(
q
x
,
p
x
)
,
g
(
q
y
,
p
y
)
g(q_x,p_x),g(q_y,p_y)
g(qx,px),g(qy,py)带入上式子得到,如下公式
这个公式是怎么来的呢?
而这里
x
1
−
x
0
=
1
,
y
1
−
y
0
=
1
x_1-x_0=1,y_1-y_0=1
x1−x0=1,y1−y0=1,于是又可以化简
3.Deformable ROI Pooling
RoI池模块将任意大小的输入矩形区域转换为固定大小的特征。给定一个ROI,大小为wh,它最后会被均匀分为KK块,k是个自由参数。标准的ROI pooling是从输入的特征图x中生成k*k个输出特征图y.第(i,j)个块的pooling操作可以被定义为
p
0
p_0
p0是左上方的角落块,
n
i
j
n_{ij}
nij是这个块内的像素值。类似的定义变形的ROI pooling,增加一个偏移量
∆
p
i
j
∆p_{ij}
∆pij,如下定义
通过全连接得到归一化的offset
(
∆
p
i
j
)
(∆p_{ij})
(∆pij)。再设置参数 γ = 0.1,得到t
∆
p
i
j
∆p_{ij}
∆pij:
当然 这个也不是整数,同样要使用双线性插值得到整数,和deformable conv相似,不细说
4.总结
本文提出的想法算是比较新颖的,并不像以往的很多论文只是将别人的想法进行拼接,然后大量实验调参,值得借鉴。