可变形卷积(Deformable Convolution)

可变形卷积

  • 前言:
  • 一、可变形卷积
    • 1.原文摘要(Abstract)
    • 2.可变形卷积

前言:

之前分了两次将深度学习中常用的各种卷积操作进行了汇总介绍,具体包括标准2D卷积、1×1卷积、转置卷积、膨胀卷积、深度卷积以及可分离卷积和分组卷积,之前在读文献时碰巧见过还有一个可变形卷积,这种卷积方式可以更好的根据目标本身的形状进行特征提取。这篇文章主要目的是为了学习理解可变形卷积,以便后面实验使用。
原文链接:https://arxiv.org/abs/1703.06211

一、可变形卷积

1.原文摘要(Abstract)

我在这里首先把原文摘要中的部分信息进行提取展示,以对可变形卷积有一个初步的认识,并了解作者为什么提出可变形卷积。

原文:Convolutional neural networks (CNNs) are inherently limited to model geometric transformations due to the fixed geometric structures in their building modules. In this work, we introduce two new modules to enhance thetransformation modeling capability of CNNs, namely, de-formable convolution and deformable RoI pooling. Both are based on the idea of augmenting the spatial samplinglocations in the modules with additional offsets and learn-ing the offsets from the target tasks, without additionalsupervision. The new modules can readily replace theirplain counterparts in existing CNNs and can be easilytrained end-to-end by standard back-propagation, givingrise todeformable convolutional networks. Extensive ex-periments validate the performance of our approach. Forthe first time, we show that learning dense spatial trans-formation in deep CNNs is effective for sophisticated vi-sion tasks such as object detection and semantic segmen-tation. The code is released at https://github.com/msracver/Deformable-ConvNets.

摘要部分主要描述出如下信息:

1)由于普通卷积神经网络在搭建网络模块时,其模块具有固定的几何结构,导致普通神经网络的几何变换建模能力受限;
2)本文提出可变形卷积和可变形RoI池化两个模块增强普通CNNs的几何变换建模能力;
3)提出上述两个模块的想法是不需要其他的监督前提下,利用附加的位移增强模块的空间采样位置,并且从目标任务中学习此位移;
4)本文提出的模块可以很容易的替换现有CNNs中的普通卷积或池化操作,且可以通过标准反向传播轻松进行网络的端到端训练,从而得到可变形卷积网络;
5)本文第一次展示出在深度CNNs中学习密集的空间变换对于复杂的视觉任务是非常有效的;

由上面可知道作者提出可变形卷积替换普通卷积的主要原因是现有的卷积神经网络所能应对的几何变换是有限的 ,我们需要增强CNNs的几何变换建模能力。

2.可变形卷积

可变形卷积在标准卷积规则的网状采样位置上添加2D位移,使得采样网格可以自由变形,此处位移需要通过另外的卷积层从前层特征中学习,因此变形以局部、密集且自适应的方式以输入特征为条件。所提可变形卷积是轻量级的,将会引入少量参数用于位移学习,可以容易地替换掉现有CNNs中对应的模块,并且可通过标准的反向传播轻松进行网络的端到端学习,最终所得网络具有内在的转换参数,而且这些参数是直接从数据中学到的。

可变形卷积(Deformable Convolution)_第1张图片

1)可变形卷积提取特征过程

  • 附加的标准Conv2对输入特征进行特征提取得到位移量offsets,offsets空间维度与输入相同;
  • 标准卷积Conv1结合offsets实现可变形卷积,对输入特征进行特征提取得到最终输出;
  • offsets通道数为2N,N表示卷积核中的采样点个数(比如3×3卷积核中N=9),每个采样点沿着H、W两个方向均有位移,所以每个2D位移深度为2,N个2D位移深度为2N;
  • 网络训练时,这两个卷积层的卷积核同时进行学习,值得注意的是位移量的学习使用双线性插值算法通过反向传播实现(原文附件A中有详细说明);

可变形卷积(Deformable Convolution)_第2张图片
对于可变形卷积实现过程,以3×3卷积核进行卷积为例,输出y(p0),R是卷积核的采样点相对于输入中x(p0)的9个位置:
在这里插入图片描述
如此,标准卷积的卷积结果是卷积核与输入特征之间的“加权求和”操作:
在这里插入图片描述
为了卷积操作可以提取到更符合目标形状的特征,可变形卷积为卷积核的采样点学习位移量Δpn,卷积过程变为下式,其中Δpn可以是小数,所以实现过程中通过双线性插值确定采样位置:
在这里插入图片描述
上图中对于位移学习的过程进行了展示:首先通过一个与当前卷积层并行的卷积层在输入特征上提取特征得到位移域,此卷积层的卷积核大小以及膨胀率的设置与当前卷积层是一样的。该位移域的空间分辨率和输入特征保持一致,每个2D位移深度为2(因为是沿着H、W两个方向),而位移域的通道数是2N,对应N个2D位移。在得到位移量offsets后,结合输入特征和offsets,使输入特征中每个元素都对应一个位移,然后利用普通卷积进行特征提取。比如下图中左面是标准卷积的特征提取过程,而右面是可变形卷积的特征提取过程。标准卷积中对于输出结果中的元素,其感受野和采样点是固定的,而可变形卷积中卷积核的采样点根据目标形状进行移动,自适应调整。
可变形卷积(Deformable Convolution)_第3张图片
下图对于可变形卷积的和标准卷积的不同进行更多的展示:
可变形卷积(Deformable Convolution)_第4张图片
参考以及图源:
1)https://arxiv.org/abs/1703.06211
2)https://zhuanlan.zhihu.com/p/62661196
可变形卷积比起那些普通卷积可太难懂了,还是有些迷糊,后续再补充吧,希望有大佬路过能指点一下。

你可能感兴趣的:(Pytorch,深度学习)