可变形卷积网络——DCNet v1(解读)(原论文)
CNN类型网络存在的问题
CNN本质上仅限于模拟大型未知变换。 限制源于CNN模块的固定几何结构:
- 卷积单元在固定位置对输入特征图进行采样;
- 池化层以固定比率降低空间分辨率;
- RoI(感兴趣区域)汇集层将RoI分成固定的空间区间等。
缺乏处理几何变换的内部机制,这会引起明显的问题。
论文改进
引入可变形卷积和可变形RoI池化两个新的模块来增强CNN的转换建模能力。这两种方法都是基于这样一种思想:在不进行额外监督的情况下,增加模块中的空间采样位置和从目标任务中学习偏移量。
可变形卷积。 它将2D偏移添加到标准卷积中的常规网格采样位置。 它可以使采样网格自由变形。 如图所示。通过附加的卷积层从前面的特征图中学习偏移。 因此,变形以局部,密集和自适应方式对输入特征进行调节。
图中为3×3标准卷积和可变形卷积中的采样位置示意图。 (a)标准卷积的定点抽样网格(绿点)(b)变形后的采样位置(深蓝色点),具有可抵抗偏移(浅蓝色箭头)的增强卷积。(c)(d)是(b)的特殊情况,表明可变形卷积概括了尺度(各向异性)纵横比和旋转的各种变换。
可变形的RoI池化。它为RoI池化的常规bin分区中的每个bin位置添加了一个偏移量。类似地,从前面的特征图和RoI中学习偏移,从而实现具有不同形状对象的自适应定位。
Deformable Convolution 可变形卷积
(1)假设3×3的卷积核为
(-1,1) | (0,1) | (1,1) |
(-1,0) | (0,0) | (1,0) |
(-1,-1) | (0,-1) | (1,-1) |
(2)普通的卷积,输出映射应为
其中P0是图像对应卷积核的中心,即(0,0)位置对应的图像区域。Pn即是R中的坐标,P0+Pn表示卷积核对应的原图中P0点的八邻域区域。
(3)如下图中的(b)即是加了偏移后的卷积核。
在P0+Pn点处额外的加一个偏移,偏移是一个二维的数,则该点的位置就会偏移到(b)中蓝色点处。表示对应的蓝色点,然后对蓝色点进行卷积操作。
(4)由于(3)中采样点位于不规则的偏移位置pn +Δpn上。偏移Δpn通常是分数,因此(3)中的公式通过双线性插值实现。
p = p0 + pn + ∆pn,q枚举特征映射x中的所有整体空间位置,G(·, ·) 是一个非线性插值核。
Deformable RoI Pooling 可变形PoI池化
(1)原RoI池化
P0代表中心,P0+P代表点,上式是求固定大小卷积核下的平均池化。
(2)加偏移的RoI池化
上图说明了如何获得偏移量。 首先,RoI pooling(1)生成合并的特征映射。 从映射中,fc层生成归一化偏移,然后将其变换为等式中的偏移。 (2)中包含有RoI宽度和高度的元素乘积,如。 这里γ是预定义的标量,用于调制偏移的幅度。 根据经验设定为γ= 0.1。 偏移归一化使偏移学习对RoI大小不变是非常有必要的。 然后通过反向传播学习fc层。