Deformable Convolutional Networks 论文研读

Deformable Convolutional Networks 论文研读

1. 引言

卷积神经网络(CNNs)在处理视觉任务(如对象检测和语义分割)时存在固有局限性:其构建模块(如卷积层RoI池化层)具有固定的几何结构,难以建模复杂的几何变换(如对象尺度、姿态、视角和部分变形)。传统方法主要依赖数据增强或手工设计的特征(如SIFT),但这些方法泛化能力有限且难以适应未知变换。本论文提出了一种创新解决方案——Deformable Convolutional Networks(可变形卷积网络) ,通过引入两个新模块(deformable convolution 和 deformable RoI pooling)增强CNNs的几何变换建模能力。这些模块通过可学习的偏移量动态调整空间采样位置无需额外监督,可无缝集成到现有CNNs中,并通过端到端训练优化。实验证明,该方法在对象检测和语义分割任务中显著提升了性能。

  • 【卷积神经网络CNN】
    • 【神经元】
      • 【输入】:\(x_{i}\)
      • 【线性函数】:\(f(x_{1},\dots,x_{n})=\sum_{i=1}^{n}w_{i}x_{i}+b\)
      • 【激活函数】:如\(ReLU、Sigmoid、tanh\)
        • 用于去除模型的线性
      • 【输出】
    • 【网络结构】
      • 【输入层】:用于接受数据的节点
      • 【卷积层】
        • 【卷积】:滤波器移动,范围内的图片像素与卷积核中的元素相乘,并求和
          • 【卷积核】:(也叫滤波器、权重矩阵、窗口):一个小矩阵,一般为正方形,边长一般是奇数(3/5/7),这样就有中心的像素。
            • 在几何意义上,卷积起到强化卷积核对应的模式的作用(如横、竖的结构)
          • 图片经过卷积后尺寸不变,输出的通道数等于卷积核个数
          • 卷积大大减少了参数的数量(本质上是所有神经元共用\(N^2\)个参数)
      • 【池化层】
        • 【池化】:降低分辨率,用一个值来代表一个区域的值(马赛克)
          • 降维了特征图 池化层神经元数量显著变少,使得后续需要的参数变少,网络结构简化
            • 因此可以防止过拟合、忽略次要的信息、降低训练成本
      • 【全连接层】:下一层的每个神经元接受上层每个神经元的输入
        • 将前一层的特征进行线性组合,发现特征之间的关系
        • 全连接层中神经元的数量任意,相对于上一级可增可减
          • 节点数上升:特征映射升维,高维特征空间中容易发现规律、聚类等
          • 节点数下降:降维,一般用于模型的尾部
      • 【输出层】:根据任务类型输出
    • 【网络训练】:找到特定的\(w\)\(b\),使得对于这一batch的数据,\(Loss\)的值最小
      • \(Loss\)的自变量是\(w\)\(b\),而非\(x_i\)\(x_i\)只是参数
      • 【梯度下降】:\(Loss\)对所有自变量求偏导,分别向着函数值下降的方向走,逼近局部最低点
        • \(步长=偏导值\cdot学习率\)
        • 【反向传播】:从后向前逐个计算中间变量的偏导数,最终算出要更新的变量的偏导数,进行更新

2. 核心思想:可变形模块的设计与原理

论文的核心是解决CNNs固定几何结构的局限性,通过引入可学习的偏移量(offsets)使网络自适应输入内容的几何变化。偏移量从目标任务数据中学习,无需人工设计或额外标注。以下是两个关键模块的详细解析。

2.1 Deformable Convolution(可变形卷积)

  • 概念与动机 :标准卷积使用固定采样网格(如3×3网格),无法适应对象变形或尺度变化。Deformable convolution 在标准网格上添加2D偏移量(offsets),使采样位置自由变形。这些偏移量通过额外的卷积层从前一层特征图学习,确保变形是局部、密集且输入自适应的。

  • 数学实现 :对于输出特征图位置 p_0,标准卷积计算为:

    \[y(p_0) = \sum_{p_n \in \mathcal{R}} w(p_n) \cdot x(p_0 + p_n) \]

    其中 \(\mathcal{R}\) 是规则采样网格。在可变形卷积中,公式变为:

    \[y(p_0) = \sum_{p_n \in \mathcal{R}} w(p_n) \cdot x(p_0 + p_n + \Delta p_n) \]

    这里 \(\Delta p_n\) 是可学习偏移量。由于偏移量常为分数坐标,计算采用双线性插值(bilinear interpolation):

    \[x(p) = \sum_q G(q, p) \cdot x(q), \quad G(q, p) = g(q_x, p_x) \cdot g(q_y, p_y), \quad g(a, b) = \max(0, 1 - |a - b|) \]

  • 【可变形卷积】
    卷积核本来是按顺序扫描像素,相乘,然后堆成一个矩阵。
    这里的思路是,卷积核不与对应位置的图块相乘,而是与经过偏移后的对应坐标的像素相乘。
    • 【偏移量】
      偏移量是训练得到的,卷积核里每个像素分开计算。
      卷积核的每个像素需要两个坐标的偏移量,即总需要共 \(2N^2\) 个与偏移量相关的参数(N为卷积核的边长)。
  • 架构与训练 :偏移量由一个与当前卷积层相同分辨率的卷积层生成(如图2所示),输出通道为2N(N为网格点数量)。训练时,卷积核权重和偏移量同时通过反向传播优化。梯度计算涉及双线性插值的导数(见附录A)。
  • 优势 :该模块使感受野(receptive field)自适应对象形状和尺度(如图1所示),显著提升对变形对象的建模能力。

