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數據集上


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。