Rethinking Atrous Convolution for Semantic Image Segmentation

此paper提出的结构又称DeepLab v3,为了解决图像分割中捕捉多尺度上下文信息的问题,主要是对之前的DeepLab v2结构的改进。有两个地方的创新:一个是ASPP的改进,另一个就是“串联”结构。与前几个版本的区别还在于丢掉了DenseCRF,增加了Batch Normalization。

首先是“串联”结构:

cascaded module

“串联”结构主要是在原来的ResNet基础上复制最后一个block加在后面,每个block中存在三个卷积层,除了最后一个Block,每个Block中的最后一个卷积层具有stride为2。stride会有利于捕捉long range的信息,但是,这样串联Block即连续地striding会导致丢失细节信息。所以便引入atrous convolution。

Multi-grid Method:具体为什么有用先不管,这里采用了multi-grid,使block4~7的atrous rate都不一样,定义Multi_Grid=(r1,r2,r3)为Block中的三个卷积层的unit rates ,最终的atrous rate=rate*unit rate。论文中最终设置为(1,2,1),对应Block4的rate为2,则最终atrous rate为(2,4,2)。

改进后ASPP结构为:

ASPP

刚才的串联结构为“横”结构的话,这个可以说是“纵”结构。但是为什么要给这个ASPP做一个改进呢?这是因为随着采样率的扩大,有效滤波器权重(valid filter weights,作用于有效区域而不是padding区域的weights)数量会变少,以下面这幅图来说明:

这是3×3的滤波器作用于65×65的特征图上时,有效权重的归一化后的数目随着atrous rate变化的变化结果,可以看出,在atrous rate比较低的时候,基本上valid weights都是9个,也就是基本所有权重都作用于有效区内,但是当atrous rate变大,直至65的时候,基本就只有中心的weight作用于有效区。

为了解决这个问题,在原来的版本上进行了改进,增加了一个global average pooling,以及一个1×1卷积层。基于上段的解释,这个1×1的卷积层相当于一个rate很大的dilation convolution layer。

这两种结构实际上第二种效果最好,所以最终也是采用的第二种结构。

关于实验:

在PASCAL VOC 2012上的结果:

PASCAL VOC 2012

可以看到取得了不错的表现,但是并不是最好的。

Cityscapes上:

Cityscapes

但在PASCAL VOC 2012上对于有些图片的分割效果并不好:

Error

你可能感兴趣的:(Rethinking Atrous Convolution for Semantic Image Segmentation)