简介
图1:论文原文
论文是发表在
I
C
C
V
2017
{\rm ICCV\ 2017}
I C C V 2 0 1 7 的一篇关于提高图像分类、目标检测和语义分割等图像处理任务模型性能的方法。论文提出的可变形卷积 和可变形
R
o
I
{\rm RoI}
R o I 池化 结合目标外观产生不同的卷积和池化方式,能有效提取图像中的感兴趣区域。实验结果为基于该方法的模型在多个数据集(
V
O
C
{\rm VOC}
V O C 、
M
S
C
O
C
O
{\rm MS\ COCO}
M S C O C O )上的图像分类、目标检测、语义分割等任务上均有大幅提升。 论文原文 源码
0. Abstract
C
N
N
{\rm CNN}
C N N 由于其固定的结构而受限于模型的几何变换,本文提出的两个新模块加强了
C
N
N
{\rm CNN}
C N N 的变换能力,
(
D
e
f
o
r
m
a
b
l
e
C
o
n
v
o
l
u
t
i
o
n
,
D
C
)
{\rm (Deformable\ Convolution, DC)}
( D e f o r m a b l e C o n v o l u t i o n , D C ) 和
(
D
e
f
o
r
m
a
b
l
e
R
o
I
P
o
o
l
i
n
g
,
D
R
P
)
{\rm (Deformable\ RoI\ Pooling, DRP)}
( D e f o r m a b l e R o I P o o l i n g , D R P ) 。两者的设计均是基于在模块中增加空间采样位置 ,并从目标任务中学习偏移量 。实验证明,
D
C
N
{\rm DCN}
D C N 可以替代
C
N
N
{\rm CNN}
C N N 用以实现如目标检测、语义分割等复杂的视觉任务。 论文贡献: (一)提出一种适应性采样方法;(二)在不显著增加参数量和计算的情况下提高目标检测和语义分割模型的性能;(三)可以轻易集成到基于
C
N
N
{\rm CNN}
C N N 的视觉任务中。
1. Introduction
视觉任务中一大挑战 是算法如何适应目标尺度、姿态、视角和模型等的变化。通常有两类方法 解决上述问题:(1)采用数据增强的方法,对数据集进行增扩以获得多样的样本;(2)使用尺度不变特征变换的算法,如
S
I
F
T
{\rm SIFT}
S I F T 和滑动窗口。但上述方法仍存在两方面的不足 :对于数据增强的方法,需要大量先验知识来设计针对当前数据集的方法,从而使其不具有泛化能力;依赖于手工提取的特征仍难以满足复杂度视觉任务的要求。 近来,
C
N
N
{\rm CNN}
C N N 在视觉任务上大获成功,但其仍存在上述问题。简而言之,
C
N
N
{\rm CNN}
C N N 本质上受限于对未知模型的变化 。这主要来自于
C
N
N
{\rm CNN}
C N N 中固定的模块,如卷积层在固定位置对输入特征采样、池化层以固定比率降低图像的分辨率、
R
o
I
{\rm RoI}
R o I 池化将输入特征划分为固定网格等,这就使
C
N
N
{\rm CNN}
C N N 缺乏处理几何变换的能力 。例如,在同一层中激活单元所对应的感受野是相同的,但这不适用于高层语义特征。因为不同的区域可能对应目标的不同尺度和外观,这就需要适应性的尺度和感受野以实现精细定位。又例如,在目标检测中利用边界框提取特征,但这并不能得到最优结果。 论文提出的新模块使
C
N
N
{\rm CNN}
C N N 具有几何变换能力。
D
C
{\rm DC}
D C ,在标准卷积中添加一个
2
D
{\rm 2D}
2 D 偏移图,偏移图通过前面的特征图学习;
D
R
P
{\rm DRP}
D R P ,在常规的网格区域中加入一个偏移,偏移通过前面的特征图和
R
o
I
s
{\rm RoIs}
R o I s 学习。两个模块都是轻量级的,实验证明可以替代
C
N
N
s
{\rm CNNs}
C N N s 中的对应部分,实现端到端训练。
图2:不同的3×3卷积
上图中绿色点标准卷积位置,蓝色点是加入偏移后的卷积位置。
(
a
)
{\rm (a)}
( a ) 是一个
3
×
3
{\rm 3×3}
3 × 3 标准卷积;
(
b
)
{\rm (b)}
( b ) 是在标准卷积中加入偏移;
(
c
)
{\rm (c)}
( c ) 和
(
d
)
{\rm (d)}
( d ) 是
(
b
)
{\rm (b)}
( b ) 的特殊情况,
(
c
)
{\rm (c)}
( c ) 是加入各向异性的偏移、
(
d
)
{\rm (d)}
( d ) 是加入旋转的偏移。
2. Deformable Convolutional Networks
2.1 Deformable Convolution
标准卷积 分为两个步骤:使用网格
R
R
R 在输入特征图
x
{\rm x}
x 上采样;根据权重值
w
{\rm w}
w 将所有采样结果相加。例如一个
3
×
3
{\rm 3×3}
3 × 3 卷积:
R
=
{
(
−
1
,
−
1
)
,
(
−
1
,
0
)
,
.
.
.
,
(
0
,
1
)
,
(
1
,
1
)
}
R=\{(-1,-1),(-1,0),...,(0,1),(1,1)\}
R = { ( − 1 , − 1 ) , ( − 1 , 0 ) , . . . , ( 0 , 1 ) , ( 1 , 1 ) }
对于输出特征图
y
{\rm y}
y 上的
p
0
{\rm p_0}
p 0 位置处,有:
y
(
p
0
)
=
∑
p
n
∈
R
w
(
p
n
)
⋅
x
(
p
0
+
p
n
)
(2.1)
{\rm y(p_0)}=\sum_{{\rm p}_n∈R}{\rm w}({\rm p}_n)·{\rm x}({\rm p}_0+{\rm p}_n)\tag{2.1}
y ( p 0 ) = p n ∈ R ∑ w ( p n ) ⋅ x ( p 0 + p n ) ( 2 . 1 )
上面两个式子描述了标准卷积的计算过程。
在可变形卷积 中,为网格
R
R
R 增加一个偏移
{
△
p
n
∣
n
=
1
,
.
.
.
,
N
}
\{△{\rm p}_n|n=1,...,N\}
{ △ p n ∣ n = 1 , . . . , N } ,其中
N
=
∣
R
∣
N=|R|
N = ∣ R ∣ ,则上式
(
2.1
)
(2.1)
( 2 . 1 ) 变为:
y
(
p
0
)
=
∑
p
n
∈
R
w
(
p
n
)
⋅
x
(
p
0
+
p
n
+
△
p
n
)
(2.2)
{\rm y(p_0)}=\sum_{{\rm p}_n∈R}{\rm w}({\rm p}_n)·{\rm x}({\rm p}_0+{\rm p}_n+△{\rm p}_n)\tag{2.2}
y ( p 0 ) = p n ∈ R ∑ w ( p n ) ⋅ x ( p 0 + p n + △ p n ) ( 2 . 2 )
则标准卷积中的采样位置
p
n
{\rm p}_n
p n 变为
p
n
+
△
p
n
{\rm p}_n+△{\rm p}_n
p n + △ p n ,由于
△
p
n
△{\rm p}_n
△ p n 通常是小数,上式中的
x
(
⋅
)
{\rm x(·)}
x ( ⋅ ) 由双线性插值得到:
x
(
p
)
=
∑
q
G
(
q
,
p
)
⋅
x
(
q
)
(2.3)
{\rm x(p)}=\sum_{{\rm q}}G({\rm q,p})·{\rm x(q)}\tag{2.3}
x ( p ) = q ∑ G ( q , p ) ⋅ x ( q ) ( 2 . 3 )
上式中
p
=
p
0
=
p
n
=
△
p
n
{\rm p=p_0}={\rm p}_n=△{\rm p}_n
p = p 0 = p n = △ p n 为任意位置,
q
{\rm q}
q 枚举特征图
x
{\rm x}
x 上的所有整数点位置,
G
(
⋅
,
⋅
)
{G(·,·)}
G ( ⋅ , ⋅ ) 为双线性插值核。
注意到
G
G
G 是二维的,因此可以将其分为两个一维核:
G
(
q
,
p
)
=
g
(
q
x
,
p
x
)
⋅
g
(
q
y
,
p
y
)
(2.4)
G({\rm q,p})=g(q_x,p_x)·g(q_y,p_y)\tag{2.4}
G ( q , p ) = g ( q x , p x ) ⋅ g ( q y , p y ) ( 2 . 4 )
其中
g
(
a
,
b
)
=
m
a
x
(
0
,
1
−
∣
a
−
b
∣
)
g(a,b)=max(0,1-|a-b|)
g ( a , b ) = m a x ( 0 , 1 − ∣ a − b ∣ ) 。这里结合双线性插值的思想即可得到:
g
g
g 函数界定了对于点
p
{\rm p}
p 的计算,只使用其相邻四个整数值,并且使用距离作为计算时的权重。
如下图是一个
3
×
3
{\rm 3×3}
3 × 3 的可变形卷积。由图可知,偏移(
o
f
f
s
e
t
f
i
e
l
d
{\rm offset\ field}
o f f s e t f i e l d )通过一个作用于输入特征图的
3
×
3
{\rm 3×3}
3 × 3 标准卷积操作得到,偏移的分辨率大小同输入特征图,其通道数
2
N
2N
2 N 表示
N
N
N 个二维偏移(
x
x
x 和
x
x
x 方向)。在训练过程中,同时学习产生偏移和产生输出特征图的卷积核权重,通过上式
(
2.3
)
(2.3)
( 2 . 3 ) 和
(
2.4
)
(2.4)
( 2 . 4 ) 优化偏移的生成。(后面部分有可变形卷积的可视化结果)
图3:3×3的可变形卷积
2.2 Deformable RoI Pooling
R
o
I
{\rm RoI}
R o I 池化的作用是将任意尺寸的矩形区域转化为固定尺寸的特征 。给定输入特征图
x
{\rm x}
x 、
R
o
I
{\rm RoI}
R o I 大小
w
×
h
w×h
w × h 、左上角点
p
0
{\rm p_0}
p 0 ,
R
o
I
{\rm RoI}
R o I 池化将
R
o
I
{\rm RoI}
R o I 划分成一个
k
×
k
k×k
k × k 大小的区域,得到输出特征图
y
{\rm y}
y 。对于
y
{\rm y}
y 上的第
(
i
,
j
)
(
0
≤
i
,
j
<
k
)
(i,j)(0≤i,j<k)
( i , j ) ( 0 ≤ i , j < k ) 个格子,满足:
y
(
i
,
j
)
=
∑
p
∈
b
i
n
(
i
,
j
)
x
(
p
0
+
p
)
/
n
i
j
(2.5)
{\rm y}(i,j)=\sum_{{\rm p}∈bin(i,j)}{\rm x(p_0+p)}/n_{ij}\tag{2.5}
y ( i , j ) = p ∈ b i n ( i , j ) ∑ x ( p 0 + p ) / n i j ( 2 . 5 )
其中
n
i
j
n_{ij}
n i j 表示对应格子中的像素点个数,其坐标满足关系:
⌊
i
w
k
⌋
≤
p
x
<
⌈
(
i
+
1
)
w
k
⌉
\lfloor i\frac{w}{k} \rfloor≤p_x<\lceil (i+1)\frac{w}{k} \rceil
⌊ i k w ⌋ ≤ p x < ⌈ ( i + 1 ) k w ⌉ ,
⌊
j
h
k
⌋
≤
p
y
<
⌈
(
j
+
1
)
h
k
⌉
\lfloor j\frac{h}{k} \rfloor≤p_y<\lceil (j+1)\frac{h}{k} \rceil
⌊ j k h ⌋ ≤ p y < ⌈ ( j + 1 ) k h ⌉ 。
如图为
R
o
I
{\rm RoI}
R o I 池化 ,下面以此图来解释上述公式:
图4:RoI池化
上述
w
×
h
w×h
w × h 为图中黑色框的边界为
7
×
5
7×5
7 × 5 ,
k
×
k
k×k
k × k 为图中黑色框的边界为
2
×
2
2×2
2 × 2 ,式
(
2.5
)
{\rm (2.5)}
( 2 . 5 ) 表示取每个黑色网格内的平均值作为
2
×
2
2×2
2 × 2 结果中网格的值,由此也可以轻易得出输出特征图上坐标的范围。
类似于上式
(
2.2
)
{\rm (2.2)}
( 2 . 2 ) ,添加偏移
{
△
p
i
j
∣
0
≤
i
,
j
<
k
}
\{△{\rm p}_{ij}|0≤i,j<k\}
{ △ p i j ∣ 0 ≤ i , j < k } ,上式
(
2.5
)
{\rm (2.5)}
( 2 . 5 ) 变为:
y
(
i
,
j
)
=
∑
p
∈
b
i
n
(
i
,
j
)
x
(
p
0
+
p
+
△
p
i
j
)
/
n
i
j
(2.6)
{\rm y}(i,j)=\sum_{{\rm p}∈bin(i,j)}{\rm x(p_0+p+△{\rm p}_{ij})}/n_{ij}\tag{2.6}
y ( i , j ) = p ∈ b i n ( i , j ) ∑ x ( p 0 + p + △ p i j ) / n i j ( 2 . 6 )
类似地,使用式
(
2.3
)
{\rm (2.3)}
( 2 . 3 ) 和
(
2.4
)
{\rm (2.4)}
( 2 . 4 ) 通过双线性插值方法计算像素值。 如下图是一个
3
×
3
{\rm 3×3}
3 × 3 的可变形
R
o
I
{\rm RoI}
R o I 池化 。由图可知,首先通过
R
o
I
{\rm RoI}
R o I 池化得到一个输出特征图,然后通过一个全连接层得到归一化偏移
△
p
^
i
j
△{\rm \hat{p}}_{ij}
△ p ^ i j ,然后通过式
(
2.6
)
{\rm (2.6)}
( 2 . 6 ) 将其转化为偏移
△
p
i
j
△{\rm p}_{ij}
△ p i j 。即
△
p
i
j
=
γ
⋅
△
p
^
i
j
○
(
w
,
h
)
△{\rm p}_{ij}=γ·△{\rm \hat{p}}_{ij}○(w,h)
△ p i j = γ ⋅ △ p ^ i j ○ ( w , h ) ,
γ
=
0.1
γ=0.1
γ = 0 . 1 、
○
○
○ 表示点积操作,该式子表示将全连接层得到的向量分配到
w
×
h
w×h
w × h 大小的网格中得到偏移。最后将偏移作用于
R
o
I
{\rm RoI}
R o I 池化即得到可变形
R
o
I
{\rm RoI}
R o I 池化。
图5:可变形RoI池化
除此之外,论文还提出一种
P
S
R
o
I
{\rm PS\ RoI}
P S R o I 池化
(
P
o
s
t
i
o
n
﹣
S
e
n
s
i
t
i
v
e
R
o
I
P
o
o
l
i
n
g
)
({\rm Postion﹣Sensitive\ RoI\ Pooling})
( P o s t i o n ﹣ S e n s i t i v e R o I P o o l i n g ) 。不同于上述可变形
R
o
I
{\rm RoI}
R o I 池化中的全连接过程,这里使用全卷积替换。具体以下图说明一个
3
×
3
{\rm 3×3}
3 × 3 的
P
S
R
o
I
{\rm PS\ RoI}
P S R o I 池化:首先下面分支通过卷积产生一个宽高同输入特征图、通道数为
k
2
(
C
+
1
)
(
k
=
3
)
k^2(C+1)(k=3)
k 2 ( C + 1 ) ( k = 3 ) 的得分图,然后上面分支通过卷积产生一个宽高同输入特征图、通道数为
2
k
2
(
C
+
1
)
2k^2(C+1)
2 k 2 ( C + 1 ) (
2
2
2 表示
x
x
x 和
y
y
y 两个方向)的偏移,最后结合两个分支的输出就得到
P
S
R
o
I
{\rm PS\ RoI}
P S R o I 池化的输出。这里的位置敏感
(
P
o
s
t
i
o
n
﹣
S
e
n
s
i
t
i
v
e
,
P
S
)
({\rm Postion﹣Sensitive, PS})
( P o s t i o n ﹣ S e n s i t i v e , P S ) 表示不同于上述可变形
R
o
I
{\rm RoI}
R o I 池化中直接使用输入特征图的
R
o
I
{\rm RoI}
R o I ,这里使用的是得分图中对应的
R
o
I
{\rm RoI}
R o I (包含位置的类别信息)。
图6:PS RoI池化
2.3 Deformable ConvNets
注意到上述可变形卷积和可变形
R
o
I
{\rm RoI}
R o I 池化与普通卷积和
R
o
I
{\rm RoI}
R o I 池化有相同的输入、输出,因此它们能够嵌入到
C
N
N
s
{\rm CNNs}
C N N s 中。同时,通过式
(
2.3
)
{\rm (2.3)}
( 2 . 3 ) 和
(
2.4
)
{\rm (2.4)}
( 2 . 4 ) 利用反向传播学习偏移。由此,将基于可变形卷积和可变形
R
o
I
{\rm RoI}
R o I 池化的
C
N
N
s
{\rm CNNs}
C N N s 称为
D
C
N
{\rm DCN}
D C N
(
D
e
f
o
r
m
a
b
l
e
C
o
n
v
N
e
t
s
)
({\rm Deformable\ ConvNets})
( D e f o r m a b l e C o n v N e t s ) 。这里,作者将基于
D
C
N
{\rm DCN}
D C N 的模型概括为两个步骤 :使用卷积产生特征图;针对特定任务产生相应结果。
3. Understanding Deformable ConvNets
如下图分别是标准卷积和可变形卷积产生的感受野的采样点位置。由图可知,相比于标准卷积, 可变形卷积更能提取图像中的感兴趣区域。
图7:不同卷积对应的感受野
3.1 In Context of Related Work
这部分介绍论文的相关工作。
S
p
a
t
i
a
l
T
r
a
n
s
f
o
r
m
N
e
t
w
o
r
k
s
,
S
T
N
{\rm Spatial\ Transform\ Networks,STN}
S p a t i a l T r a n s f o r m N e t w o r k s , S T N ,空间变换网络是在深度学习领域中学习数据空间变换的开创工作。如下图为空间变换模块 :
图8:空间变换模块
上图中的
U
U
U 是一个定位网络,其作用是得到空间变换参数
θ
θ
θ ,
θ
θ
θ 参数的形式可以多样,其依赖于变换的类型;网格生成器(
G
r
i
d
G
e
n
e
r
a
t
o
r
{\rm Grid\ Generator}
G r i d G e n e r a t o r )根据参数
θ
θ
θ 构建一个采样网络
T
θ
(
G
)
T_θ(G)
T θ ( G ) ;然后将
T
θ
(
G
)
T_θ(G)
T θ ( G ) 作用于标准采样得到空间变换后的结果
V
V
V 。
S
T
N
{\rm STN}
S T N 于
2015
{\rm 2015}
2 0 1 5 年提出,由于其能学习数据的平移、缩放、旋转等,在图像分类任务上取得了优异的结果。论文来自于这里 。
作者指出
S
T
N
{\rm STN}
S T N 的变换参数难以学习。特别地,
D
C
{\rm DC}
D C 中的偏移学习可以认为是轻量级的
S
T
N
{\rm STN}
S T N 。但有所不同的是,
D
C
{\rm DC}
D C 以局部和密集的方式学习对特征图的采样(
S
T
N
{\rm STN}
S T N 学习的是一个全局变换参数)。
A
c
t
i
v
e
C
o
n
v
o
l
u
t
i
o
n
{\rm Active\ Convolution}
A c t i v e C o n v o l u t i o n ,同样地,这项工作也是在卷积过程中学习对采样位置的偏移,并通过反向传播更新参数。但有所不同 的是:(1)它在不同的空间位置共享偏移;(2)偏移参数是静态的,即对于每个任务或每次训练单独学习。
E
f
f
e
c
t
i
v
e
R
e
c
e
p
t
i
v
e
F
i
e
l
d
{\rm Effective\ Receptive\ Field}
E f f e c t i v e R e c e p t i v e F i e l d ,这项工作揭示了感受野中的像素点贡献不尽相同 。有效区域只占据了感受野的很小一部分,且像素点的总体贡献呈高斯分布。这就需要一种适应性的区域采样方法。
A
t
r
o
u
s
C
o
n
v
o
l
u
t
i
o
n
{\rm Atrous\ Convolution}
A t r o u s C o n v o l u t i o n ,空洞卷积 最早出现在语义分割任务中,目的是在卷积的过程中增大感受野,从而可以在深层网络中保留图像的原始特征。同时,可以通过设置不同空洞率捕捉多尺度上下文信息。如下图是一维空洞卷积示意图:
图9:普通卷积核空洞卷积
如上图,普通卷积对应于稀疏采样;空洞卷积对应于密集采样。空洞卷积通过在输入特征图上加入零填充,得到输出特征图的感受野增大。如图
(
b
)
{\rm (b)}
( b ) 中对应感受野为
5
5
5 ,图
(
a
)
{\rm (a)}
( a ) 中对应感受野为
3
3
3 。空洞卷积最早在
D
e
e
p
L
a
b
{\rm DeepLab}
D e e p L a b 中提出,论文来自这里 。
D
e
f
o
r
m
a
b
l
e
P
a
r
t
M
o
d
e
l
s
,
D
P
M
{\rm Deformable\ Part\ Models,DPM}
D e f o r m a b l e P a r t M o d e l s , D P M ,可变形
R
o
I
{\rm RoI}
R o I 池化的思想类似于
D
P
M
{\rm DPM}
D P M 。
D
P
M
{\rm DPM}
D P M 是传统的基于像素梯度的目标检测方法,核心思想是将目标对象建模成几个部件的组合 。它不能实现端到端训练,且需要大量的先验信息,如部件以及部件的大小等。
D
e
e
p
I
D
﹣
N
e
t
{\rm DeepID﹣Net}
D e e p I D ﹣ N e t ,其与可变形
R
o
I
{\rm RoI}
R o I 池化的思想类似,但实现更加复杂。
D
e
e
p
I
D
﹣
N
e
t
{\rm DeepID﹣Net}
D e e p I D ﹣ N e t 基于
R
﹣
C
N
N
{\rm R﹣CNN}
R ﹣ C N N 实现,且难以集成到目标检测模型中实现端到端训练。其余的部分介绍了空间金字塔池化、
S
I
F
T
{\rm SIFT}
S I F T 、
O
R
B
{\rm ORB}
O R B 等相关工作。
4. Experiments
如下图为空洞卷积和本文提出可变形卷积、可变形
R
o
I
{\rm RoI}
R o I 池化的实验对比:
图10:与空洞卷积的对比
如下图是使用
D
C
N
{\rm DCN}
D C N 后,经典目标检测模型的精度提升:
图11:目标检测实验结果对比
如下图是使用
D
C
N
{\rm DCN}
D C N 后,经典目标检测模型和语义分割模型的参数量和速度变化:
图12:模型参数量和速度的对比
5. Conclusion
论文提出一种适应性采样 的方法,进而提出可变形卷积神经网络
D
C
N
{\rm DCN}
D C N 。实验结果证明基于
D
C
N
{\rm DCN}
D C N 的目标检测和语义分割模型在不显著增加参数量的条件下,提高了模型的精度。同时,
D
C
N
{\rm DCN}
D C N 可以集成到任何基于
C
N
N
{\rm CNN}
C N N 的视觉任务中。
由于没有阅读源码,本文只总结了
D
C
N
{\rm DCN}
D C N 的大体结构和信息,详细内容请阅读论文原文 。
参考
Dai J, Qi H, Xiong Y, et al. Deformable convolutional networks[C]//Proceedings of the IEEE international conference on computer vision. 2017: 764-773.
Jaderberg M, Simonyan K, Zisserman A. Spatial transformer networks[C]//Advances in neural information processing systems. 2015: 2017-2025.
Chen L C, Papandreou G, Kokkinos I, et al. Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs[J]. IEEE transactions on pattern analysis and machine intelligence, 2017, 40(4): 834-848.
完