語義分割模型-DeepLab

語義分割模型-DeepLab

介紹下DeepLab系列,由谷歌推出的針對語義分割的模型,到目前爲止,共有四個版本,這裏重點介紹下前兩個版本,由於時間原因,並沒有來得及讀v3+的論文
針對其中用到的主要方法,和大家分享下

  1. 空洞卷積
  2. 結構化預測—全連接的CRF
  3. 多尺度預測—ASPP

空洞卷積

空洞卷積(Dilated Convolution/Atrous Convolution):在標準卷積核的兩個相鄰元素間填充0。 dilated rate:即擴張率,當其爲r時, 卷積核兩個相鄰元素間填充(r-1)個0。可認爲標準卷積是空洞卷積的一個特殊形式。
在這裏插入圖片描述
例如第一個例子:它擴張完後的大小爲:5=3+(3-1)*(2-1)
在這裏插入圖片描述
空洞卷積的計算量是不變的,卷積的過程是完全相同的,只是卷積核變了一下
作用:

  1. 不丟失分辨率、不增加計算量的同時,擴大了感受野:在傳統DCNN中,取消後兩個Pooling層,並用空洞卷積替代原本的標準卷積。
  2. 捕獲多尺度上下文信息:通過設置dilated rate參數,來獲取不同尺寸的感受野,即獲取了多尺度信息。

首先解釋一下第一個作用

下面的第一幅圖片是標準卷積,核爲3,步長和padding爲1
第二幅圖片是擴張率爲2的卷積。
在這裏插入圖片描述
在這裏插入圖片描述
第一個的一個輸出特徵跨了3個輸入特徵;下面的一個輸出特徵跨了5個輸入特徵。
空洞卷積在計算量不增大的前提下,可以有效增大感受野
既然它擴大了感受野,那原來用於擴大感受野的pooling操作就可以去掉了,這樣也就保持了圖片的分辨率

那麼膨脹率能一味增大麼?感受野能一味增大麼?
答案是不能。下面看一個圖片
在這裏插入圖片描述
DeepLab v3中做出的一個很有趣的解釋,對象比Dilated-r還小的時候
Dilated Rate擴張率 和圖片尺寸相同,圖中都爲14,33的空洞卷積退化爲11。這也是擴張率不能一味增大的原因。

空洞卷積的不足

不足(Gridding效應):

  1. 局部信息丟失:只對一些大物體的分割有效果,但不適用於小物體。 在圖像需要全局信息或者語音文本需要較長的序列信息依賴的問題中,能很好的應用空洞卷積。
  2. 連續性丟失:空洞卷積得到的某一層的結果中,鄰近的像素是從相互獨立的子集中卷積得到的,相互之間缺少依賴。

解決辦法:圖森組的Hybrid Dilated Convolution(HDC)結構,採用了鋸齒波空洞率的串行卷積序列,以及殘差結構,有效的消除了Gridding問題。它在DeepLab v3中有用到,具體可以參考相關文獻。

理解連續性的丟失

在這裏插入圖片描述
在原始特徵圖上週期性採樣形成4組分辨率降低的特徵圖,然後使用原始的空洞卷積參數(去掉了空洞0)分別進行卷積,之後將卷積的結果進行上採樣組合。從該分解觀點可以看出,卷積前後的4個組之間沒有相互依賴,使得收集到不一致的局部信息。

DeepLab v1

V1的DCNN架構是由VGG-16改造而來:

  • 全連接層改爲卷積層
  • 進行fine tuning,分類層由1000類改爲21類
  • 去掉最後兩層Pooling層
  • 其後的卷積層改爲空洞卷積

在這裏插入圖片描述
將輸出進行雙線性插值,恢復至輸入圖像的尺寸,之後使用全連接的CRF進行後處理
VGG16架構統一簡潔,從頭到尾全部使用的是3x3的卷積和2x2的max pooling。

  • 爲什麼擴張率是2,4這樣遞增??
    可以參考pooling層的作用,保證改造後的網絡和原來網絡的感受野基本相等。

預訓練的數據集爲ImageNet。DeepLab使用的數據集是PASCAL VOC,20類物體+背景類。
使用空洞卷積輸出結果是原來的1/8,且光滑,所以簡單插值即可。而FCN得到的結果是1/32,再進行反捲積,效果不好。
在這裏插入圖片描述

VGG-16

架構統一簡潔,從頭到尾全部使用的是3x3的卷積和2x2的max pooling。

採用連續的幾個3x3的卷積核代替AlexNet中的較大卷積核。對於給定的感受野,採用堆積的小卷積核優於大的卷積核,因爲多層非線性層可以增加網絡深度來保證學習更復雜的模式,而且由於參數更少,計算代價也會比較小。
在這裏插入圖片描述

全連接的CRF

