论文阅读——Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

论文阅读之DeepLabv3+
Encoder-Decoder with Atrous Separable
Convolution for Semantic Image Segmentation
from CVPR2018
DeepLab

摘要

空间金字塔池化可有效完成多尺度特征融合,编解码结构通过逐层恢复空间信息完成精确的边缘分割,本文将二者结合提出基于ASPP的DeepLabV3+模型。并在PASCAL VOC 2012、Cityscapes上测试了性能。

Section I Introduction

图像语义分割是计算机视觉的基础任务之一,主要进行像素级别的密集预测。在DeepLabv3中通过并行不同膨胀率的空洞卷积完成了多尺度上下文信息的提取(即ASPP),但实际应用中很消耗计算资源。编解码结构通过在解码网络中逐层恢复空间信息在分割任务中表现良好。
因此,本文就在DeepLabv3的基础上加入解码模块用来恢复空间信息,提出DeepLabv3+。结构演变如Fig1所示。
借助空洞卷积可基于算力限制灵活设计提取不同尺度特征,解码网络则用来恢复空间信息。本文还将深度可分离卷积(depthwise seperable convolution)应用到ASPP和解码网络中,测试对模型速度和精度上的提升。
本文的主要工作总结如下:
(1)将DeepLabv3作为高效的特征提取网络。结合解码网络组成一个编解码网络结构用于语义分割;
(2)在编码部分可根据算力和精度要求灵活设计ASPP模块的分辨率
(3)在ASPP和解码网络中均加入了深度可分离卷积
(4)DeepLabv3+模型在PASCAL VOC 2012和Cityscapes上测试了性能。
论文阅读——Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

Section II Related Work

语义分割网络自FCN后的相关改进或变体有:图像金字塔输入多尺度图像,CFR等用于高效推断。除此之外本文还介绍了:空间金字塔池化和编解码结构。


Spatial pyramid pooling:


PSPNet、DeepLab系列体现了空间金字塔池,比如将不同尺度的图像作为输入,以及ASPP使用不同膨胀率的卷积用于多尺度特征的提取等。以上利用多尺度信息的思想均对分割效果有一定的提升。


Encoder-Decoder:


编解码网络结构广泛用于姿态预测、物体检测、予以分割等任务。其中编码网络用于提取特征图谱、捕获高阶语义信息;解码网络负责恢复空间分辨率。



Depthwise Seperable Convolution:



深度可分离卷积和分组卷积主要是为了减少模型计算量提出的,主要将常规卷积分为depthwise convolution和pointwise convolution两步,比如Xception中就应用了这种操作。

Section III Methods

DeepLabv3+整体结构如下图所示。其中DeepLabv3作为编码网络,使用了基于深度可分离卷积的ASPP;再设计一个解码网络联合组成一个编解码结构的DeepLabv3+。
论文阅读——Encoder-Decoder with Atrous Separable Convolution for Semantic Image SegmentationDecoder:
(1)首先通过双线性插值恢复4倍大小的分辨率;
(2)然后与对应的低层次的feature map进行拼接,低层次的feature map首先用1x1的卷积处理降低通道数;
(3)后接一个大小为3x3的卷积来增强feature maps;
(4)在通过一个插值来进一步恢复4倍分辨率至原图大小。

Part A Atrous Convolution


通过控制空洞卷积的膨胀率可方便的设计特征提取的分辨率,不同膨胀率的空洞卷积组合在一起则可以完成多尺度图像特征的提取。


Part B Depthwise Seperable Convolution


深度可分离卷积用于减少计算量,将常规卷积分解为depthwise和pointwise两部分,在depthwise部分对每个通道使用个filter进行卷积,得到通道数个feature map;在逐点卷积部分,为前一阶段得到的每个feature map进行通道数个1x1conv。除此之外本文在进行深度卷积时使用的是膨胀率=2的空洞卷积,如c所示。

Part C Encoder:

DeepLabv3
本文将DeepLabv3作为编码网络进行特征提取。分类任务中,feature map常取输入的1/32,在语义分割中常取1/16或者1/8,因为要用于像素点的密集预测,不好压缩的太多丢失太多空间信息。因此在Encoder倒数1-2个block不会进行分辨率的压缩,而是替换为r=2.4的空洞卷积组成ASPP完成不同尺度特征的融合。最终将Encoder部分输出的256个通道的包含丰富语义信息的featuremap作为decoder的输入


Part D:Decoder


解码网络常通过双线性插值恢复空间分辨率,但往往细节恢复效果不佳。因此文本做出了进一步改进,修改为Fig2的结构。除了将encoder输出的特征图上采样后作为输入,还纳入了encoder网络提取到的低层特征,将二者以通道级联的形式共同用于空间信息的恢复。为了减少通道数,在输入之前先经过了1x1conv完成通道数的变换。
论文阅读——Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

Part E :Xception


对Xception做的改进有:将所有的max-pooling替换为深度可分离卷积;在每一次3*3conv操作后加入BN+ReLu。


论文阅读——Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

Section IV 实验相关

DeepLabv3+在PASCAL VOC 2012上进行了测试。
PASCAL VOC 2012????val:test = 1464:1449:1456
评价指标是21类分割结果的mIoU
其他训练细节:多项式学习率衰减、output stride= =16
Part A Decoder结构选择

基于Resnet-101的DeepLabv3输出带融合了多尺度特征的feature map,压缩为输入的1/16.随后送入解码网络,本文解码网络做了3处改进,分别是:


(1)对输入的低层特征图使用1x1 conv完成通道转换


(2)feature map与low-level feature mao级联后经过3x3 conv提取边缘



(3)还需确定到底引入哪一层次的feature map



从Table 1可以看出,channel=48,32时效果就比较好,本文选择将channel压缩至48;而通过Table 2可以看出使用conv2+2组3x3conv取得的效果最好。
Table 3则展示了不同结构设置对网络性能的提升。比如编解码网络各自的输入输出stride、是否采用多尺度输入、是否进行flip等。



而可视化分割结果可以看到基于ResNet-101,Xception均能提升分割效果,在Cityscapes上的分割结果也能看出这一点。



论文阅读——Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation



论文阅读——Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation论文阅读——Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation



# Section V Conclusion
本文提出的DeepLabv3+将使用了ASPP的DeepLabv3作为编码网络,提取含有丰富上下文信息的图像特征,随后经过也是使用空洞卷积并结合了低层图像信息的解码网络完成图像语义分割。证实了Xception、ASPP对分割效果的提升。