Deformable CNN(DCN)

由于构造卷积神经网络所用的模块中几何结构是固定的,其几何变换建模的能力本质上是有限的。可以说CNN还不能很好实现旋转不变性的。在以往会使用数据增强的方式,让网络强行记忆不同的几何形状。

作者认为以往的固定形状的卷积是网络难以适应几何变形的“罪魁祸首”,比如同一层的特征图的不同位置可能对应的是不同形状的物体,但是都和同一个形状卷积做计算,那么不能很好的将感受野作用在整个物体之上,因此提出了可变性卷积。

Deformable Convolution(可变形卷积)

Deformable Conv 在感受野中引入了偏移量而且这偏移量是可学习的,我这招可以使得感受野不再是死板的方形,而是与物体的实际形状贴近,这样之后的卷积区域便始终覆盖在物体形状周围,无论物体如何形变,加入可学习的偏移量后通通搞定。

传统的卷积结构可以定义为下述公式,其中 p0p_0是输出特征图的每个点,与卷积核中心点对应,pnp_np0p_0在卷积核范围内的每个偏移量。

y(p0)=pnw(pn)x(p0+pn)y(p_0) = \sum_{p_n} w(p_n) \cdot x(p_0 + p_n)

在这个公式中,y(p0)y(p_0) 表示输出特征图上点 p0p_0 的值。w(pn)w(p_n) 是卷积核在对应偏移量 pnp_n 处的权重。x(p0+pn)x(p_0 + p_n) 则表示输入特征图上对应位置的值。

整个公式的含义就是,通过对卷积核范围内各个偏移量位置上的输入值与相应的权重进行乘积,并将这些乘积的结果累加起来,从而得到输出特征图中点 p0p_0 的值。

而可变形卷积则在此基础上进行了改进。它不再局限于固定的偏移量,而是引入了可学习的偏移量。这意味着卷积核能够更加灵活地适应物体的形状和形变,从而提高网络对几何变换的建模能力。

它在此基础上为每个点引入了一个偏移量Δpn\Delta p_n,偏移量是由输入特征图与另一个卷积生成的,通常是小数。其公式变为:

y(p0)=pnw(pn)x(p0+pn+Δpn)y(p_0) = \sum_{p_n} w(p_n) \cdot x(p_0 + p_n + \Delta p_n)

可变形卷积通过引入可学习的偏移量,极大地增强了模型对几何变换的适应能力。它能够根据物体的形状和位置动态调整感受野,从而更有效地提取特征。

由于加入偏移量后的位置非整数,并不对应feature map上实际存在的像素点,因此需要使用插值来得到偏移后的像素值,通常可采用双线性插值,用公式表示如下:

x(p)=qG(q,p)x(q)=qg(qx,px)g(qy,py)x(q)=qmax(0,1qxpx)max(0,1qypy)x(q)x(p) = \sum_{q} G(q,p) \cdot x(q) \= \sum_{q} g(q_x, p_x) \cdot g(q_y, p_y) \cdot x(q) \= \sum_{q} max(0,1- |q_x-p_x|) \cdot max(0,1- |q_y-p_y|) \cdot x(q)

其中,G(q,p)G(q,p) 是双线性插值的核函数,x(q)x(q) 是邻近的实际像素值。公式的意义是指将插值点位置的像素值设为其邻域4像素点的加权和,邻域4个点是距离其最近的、在特征图上实际存在的像素点,每个点的权重则根据它与插值点横、纵坐标的位置来设置。

image.png

可变形卷积的示意图如上图所示。可以看到偏移量 offsetsoffsets是依靠另一个卷积核来完成的,在得到每个像素点的偏移量后,根据偏移量找到新的参考点,然后进行卷积。

下图展示了卷积核大小为 3x3 的正常卷积和可变形卷积的采样方式,(a) 所示的正常卷积规律的采样 9 个点(绿点),(b)(c)(d) 为可变形卷积,在正常的采样坐标上加上一个位移量(蓝色箭头),其中 (c)(d) 作为 (b) 的特殊情况,展示了可变形卷积可以作为尺度变换,比例变换和旋转变换的特殊情况:

image.png

image.png

另外还有一个注意到的点是,并不是所有的卷积都一股脑地换成可行变卷积就是好的,在提取到一些语义特征后使用形变卷积效果会更好一点,一般来说是网络靠后的几层。

Deformable Convolution v2(可变形卷积的优化版本)

由于可变形卷积可能相较于普通卷积更容易引入一些边缘的无关背景,造成语义上的干扰,因此作者提出了下列优化:

y(p0)=pnw(pn)x(p0+pn+Δpn)Δmky(p_0) = \sum_{p_n} w(p_n) \cdot x(p_0 + p_n + \Delta p_n) \cdot \Delta m_{k}

通过添加一个权重系数Δmk\Delta m_k,来区分引入的区域感兴趣的权重,这样可以保证有效信息的提取。

Deformable RoI Pooling

RoI Pooling(Regions of Interest Pooling)是一种用于目标检测的特征提取方法,用来从候选区域(即感兴趣区域)中提取固定大小的特征。其主要应用场景是在区域提议网络(RPN)之后,对这些候选区域进行精确的分类和边界框回归调整。

在经典的目标检测网络(如Faster R-CNN)中,RoI Pooling能够有效地将不定大小的候选区域特征映射到定长的特征上(例如固定为7×77 \times 714×14 14 \times 14 ),从而简化后续的全连接层或卷积层的处理。

Deformable RoI Pooling 在 RoI Pooling 和 RoI Align 的基础上进行了改进,引入了可变形的机制

Deformable RoI Pooling 同样先将 RoI 划分成固定数量的小格子,但与传统方法不同的是,它为每个小格子都引入了可学习的偏移量。这些偏移量使得采样点能够更加灵活地分布在物体的有效区域内,从而更好地捕捉物体的形状和特征。

通过这种方式,Deformable RoI Pooling 能够更精准地提取 RoI 中的特征,提高目标检测的准确性和鲁棒性。

image.png

评论 (0)

暂无评论,来发表第一条评论吧!