论文:Deformable ConvNets v2: More Deformable, Better Results(CVPR 2018)
改进点
- 在特征提取网络的更多层中引入deformable convolution结构
- 引入modulation,给可变形卷积v1版本中的偏移量加一个权重,RoIs难免会含有背景在里面,通过学习 weight, 可以将背景区域的 weight 变得比较小,使得网络更专注于目标区域(目标区域还是会含有背景,毕竟是用矩形框框出来的)
y ( p ) = ∑ k = 1 K w k ⋅ x ( p + p k + Δ p k ) ⋅ Δ m k y(p)=\sum\limits_{k=1}^K\ w_k\cdot x(p+p_k+\Delta p_k)\cdot \Delta m_k y(p)=k=1∑K wk⋅x(p+pk+Δpk)⋅Δmk输入: N × C × H × W N\times C\times H\times W N×C×H×W
输出: N × ( 3 ⋅ n ⋅ n ) ⋅ C × H × W N\times (3\cdot n\cdot n)\cdot C\times H\times W N×(3⋅n⋅n)⋅C×H×W - 引入监督网络
效果对比
三个可视化指标
effective sampling locations:
- 有效的计算区域,从输出中的某个点往前推算出参与该点计算的特征点区域,往前推算3层点数最多为9^3=729,有很多会重复
effective receptive fields:
- 有效感受野,计算网络节点相对于抽样/ bin位置的梯度,以体现贡献度
Error-bounded saliency regions :
- 表示当以完整的输入图像进行计算和只以输入图像的部分区域进行计算时,模型得到的输出相同时的最小区域,即:该区域(saliency region)对模型输出影响较大
Deformable conv效果
从下图可以看出,可变形卷积覆盖的目标区域更大,更准确,体现了其更强大的学习能力
Deformable RoI pooling的效果
与上面Deformable conv效果类似,当RoI中含有目标时,Deformable 的表现更好,(e)只加入了监督网络,而没有引入Deformable ,其效果并不好
监督网络
左边为主网络(Faster RCNN),右边为子网络(RCNN)。将主网络得到的RoIs映射回原图,裁剪resize到224×224作为子网络输入,通过RCNN算法提取特征,得到14×14feature map,再输入modulated deformable RoI pooling得到RoI特征,最后通过2个fc层得到1024维特征,和主网络输出的1024维特征作为feature mimicking loss(余弦相相似度)输入,以约束2个特征差异,同时子网络通过一个分类损失进行监督学习。
L
m
i
m
i
c
=
∑
b
∈
Ω
[
1
−
cos
(
f
R
C
N
N
(
b
)
,
f
F
R
C
N
N
(
b
)
)
]
L_{mimic} = \sum_{b\in \Omega} [1 - \cos(f_{RCNN}(b), f_{FRCNN}(b))]
Lmimic=b∈Ω∑[1−cos(fRCNN(b),fFRCNN(b))]
Loss组成:mimic loss + R-CNN classification loss + Faster-RCNN loss
两个新引入的损失权重为主网络损失的0.1,R-CNN中对应模块与 Faster R-CNN 分支之间的网络参数是共享的,包括主干网络、(Modulated) Deformable RoIpooling 和2个fc头(两个分支中的分类头是不共享的)
测试阶段仅用到主网络部分,所以没有增加测试的计算成本
子网络的输入就是RoI在原图上的映射,受到RoI以外区域信息的干扰更少,所以分类效果更好,用一个损失函数监督主网络Faster RCNN的分类支路训练,迫使网络提取到更多RoI内部特征,而这个迫使的过程主要就是通过添加的modulation机制和原有的offset实现(疑问:原有的Loss不够强??)
适应多尺度
当输入得短边resize的尺寸变大时,常规卷积都有一个先增大后减小的过程,而DCN则能够做到持续上升,这是因为图片的分辨率增大了,卷积核的大小确没有变化,相当于感受野变小了,而DCN的可变形使得其感受野有一定的张力,仍可学习到目标足够的信息
参考文献
【1】Deformable ConvNets v2算法笔记
【2】PyTorch implementation of Deformable Convolution(Pytorch)
【3】Deformable-Convolution-V2-PyTorch(Pytorch)
【3】ICCV 2019丨 RepPoints: 替代边界框,基于点集的物体表示新方法
【4】DCN v2 (Arxiv, 2018)