Deeplab


Deeplab系列是谷歌團隊的分割網絡.

DeepLab V1

CNN處理圖像分割的兩個問題

  • 下采樣導致信息丟失
    maxpool造成feature map尺寸減小,細節信息丟失.
  • 空間不變性
    所謂空間不變性,就是說比如一張狗的圖,狗位於圖片正中還是某一個角,都不影響模型識別出這是一個狗. 即模型對於輸入圖像的空間位置不敏感,不管這個圖片旋轉,平移等,都能夠識別. 對分類來說,這是ok的.但是對於分割來說,這就不OK了,圖片旋轉以后,每一個像素所屬的分類當然就改變了.
    究其原因,分類處理的是更"高級"的特征,而分割是對每一個像素做分類,需要更多的細節.

deeplab v1采用2個方法解決這兩個問題

  • 空洞卷積
  • 條件隨機場CRF

空洞卷積

為什么要有maxpool?
一方面是為了減小feature map尺寸.一方面也是為了增大feature map中的每一個元素的感受野.

FCN是怎么做的?
得到特征圖后,用deconv的方式上采樣將feature map恢復到原始圖像尺寸.但是這種先max pool下采樣再deconv上采樣的過程勢必會損失掉一部分信息.

deeplab如何解決這個問題?
deeplab提出了一種dilated conv(空洞卷積)的卷積方式,去替代max pool,但同時感受野不丟失.

dilated的好處是不做pooling損失信息的情況下,加大了感受野,讓每個卷積輸出都包含較大范圍的信息。,對圖像分割這種對空間位置,細節信息很敏感的任務而言,空洞卷積是一種很好的方式.

空洞卷積的卷積方式如下圖所示:

(a)圖對應3x3的1-dilated conv,和普通的卷積操作一樣,(b)圖對應3x3的2-dilated conv,實際的卷積kernel size還是3x3,但是空洞為1,也就是對於一個7x7的圖像patch,只有9個紅色的點和3x3的kernel發生卷積操作,其余的點略過。也可以理解為kernel的size為7x7,但是只有圖中的9個點的權重不為0,其余都為0。 可以看到雖然kernel size只有3x3,但是這個卷積的感受野已經增大到了7x7(如果考慮到這個2-dilated conv的前一層是一個1-dilated conv的話,那么每個紅點就是1-dilated的卷積輸出,所以感受野為3x3,所以1-dilated和2-dilated合起來就能達到7x7的conv),(c)圖是4-dilated conv操作,同理跟在兩個1-dilated和2-dilated conv的后面,能達到15x15的感受野。對比傳統的conv操作,3層3x3的卷積加起來,stride為1的話,只能達到(kernel-1)*layer+1=7的感受野,也就是和層數layer成線性關系,而dilated conv的感受野是指數級的增長。

如何理解空洞卷積

CRF

由於CNN天然的空間不變性,使得對分割任務而言,CNN提取到的特征不夠精細.所以在特征提取后,我們再加一個CRF,達到更精細的特征提取目的.

以前寫過一篇條件隨機場筆記

說白了,就是一堆特征提取函數(相當於CNN中的卷積核),對不同的特征提取函數賦以不同的權重(相當於全連接層),再做指數化和正則化(相當於softmax)得到一個概率值.

https://blog.csdn.net/hjimce/article/details/50888915

DeepLab V2

相較於v1

  • ASPP
  • 基礎特征提取網絡由vgg替換為resnet

重點是ASPP

ASPP(Atrous Spatial Pyramid Pooling)

看名字就知道了,空間金字塔.用以解決多尺度問題.即對同一個物體,不管其在圖像中是大或小都可以准確識別.

具體如下:

用不同的空洞卷積對輸入做卷積,再融合不同的feature map.


如上圖所示,(a)是沒有用ASPP的,(b)是用了ASPP的結構.

DeepLab V3

論文地址:https://arxiv.org/abs/1706.05587
v3對網絡結構做了比較大的改變,主要是:

  • 去掉了crf.
  • 改造了resnet,在resnet中使用空洞卷積和金字塔空洞卷積

對resnet的改造體現在兩點:

  1. 使用空洞卷積,去掉下采樣,如此,保證感受野與feature map尺寸不變
  2. 在殘差塊內部使用ASPP,保證對多尺度的敏感

使用空洞卷積


feature map的尺寸減小的同時,相當於空間信息的丟失.圖像分割對空間信息很敏感,所以保持feature map的size是非常重要的,deeplab系列的設計思路也是如此,即在保留感受野的情況下,同時保持feature map的size不變
(a)是普通的不帶空洞卷積的方式,(b)通過空洞卷積的方式,在保持了感受野的同時,還沒有減小feature map的尺寸.

aspp


在block內部使用rate不同的空洞卷積並行地做卷積,再對得到的feature做融合.

google團隊的網絡風格就是這樣,總是喜歡在一種卷積方式上不斷演化,inception系列如此,deeplab系列也是如此.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM