Deformable Convolutional Networks
卷积神经网络(CNN)由于其构建模块中固定的几何结构,其本质上仅限于建模几何变换。在这项工作中,我们引入了两个新的模块来增强CNN的变换建模能力,即可变形卷积和可变形RoI池化。两者都是基于用额外的偏移量来增强模块中的空间采样位置,并从目标任务中学习偏移量的想法,而不需要额外的监督。新的模块可以很容易地替换现有CNN中的普通对应模块,并且可以很容易地通过标准的反向传播进行端到端训练,从而产生可变形的卷积网络。大量的实验验证了我们方法的性能。我们首次表明,在深度CNNs中学习密集的空间变换对于复杂的视觉任务是有效的,例如物体检测和语义分割。
1. Introduction
视觉识别中的一个关键挑战是如何适应物体尺度、姿势、视点和部件变形的几何变化或模型几何变换.一般来说,有两种方法。第一是建立具有足够期望变化的训练数据集。这通常是通过增强现有的数据样本来实现的,例如,通过非线性变换。可以从数据中学习到稳健的表征,但通常是以昂贵的训练和复杂的模型参数为代价的。第二种是使用transformation-invariant的特征和算法.这一类包含了许多著名的技术,如SIFT(尺度不变特征变换)[42]和基于滑动窗口的对象检测范式。以上方式有两个弊端。首先,几何变换是假设固定的、已知的。这种假设阻止了对新任务的泛化,因为新任务拥有未知的几何变换,而这些几何变换没有被正确建模。其次,对于过于复杂的变换,即使是已知的变换,手工设计不变的特征和算法也可能是困难的或不可行的。
最近,卷积神经网络(CNNs)[35]在视觉识别任务中取得了显著的成功,如图像分类[31]、语义分割[41]和对象检测[16]。尽管如此,它们仍然存在上述两个缺点。它们对几何变换的建模能力主要来自于大量的数据增强、庞大的模型容量和一些简单的手工制作模块(如针对small translation-invariance的max-pooling[1])。
简而言之,CNN天生受限于对大型未知变换的建模。这种限制源于CNN模块的固定几何结构:卷积单元在固定的位置对输入特征图进行采样;池化层以固定的比例降低空间分辨率。RoI(region-of-interest)池层将RoI分割成固定的空间单元等,缺乏处理几何变换的内部机制。这会引起明显的问题。例如,同一CNN层中所有激活单元的感受野大小是相同的。这对于在空间位置上编码语义的高级CNN层来说是不可取的。由于不同的位置可能对应着不同尺度或变形的物体,因此自适应地确定尺度或感受野大小对于精细定位的视觉识别是有用的,例如,使用全卷积网络进行语义分割[41]。另一个例子是,虽然最近物体检测取得了显著而快速的进展[16,52,15,47,46,40,7],但所有的方法仍然依赖于基于原始bounding box的特征提取,这显然是次优的,尤其是对于non-rigid objects。
在这项工作中,我们引入了两个新的模块,大大增强了CNN对几何变换的建模能力。首先是可变形卷积。它在标准卷积的常规网格采样位置上增加了二维偏移。它可以实现采样网格的自由形式变形。如图1所示。
图1:3x3标准卷和可变形卷的取样位置示意图。(a)标准卷积的常规采样网格(绿点)。(b)可变形卷积的变形取样位置(深蓝色点)与增强的偏移量(浅蓝色箭头)。©(d)是(b)的特殊情况,显示出可变形卷积对比例、(各向异性)长宽比和旋转的各种变换进行了概括。
偏移量是通过额外的卷积层从前面的特征图中学习到的,因此,变形是以局部的、密集的、自适应的方式对输入特征进行调节。
第二种是可变形的RoI池。它在前一个RoI池化的常规bin分区中,给每个bin位置增加一个偏移量[15,7]。同样,偏移量也是从前面的特征图和RoI中学习的,从而实现了对不同形状的物体的自适应部件定位。
这两个模块都很轻。它们为偏移学习增加了少量的参数和计算。它们可以很容易地取代深度CNN中的普通对应物,并且可以很容易地用标准的反向传播进行端到端训练.由此产生的CNN被称为deformable convolutional networks,或deformable ConvNets。
我们的方法与spatial transform networks[26]和eformable part models[11]有着类似的思想.它们都有内部变换参数,并且纯粹从数据中学习这种参数。可变形ConvNets的一个关键区别是它们以一种简单、高效、深入和端到端的方式处理密集的空间变换。在3.1节中,我们详细讨论了我们的工作与以往工作的关系,并分析了deformable ConvNets的优越性。
2. Deformable Convolutional Networks
CNN中的特征图和卷积都是3D的。可deformable ConvNets和RoI pooling 模块都是在二维空间域上操作的。在不同的通道维度上,操作仍然是相同的。在不影响通用性的前提下,为了便于记述,这里对这些模块的描述是2D的,扩展到3D是直接的。
2.1. Deformable Convolution
二维卷积包括两个步骤。1)在输入特征图x上使用regular grid R \mathcal R R进行采样;2)对采样值进行加权w的求和,网格R定义了感受野的大小和扩张。例如:
R = { ( − 1 , − 1 ) , ( − 1 , 0 ) , . . . , ( 0 , 1 ) , ( 1 , 1 ) } \mathcal R = \{(-1,-1),(-1,0),...,(0,1),(1,1)\} R={(−1,−1),(−1,0),...,(0,1),(1,1)}
defines a 3x3 kernel with dilation 1.
对于输出特征图y上的每个位置 p 0 p_0 p0,我们有
其中 p n p_n pn枚举R中的位置。
在deformable convolution中,常规网格R用偏移量来增强 { Δ p n ∣ n = 1 , . . . , N } \{\Delta p_n|n=1,...,N\} {Δpn∣n=1,...,N},其中 N = ∣ R ∣ N=|\mathcal R| N=∣R∣。公式1变成:
现在,采样是在不规则的偏移位置 p n + Δ p n p_n+\Delta p_n pn+Δpn。由于偏移 Δ p n \Delta p_n Δpn通常是小数的,公式(2)通过双线性插值实现为
其中p表示任意的(分数)位置(对公式2, p = p 0 + p n + Δ p n p=p_0+p_n+\Delta p_n p=p0+pn+Δpn),q枚举了特征图x中的所有空间位置,且 G ( ⋅ , ⋅ ) G(\cdot,\cdot) G(⋅,⋅)为双线性插值核。注意G是二维的。它被分成两个一维的核
其中 g ( a , b ) = m a x ( 0 , 1 − ∣ a − b ∣ ) g(a,b)=max(0,1-|a-b|) g(a,b)=max(0,1−∣a−b∣)。式(3)的计算速度很快,因为G(q,p)只有在少数情况下是非零的。
如图2所示,偏移量是通过在相同的输入特征图上应用卷积层获得的。卷积核的空间分辨率和扩张率与当前卷积层的空间分辨率和扩张率相同(如图2中也是3x3,扩张率为1)。
输出偏移场与输入特征图具有相同的空间分辨率。通道维度2N对应N个二维偏移。在训练过程中,生成输出特征和偏移量的卷积核都是同时学习的。为了学习偏移量,通过式(3)和式(4)的双线性运算对梯度进行反推。详见附录A。
A. Deformable Convolution/RoI Pooling Backpropagation
在可变形卷积公式(2)中,偏移量 Δ p n \Delta p_n Δpn 的梯度w.r.t.计算为
其中, ∂ G ( q , p 0 + p n + Δ p N ) ∂ Δ p n \frac{\partial G(q,p_0+p_n+\Delta p_N)}{\partial\Delta p_n} ∂Δpn∂G(q,p0+pn+ΔpN)可以通过公式4推导出来。注意偏移量 Δ p n \Delta p_n Δpn是二维的,我们用 ∂ Δ p n \partial\Delta p_n ∂Δpn代表 ∂ Δ p n x \partial\Delta p_n^x ∂Δpnx和 ∂ Δ p n y \partial\Delta p_n^y ∂Δpny。
2.2. Deformable RoI Pooling
略(有空再翻译)
2.3. Deformable ConvNets
可变形卷积和RoI池化模块的输入和输出都与它们的普通版本相同.因此,它们可以很容易地取代现有CNN中的普通对应物。在训练中,这些用于偏移学习的新增conv和fc层权重被初始化为零。他们的学习率被设定为现有层的学习率的 β \beta β 倍(默认 β = 1 \beta=1 β=1,再Farster R-CNN的fc层中 β = 0.01 \beta=0.01 β=0.01)它们通过反向传播,通过式(3)和式(4)中的双线性插值操作进行训练。由此得到的CNN称为可变形ConvNets。
为了将可变形ConvNets与最先进的CNN架构整合在一起,我们注意到这些架构包括两个阶段。首先,深度全卷积网络在整个输入图像上生成特征图。第二,一个浅层的特定任务网络从特征图中生成结果。下面我们详细介绍一下这两个步骤。
Deformable Convolution for Feature Extraction 我们采用两种最先进的架构进行特征提取:ResNet-101[22]和Inception-ResNet[51]的修改版。两者都是在ImageNet[8]分类数据集上进行预训练的。最初的Inception-ResNet是为图像识别而设计的。它有一个特征错位的问题,对于密集的预测任务有问题。为了解决对齐问题,对其进行了修改[20]。修改后的版本被称为 “Aligned-Inception-ResNet”,详见附录B。
两种模型都由多个卷积块、一个平均池化和一个1000-way fc层组成,用于ImageNet分类.平均池化和fc层被去除。最后加入一个随机初始化的1x1卷积,使信道尺寸减小到1024。与通常的实践[4,7]一样,最后一个卷积块中的有效步长从32像素减小到16像素,以提高特征映射的分辨率(其实就是上采样为2倍,提高特征分辨率)。 具体地说,在最后一个块的开始,步幅从2改为1(“conv5”用于ResNet-101和对齐的Inception ResNet)。为了补偿,该块中所有卷积滤波器的膨胀(核大小大于1)从1变为2。(To compensate, the dilation of all the convolution filters in this block (with kernel size > 1) is changed from 1 to 2.)
Optionally,可变形卷积应用于最后几个卷积层(内核大小>1)。我们用不同数量的这种层进行了实验,发现3作为不同任务的良好权衡,如表1所报告。
Segmentation and Detection Networks 在上述特征提取网络的输出特征图的基础上,构建一个特定任务的网络。
下面,C表示对象类的数量。
DeepLab[5]是一种最先进的语义分割方法。它在特征图上增加了一个1x1卷积层,生成(C+1)图,代表每像素分类得分。然后,下面的softmax层输出每个像素的概率。Category-Aware RPN与[47]中的区域建议网络几乎相同,只是将2类(对象或非对象)卷积分类器改为(C+1)类卷积分类器。它可以被认为是SSD[40]的简化版。
Faster R-CNN[47]是最先进的检测器。在我们的实现中,按照[47]的做法,在conv4块的顶部添加了RPN分支。在以往的实践中[22,24],在ResNet-101中的conv4和conv5块之间插入RoI池化层,每个RoI留下10层( leaving 10 layers for each RoI)。这种设计虽然达到了很好的精度,但每个RoI的计算量很大。相反,我们采用了[38] (特征金字塔)中的简化设计。RoI池层是在最后添加的(最后的1x1维度reduction layer改为输出256-D特征。)。在池化的RoI特征之上,增加了两个维度为1024的fc层,然后是bounding box回归和分类分支。虽然这样的简化(从10层conv5块到2个fc层)会略微降低准确率,但它仍然使基线足够强大,并不是本工作的关注点。
可以选择将RoI池层改为可变形的RoI池。 R-FCN[7]是另一种最先进的检测器。它的每RoI计算成本可以忽略不计。我们遵循原来的实现。可以选择将其RoI池化层改为可变形的position-sensitive RoI池化。
3. Understanding Deformable ConvNets
这项工作是建立在卷积和RoI池中的空间取样位置增加额外的偏移量,并从目标任务中学习偏移量的想法上。
图5:标准卷积中的固定感受野(a)和可变形卷积中的自适应感受野(b)的说明,使用两层。顶部:顶部特征图上的两个激活单元,在两个不同尺度和形状的物体上。激活是来自3x3滤波器。中间:前面特征图上3x3滤波器的采样位置。另外两个激活单元被高亮显示。底部:前一特征图上两级3x3滤波器的采样位置。两组位置被高亮显示,与上面高亮显示的单元相对应。
当可变形卷积叠加时,复合变形的效果是深刻的。这在图5中得到了体现。标准卷积中的感受野和采样位置都固定在顶部特征图上(左)。在可变形卷积中,它们根据对象的比例和形状进行自适应调整(右图)。更多的例子如图6所示。表2提供了这种自适应变形的定量证据。
图6:每个图像triplet 显示了3x3可变形滤波器(见图5作为参考)的三个激活单元(绿色点)的背景(左),一个小的物体(中间),和一个大的物体(右),分别的采样位置( 9 3 9^3 93 = 729红点在每个图像)。
表2:可变形卷积滤波器在三层四类上的有效扩张值统计.与COCO[39]类似,我们根据边界框面积将对象平均分为三类。Small: area < 9 6 2 96^2 962 pixels; medium: 9 6 2 96^2 962< area < 22 4 2 224^2 2242;large: area > 22 4 2 224^2 2242pixels.
可变形RoI池的效果类似,如图7所示。标准RoI池中网格结构的规则性不再适用。取而代之的是,部分会偏离RoI区域,并移动到附近的对象前景区域。增强了定位能力,特别是对于非刚性目标。
图7:R-FCN[7]中可变形(正敏感)RoI池中偏移部分的图示,输入RoI的3x3个箱子(红色)(黄色)。注意零件如何偏移以覆盖非刚性对象。(Note how the parts are offset to cover the non-rigid objects.)
3.1. In Context of RelatedWorks
我们的工作与以往的工作在不同方面都有关联。我们详细讨论了其中的关系和区别。
Spatial Transform Networks (STN) 这是第一个在深度学习框架中从数据中学习空间变换的工作。它通过全局参数变换(如仿射变换)对特征图进行扭曲。这样的翘曲是昂贵的,而且学习变换参数是已知的困难。STN在小规模图像分类问题上已经显示出成功的经验。逆STN方法[37]通过高效的变换参数传播取代了昂贵的特征扭曲。
可变形卷积中的偏移学习可以被认为是STN中一个极轻量级的空间变换器[26]。然而,可变形卷积并没有采用全局参数变换和特征扭曲。相反,它以局部和密集的方式对特征图进行采样。为了生成新的特征图,它有一个加权求和步骤,这在STN中是没有的。
可变形卷积很容易集成到任何CNN架构中。它的训练很容易。它被证明对需要密集(如语义分割)或半密集(如物体检测)预测的复杂视觉任务有效。这些任务对于STN来说是困难的(如果不是不可行的话)[26,37]。
Active Convolution 这个作品是contemporary。它还在卷积中用偏移量增强采样位置,并通过端到端反向传播学习偏移量。在图像分类任务上显示有效。
与可变形卷积的两个重要区别使这项工作不那么普遍和适应性强。首先,它在不同的空间位置共享偏移量。第二,偏移量是静态模型参数,每个任务或每次训练都会学习这些参数。相反,可变形卷积中的偏移量是随图像位置变化的动态模型输出。它们对图像中的密集空间变换进行建模,对于目标检测和语义分割等(半)密集预测任务是有效的。
Effective Receptive Field 它发现并不是一个感受野中的所有像素对输出的贡献是相等的回应。那个靠近中心的像素有更大的影响。有效感受野只占理论感受野的一小部分,呈高斯分布。
虽然理论上感受野的大小随着卷积层数的增加而线性增加,但一个令人惊讶的结果是,有效感受野的大小随着数量的平方根而线性增加,因此,速度比我们预期的要慢得多。
这一发现表明,即使是深层CNNs中的顶层单元也可能没有足够大的感受野。这部分解释了为什么Atrous 卷积[23]被广泛用于视觉任务(见下文)。它表明了自适应感受野学习的需求。
可变形卷积具有自适应学习接受域的能力,如图5、6和表2所示。
Atrous convolution 它将普通滤波器的步长增加到大于1,并将原始权重保持在稀疏采样位置。这增加了感受野的大小,并在参数和计算上保持相同的复杂性。它被广泛应用于语义分割[41,5,54](在[54]中也称为扩张卷积)、目标检测[7]和图像分类[55]。
Deformable convolution是atrous convolution的泛化,从图1(c)中很容易看出。与atrous convolution的广泛比较见表3。
Deformable Part Models (DPM) 可变形RoI池化与DPM类似,因为这两种方法都是学习对象部分的空间变形,以最大化分类得分。由于不考虑部件之间的空间关系,可变形RoI池化更简单。
DPM是一个浅层模型,对变形的建模能力有限。虽然其推理算法可以通过将距离变换作为特殊的池化操作转换为CNNs[17],但其训练不是端到端,涉及到部件和零件尺寸的选择(selection of components and part sizes)等启发式选择。相比之下,可变形ConvNets是深度的,并且进行端到端训练。当多个可变形模块叠加时,对变形的建模能力会变得更强。
DeepID-Net 它引入了一个变形约束的池化层,也考虑了物体检测的部分变形。因此,它与可变形RoI池化有着相似的思想,但要复杂得多。这项工作是高度工程化的,基于RCNN[16].目前还不清楚如何以端到端的方式使其适应最近最先进的对象检测方法[47,7]。
Spatial manipulation in RoI pooling 空间金字塔池[34]使用手工制作的比例池区域(hand crafted pooling regions over scales)。它是计算机视觉中的主要方法,也用于基于深度学习的目标检测[21,15]。
学习池化区域的空间布局的研究很少。[28]中的工作是从一个大的过度完整的集合中学习一个稀疏的池化区域子集。该大集是手工设计的,学习不是端到端。
可变形RoI池化是第一个在CNN中端到端学习池化区域的方法。虽然目前区域大小相同,但像空间金字塔池化[34]一样直接扩展到多种大小。
Transformation invariant features and their learning
在设计transformation invariant features方面已经做出了巨大的努力。著名的例子包括scale invariant feature transform(SIFT)[42]和ORB[49](O代表方向)。在CNN的背景下,有大量的此类工作。在[36]中研究了CNN表征对图像变换的不变性和等价性.一些作品学习了关于不同类型变换的不变CNN表征,如[50],散射网络[3],卷积丛林[32],和TIpooling[33]。有些作品专门针对特定的变换,如对称性[13,9]、尺度[29]和旋转[53]。
正如第1节所分析的那样,在这些工作中,变换是先验的。这些知识(如参数化)被用来手工制作特征提取算法的结构,或者是固定的如SIFT,或者是可学习的参数,如基于CNN的。它们无法处理新任务中的未知变换。
相比之下,我们的可变形模块通用了各种变换(见图1)。变换的不变性是从目标任务中学习的。
Dynamic Filter 与可变形卷积类似,动态滤波器也根据输入特征和转换样本进行调整。不同的是,只学习滤波器的权重,而不是像我们的。这个这项工作应用于视频和立体预测。
Combination of low level filters 高斯滤波器及其平滑导数[30]被广泛用于提取低层次的图像结构,如角、边、T-junctions等.在一定条件下,这类滤波器形成一组基础,它们的线性组合在同一组几何变换中形成新的滤波器,如Steerable Filters[12]中的多方向和[45]中的多尺度.我们注意到,虽然在[45]中使用了可变形核这个术语,但它的含义与我们在这项工作中的含义是不同的.
大多数CNN从头开始学习所有的卷积滤波器。最近的工作[25]表明,这可能是不必要的。它用低级滤波器的加权组合(4阶以下的高斯导数)代替自由形式的滤波器,并学习权重系数。在滤波函数空间上的正则化表明,当训练数据较小时,可以提高泛化能力。
[45]中的多尺度.我们注意到,虽然在[45]中使用了可变形核这个术语,但它的含义与我们在这项工作中的含义是不同的.
大多数CNN从头开始学习所有的卷积滤波器。最近的工作[25]表明,这可能是不必要的。它用低级滤波器的加权组合(4阶以下的高斯导数)代替自由形式的滤波器,并学习权重系数。在滤波函数空间上的正则化表明,当训练数据较小时,可以提高泛化能力。
以上的工作与我们的工作是相关的,当多个滤波器,特别是不同尺度的滤波器组合在一起时,产生的滤波器可能具有复杂的权重,类似于我们的可变形卷积滤波器。但是,可变形卷积学习的是采样位置而不是滤波器权重。