DeepLab系列之V3+

  1. DeepLab系列之V1
  2. DeepLab系列之V2
  3. DeepLab系列之V3
  4. DeepLab系列之V3+

概述

在语义分割任务中,spatial pyramid pooling module(SPP)可以捕获更多尺度信息,encoder-decoder结构可以更好恢复物体的边缘信息。

作者主要工作:

  1. 原DeepLabv3当作encoder,添加decoder得到新的模型(DeepLabv3+)。
    如下图所示,作者把spatial pyramid pooling moduleEncoder-Decoder融合成一体:
  2. XceptionDepthwise separable convolution应用到Atrous Spatial Pyramid Poolingdecoder中。

膨胀卷积

v1、v2中已详细说明,略....

深度可分离卷积(Depthwise separable convolution)

depthwise separable convolution=depthwise convolution+pointwise convolution

  • depthwise convolution是在每个通道上独自的进行空间卷积
  • pointwise convolution是利用1x1卷积核组合前面depthwise convolution得到的特征
  • tensorflow支持atrous版的depthwise convolution
    如下图所示:

    为什么说要用它呢?
    因为它能够保持性能的同时大大减少计算量,举个例子:
    假若输入2通道的特征,输出3通道特征,卷积核大小为3x3
    正常版卷积:
    参数量=2x(3x3)x3=54
    深度可分离卷积:
    参数量=2x3x3+2x1x1x3=24
    注意:第一部分为depthwise convolution(2x3x3),第二部分为
    pointwise convolution(2x1x1x3)

网络整体结构

  1. Encoder
    Encoder就是原来的DeepLabv3,注意点有2点:
  • 输入尺寸与输出尺寸比(output stride = 16),最后一个stage的膨胀率rate为2
  • Atrous Spatial Pyramid Pooling module(ASPP)有四个不同的rate,额外一个全局平均池化
  1. Decoder
    明显看到先把encoder的结果上采样4倍,然后与resnet中下采样前的Conv2特征concat一起,再进行3x3的卷积,最后上采样4倍得到最终结果
    需要注意点:
  • 融合低层次信息前,先进行1x1的卷积,目的是降通道(例如有512个通道,而encoder结果只有256个通道)

主干网络

作者在MSRA基础上作了些修改:

  • 更深的Xception结构,并不修改entry flow network结构
  • 所有的max pooling结构被stride=2的深度可分离卷积代替
  • 每个3x3的depthwise convolution都跟BN和Relu
    改进后的结构如下:


实验

  1. decoder结构上的探索
  • 训练时上采样输出结果下采样真值提升1.2%
  • 低层次信息通道数多少个比较合适(1x1卷积的通道数)


  • 哪个底层的细节信息较好&3x3的卷积如何构成


  • 作者验证了U-Net和SegNet类似的解码结构在此网络上并没有多少提升
  1. Backbone为Resnet101的结果


  2. Backbone为Xception的结果


  3. 在Cityscapes数据集上


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。