DCNN已經可以在分類問題上取得很好的結果,但同時也造成了定位不精確的問題,故而局部的CRF不再適用,這裏加入全連接的CRF,來精細勾畫邊緣信息。
在這裏插入圖片描述
一方面感受野大了可以檢測分割大目標,另一方面分辨率高了可以精確定位目標,二者需取一個trade-off。
簡單的使用雙線性插值造成的邊緣光滑的問題
對於圖片上的每一個像素點來說,我們需要利用它與其他所有像素點之間的關係,來提高這一點的分類準確率。
DL說白了就是進行特徵提取,而PGM能夠從數學理論很好的解釋事物本質間的聯繫。
在這裏插入圖片描述
對於每一個像素點i,當xi是飛機時,求出Ex1;當xi是人時,求出Ex2;依次求出21個Ex,找出最小的那個Ex。
在這裏插入圖片描述
在這裏插入圖片描述
p:位置。I:顏色強度。
Ex越大,越容易斷開。
不夠像的就從中間斷開,從而有利於細化邊緣。
一般使用平均場近似推理計算,具體可參考相關論文。

DeepLab v1於PASCAL VOC上使用CRF前後的分割結果:在這裏插入圖片描述

多尺度預測

目前常用的捕獲多尺度信息的方式:
在這裏插入圖片描述
第一種是比較老舊的做法,第二種是Encoder-Decoder,FCNSegNet都屬於這種
接下來我們看下右邊兩種。第三個是一系列串聯的空洞卷積,注意它們的膨脹率是在逐漸遞增的;第四個就是並聯形式,類似金字塔。
當然這幾種的組合,是個不錯的改進方向。V3+就是2和4的組合;v3做了3和4兩個版本,但發現組合起來並沒有得到改善。
我們先來介紹下第四種。使用單一的原始圖像,經過若干卷積池化層後,得到特徵圖;再對這個圖進行不同尺度的並行操作,最後將特徵融合,類似於空間金字塔結構。

Atrous Spatial Pyramid Pooling(ASPP)

Atrous Spatial Pyramid Pooling(ASPP):在給定的輸入上使用不同擴張率的空洞卷積並行採樣,相當於以多個尺度捕捉圖像的上下文。
在這裏插入圖片描述
最終將不同卷積層得到的結果做像素加融合到一起.
用了【2,4,8,12】實驗,但效果不如這個
那具體是怎麼應用到網絡中的吶
不同dilated rate的卷積得到不同的感受野。在同一Input Feature Map的基礎上,並行的使用4個空洞卷積,空洞卷積配置爲r={6,12,18,24} ,核大小爲3×3 。
在這裏插入圖片描述
前面完全一樣,只是全連接層發生了改變。左邊是原始的,右邊是採用ASPP架構的。
這個是v2提出來的,那我們看v3在多尺度預測方面做了什麼改善。做了下面兩個版本。
在這裏插入圖片描述
首先來看並行的這個版本,我們這裏只關注金字塔部分,看它相對於ASPP做了哪些改善
3個3*3的卷積層,一個image-level的特徵圖
全局池化,來避免信息的缺失
在這裏插入圖片描述
接下來看下圖3形式的串聯。
借鑑了HDC的思想,每個block裏3個3乘3的空洞卷積層,但它們的膨脹率都不一樣。每個block裏設置了鋸齒狀的rate,使得感受野更全面的覆蓋輸入圖。
比如這裏,block4是[1,2,1],block5是[2,4,2],依次遞增

總結

相對v1的改進方法:

  • 基礎網絡由VGG-16改爲ResNet
  • 採用ASPP架構
  • 在MS-COCO數據集上預訓練模型
  • 通過隨機縮放輸入圖片做數據增強
    -更改學習策略,即學習率衰減的模式由step改爲poly
    DeepLab v3
    相對v2的改進方法:
  • 不再使用CRF
  • 複製ResNet的一些block,並將其級聯到一起
  • 改進ASPP的結構
  • 模型更將通用,可用於任意網絡
    DeepLab v3+
  • 採用Encoder-Decoder架構,恢復原始分辨率的分割結果,使得邊緣細節信息能夠較好的保留
  • 基礎網絡由ResNet-101替換成Xception模型

參考文獻

  • Yu, F. and V. J. a. p. a. Koltun (2015). “Multi-scale context
    aggregation by dilated convolutions.”

  • Chen, L.-C., et al. (2014). "Semantic image segmentation with deep
    convolutional nets and fully connected CRFs.“

  • Chen, L. C., et al. (2018). “DeepLab: Semantic Image Segmentation
    with Deep Convolutional Nets, Atrous Convolution, and Fully Connected
    CRFs.” Ieee Transactions on Pattern Analysis and Machine Intelligence
    40(4): 834-848.

  • Chen, L.-C., et al. (2017). "Rethinking atrous convolution for
    semantic image segmentation.“

  • Chen L C, Zhu Y, Papandreou G, et al. Encoder-decoder with atrous
    separable convolution for semantic image segmentation[C]//Proceedings
    of the European Conference on Computer Vision (ECCV). 2018: 801-818.

  • Wang P, Chen P, Yuan Y, et al. Understanding convolution for semantic
    segmentation[C]//2018 IEEE Winter Conference on Applications of
    Computer Vision (WACV). IEEE, 2018: 1451-1460.

  • https://arxiv.org/abs/1901.02985
    https://zhuanlan.zhihu.com/p/50369448
    https://blog.csdn.net/Dlyldxwl/article/details/81148810

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