2.2 Deformable RoI Pooling(可变形RoI池化)

  • 概念与动机 :标准RoI池化将任意大小的感兴趣区域(RoI)划分为固定空间分箱(bins),但规则网格难以处理非刚性对象的部分变形。Deformable RoI pooling 为每个分箱位置添加偏移量,使池化位置自适应对象结构。

  • 数学实现 :对于RoI的 (i,j)-th 分箱,标准RoI池化计算为:

    \[y(i,j) = \sum_{p \in \text{bin}(i,j)} x(p_0 + p) / n_{ij} \]

    在可变形版本中,公式扩展为:

    \[y(i,j) = \sum_{p \in \text{bin}(i,j)} x(p_0 + p + \Delta p_{ij}) / n_{ij} \]

    偏移量 \(\Delta p_{ij}\) 通过全连接层或卷积层学习:先输出归一化偏移量 \(\Delta \widehat{p}_{ij}\),再通过 \(\Delta p_{ij} = \gamma \cdot \Delta \widehat{p}_{ij} \circ (w, h)\) 转换(\(\gamma = 0.1\) 为缩放因子,确保偏移量对RoI大小不变)。计算同样使用双线性插值。

  • 变体:Deformable PS RoI Pooling :针对R-FCN等框架,该版本在位置敏感(position-sensitive)得分图上应用偏移量(如图4所示),保持“全卷积”特性,偏移量从特征图和RoI联合学习。

  • 优势 :该模块提升对象部分定位精度,尤其对变形对象(如图3和图7所示),同时兼容现有检测框架(如Faster R-CNN和R-FCN)。

3. 可变形网络的优势与创新

3.1 自适应几何建模能力

  • 动态感受野 :Deformable ConvNets 通过堆叠可变形模块实现复合变形效果。如图5所示,标准卷积的感受野固定(左),而可变形卷积的感受野根据对象尺度和形状自适应调整(右)。图6通过量化数据证实了这一点:不同位置(如背景、小对象、大对象)的有效膨胀值(effective dilation)不同,表明偏移量学习与内容高度相关。例如,大对象的平均膨胀值更大,确保模型能覆盖更大范围。
  • 高效实现 :模块仅增加少量参数和计算量(见表4),却能显著提升性能。训练时,偏移量学习层初始化为零,学习率设置为现有层的\(\beta\) 倍(如\(\beta = 0.01\)),通过标准反向传播优化。

3.2 与相关工作的对比

  • 超越固定变换方法 :相比空洞卷积(atrous convolution)仅通过固定膨胀率扩大感受野,可变形卷积通过偏移量实现自由形式变形(见表3)。例如,在DeepLab任务中,空洞卷积的最佳膨胀率为6,但可变形卷积性能更优(mIoU 75.2% vs 73.6%)。
  • 优于STN和DPM :空间变换网络(STN)使用全局参数变换,特征变形计算昂贵;可变形卷积则通过局部采样和加权求和实现轻量化(类似“微型空间变换器”)。可变形部件模型(DPM)需手工设计部件关系,而可变形RoI pooling 通过端到端学习简化了部件定位(如图7所示)。
  • 创新点 :首次在深度CNNs中实现密集空间变换的端到端学习,解决了传统方法(如数据增强或手工特征)无法处理未知变换的问题。

4. 实验验证摘要

  • 性能提升 :在PASCAL VOC和COCO数据集上,可变形模块显著提升任务性能(见表1和表5)。例如:
    • 语义分割(DeepLab):使用3层可变形卷积时,mIoU从69.7%提升至75.2%(VOC)。
    • 对象检测(R-FCN):在COCO上,mAP@[0.5:0.95]从30.8%提升至37.5%(结合多尺度测试)。
  • 效率分析 :可变形模块仅增加少量参数(如ResNet-101上增加0.1M参数),推理时间几乎不变(见表4)。例如,R-FCN的推理时间从0.143秒增至0.169秒。
  • 消融研究 :偏移量学习是关键。使用更多可变形层(如3-6层)性能饱和(见表1),且偏移量与内容强相关(见表2)。

5. 结论

Deformable ConvNets 的核心创新在于通过可学习偏移量动态调整CNNs的空间采样位置,实现了对几何变换的自适应建模。该方法轻量、高效,可无缝集成到现有架构(如ResNet-101),并通过端到端训练优化。实验证明,其在对象检测和语义分割任务中显著提升性能,解决了CNNs长期存在的几何变换建模难题。这一工作为复杂视觉任务提供了新思路,标志着在深度CNNs中学习密集空间变换的首次成功应用。

posted @ 2025-07-21 02:24  Limoncello  阅读(98)  评论(0)    收藏  举报