Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

即DeepLab v3+,主要是在DeepLab v3的基础上进行了一些创新,加入了一个Decoder模块来对分割结果尤其是边界进行细化,而且尝试引入Xception来作为encoder模块中的base网络。

主要贡献:

1、提出一个encoder-decoder的结构,使用deeplab v3作为encoder,decoder结构是一个新的模块。

2、可以通过atrous convolution任意控制提取的encoder的特征的分辨率。

3、采用了Xception,并且可以在ASPP模块和decoder模块都使用depth-wise seperation convolution,这使得网络更加快速和强健。

结构:

DeepLab v3+

可以看到,Encoder部分主要还是DeepLab v3,在Decoder部分,经过encoder的特征首先通过双线性上采样分辨率变为原来的4倍,再与low-level的特征concat,形成新的特征层。这个low-level的特征经过了一个1×1的卷积来降低维度,因为low-level的特征包含的大量的channel会增加训练难度。随后的形成的新的特征再通过卷积以及上采样恢复到所需要输出的分辨率。

改进的Xception:

modified Xcpetion

原始的Xcpetion如下:

Xcpetion

可以看出,有以下几点改进:1、不改变entry flow为了更快的运算速度以及内存有效性。2、将所有的max-pooling操作替换为depthwise separable convolution,便于采用atrous separable convolution提取任意分辨率的特征。3、在每个3×3 depthwise convolution后加上BN和ReLU,BN是为了线性操作,而ReLU不太清楚。

实验:

在PASCAL VOC 2012上:

PASCAL VOC 2012

在CityScapes上:

CityScapes

你可能感兴趣的:(Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation)