《Deformable ConvNets v2: More Deformable, Better Results》论文笔记

代码地址:DCNv2

1. 概述

导读:可变形卷积(Deformable Convolution)的特性使得其拥有适应目标几何形状的能力。在可变形卷积v1版本中,引入了Deformable conv和Deformable RoIPooling,它们对卷积和RoIPooling的分布入来offset(可学习)来使得神经网络关注真实的物体形状。通过对引入offset后的感受野进行可视化(下面要介绍的三个可视化分析),作者发现卷积以及Pooling的采样点,采样框,在特定的物体上进行了聚集,但是这些感受野覆盖的地方并不是特别的精确,这可能导致引入了一些无关信息,作者发现这种问题在一些困难的任务中更加明显。

对此,文章给出了原有Deformable ConvNets的升级版本Deformable ConvNets v2(DCNv2),增强了学习可变形卷积的建模能力。其能力的增强来源于两个互补的部分,使得网络模块能够改变空间分布及其样本之间的相对影响:

  • 1)增加整个网络中可行变卷积的使用。这就使得网络可以在特征层面具有更大的采样空间,这个也就是Deformable卷积的堆叠
  • 2)可变形卷积模块中的调制机制(引入加权因子),其中每个样本不仅要经过学习偏移量,而且还要经过学习特征幅值的调制;

除了了上述在在模型上进行改进,但是尽管有上述的改进可视化之后还是包含一些对于检测有影响的信息进来,因而文章还在网络的训练阶段引入了 RCNN feature mimicking,这部分受论文Revisiting rcnn: On awakening the classification power of faster rcnn的启发,不过实现方式不一样,这篇文章通过联合训练RCNN网络提供有效的监督信息,发挥modulation的权重作用,使得提取到的特征更加集中于有效区域。

2. Deformable卷积的可视化分析

2.1 可视化的方法

为了能够更高理解Deformable卷积,这里使用了三种可视化方法: effective receptive fields、effective sampling locations以及error-bounded saliency regions,这里对网络节点(也就是对应的输出“点”)响应使用这三个方法进行分析。

  • effective receptive fields: 感受野中的每个像素的贡献并不是相同的,它们的贡献可以通过有效感受野来表示,它们的值是可以通过梯度方向计算在每个像素上的值来确定。由此来观察图像中的每个像素对于网络的影响,但是这个并不能反映整个图像区域的结构性影响;
  • effective sampling locations: 在可变形卷积v1中,作者可视化了采样点,或者采样bin(RoIPooling),但是它们的贡献程度没有刻画出来,为此,作者在这里对其进行了可视化,它通过网络输出对不同采样点的梯度得到;
  • error-bounded saliency : 有时候直接去除图片的一些没有影响的区域,节点的值并不会改变。因此,作者定义,一个节点的支持区域为图片上能够得到error-bounded的节点值的最小区域。也就是error-bounded saliency region*。

2.2 卷积层conv5角度可视化

作者在卷积层conv5的角度上进行观察三种方法可视化之后的结果对比,从左到右分别是小目标、大目标和背景,从上往下分别是effective sampling locations、effective receptive field和error-bounded saliency regions。

对于普通的卷积层:
《Deformable ConvNets v2: More Deformable, Better Results》论文笔记_第1张图片
对于DCNv1:
《Deformable ConvNets v2: More Deformable, Better Results》论文笔记_第2张图片
对于DCNv2:
《Deformable ConvNets v2: More Deformable, Better Results》论文笔记_第3张图片
从中得出的结论:

  • 1)基于常规卷积层的深度网络对于形变目标有一定的学习能力,比如(a)中的最后一行,基本上都能覆盖对应的目标区域或者非目标区域,这主要归功于深度网络的拟合能力,这种拟合能力有点强行拟合的意思,所以才有DCN这种设计。
  • 2)DCNv1对于形变目标的学习能力要比常规卷积强,能够获取更多有效的信息。比如(b)中的最后一行,当输出点位置在目标上时(前2张图),影响区域相比常规卷积而言更大。
  • 3)DCNv2对于形变目标的学习能力比DCNv1更强,不仅能获取更多有效的信息,而且获取的信息更加准确,比如©中的最后一行,目标区域更加准确。因此简单来讲,DCNv1在有效信息获取方面的recall要高于常规卷积,而DCNv2不仅有较高的recall,而且有较高的precision,从而实现信息的精确提取。

2.3 RoIPooling角度的可视化

《Deformable ConvNets v2: More Deformable, Better Results》论文笔记_第4张图片
图2中的(a)(b)图是在是ROIPooling之后的bin中使用文章之前的提到的可视化方法进行可视化得到的结果,effective bin location指出目标的前景很大一步分来自于分类的分支,这个现象在aligned RoIPooling与Deformable RoIPooling中同样存在。自然由于学些了卷积的偏移使得Deformable RoIPooling在获得的bin中有更大的比例覆盖到了目标前景。但是文章指出了在往回倒推到输入图像的像素的时候可以看到effective bin location并没有全部落在目标区域中,这些未落在目标区域中的区域是可能会干扰检测的,这也是这篇文章中需要处理的。

