飛槳paddlepaddle影像分割課程筆記

mvu 發表於 2020-10-26

飛槳paddlepaddle影像分割課程筆記

最近花了一週時間聽了百度飛槳推出的影像分割課程,受益匪淺,特此記錄一下。

1. FCN 全卷積網路

FCN-32s網路結構
上圖是一個FCN-32s網路的結構圖。在這個網路中,圖片經過骨幹網路(VGG Network)提取特徵後,得到長寬縮小32倍的特徵圖,隨後直接將特徵圖上取樣32倍,得到和輸入圖片一樣大小的分割圖。

是不是特別簡單直接。別看這個網路設計的這麼簡單,但確實可以得到分割圖。

當然,因為是直接將特徵圖上取樣32倍,這種方式得到的分割精度不會很高。

為了提高分割精度,作者還提出將骨幹網路的中間層提取出來,與上述分割結果融合,得到最終的輸出結果。這樣就可以得到FCN-16s, FCN-8s, FCN-4s以及FCN-2s網路。
FCN-8s網路將Pool3、Pool4的輸出取出並融合
上圖展示的是FCN-8s網路,該網路將Pool3和Pool4的輸出取出,與FCN-32s的輸出結果融合,得到最終的分割圖。具體的融合方式見下圖:
FCN-8s輸出融合方式
首先將FC7(FCN-32s的輸出)上取樣2倍,與Pool4輸出結果相加,得到與Pool4融合的特徵圖。隨後將這個特徵圖再上取樣2倍,與Pool3層的結果相加,得到融合了Pool4、Pool3資訊的特徵圖。再將這個特徵圖上取樣8倍,經過一個softmax層,就得到了與輸入圖片一樣大小的分割圖。因為最終上取樣8倍,所以稱為FCN-8s。

2. U-Net

U-Net網路結構圖
上圖是U-Net的網路結構圖,圖片首先經過4次卷積池化操作後得到特徵圖,隨後又將特徵圖經過4次上取樣(這裡使用的是反摺積)卷積操作得到最終的分割結果。同時,在每一次上取樣的過程中,特徵圖還會與前面特徵提取層的對應層結果拼接起來,以便融合特徵提取層的資訊,提高分割結果的精度。

U-Net與FCN網路結構很相似,區別在於,U-Net上取樣時,還會一系列卷積操作,而FCN沒有。另外,融合特徵提取層資訊時,U-Net使用的時沿通道拼接(Concat),而FCN使用的時相加。

3. PSPNet

PSPNet (Pyramid Scene Parsing Network)網路結構如下圖所示:
PSPNet網路結構
PSPNet在特徵圖上引入了Pyramid Pooling Module(上圖虛線框部分),擴大了感受野,使得模型能夠獲取到更多上下文資訊,期待讓分割結果更加準確。

Pyramid Pooling Module的設計也不復雜。該模組將骨幹網路提取的特徵圖通過AdaptivePooling縮放為四種不同的尺寸,並分別通過卷積層將通道數壓縮為原來的四分之一,隨後各自經過上取樣得到與輸入特徵圖長寬一樣、通道數為原來的1/4的特徵圖,最後將這些特徵圖與原特徵圖拼接(Concat)起來,得到該模組的輸出。

4. DeepLab系列

DeepLab影像分割網路有V1、V2、V3、V3+等一系列網路,下表對比了DeepLab系列網路的關鍵結構
DeepLab系列網路關鍵結構對比

下圖顯示了DeepLabV1 - V3的網路結構。
DeepLabV1/V2/V3網路結構圖

這裡我們主要介紹一下ASPP模組,ASPP’ (upgraded ASPP)模組。

ASPP(Atrous Spatial Pyramid Pooling)模組是在DeepLabV2中引入的一個模組,它的結構如下圖所示。特徵圖分別經過4種kernel size一樣,dilation不一樣的卷積,得到4個大小一樣的特徵圖,最後將這四個特徵圖相加融合,得到輸出結果
ASPP模組

ASPP’ (upgraded ASPP)是ASPP模組的改進版,結構如下圖所示。相比原始的ASPP模組,改進版的增加了一個1x1的卷積以及一個AdaptivePooling層,最後將5個特徵圖concat並經過一個1x1卷積,得到最終的輸出。
Upgraded ASPP模組

5. 總結

我們對比上面介紹的網路可以發現,這些分割網路從設計上來講都是大同小異。圖片特徵提取層使用的都是典型的網路,例如VGG、ResNet等,主要的不同點在於分割頭的設計上,也就是如何將從特徵圖變換到分割圖。FCN和U-Net選擇將特徵提取網路中間層的輸出融合到分割圖中,而PSPNet以及DeepLab系列則是選擇用擴大網路的感受野的方式整合上下文資訊,以期待獲得良好的分割圖。

學完這些網路後,自然而然會問出這麼幾個問題:網路這樣設計為什麼有效?除此之外,有沒有其他方式融合淺層資訊,有沒有其他方式整合整合上下文資訊?好好想想,也許就是一篇不錯的paper咧!

Acknowledgement

非常感謝百度AIStudio開設的這次課程,感謝百度研究院的朱老師伍老師授課!特別是朱老師,線上Coding,佩服至極!