可变形卷积系列(一) 打破常规,MSRA提出DCNv1 | ICCV 2017 Oral

论文提出可变形卷积帮助模型高效地学习几何变换能力,能够简单地应用到分类模型和检测模型中,思想新颖,效果显著,十分值得学习

来源:晓飞的算法工程笔记 公众号

论文: Deformable Convolutional Networks

Introduction


  常规卷积操作的感受域是固定的,但不同大小的目标应该需要不同大小的感受域,甚至是不规则的感受域。为此,论文提出两个模块来使 CNN 具备几何变换的建模能力:

  • deformable convolution,在常规的卷积中增加 2D 偏移值,可以将采样区域自由变形,如图 1(d)。偏移值是可学习的,通过额外的卷积层获得,取决于输入的特征。
  • deformable RoI pooling,为 RoI pooling 中的每个 bin 添加一个偏移值做整体的移动,能够自适应不同形状目标的局部定位。同样,偏移值是可学习的,取决于输入特征和 RoI 区域。

Deformable Convolutional Networks


Deformable Convolution

  2D 卷积包含两个步骤,首先采样输入特征的规则区域\mathcal{R},然后求和采样值与权重w间的乘积,区域\mathcal{R}由卷积核大小和膨胀(dilation)决定,如上为3\times 3、膨胀为 1 的卷积区域。

  输出特征图y中的点p_0的值计算如公式 1,p_n\mathcal{R}中所有采样点。

  在可变性卷积中,使用偏移\{\Delta p_n | n=1,…,N \}将区域\mathcal{R}的每个点进行位移,公式 1 转换成了公式 2

  由于\Delta p通常为小数,使用公式 3 的双线性插值计算偏移位置的值,G(\cdot, \cdot)为双线性插值权重,q为特征图x上所有的点,g(a, b)=max(0, 1-|a-b|)

  如图 2 所示,偏移特征图通过旁路的卷积层获得,N为主干的卷积核大小,对输入特征进行变形卷积时取偏移特征图上对应点的偏移值向量组合成完整的 offsets。训练时,同时学习两条路径,对于偏移值,通过公式 3 进行梯度的回传。

Deformable RoI Pooling

  • RoI Pooling

  对于输入特征图x和 RoI 区域w\times h,左上角坐标为p_0,RoI pooling 将区域分为k\times k个 bin,输出大小k\times k的特征图

  对于序号为(i,j)的 bin,输出的计算如公式 5,n_{i,j}为 bin 中的像素总数,范围为\lfloor i \frac{w}{k} \rfloor \le p_x < \lceil (i+1) \frac{w}{k} \rceil\lfloor j \frac{h}{k} \rfloor \le p_y < \lceil (j+1) \frac{h}{k} \rceil

  类似于公式 2,可变形 RoI pooling 采用偏移值\{ \Delta p_{ij} | 0 \le i,j < k \}对 bin 进行整体移动,输出计算如公式 6,由于\Delta p_{ij}是小数,同样需要公式 3 和公式 4 进行双线性插值计算

  可变形 RoI pooling 的逻辑如图 3,偏移值通过旁路卷积层获得,旁路的输入为 RoI 区域池化后的特征,接一个 fc 层输出归一化的偏移值\Delta \hat{p}_{ij},与 RoI 的尺寸无关,然后根据 RoI 区域大小转换为偏移值\Delta p_{ij}=\gamma \cdot \Delta \hat{p}_{ij} \circ (w, h)\gamma=0.01为预设的幅值,偏移值在 RoI 区域内所有 channel 共用,取对应的位置。

  • Position-Sensitive (PS) RoI Pooling

  可变形 PS RoI pooling 遵循 RFCN 的全卷积理念,先用一个卷积层获得 channel 为2k^2(C+1)的偏移特征图,单图大小与主干的 score map 一样,然后通过 PS RoI pooling 得到归一化的偏移值\Delta \hat{p}_{ij},然后根据 RoI 大小转换为最终的偏移值\Delta p_{ij}。在实际实现中,一般会在 PS RoI Pooling 后接一个输出为2N全连接层,与可变形 RoI pooling 类似。

Deformable Convolution/RoI Pooling Backpropagation

  公式 2 可变形卷积的偏移值\Delta p_n的梯度就算如公式 7,\frac{\partial G(q,p_0+p_n+\Delta p_n)}{\partial \Delta p_n}由公式 4 计算,\Delta o_n是 2D 的,\partial \Delta p_n实际表示\partial \Delta p_n^x\partial \Delta p_n^y

  可变形 RoI pooling 的偏移值计算如公式 8,而归一化偏移值\Delta \hat{p}_{ij}则可以通过计算\Delta p_{ij}=\gamma \cdot \Delta \hat{p}_{ij} \circ (w, h)的导数获得。

Understanding Deformable ConvNets


  如图 5 所示,可变形卷积将原本固定的感受域根据目标自适应地调整,随着可变形卷积地叠加,高维像素点对应的感受域将会有很大的差异。

  图 6 为图 5 中高层像素对应的低维像素的对应图,可以看到高层像素的感受域大都跟物体的位置相关。

  图 7 为 RoI 区域对应的 bin 的位置,可以看到 bin 移动到了与物体更相关的位置。

Experiments


Ablation Study

  • Deformable Convolution

  表 1 测试了在不同的位置加入可变形卷积的效果,不同的网络的效果不一致,整体都是可以提升的。而表 2 则是统计了不同大小物体的平均偏移值,偏移值跟物体大小相关,而背景的偏移介于中大物体之间,说明背景需要更大的感受域进行识别。表 3 与空洞卷积进行了对比,更大的膨胀值能有更好的性能,说明原来的感受域太小了,而不同的任务最优的膨胀值不太一样,说明可变形卷积是有存在意义的。

  • Deformable RoI Pooling

  如表 3,可变形 RoI Pooling 搭配可变形卷积能够达到最优的模型。

  • Model Complexity and Runtime

  可变形卷积只增加了少量参数量和计算耗时,说明可变形卷积是通过提升模型的几何变化能力来提高性能,而不是堆参数。

Object Detection on COCO

Conclusion


  论文提出可变形卷积帮助模型高效地学习几何变换能力,能够简单地应用到分类模型和检测模型中,思想新颖,效果显著,十分值得学习



如果本文对你有帮助,麻烦点个赞或在看呗 ~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

work-life balance.