对此的处理首先是使用调制的Deformable卷积,得到的结果为:
《Deformable ConvNets v2: More Deformable, Better Results》论文笔记_第5张图片
在此基础上使用RCNN Feature mimicking:
《Deformable ConvNets v2: More Deformable, Better Results》论文笔记_第6张图片
单独验证RCNN Feature mimicking的作用:
《Deformable ConvNets v2: More Deformable, Better Results》论文笔记_第7张图片

3. 网络的具体改进与优化

为了提高网络适应几何变化的能力,文章提出了一些变化来增强其建模能力。

3.1 堆叠更多的Deformable卷积层

Deformable卷积对几何信息能够建模,自然堆叠更多这样的卷积可以使得网络表达能力更强。作者之前在Pascal VOC数据集上将conv5中的卷积替换为了Deformable卷积就出现了性能饱和章指出这可能是数据集复杂度的问题,因而在COCO数据集上将ResNet-50中的conv3、conv4与conv5全部替换为了变形卷积。

3.2 在Deformable模块中引入调制(加权)的概念

在之前的Deformable卷积中会去学习每个卷积位置处的偏移,这里更近一步对其添加了权重(文章中说为“调制”),这样就给了Deformable卷积除了偏移之外额外的特征处理自由度,也因而加强了网络的表达能力,同理这里也对Deformable卷积与Deformable RoIPooling进行了改进。

首先对于Deformable卷积,使用如下形式进行计算,其中加权的因子也就是下面公式中的参数 Δ m k ∈ [ 0 , 1 ] \Delta m_k \in [0,1] Δmk[0,1]
y ( p ) = ∑ k = 1 K w k ⋅ x ( p + p k + Δ p k ) ⋅ Δ m k y(p)=\sum_{k=1}^{K}w_k\cdot x(p+p_k+\Delta_{p_k})\cdot \Delta_{m_k} y(p)=k=1Kwkx(p+pk+Δpk)Δmk

对于Deformable RoIPooling使用如下的方式进行改进:
y ( p ) = ∑ j = 1 n k x ( p k j + Δ p k ) ⋅ Δ m k / n k y(p)=\sum_{j=1}^{n_k}x(p_{kj}+\Delta_{p_k})\cdot \Delta_{m_k}/n_k y(p)=j=1nkx(pkj+Δpk)Δmk/nk

3.3 R-CNN Feature Mimicking的实现

文章中说到的RCNN feature mimicking其实现示意图如Figure3所示,姑且称左边的网络为主网络(Faster RCNN),右边的网络为子网络(RCNN)。实现上大致是用主网络训练过程中得到的RoI去裁剪原图,然后将裁剪到的图resize到224×224大小作为子网络的输入,子网络通过RCNN算法提取特征,最终提取到14×14大小的特征图,此时再结合IoU(此时的IoU就是一整个输入图区域,也就是224×224)作为modulated deformable RoI pooling层的输入得到IoU特征,最后通过2个fc层得到1024维特征,这部分特征和主网络输出的1024维特征作为feature mimicking loss的输入,用来约束这2个特征的差异,同时子网络通过一个分类损失进行监督学习,因为并不需要回归坐标,所以没有回归损失。在inference阶段仅有主网络部分,因此这个操作不会在inference阶段增加计算成本。
《Deformable ConvNets v2: More Deformable, Better Results》论文笔记_第8张图片
那么为什么R-CNN Feature Mimicking方法有效?因为RCNN这个子网络的输入就是RoI在原输入图像上裁剪出来的图像,因此不存在RoI以外区域信息的干扰,这就使得RCNN这个网络训练得到的分类结果更加可靠,以此通过一个损失函数监督主网络Faster RCNN的分类支路训练就能够迫使网络提取到更多RoI内部特征,而这个迫使的过程主要就是通过添加的modulation机制和原有的offset实现。

期间引入的损失函数:
L m i m i c = ∑ b ∈ Ω [ 1 − c o s ( f R C N N ( b ) , f F R C N N ( b ) ) ] L_{mimic}=\sum_{b\in \Omega}[1-cos(f_{RCNN}(b),f_{FRCNN}(b))] Lmimic=bΩ[1cos(fRCNN(b),fFRCNN(b))]

4. 实验结果

4.1 DCN模块改进的影响

《Deformable ConvNets v2: More Deformable, Better Results》论文笔记_第9张图片

4.2 R-CNN Feature Mimicking

《Deformable ConvNets v2: More Deformable, Better Results》论文笔记_第10张图片
其中的实验结果也表明了论文中说的选用正样本去特征相似学习才是有效的。

4.3 主干网络的影响

《Deformable ConvNets v2: More Deformable, Better Results》论文笔记_第11张图片

5. Reference

  1. Deformable ConvNets v2算法笔记
  2. Deformable ConvNets v2: More Deformable, Better Results
  3. 论文笔记:Deformable ConvNets v2: More Deformable, Better Results

你可能感兴趣的:(#,General,Object,Detection,DCNv2)