(ICCV-2017)可变形卷积网络
可变形卷积网络
paper题目:Deformable Convolutional Networks
paper是Microsoft Research Asia发表在ICCV 2017的工作
paper地址:链接
Abstract
由于其构建模块中的固定几何结构,卷积神经网络 (CNN) 本质上仅限于模拟几何变换。在这项工作中,我们引入了两个新模块来增强 CNN 的转换建模能力,即可变形卷积和可变形 RoI 池化。两者都是基于这样的想法,即在没有额外监督的情况下,使用额外的偏移量来增加模块中的空间采样位置,并从目标任务中学习偏移量。新模块可以很容易地替换现有 CNN 中的普通模块,并且可以通过标准反向传播轻松地进行端到端训练,从而产生可变形的卷积网络。广泛的实验验证了我们方法的性能。我们首次表明,在深度 CNN 中学习密集空间变换对于复杂的视觉任务(例如目标检测和语义分割)是有效的。代码发布在 链接。
1. Introduction
视觉识别中的一个关键挑战是如何适应目标尺度、姿势、视点和零件变形的几何变化或模型几何变换。一般来说,有两种方式。首先是构建具有足够所需变化的训练数据集。这通常通过增加现有数据样本来实现,例如,通过仿射变换。可以从数据中学习到稳健的表示,但通常以昂贵的训练和复杂的模型参数为代价。第二种是使用变换不变的特征和算法。此类别包含许多众所周知的技术,例如 SIFT(尺度不变特征变换)[38] 和基于滑动窗口的目标检测范例。
上述方式有两个缺点。首先,假定几何变换是固定的和已知的。此类先验知识用于扩充数据,并设计特征和算法。这个假设阻止了对具有未知几何变换的新任务的泛化,这些任务没有被正确建模。其次,不变特征和算法的手工设计对于过于复杂的转换可能是困难的或不可行的,即使它们是已知的。
最近,卷积神经网络 (CNN) [31] 在图像分类 [27]、语义分割 [37] 和目标检测 [14] 等视觉识别任务中取得了重大成功。尽管如此,它们仍然存在上述两个缺点。他们对几何变换建模的能力主要来自广泛的数据增强、大模型容量和一些简单的手工制作模块(例如,用于小平移不变性的最大池 [1])。
简而言之,CNN 本质上仅限于模拟大型、未知的转换。局限性源于 CNN 模块的固定几何结构:卷积单元在固定位置对输入特征图进行采样;池化层以固定比例降低空间分辨率; RoI(感兴趣区域)池化层将 RoI 分成固定的空间箱等。缺乏处理几何变换的内部机制。这会导致明显的问题。例如,同一 CNN 层中所有激活单元的感受野大小相同。这对于在空间位置上编码语义的高级 CNN 层来说是不可取的。因为不同的位置可能对应于具有不同尺度或变形的物体,所以尺度或感受野大小的自适应确定对于具有精细定位的视觉识别是可取的,例如,使用全卷积网络的语义分割 [37]。再举一个例子,虽然最近目标检测取得了重大而快速的进展 [14、47、13、42、41、36、6],但所有方法仍然依赖于基于原始边界框的特征提取。这是次优的,特别是对于非刚性物体。
在这项工作中,我们引入了两个新模块,它们极大地增强了 CNN 建模几何变换的能力。第一个是可变形卷积。它将 2D 偏移量添加到标准卷积中的常规网格采样位置。它可以使采样网格自由变形。如图 1 所示。偏移量是通过额外的卷积层从前面的特征图中学习的。因此,变形以局部、密集和自适应的方式以输入特征为条件。
图 1:3×33 \\times 33×3 标准和可变形卷积中采样位置的图示。 (a) 标准卷积的规则采样网格(绿点)。 (b) 变形卷积中具有增强偏移(浅蓝色箭头)的变形采样位置(深蓝色点)。 ©(d) 是 (b) 的特例,表明可变形卷积泛化了尺度、(各向异性)纵横比和旋转的各种变换。
第二种是可变形的 RoI 池化。它为先前 RoI 池 [13、6] 的常规 bin 分区中的每个 bin 位置添加一个偏移量。类似地,偏移量是从前面的特征图和 RoIs 中学习的,从而可以对具有不同形状的目标进行自适应部分定位。
两个模块都很轻。他们为偏移学习添加少量参数和计算。它们可以很容易地替换深度 CNN 中的普通对应物,并且可以通过标准反向传播轻松地进行端到端训练。由此产生的 CNN 称为可变形卷积网络或可变形 ConvNet。
我们的方法与空间变换网络 [23] 和可变形部件模型 [10] 具有相似的高级精神。它们都有内部转换参数,并且纯粹从数据中学习这些参数。可变形卷积网络的一个关键区别在于它们以简单、高效、深入和端到端的方式处理密集的空间变换。在第 3.1 节中,我们详细讨论了我们的工作与以前工作的关系,并分析了可变形 ConvNets 的优越性。
2. Deformable Convolutional Networks
特征图和卷积是 3D 的。可变形卷积和 RoI 池化模块都在 2D 空间域上运行。该操作在整个通道维度上保持不变。为简单起见,模块以 2D 形式描述。扩展到 3D 很简单。
图 2:3×33 \\times 33×3可变形卷积示意图。
2.1. Deformable Convolution
2D 卷积包含两个步骤:1)在输入特征图x\\mathbf{x}x上使用规则网格R\\mathcal{R}R进行采样; 2) 对www加权的采样值求和。网格R\\mathcal{R}R定义感受野大小和膨胀。例如,
R={(−1,−1),(−1,0),…,(0,1),(1,1)}(1)\\mathcal{R}=\\{(-1,-1),(-1,0), \\ldots,(0,1),(1,1)\\}\\quad(1) R={(−1,−1),(−1,0),…,(0,1),(1,1)}(1)
定义一个膨胀为 1 的3×33 \\times 33×3内核。
对于输出特征图y\\mathbf{y}y上的每个位置p0\\mathbf{p}_0p0,
y(p0)=∑pn∈Rw(pn)⋅x(p0+pn),\\mathbf{y}\\left(\\mathbf{p}_0\\right)=\\sum_{\\mathbf{p}_n \\in \\mathcal{R}} \\mathbf{w}\\left(\\mathbf{p}_n\\right) \\cdot \\mathbf{x}\\left(\\mathbf{p}_0+\\mathbf{p}_n\\right), y(p0)=pn∈R∑w(pn)⋅x(p0+pn),
其中pn\\mathbf{p}_npn枚举了R\\mathcal{R}R中的位置。
在可变形卷积中,规则网格R\\mathcal{R}R增加了偏移{Δpn∣n=1,…,N}\\left\\{\\Delta \\mathbf{p}_n \\mid n=1, \\ldots, N\\right\\}{Δpn∣n=1,…,N},其中 N=∣R∣N=|\\mathcal{R}|N=∣R∣。等式(1)变为
y(p0)=∑pn∈Rw(pn)⋅x(p0+pn+Δpn)(2)\\mathbf{y}\\left(\\mathbf{p}_0\\right)=\\sum_{\\mathbf{p}_n \\in \\mathcal{R}} \\mathbf{w}\\left(\\mathbf{p}_n\\right) \\cdot \\mathbf{x}\\left(\\mathbf{p}_0+\\mathbf{p}_n+\\Delta \\mathbf{p}_n\\right)\\quad(2) y(p0)=pn∈R∑w(pn)⋅x(p0+pn+Δpn)(2)
现在,采样在不规则和偏移位置pn+Δpn\\mathbf{p}_n+\\Delta \\mathbf{p}_npn+Δpn上。由于偏移量Δpn\\Delta \\mathbf{p}_nΔpn通常是小数,Eq. (2) 通过双线性插值实现为
x(p)=∑qG(q,p)⋅x(q)(3)\\mathbf{x}(\\mathbf{p})=\\sum_{\\mathbf{q}} G(\\mathbf{q}, \\mathbf{p}) \\cdot \\mathbf{x}(\\mathbf{q})\\quad(3) x(p)=q∑G(q,p)⋅x(q)(3)
其中p\\mathbf{p}p表示任意(分数)位置(p=\\mathbf{p}=p= p0+pn+Δpn\\mathbf{p}_0+\\mathbf{p}_n+\\Delta \\mathbf{p}_np0+pn+Δpn for Eq. (2)),q\\mathbf{q}q枚举特征图 x\\mathrm{x}x中的所有积分空间位置,G(⋅,⋅)G(\\cdot, \\cdot)G(⋅,⋅)是双线性插值核.请注意,GGG是二维的。它被分成两个一维核
G(q,p)=g(qx,px)⋅g(qy,py),(4)G(\\mathbf{q}, \\mathbf{p})=g\\left(q_x, p_x\\right) \\cdot g\\left(q_y, p_y\\right),\\quad(4) G(q,p)=g(qx,px)⋅g(qy,py),(4)
其中g(a,b)=max(0,1−∣a−b∣)g(a, b)=\\max (0,1-|a-b|)g(a,b)=max(0,1−∣a−b∣)。等式 (3) 的计算速度很快,因为G(q,p)G(\\mathbf{q}, \\mathbf{p})G(q,p)仅在少数q\\mathbf{q}q时不为零。
如图 2 所示,偏移量是通过在同一输入特征图上应用卷积层获得的。卷积核与当前卷积层具有相同的空间分辨率和扩张(例如,图 2 中也是 3 × 3,扩张 1)。输出偏移字段与输入特征图具有相同的空间分辨率。通道维度 2N 对应于 N 个 2D 偏移量。在训练期间,同时学习用于生成输出特征和偏移量的卷积核。为了学习偏移量,梯度通过等式(3)和等式(4)反向传播。
2.2. Deformable RoI Pooling
RoI 池化用于所有基于区域proposal的目标检测方法 [14、13、42、6]。它将任意大小的输入矩形区域转换为固定大小的特征。
RoI Pooling [13] 给定输入特征图x\\mathrm{x}x和大小为w×hw \\times hw×h和左上角p0\\mathbf{p}_0p0的 RoI,RoI 池化将 RoI 分成k×kk \\times kk×k(kkk是一个自由参数)个 bin 并输出k×kk \\times kk×k特征图y。对于(i,j)(i, j)(i,j)-th bin(0≤i,j<k)(0 \\leq i, j < k)(0≤i,j<k),
y(i,j)=∑p∈bin(i,j)x(p0+p)/nij,(5)\\mathbf{y}(i, j)=\\sum_{\\mathbf{p} \\in b i n(i, j)} \\mathbf{x}\\left(\\mathbf{p}_0+\\mathbf{p}\\right) / n_{i j},\\quad(5) y(i,j)=p∈bin(i,j)∑x(p0+p)/nij,(5)
其中nijn_{i j}nij是 bin 中的像素数。第(i,j)(i, j)(i,j)个 bin 跨越⌊iwk⌋≤px<⌈(i+1)wk⌉\\left\\lfloor i \\frac{w}{k}\\right\\rfloor \\leq p_x<\\left\\lceil(i+1) \\frac{w}{k}\\right\\rceil⌊ikw⌋≤px<⌈(i+1)kw⌉和⌊jhk⌋≤py<\\left\\lfloor j \\frac{h}{k}\\right\\rfloor \\leq p_y<⌊jkh⌋≤py< ⌈(j+1)hk⌉\\left\\lceil(j+1) \\frac{h}{k}\\right\\rceil⌈(j+1)kh⌉。
与等式 (2) 类似,在可变形 RoI 池化中,偏移{Δpij∣0≤i,j<k}\\left\\{\\Delta \\mathbf{p}_{i j} \\mid 0 \\leq i, j< k\\right\\}{Δpij∣0≤i,j<k}被添加到空间合并位置。等式(5)变为
y(i,j)=∑p∈bin(i,j)x(p0+p+Δpij)/nij(6)\\mathbf{y}(i, j)=\\sum_{\\mathbf{p} \\in \\operatorname{bin}(i, j)} \\mathbf{x}\\left(\\mathbf{p}_0+\\mathbf{p}+\\Delta \\mathbf{p}_{i j}\\right) / n_{i j} \\quad(6) y(i,j)=p∈bin(i,j)∑x(p0+p+Δpij)/nij(6)
通常,Δpij\\Delta \\mathbf{p}_{i j}Δpij是小数。等式(6)是通过等式(3)和(4)的双线性插值实现的。
图 3:3×33 \\times 33×3 可变形 RoI 池的图示。
图 3 说明了如何获得偏移量。首先,RoI 池化(等式(5))生成池化特征图。从map中,fc 层生成归一化偏移量Δp^ij\\Delta \\widehat{\\mathbf{p}}_{i j}Δpij,然后通过与 RoI 的宽度和高度的元素乘积将其转换为等式(6)中的偏移量Δpij\\Delta \\mathbf{p}_{i j}Δpij,如Δpij=γ⋅Δp^ij∘(w,h)\\Delta \\mathbf{p}_{i j}=\\gamma \\cdot \\Delta \\widehat{\\mathbf{p}}_{i j} \\circ(w, h)Δpij=γ⋅Δpij∘(w,h)◦ ( w, h).这里γ\\gammaγ是一个预定义的标量,用于调制偏移量的大小。它根据经验设置为γ=0.1\\gamma=0.1γ=0.1。偏移归一化对于使偏移学习对 RoI 大小不变是必要的。
图 4:3×33 \\times 33×3可变形 PS RoI 池的图示。
Position-Sensitive (PS) RoI Pooling [6] 它是全卷积的,与 RoI pooling 不同。通过一个转换层,首先将所有输入特征图转换为每个目标类的k2k^2k2个得分图(对于CCC个目标类,总共C+1C+1C+1个),如图 4 底部分支所示。无需区分类别,此类分数图表示为{xi,j}\\left\\{\\mathbf{x}_{i, j}\\right\\}{xi,j},其中(i,j)(i, j)(i,j)枚举所有 bin。在这些分数图上执行池化。第(i,j)(i, j)(i,j)个 bin 的输出值是通过从对应于该 bin 的一个分数图 xi,j\\mathbf{x}_{i, j}xi,j求和获得的。简而言之,与等式(5)中的 RoI 池化的不同之处在于,通用特征图x\\mathbf{x}x被特定的正敏感分数图xi,j\\mathbf{x}_{i, j}xi,j代替。
在可变形 PS RoI 池中,方程式的唯一变化。 (6) 是x\\mathbf{x}x也被修改为xi,j\\mathbf{x}_{i, j}xi,j。然而,偏移学习是不同的。它遵循 [6] 中的“全卷积”精神,如图 4 所示。在顶部分支中,conv 层生成完整的空间分辨率偏移场。对于每个 RoI(也适用于每个类别),PS RoI 池应用于此类字段以获得归一化偏移量Δp^ij\\Delta \\widehat{\\mathbf{p}}_{i j}Δpij,然后以与上述可变形 RoI 池化相同的方式将其转换为实际偏移量Δpij\\Delta \\mathbf{p}_{i j}Δpij。
2.3. Deformable ConvNets
可变形卷积和 RoI 池化模块都具有与其普通版本相同的输入和输出。因此,它们可以很容易地替换现有 CNN 中的普通对应物。在训练中,这些添加的用于偏移学习的 conv 和 fc 层被初始化为零权重。它们的学习率设置为现有层学习率的β\\betaβ倍(默认情况下,(β=1(\\beta=1(β=1,Faster R-CNN 中的 fc 层,β=0.01\\beta=0.01β=0.01)。它们通过等式(3)和等式(4)中的双线性插值操作通过反向传播进行训练。生成的 CNN 称为可变形 ConvNet.
为了将可变形卷积网络与最先进的 CNN 架构相结合,我们注意到这些架构由两个阶段组成。首先,深度全卷积网络在整个输入图像上生成特征图。其次,浅层任务特定网络从特征图生成结果。我们详细说明下面的两个步骤。
用于特征提取的可变形卷积我们采用两种最先进的特征提取架构:ResNet-101 [20] 和 InceptionResNet [46] 的修改版本。两者都在 ImageNet [7] 数据集上进行了预训练。
最初的 Inception-ResNet 是为图像识别而设计的。它有一个特征错位问题,对于密集的预测任务来说是有问题的。它被修改以修复对齐问题[18]。修改后的版本被称为“Aligned-Inception-ResNet”。请在本文的在线 arxiv 版本中找到其详细信息.
这两个模型都包含几个卷积块、一个平均池和一个用于 ImageNet 分类的 1000 路 fc 层。移除了平均池化层和全连接层。最后添加一个随机初始化的 1×1 卷积以将通道维度减少到 1024。与通常的做法 [3, 6] 一样,最后一个卷积块中的有效步长从 32 像素减少到 16 像素以增加特征图解决。具体来说,在最后一个块的开头,步幅从 2 更改为 1(ResNet-101 和 Aligned-Inception-ResNet 的“conv5”)。为了补偿,此块中所有卷积滤波器的膨胀(内核大小 > 1)从 1 更改为 2。
可选地,将可变形卷积应用于最后几个卷积层(内核大小 > 1)。我们对不同数量的此类层进行了实验,发现 3 层可以很好地权衡不同的任务,如表 1 所示。
分割和检测网络任务特定网络建立在上述特征提取网络的输出特征图之上。
在下文中,CCC表示目标类的数量。
DeepLab [4] 是一种最先进的语义分割方法。它在特征图上添加一个1×11 \\times 11×1卷积层以生成(C+1)(C+1)(C+1)个表示每个像素分类分数的图。随后的 softmax 层然后输出每个像素的概率。
Category-Aware RPN 与 [42] 中的区域proposal网络几乎相同,只是将 2 类(目标或非目标)卷积分类器替换为(C+1)(C+1)(C+1)类卷积分类器。
Faster R-CNN [42] 是最先进的检测器。在我们的实现中,RPN 分支被添加到 conv4 块的顶部,遵循 [42]。在之前的实践 [20, 22] 中,在 ResNet-101 中的 conv4 和 conv5 块之间插入了 RoI 池化层,每个 RoI 保留 10 层。这种设计实现了良好的准确性,但每个 RoI 的计算量很高。相反,我们采用了[34]中的简化设计。 RoI 池化层添加在 last1 。在合并的 RoI 特征之上,添加了两个维度为 1024 的 fc 层,然后是边界框回归和分类分支。尽管这种简化(从 10 层 conv5 块到 2 个 fc 层)会略微降低准确性,但它仍然是一个足够强大的基线,并且在这项工作中不是一个问题。
可选地,RoI 池化层可以更改为可变形的 RoI 池化。
R-FCN [6] 是另一种最先进的检测器。它的每个 RoI 计算成本可以忽略不计。我们遵循原来的实现。可选地,其 RoI 池化层可以更改为可变形的位置敏感 RoI 池化。
3. Understanding Deformable ConvNets
这项工作建立在使用额外的偏移量增加卷积和 RoI 池中的空间采样位置并从目标任务中学习偏移量的想法之上。
当堆叠可变形卷积时,复合变形的效果是深远的。图 5 对此进行了举例说明。标准卷积中的感受野和采样位置在整个顶部特征图(左)上都是固定的。它们根据可变形卷积中目标的比例和形状进行自适应调整(右)。更多示例如图 6 所示。表 2 提供了这种自适应变形的定量证据。
可变形 RoI pooling 的效果类似,如图 7 所示。标准 RoI pooling 中网格结构的规律性不再成立。相反,部分偏离 RoI bin并移动到附近的目标前景区域。定位能力得到增强,尤其是对于非刚性物体。
3.1. In Context of Related Works
我们的工作在不同方面与以前的工作有关。我们详细讨论了关系和差异。
空间变换网络 (STN) [23] 这是第一个在深度学习框架中从数据中学习空间变换的工作。它通过仿射变换等全局参数变换来扭曲特征图。这种扭曲是昂贵的,并且学习转换参数是众所周知的困难。 STN 在小规模图像分类问题上取得了成功。逆 STN 方法 [33] 通过有效的变换参数传播取代了昂贵的特征变形。
可变形卷积中的偏移学习可以被视为 STN [23] 中的极轻量级空间变换器。然而,可变形卷积不采用全局参数变换和特征变形。相反,它以局部和密集的方式对特征图进行采样。为了生成新的特征图,它有一个加权求和步骤,这在 STN 中是不存在的。
可变形卷积很容易集成到任何 CNN 架构中。它的训练很容易。它被证明对需要密集(例如,语义分割)或半密集(例如,目标检测)预测的复杂视觉任务有效。这些任务对于 STN [23, 33] 来说是困难的(如果不是不可行的话)。
Active Convolution [24] 这项工作是当代的。它还使用偏移量增加卷积中的采样位置,并通过端到端的反向传播学习偏移量。它被证明对图像分类任务有效。
与可变形卷积的两个关键区别使这项工作的通用性和适应性较差。首先,它共享所有不同空间位置的偏移量。其次,偏移量是每个任务或每次训练学习的静态模型参数。相比之下,可变形卷积中的偏移量是每个图像位置都不同的动态模型输出。它们对图像中的密集空间变换进行建模,并且对(半)密集预测任务(例如目标检测和语义分割)有效。
Effective Receptive Field [39] 它发现并非感受野中的所有像素都对输出响应有相同的贡献。中心附近的像素具有更大的影响。有效感受野只占理论感受野的一小部分,呈高斯分布。尽管理论上的感受野大小随卷积层数线性增加,但令人惊讶的结果是,有效感受野大小随卷积层数的平方根线性增加,因此比我们预期的要慢得多。
这一发现表明,即使是深度 CNN 中的顶层单元也可能没有足够大的感受野。这部分解释了为什么空洞卷积 [21] 广泛用于视觉任务(见下文)。它表明了自适应感受野学习的需要。
可变形卷积能够自适应地学习感受野,如图 5、6 和表 2 所示。
空洞卷积 [21] 它将普通过滤器的步幅增加到大于 1,并将原始权重保持在稀疏采样位置。这增加了感受野的大小,并在参数和计算方面保持相同的复杂性。它已广泛用于语义分割[37、4、49](在[49]中也称为扩张卷积)、目标检测[6]和图像分类[50]。
可变形卷积是空洞卷积的推广,如图 1 © 所示。表 3 给出了与空洞卷积的广泛比较。
Deformable Part Models (DPM) [10] Deformable RoI pooling 类似于 DPM,因为这两种方法都学习目标部分的空间变形以最大化分类分数。可变形 RoI 池化更简单,因为没有考虑部件之间的空间关系。
DPM 是一个浅层模型,对变形建模的能力有限。虽然它的推理算法可以通过将距离变换视为特殊的池化操作来转换为 CNN [15],但它的训练不是端到端的,并且涉及启发式选择,例如组件和零件尺寸的选择。相比之下,可变形的 ConvNets 是深度的并且执行端到端的训练。当多个可变形模块堆叠时,建模变形的能力变得更强。
DeepID-Net [40] 它引入了变形约束池化层,该池化层还考虑了用于目标检测的部分变形。因此,它与可变形 RoI 池化具有相似的精神,但要复杂得多。这项工作是高度工程化的,基于 RCNN [14]。目前尚不清楚如何以端到端的方式使其适应最近最先进的目标检测方法 [42、6]。
RoI 池化中的空间操作空间金字塔池化 [30] 在尺度上使用手工制作的池化区域。它是计算机视觉中的主要方法,也用于基于深度学习的目标检测 [19、13]。
了解池化区域的空间布局的研究很少。 [25] 中的工作从一个大的超完备集合中学习了池化区域的一个稀疏子集。大集合是手工设计的,学习不是端到端的。
可变形 RoI 池化是第一个在 CNN 中端到端学习池化区域的方法。虽然这些区域目前大小相同,但扩展到多个大小如空间金字塔池化 [30] 是直截了当的。
变换不变特征及其学习在设计变换不变特征方面已经付出了巨大的努力。著名的例子包括尺度不变特征变换 (SIFT) [38] 和 ORB [44](O 表示方向)。在 CNN 的背景下有大量此类作品。 [32] 研究了 CNN 表示对图像变换的不变性和等价性。一些作品学习关于不同类型变换的不变 CNN 表示,例如 [45]、散射网络 [2]、卷积丛林 [28] 和 TI 池 [29]。一些作品致力于特定的变换,例如对称性 [11、8]、比例 [26] 和旋转 [48]。正如第 1 节中分析的那样,在这些作品中,变换是先验已知的。知识(例如参数化)用于手工制作特征提取算法的结构,或者固定在 SIFT 中,或者使用可学习的参数,例如基于 CNN 的参数。他们无法处理新任务中的未知转换。相比之下,我们的可变形模块概括了各种变换(见图 1)。变换不变性是从目标任务中学习的。