当前位置: 代码迷 >> 综合 >> DeepLab V3+——Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation
  详细解决方案

DeepLab V3+——Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

热度:24   发布时间:2023-12-16 07:37:04.0

在DeepLab V3+中通过采用了encoder-decoder结构,在DeepLab V3中加入了一个简单有效的decoder模块来改善物体边缘的分割结果。除此之外还尝试使用Xception作为encoder,在Atrous Spatial Pyramid Pooling和decoder中应用depth-wise separable convolution得到了更快精度更高的网络,在PASCAL VOC 2012数据集上达到state-of-art的效果。

 Paper:https://arxiv.org/abs/1802.02611

1. Introduction

在Introduction和related works中,作者回顾语义分割中的常用的两种结构:

  • 空间金字塔:通过在不同分辨率上以池化操作捕获丰富的上下文信息
  • encoder-decoder架构:逐渐的获得清晰的物体边界

空间金字塔池化(图a)可以池化不同分辨率的特征图来捕获丰富的上下文信息,而encoder-decoder结构(图b)则可以获得锋利的边界。因此,在DeepLab V3+中通过采用了encoder-decoder结构,在DeepLab V3中加入了一个简单有效的decoder模块来改善物体边缘的分割结果(图c):先上采样4倍,在与encoder中的特征图concatenate,最后在上采样4倍恢复到原始图像大小。除此之外还尝试使用Xception作为encoder,在Atrous Spatial Pyramid Pooling和decoder中应用depth-wise separable convolution得到了更快精度更高的网络。

  • DeepLabv3的结构,使用ASPP模块获取多尺度上下文信息,直接上采样得到预测结果
  • encoder-decoder结构,高层特征提供语义,decoder逐步恢复边界信息

2. Methods

DeepLabv3 as encoder:
encoder模块逐步减少feature map分辨率,捕获高级语义信息。DeepLabv3中也使用扩张卷积提取特征,我们将输入和输出的分辨率比值称为output_stride,对于语义分割任务,使用扩张卷积替换下采样,使得输出的feature的output_stride=16。

DeepLabv3的ASPP模块使用了多个平行的扩张卷积,配合了图像级特征(即全局平均池化)。我们将DeepLabv3的logit前的输出特征作为encoder-decoder模型的encoder输出。此时输出的feature通道为256,可依据计算资源限制合理使用扩张卷积

上图encoder中ASPP部分图中省略了下面这一部分,经过concat之后再经过一次1x1卷积,就是encoder的输出,作为解码器的输入。

Proposed decoder:

decoder模块逐渐恢复空间信息。在原先的DeepLabv3中,取预测的feature 直接双线性上采样16倍到期望尺寸,这样的简易的decoder模块不能成功的恢复分割细节。在decoder中,特征图首先上采样4倍,然后与encoder中对应分辨率低级特征concatenate。在concatenate之前,由于低级特征图的通道数通常太多(256或512),而从encoder中得到的富含语义信息的特征图通道数只有256,这样会淡化语义信息,因此在concatenate之前,需要将低级特征图通过1×1的卷积减少通道数。在concatenate之后用3×3的卷积改善特征,最后上采样4倍恢复到原始图像大小。

1、encoder输出的feature的output_stride=16,经过双线性上采样4倍得到特征A。 2、再取encoder中对应着相同分辨率(即output_stride=4)的特征层,经过1×1卷积降通道,此时输出的feature记为特征B。 3、再经过一个3×3卷积细化feature,最终再4倍双线性上采样得到预测结果

 

Xception主干网络:

相对于早前的Xception,这里做了改进,主要有以下三点: 1、使用了更深的Xception结构,middle flow重复了16次,原始 Xception是8次 2、所有max pooling操作被替换为空洞可分离卷积,这能够应用扩张分离卷积扩展feature的分辨率 3、在每个3×3的深度卷积后增加BN层和ReLU激活函数

 

  相关解决方案