Deformable ConvNets v2: More Deformable, Better Results
https://arxiv.org/abs/1811.11168v2 link.
文章主要针对Deformable Convolutional Networks的几何变化可能超出目标区域,从而导致特征被图像的其他无关内容影响的问题进行改进,从而提出了Deformable ConvNets v2。
改进主要在于两点:首先是可变形卷积层的扩展;通过为更多卷积层增加偏移学习(卷积层的堆叠),DCNv2可以在更广泛的特征级范围内控制采样。第二是可变形卷积模块中的调制机制,每个样本不仅具有经学习得到的偏移,而且还被特征幅度调制。
为了更好的理解可变形卷积网络,文章引入了三个概念:
- 有效感受野(effective receptive fields):感受野内的点对响应的贡献是不等的,文章用有效感受野来描述这种不等的贡献,其值为节点响应相对于每个像素的强度扰动的梯度。
- 有效采样位置(effective sampling locations):为了理解可变形卷积网络,卷积层和池化层的采样位置都可以可视化,但这些采样点对网络节点的影响或者贡献是不明确的;使用节点对采样点的梯度描述这种贡献。
- error-bounded saliency regions:如果去掉不影响网络节点的图像区域,那么节点响应是不改变的。基于这种性质,文章定义了error-bounded saliency regions:能够产生和全图同等响应(响应之差小于某个较小的阈值)的最小图像区域(support region);简单的说就是利用一个mask挡住图像部分区域,产生的响应和全图输入时的响应小于某个值,那么这个区域就属于error-bounded saliency regions;这样便于比较不同网络的支持区域。
下图展示了conv5的最后一层中节点的相关信息,从上到下三行分别表示effective receptive fields、effective sampling locations、error-bounded saliency regions。a、b、c图分别是常规卷积、DCN v1、DCN v2的结果:
- 常规的ConvNets能够在一定程度上对几何变化建模,主要得益于深度网络强大的表征能力。
- 可变形卷积的引入增强了网络度几何变换的建模能力,表现为前景节点包含整个目标,背景节点包含更大的上下文。然而support region存在不准确的情况;前景节点的effective receptive fields和error-bounded saliency regions包含了与检测不相关的背景区域。
- 这里使用的三种可视化方式比DCN v1中使用的采样位置更能反映网络获得的信息。在常规的ConvNet在网格上具有固定的采样位置,但实际上它可以通过网络权重来调整其有效的support region。 可变形卷积受偏移量和网络权重的共同影响。
下图显示了每个RoI检测头中2fc节点的spatial support:
前景上的bin通常会在分类分支产生较大的梯度,从而对预测产生更大的影响。由于引入了可学习的偏移量,Deformable RoIpooling与aligned RoIpooling相比,覆盖前景的Bin比例要大得多。同时,aligned RoIpooling和Deformable RoIpooling中的error-bounded saliency regions没有完全集中在前景目标上,这可能导致RoI之外的内容会影响预测结果。
Modulated Deformable Modules
为了进一步增强可变形卷积网络控制support region的能力,文章引入了一种调制机制,使Deformable Convolutional Network不仅可以学习调整偏移量,还可以调制不同空间位置的输入特征幅度。在极端情况下,模块可以将其特征幅度置零,不感知来自特定位置的信号。调制项:
DCN v1:
DCN v2:
其中
和
分别是采样点k的位置偏移量和特征调节系数,两者由不同卷积核以特征x作为输入得到。假设有K个采样点(3x3卷积9个采样点),卷积层的分辨率和输入特征x相同;输出3×K个通道,对应于每个采样点的偏移量
(x,y两个方向,即2×K个通道)和对应调制系数
(K个通道)。
和
分别初始化为 0和0.5(默认偏移量为0,无法区别采样点贡献率),对应的卷积核参数初始为0,卷积层的学习率设置为现有层的0.1。
deformable RoIpooling也添加类似的调制项:
DCN v1:
DCN v2:
调制系数通过额外的fc层产生,输出3×K通道(归一化的偏移量和系数),额外的fc层的学习率和其他层相同,卷积偏移量和池化偏移量的调制系数都需要经过sigmoid得到。
使用改进的模块的效果对比(考虑deformable convolution和RoIpooling的堆叠)
DCN v1 (conv5):
DCN v2 (conv3∼5):
R-CNN Feature Mimicking:
进一步地,作者发现基于RoI的分类中,常规CNN或者DCN v1的error-bounded saliency regions会延伸到RoI之外,即包含了与检测不相关的背景区域,作者认为这会影响分类结果。另外作者发现R-CNN的分类结果完全是依赖于RoI的,因为R-CNN的分类输入实际上是经过cropped的RoI。所以作者设计了称为R-CNN feature mimicking的结构,即R-CNN来监督改善对RoI的特征提取过程,或者将R-CNN称为teacher或guidance:
左边是Faster R-CNN,右边是R-CNN,两个分支共享权重。使用Faster R-CNN得到ROI后在原图上裁剪并 resize成224×224输入到R-CNN,经过 R-CNN提取特征后得到14×14的特征图,经过2个fc层输出1024维特征,用两个网络的输出特征计算损失,从而实现对RoI的特征提取过程的改善。由于R-CNN的输入只有ROI,也就只能关注ROI内部的特征,将R-CNN作为guidance强迫Faster R-CNN同样关注ROI里面的内容,这种强迫就通过deformable convolution和RoIpooling的offsets实现。
损失函数:
损失函数只应用于正样本,因为正样本只限于自身特征,负样本需要背景或者其它信息判断。
常规卷积和基于DCN v2模型的效果对比:
消融实验:
关于deformable convolution和RoI pooling堆叠的消融实验:
(m)dconv和(m)dpool表示 (modulated) deformable convolution和 (modulated) deformable RoIpooling。
对正负样本使用上述损失函数的影响(FG: foreground;BG:background),下左图:
DCN v2, DCN v1 和常规的ConvNets在不同的backbones的效果,上右图。
DCN v2和常规的ConvNets在不同的图像分辨率上的表现:
Baseline是基于ResNet-50和ResNet-101的Faster R-CNN,结果表明DCN v2在全输入分辨率上都有良好的表现。在输入较短边大于1000 像素时,基于常规卷积的模型得分迅速下降,在目标处于中大尺寸时,这种下降更为明显:
基于ResNet-101的多尺度测试: