极简笔记 Deformable Convolutional Networks
极简笔记 Deformable Convolutional Networks
论文地址:https://arxiv.org/abs/1703.06211
本文重点构建了基于可变形卷积与可变形区域自适应池化两组新型结构模块,并通过实验验证其在复杂场景下的性能优越性

首先介绍Deformable Convolution(可变形卷积)的概念及其工作原理。如图所示,在标准的卷积操作基础上增加了额外的一条支路(branch),该支路用于预测原始卷积核中各通道对应的偏移量(offset)。由于这些offset通常会是一个小数值,在计算实际采样点时需要通过在特征图周围进行线性插值来确定具体取样点的位置。数学表达式如下:对于输入图像中的任意一点p₀及其对应的空间坐标p₁,在其映射到特征图上的对应点p₂的基础上进行偏移量计算后得到最终采样点q=p₂+p₀·Δs(其中Δs代表各通道的空间缩放因子)。其输出结果即为:
q = p₂ + p₀·Δs
其中p_{n}位于卷积核内的相对坐标集合R = \{(-1,-1), (-1, 0), \dots, (1, 0), (1, 1)\}中,在此范围内定义了一个局部坐标系。\Delta p_{n}即为该局部区域中被预测出的偏移量,在深度可变层中通过全连接层将其映射至目标空间中对应位置。考虑到插值运算的需求,在p位置上进行差值计算后得到的结果x(p)可以是非整数值
这个地方 q 表示用于插值生成的一系列邻近点(即典型的线性插值方法,在此基础之上考虑周边一些点通过其与目标位置的距离乘以相应的权重系数)。在反向传播过程中,在计算offset梯度时会考虑到该bin区域周边四个像素的位置信息。虽然计算过程稍显复杂但通过逐步推导这两个偏导数来完成计算过程是可以实现的。

下面介绍变形区域池化机制。如图所示,变形区域池化同样遵循这一流程:将输入图像尺寸从w×h池化为k×k尺寸。其中,在池化核内第(i,j)位置对应的输出通道中的每一个元素。
其中每个 bin 的范围定义为 \lfloor i\frac{w}{k}\rfloor\leq p_x<\lceil(i+1)\frac{w}{k}\rceil, 以及 \lfloor j\frac{w}{k}\rfloor\leq p_y<\lceil(j+1)\frac{w}{k}\rceil。变量n_{ij}则表示落在该范围内的像素点数量。函数x(\cdot)与上文相同,在此情境下需要注意的是:梯度偏移量\bigtriangleup p_{ij}等于\gamma倍的归一化梯度偏移量与尺寸参数(w,h)进行卷积操作的结果。具体而言,在 fc 层中输出的是经过归一化的梯度偏移量\bigtriangleup \hat{p}_{ij}值,在反向传播过程中需要将其缩放回原始尺寸。在这里引入了一个预定义常数\gamma用于调节梯度偏移量的数量级,在本研究中取值固定为\gamma=0.1

此外,文章进一步介绍了更为先进的Position-Sensitive (PS) RoI Pooling技术,并在图中展示了其应用。该技术不仅保留了原始RoIPooling的优势,在池化层中还整合了分类信息以提高识别精度。需要注意的是,在这种池化过程中涉及到了可变形(deformable)机制。具体而言,在每类别的通道数量上进行了优化调整:即每个类别对应的通道数量为C+1个(其中+C代表各类别通道的数量)。这一改进使得网络能够更加有效地捕捉不同类别对象的特征细节,并且在实际应用中有效避免了密集区域检测时可能出现的性能瓶颈问题。
在实验中, 主干网络替换了其顶层几层, 采用了变形卷积和变形池化形式; 新增的offset部分初始化设置为零; 学习率设置为其对应层学习率乘以系数\beta, 其中\beta通常取值1, 但在全连接层时则调整为0.01



该研究通过后续实验及系统对比着重表明了一种更具普遍性的卷积形式——变形卷积/池化(deformable conv/pooling),其主要作用在于显著提升感受野大小这一特性,在此基础之上提出了具有特殊应用场景的无空洞卷积(atrous conv)作为其特例之一。在系统对比实验中发现,在不同网络架构与具体任务需求下最佳适用的无空洞卷积参数设置各不相同;但引入变形卷积后无论何种情况均能实现最优性能输出。研究者进一步比较了加入变形模块后的网络参数规模与计算负担,并得出了仅增加了微小参数量与计算开销却带来明显性能提升这一结论;由此可证该创新性模块的有效性并非依仗模型复杂度提升而产生性能优化效果。

最后让我们试着去理解变形模块(如上图所示),变形卷积/池化操作收敛后采样的点更紧密地与物体的位置相关联;而offset参数在训练过程中倾向于位于对象呈现强烈响应的区域;这将使得模型能够更加高效地提取对象特征而非背景特征,在分类任务中提高准确性,在分割任务中获得更精确的边界,在目标检测中实现更高的召回率。
个人认为,在分类与检测任务中运用变形模块(deformable)略显小题大做(kill a fly with a bullseye),因为变形模块实际上应当具备处理更为复杂任务的能力(manage increasingly complex tasks)。总而言之,这篇研究工作非常有质量(solid),值得期待后续进一步的研究进展。
