語義分割論文V3+總結

論文:《Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation》

  • 論文主要的進展和貢獻

1. DeepLabv3+ = DeepLabv3 + decoder model:

空間金字塔池化模塊可以通過卷積和池化操作對多尺度的上下文信息進行編碼,Encoder-Decoder結構能通過逐漸恢復空間信息來捕獲精細的物體邊界。DeepLabv3+結合了這兩者的優點。

DeepLabv3+把DeepLabv3作爲Encoder(該模塊使用空洞卷積來提取任意分辨率下的特徵),在這個基礎上添加了Decoder模塊來細化物體邊界的分割結果。

2. 修改了Xception模型,並把深度可分離卷積用到空洞空間金字塔池化模塊和解碼器模塊。(得到了一個faster、stronger的encoder-decoder模型)

3. 論文在Pascal Voc2012和Cityscapes數據集上驗證了模型的有效性(在沒有任何後處理的情況下,性能分別達到了89%和82.1%)

4. 開源了代碼

  • DeepLabv3+中的兩種網絡結構:空間金字塔、encoder-decoder

(a)DeepLabv3(encoder)使用了空間金字塔池化獲取多尺度上下文信息(但是還是存在一些問題.),然後直接上採樣得到預測結果

(b)Encoder模塊提供豐富的語義信息,decoder模塊逐步恢復物體邊界

(c)把空洞卷積用在encoder-decoder模塊

  • (空間金字塔池化)遇到的一系列問題及解決方法

  1. 問題1:即使上層feature map中含有豐富的語義信息,但是由於跨步的卷積和池化操作導致邊界信息的丟失。
  2. 解決1:爲緩解邊界信息丟失問題,用空洞卷積來提取高密度feature map
  3. 問題2:受神經網絡發展水平和GPU內存的限制,提取比輸入分辨率小8倍甚至4倍在計算時都很困難。
  4. 解決2:採用encoder-decoder模塊。因爲不需要擴張特徵(ResNet-101使用空洞卷積提取比輸入分辨率小16倍的輸出特徵時,最後3個剩餘模塊需要dilated),所以在編碼是速度是比較快的,而且在解碼的過程中能逐漸恢復物體的邊界信息。
  • Method:文章簡要介紹了空洞卷積、深度可分離卷積,回顧了DeepLabv3模型,修改了Xception模型

1. 空洞卷積:

空洞卷積能顯示的調整深度卷積神經網絡計算出的特徵並能調整過濾器的視野以捕獲多尺度信息,進行標準的卷積操作。

2. 深度可分離卷積:(關於深度可分離卷積的細節:可分離卷積詳解)

將一次標準卷積操作分解爲先進行一次深度卷積,然後組合深度卷積的輸出結果進行點態卷積。這樣大大減少了計算的複雜性關於深度可分離卷積減少計算量的問題

深度卷積(支持空洞卷積)對每個輸入信道獨立執行卷積;點態卷積用來組合深度卷積的輸出。

3. DeepLabv3 as encoder:

DeepLabv3使用空洞卷積提取任意分辨率下DCNN計算出的特徵。

DeepLabv3增強了ASPP模塊,ASPP可以探測多尺度下的卷積特徵。

4. 解碼器模塊:

問題:由於樸素解碼器模塊不能很好的恢復物體分割的細節

解決:所以提出了一種有效的解碼器模塊,如下圖:

上圖模型的運行步驟:

Encoder模塊:在編碼器模塊使用了空洞卷積,對多尺度上下文信息進行編碼。

Decoder模塊:1. 對編碼的特徵進行4倍的上採樣;2. 與有相同分辨率的網絡中對應的低級特徵結合;3. 細化特徵;4. 對結果以4倍的速率進行上採樣。

1*1conv用來減少通道數;3*3卷積核用來獲得更精確的分割結果

5. Modified Xception

對模型進行的修改:

1. 更深的Xception結構;2. 深度可分離卷積代替池化;3. 在每個3*3卷積後增加了批正則化和激活函數。

改進後的Xception作爲encoder網絡主體,替換原本DeepLabV3的RESNet-101

  • 實驗:分別以ResNet-101和Modified Xception爲網絡骨架,測試幾種變體下模型的運算速度和精度的變化。

1. 在DeepLabv3+中使用ResNet-101測試了幾種變體:

    1) Baseline:不使用decoder的情況下,測試了對不同output_stride,對尺度輸入和反轉操作對性能和計算複雜度的影響。

    2) Adding decoder:使用decoder,比不使用時性能提高了,但是在計算時多了20B的消耗。

    3) Coarser feature maps:測試了使用output_stride=32時,計算速度變快,但是準確率下降了。

2. 用modified Xception作爲網絡骨架,測試幾種變體:

1) Baseline:不用decoder

2) Adding decoder

3) Using depthwise separab convolution:計算量下降

4) Pretraining on COCO

5) Pretraining on JFT

    上面兩次實驗結果進行比較,可以看出使用Xception作爲網絡骨架比使用ResNet-101的計算速度提高了,精度也提高了。

3. Modified Xception模型的成功以及存在的問題:

    成功之處:在無任何後處理的情況下,模型已經能很好的分割物體。

    失敗之處:對於沙發、椅子、被嚴重遮擋的物體和不常見物體的分割存在很大的缺陷。

4. 在ResNet-101和Xception模型上分別使用雙線性上採樣和decoder的可視化效果比較:Decoder明顯優於雙線性上採樣。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章