深度学习进阶(十三)可变形卷积 DCN
之前的内容里,我们提出了让 CNN 更灵活的想法:
能不能让“采样位置”本身,变成可以学习的?
在上一篇里,我们已经用可变形池化实现了这一目标。但同时我们也提到了,这并非终点:
既然池化可以偏移采样,那更基础的卷积本身为什么不能?
这便是 Deformable Convolutional Networks 里的核心创新:可变形卷积,简称 DCN。
1. 从卷积到可变形卷积#
1.1 传统卷积层的建模局限#
首先要强调的是:DCN 并不是一种独立的网络结构,而是一种针对卷积操作的改进方法。通常不会单独称一个模型为“DCN”,而是称其为:基于 DCN 的网络(DCN-based models),或者 DCN 算子。
因此,在展开 DCN 之前,我们先回顾一下 CNN 本身的核心操作:卷积。
这里,我们以最常见的二维卷积展开:
再简单解释一下这个公式:
- :输入特征图。
- :当前输出位置。
- :卷积核的采样位置,决定偏移坐标 。
- :卷积核中的对应的卷积权重。
总结公式逻辑:通过输出位置和偏移的组合遍历所有卷积核覆盖位置,对相应元素进行线性组合。
如果你有些遗忘,可以在这里查看之前的介绍:图像处理基础。
继续,这里的关键点是:采样位置 是固定的。
比如一个 卷积核,每个输出位置只能采样自身和周围的总计 9 个元素。
从出发点来说,这本身是没有问题的,因为这就是我们根据图像的局部性、平移不变性先验引入的归纳偏置。
但还是老问题:
这种偏置太刚性了。
一个事实是:现实中的大多结构特征往往不是方格,小到弯曲的边缘、不规则纹理、大到人脸特征、动物体型等等。
又或者我们进行了数据增强,让目标发生形变、偏移、旋转、拉伸等等情况,这时重要信息就不再落在这些固定采样点上,从而导致表达能力受限。
虽然随着层级传播感受野会逐渐扩大,但局部感受野始终被定死是规则矩形。无法改变采样模式本身。
这便是 DCN 要解决的问题,它的基本逻辑和可变形池化相同,但拥有更多细节,实现的效果也更加灵活。
1.2 DCN 的发展和思想#
实际上,DCN 并非只有 Deformable Convolutional Networks这一孤篇,这篇起源论文只是它的第一版,我们可以称为 DCNv1 。
提出 DCNv1 的研究团队在 19 年又发布了新的论文:Deformable ConvNets v2: More Deformable, Better Results,进一步引入了modulation 机制,使得特征采样不仅位置可变,权重也具备自适应能力。
到这还没完,其实之后还有一系列其他基于 DCN 思想的变体,就连注意力机制也有吸收 DCN 思想的变体:Deformable Attention.
总结来说,DCN 这种可学习的采样思路不像我们之前介绍的某些具体模型,它开启了一类可学习采样机制的研究范式,并持续影响至今。
其核心改动和池化同理:在原有采样位置上,引入可学习偏移量。
这里的 就是通过一个额外分支预测得到的偏移量。
现在网格的每一个采样点都可以“挪位置”,有的点可能贴近边缘,有的点可能集中在关键区域,就像这样:
下面就来展开其具体逻辑。
2.DCNv1#
就像我们刚刚说的,DCN 的基本逻辑和可变形池化是一样的:
新增一个卷积分支,为每个采样点预测偏移量,再注入取样坐标,通过双线性插值取特征值。
我们展开一些细节:
2.1 偏移学习与注入#
DCN 在这步的具体逻辑如下:
如图所示,假设我们要实现一个 的可变形卷积:
- 主分支:仍然是传统的卷积核,输出通道数为 ,负责特征提取。
- 偏移分支:输出通道数为 ( 为采样点数,),负责预测每个采样点的偏移,即 。
这里的基本逻辑和上一篇是相同的,就不再赘述了,我们展开两个细节:
2.2 卷积和池化的对齐差异#
首先,因为是像素级对齐,我们不再需要像可变形池化那样通过 bin 内采样点的平均池化来聚合特征,得到用于注入的偏移量。
