学习笔记十二——Deformable Convolutional Networks
一、提出问题
视觉识别中一个关键挑战是如何在目标尺度,姿态,视点和部件变形中适应几何变化或建模几何变换,即适应物体的形变。
现有解决方法:1)建立具有足够期望变化的训练数据集。例如通过仿射变换增加现有数据样本,即学习足够多的数据使模型能够适应各种形状的物体。
2)使用变换不变的特征和算法。如SIFT(尺度不变特征变换)和基于滑动窗口的目标检测。
存在的缺点:1)针对第一个解决方法,几何变换被假定是固定并且已知的。这阻止了对具有未知几何变换新任务的泛化能力。
2)手工设计的不变特征和算法对于过于复杂的变换可能是不可行的。
同样的,卷积神经网络对几何变换建模的能力主要来自大量的数据增强,大的模型容量以及一些简单的手工设计模块,所以也受限于此。CNN缺乏处理几何变换的内部机制,这会导致明显的问题。
解决方法:本文提出了两个模块。可变形卷积,它将2D偏移添加到标准卷积中的常规网格采样位置上。它可以使采样网格自由形变。偏移量通过附加的卷积层从前面的特征图中学习。
可变形的RoI池化。它为前面的RoI池化的常规bin分区中的每个bin位置添加一个偏移量[15,7]。类似地,从前面的特征映射和RoI中学习偏移量,使得具有不同形状的目标能够自适应的进行部件定位。
二、可变形卷积网络Deformable Convolutional Networks
传统卷积结构,pn是卷积输出每一个点相对于感受野上的每一个点的偏移量:
可变形卷积,在每个点上再增加一个偏移量Δpn:
由于在变换时,有时变化后输出的像素位置可能没有对应的输入图片中的位置,所以使用双线性插值,根据推导公式得到:
其中,
下图为完整的可变形卷积结构,通过在相同的输入特征映射上应用卷积层来获得偏移。输出的长宽和输入特征图的长宽一致,维度则是输入的2倍,由于偏移的通道维度包括x方向的通道维度和y方向的通道维度。
三、可变形RoI池化Deformable RoI Pooling
传统RoI池化,给定输入特征映射x、RoI的大小w×h和左上角p0,RoI池化将ROI分到k×k个bin中,并输出k×k的特征映射y。
可变形RoI池化:
可变形RoI池化整体结构:首先,RoI池化(传统公式)生成池化后的特征映射。从特征映射中,一个fc层生成归一化偏移量Δpij,然后通过与RoI的宽和高进行逐元素的相乘转换为偏移量Δpij。 其中,γ=0.1。
四、可变形卷积网络
在训练中,这些添加的用于偏移学习的conv和fc层的权重被初始化为零。它们通过双线性插值运算的反向传播进行训练。由此产生的CNN称为可变形ConvNets。
主要思路:用额外的偏移量在卷积和RoI池中增加空间采样位置,并从目标任务中学习偏移量。标准卷积中的感受野和采样位置在顶部特征映射上是固定的(左)。但在可变形卷积中(右)根据目标的尺寸和形状进行自适应调整。