【论文学习记录】Rethinking Atrous Convolution for Semantic Image Segmentation

这篇论文即是DeepLabv3的理论基础,论文原文《Rethinking Atrous Convolution for Semantic Image Segmentation》。

为解决语义分割时的多尺度问题,论文中提到主要考虑如下四种结构。

【论文学习记录】Rethinking Atrous Convolution for Semantic Image Segmentation

论文重新阐述了空洞卷积(atrous convolution)在语义分割任务中是怎样提取稠密特征的。

假设一个二维的信号,每个位置i对应的输出是y,以及filter w对输入特征图x进行空洞卷积计算。

【论文学习记录】Rethinking Atrous Convolution for Semantic Image Segmentation

其中,atrous rate r 表示对输入信号进行采样的步长( stride),等价于将输入x和通过在两个连续的filters值间沿着各空间维度插入 r−1个零值得到的上采样filters进行卷积. 通过改变 Atrous convolution 的 rate 值,来修改 filter 的接受野。r=1即是标准的卷积。

【论文学习记录】Rethinking Atrous Convolution for Semantic Image Segmentation

作者首先以串联的方式设计空洞卷积模块。复制ResNet的最后一个block,如下图的 block4,并将复制后的blocks以串行方式级联。各block中有三个convolutions, 除了最后一个block, 其它block的最后一个convolution的步长都为2, 类似于原来的ResNet.

【论文学习记录】Rethinking Atrous Convolution for Semantic Image Segmentation

这样的设计是因为引入的 stride 能更容易的捕获较深的blockes中的大范围信息。

对 block4~block7 采用不同 atrous rates,定义 Multi_Grid=(r1,r2,r3)(r1,r2,r3) 为block4~block7的三个卷积层的 unit rates,卷积层最终的 atrous rate 等于 unit rate 与对应的 rate 的乘积. 例如,当 output_stride=16, Multi_Grid=(1,2,4)时, block4 中三个卷积层的 rate 分别为:rates=2∗(1,2,4) = (2,4,8)。

Atrous Spatial Pyramid Pooling(ASPP)采用四个并行的不同 atrous rates 的 atrous convolutions对 feature map 进行处理,具有不同 atrous rates 的 ASPP 能够有效的捕获多尺度信息,并且本文中还在ASPP中加入了batch normalization。

但是随着sampling rate的增加,有效filter特征权重数量会变小。极端情况,退化成一个 1×1 filter, 因为只有中心 filter 权重才是有效的。

【论文学习记录】Rethinking Atrous Convolution for Semantic Image Segmentation

针对上述问题,论文采用了以下几点改进。

采用全局平均池化(global average pooling)对模型的特征图进行处理,将得到的图像级特征输入到一个256 filters的 1×1卷积(加入 batch normalization)中,然后将特征进行双线性上采样(bilinearly upsample)到特定的空间维度。

当output_stride=16时,包括一个 1×1卷积和三个3×3 卷积,其中3×3卷积的 rates=(6,12,18),(所有的filter个数为256,并加入batch normalization)。当output_stride=8时,rates将加倍。

连接所有分支的最终特征,输入到另一个 1×1 卷积(所有的filter个数也为256,并加入batch normalization),再进入最终的 1×1卷积,得到结果。

【论文学习记录】Rethinking Atrous Convolution for Semantic Image Segmentation

训练策略:

1. learning rate:初始learning rate * 【论文学习记录】Rethinking Atrous Convolution for Semantic Image Segmentation,其中power=0.9。

2. crop size:随机裁剪到513分辨率(PASCAL VOC 2012数据集)。

3. 对于output_stride = 16,batch size设为16, decay = 0.9997,初始learning rate = 0.007,在增强的数据集迭代30K之后,将 batch normalization的参数冻结,再针对output stride = 8,初始learning rate = 0.001,在标准的数据集上再迭代30K次。

4. 不再对原来的groundtruths进行8倍降采样,取而代之的是对最后的结果进行上采样。

5. 数据增加采用随机缩放图像(0.5~2.0倍)和随机左右翻转图像。

下表是不同output_stride对结果的影响。

【论文学习记录】Rethinking Atrous Convolution for Semantic Image Segmentation

ResNet-50和ResNet-101的对比。

【论文学习记录】Rethinking Atrous Convolution for Semantic Image Segmentation

Multi-grid

【论文学习记录】Rethinking Atrous Convolution for Semantic Image Segmentation

和其他网络的对比。

【论文学习记录】Rethinking Atrous Convolution for Semantic Image Segmentation

结果展示。

【论文学习记录】Rethinking Atrous Convolution for Semantic Image Segmentation