Deformable ConvNet算法详解(DCN)
算法背景
论文全称:Deformable Convolutional Networks
论文链接:https://arxiv.org/abs/1703.06211
论文日期:2017.6.5
算法提出背景:
CNN本质上仅限于大型模型,对几何变换建模的能力主要来自于广泛的数据增强,庞大的模型容量以及一些简单的手工模型。
同时还受到模型几何变化的限制,因为模型都是固定几何结构,卷积层,池化层以及RoI pooling层。缺失处理几何变化的内部机制。
CNN模型限制的结果:
- 这就导致了相同CNN层的所有激活单元的感受野尺寸相同,会影响高层CNN层在空间定位编码语义,因为不同的定位与不同的尺寸与变形的对象相关。
- 所有方法都依赖于基于原始边界框的特征提取,尤其不适用于刚性对象。
因此需要提出一个新的模型,能够适应检测对象尺寸、姿态、视野、部件变形中的几何变化以及模型几何变换。
基于这些要求,过去有两种解决方法:
- 数据集(足够的变量),进行数据增强。 花费高,模型复杂。
- 转换不变的特征与算法,eg. SIFT,sliding window。
缺点:
- 基于几何变换是固定这一假设,泛化能力差;
- 手工设计不变的特征与算法很困难,并且不灵活。
本文提出了Deformable conv算法,有两个方面的改进:
- 在conv5层添加了一个变形卷积,Deformable convolution模型;
- 使用了position-sensitive RoI pooling,deformable RoI pooling模型。deformable RoI pooling是CNN中第一个端到端学习池化区域的模型
这两个模型的中心思想:
1. 都是增强带有额外offset的模型的空间采样定位,
2. 同时学习目标任务的offset。
算法细节
Deformable convNets包含Deformable convolution与Deformable RoI pooling两种方式的变换。
这两个模型都是light weight,为offset学习加入了少量的参数与计算。可以通过标准反向传播进行端到端的训练。