论文阅读:Deformable ConvNets v2: More Deformable, Better Results

DCN v2

文章
github上几个DCN v2的实现:pytorch实现1,pytorch2实现,caffe实现

  脑洞大开的可变形卷积竟然出V2了,之前一直忙着别的事情,今天终于可以抽出时间好好研读一下这篇新作了。首先大概回顾一下最初的可变形卷积网络的思想,普通的卷积计算,每次都只是待计算的像素点和其四周的卷积核大小的矩阵范围内的其它像素点参加计算,于是不管网络有多深,感受野始终是矩形的,然而现实中很多物体的形状都是可以变化的,如果卷积操作能对这种几何变化性有较好的适应性的话,在许多视觉任务上就能取得更好的效果。基于这个想法,可变形卷积网络最核心的地方就是在卷积操作时,给卷积核的每个采样点的位置加一个偏移(但是这个偏移是用普通的卷积得到的)。此外可变形卷积网络还针对detection和segmentation任务设计了deformable RoIpooling,给每个bin都加了一个偏移,这也启发了后来MSRA的一篇叫Learning Region Feature for Object Detection的文章。

论文阅读:Deformable ConvNets v2: More Deformable, Better Results_第1张图片 论文阅读:Deformable ConvNets v2: More Deformable, Better Results_第2张图片

  V2说V1存在的问题是在RoI外部的这种几何变化适应性表现得不好,导致特征会受到无关的图像内容影响(this support may nevertheless extend well beyond the region of interest,causing features to be influenced by irrelevant image content)。
  为了分析Deformable ConvNet(DCN),首先介绍本文提到的三个概念:

  1. 有效感受野(Effective receptive fields):网络中每个节点都会计算feature map的一个像素点,而这个点就有它自己的感受野,但是不是感受野中的所有像素对这个点的响应的贡献都是相同的,大小与卷积核权重有关,因此文中用有效感受野来表示这种贡献的差异。

  2. 有效采样/bin位置(Effective sampling/bin locations):对于卷积核的采样点和RoIpooling的bin的位置进行可是有助于理解DCN,有效位置在反应采样点位置的基础上还反应了每个位置的贡献。

  3. 错误边界显著性区域(Error-bounded saliency regions):最近关于图像显著性的研究表明,对于网络的每个节点的响应,不是图像上所有的区域对其都有影响,去掉一些不重要的区域,节点的响应可以保持不变。根据这一性质,文章将每个节点的support region限制到了最小的可以和整幅图产生相同的响应的区域,并称之为错误边界显著性区域。

论文阅读:Deformable ConvNets v2: More Deformable, Better Results_第3张图片
论文阅读:Deformable ConvNets v2: More Deformable, Better Results_第4张图片

  下图展示了普通卷积的有效采样位置,有效感受野和错误边界显著性区域,作者发现虽然采样点始终是矩形,但是普通的卷积可以通过卷积核的参数适应一定的几何形变。反观DCN,能够使得卷积操作更集中在想要关心的位置。
  本文对V1做了3方面的改进:增加可变形卷积的层数,增加可调节的可变形模块,采用蒸馏的方法模仿RCNN的特征

Stacking More Deformable Conv Layers

  v1中使用的ResNet-50,只将conv5中的共3层3x3卷积换成了可变形卷积,本文则将conv3,conv4和conv5中一共12个3x3的卷积层都换成了可变形卷积。v1中发现对于pascal voc这样比较小规模的数据集来说,3层可变形卷积已经足够了。同时错误的变形也许会阻碍一些更有挑战性的benchmark上的探索。作者实验发现在conv3到conv5中使用可变形卷积,对于COCO上的object detection来说,是效率和精度上最好的均衡。

Modulated Deformable Modules

  v1仅仅给普通的卷积的采样点加了偏移,v2在此基础上还允许调节每个采样位置或者bin的特征的amplitude,就是给这个点的特征乘以个系数,如果系数为0,就表示这部分区域的特征对输出没有影响,所以这也是一种调节support region的方法。

上式就是一个v2的可变形卷积操作的公式,其中△p_k和△m_k分别是采样点k的位置偏移和特征调节系数。要注意的是△p_k和△m_k分别是由不同卷积核得到的,这些卷积层都以特征x作为输入。假设有K个采样点(3x3卷积9个采样点),那么上面卷积层的分辨率和x相同,但是输出有3K个通道,2K对应每个采样点的△p_k(x,y两个方向),K个对应△m_k(要经过sigmoid)。特别重要的是得到△p_k和△m_k的卷积核的参数一开始一定要初始为0,△p_k和△m_k的初始值则为0和0.5。这些新加入的卷积层的学习率则是现有的层的0.1。

  可调节的RoIpooling也是类似的,公式如下

上式是求第k个bin的特征值,该bin对应的像素点个数为n_k个,x(p_kj+△p_k)代表bin_k内的像素点j偏移后的像素值,由双线性插值得到。

R-CNN Feature Mimicking

  作者发现对于RoI分类时,普通CNN或者DCN V1的错误边界显著性区域都会延伸到RoI之外,于是与RoI不相关的图像内容就会影响RoI特征的提取,从而可能影响目标检测的结果。不过R-CNN在进行分类时,结果完全是依赖于RoI的,因为R-CNN的分类branch的输入就RoI的cropped image。但其实我觉得并不是说没有额外的context就一定不好,不然也不会有那么多研究怎么利用context的了,先继续往下看吧。
  对于V2来说,将在RoIpooling中RoI之外的调节系数设为0可以直接去除无关的context,但是实验表明这样还是不能很好的学习RoI的特征,这是由于Faster R-CNN本身的损失函数导致的,因此需要额外的监督信号来改善RoI特征提取的训练。于是作者采用feature mimicking的手段,强迫Faster R-CNN中的RoI特征能够接近R-CNN提取的特征。不过对于非目标的位置,过于集中的特征或许不好,因为需要context来保证不会产生假正的检测结果,因此feature mimic loss只用在positive RoI上。网络训练的框架如上图所示,右侧其实就是一个R-CNN,不过后面只接了分类的branch。

论文阅读:Deformable ConvNets v2: More Deformable, Better Results_第5张图片

  Feature mimic loss定义如下:

其中Ω代表RoI的集合。此外还引入了R-CNN的分类损失,使用cross entropy实现的,新加入的这两个损失的系数是原本损失的0.1。还有就是虽然上图画了两个网络,但是R-CNN和Faster R-CNN中相同的模块是共用的相同的参数,比如Modulated Deformable Convolutions和Modulated Deformable RoIpooling部分。inference的时候就只需要运行Faster R-CNN的部分就行了。

论文阅读:Deformable ConvNets v2: More Deformable, Better Results_第6张图片

  上面的实验结果是在不同图像尺寸下的对比实验,还没有加入R-CNN feature mimicking的方法,可以看到,可变形卷积的层数的堆叠对性能的提升是很明显的。

论文阅读:Deformable ConvNets v2: More Deformable, Better Results_第7张图片

  在检验R-CNN feature mimicking的性能时,发现确实只计算FG的loss性能会更好。

论文阅读:Deformable ConvNets v2: More Deformable, Better Results_第8张图片

  最后是在不同的backbone上,DCNv2相较于前代都有很大的提升,证明了模型的有效性。此外还有一个值得一提的实验结果是,在ImageNet上的分类实验效果也有所提升

论文阅读:Deformable ConvNets v2: More Deformable, Better Results_第9张图片

  总结一下,论文在DCN v1的基础上做了非常solid的改进,可变形卷积层的堆叠虽然不算创新,但确实实用;增加了特征调节系数,思路很好,有点像在SNN中看见的,本来只调节幅度,后来也有人开始调节相位;利用有效感受野、有效采样位置和错误边界显著性区域进行的可视化分析,自然地带出作者的第三个创新点,就是利用R-CNN feature mimicking去除冗余的context信息,这点很发人深省啊,本来以为R-CNN已经被淘汰了,看来应该重新思考一下R-CNN的本质了。

你可能感兴趣的:(论文阅读:Deformable ConvNets v2: More Deformable, Better Results)