圖像分割(一)深入理解深度學習分割網絡Unet

U-Net: Convolutional Networks for Biomedical Image Segmentation

背景

分割

Mask = Function(I)
  • 1

1. 什麼是圖像分割問題呢? 簡單的來講就是給一張圖像,檢測是用框出框出物體,而圖像分割分出一個物體的準確輪廓。也這樣考慮,給出一張圖像 I,這個問題就是求一個函數,從I映射到Mask。至於怎麼求這個函數有多種方法。我們可以看到這個圖,左邊是給出圖像,可以看到人和摩托車,右邊是分割結果。
圖二
2. 求這個函數有很多方法,但是第一次將深度學習結合起來的是這篇文章全卷積網絡(FCN),利用深度學習求這個函數。在此之前深度學習一般用在分類和檢測問題上。由於用到CNN,所以最後提取的特徵的尺度是變小的。和我們要求的函數不一樣,我們要求的函數是輸入多大,輸出有多大。爲了讓CNN提取出來的尺度能到原圖大小,FCN網絡利用上採樣和反捲積到原圖像大小。然後做像素級的分類。可以看圖二,輸入原圖,經過VGG16網絡,得到特徵map,然後將特徵map上採樣回去。再將預測結果和ground truth每個像素一一對應分類,做像素級別分類。也就是說將分割問題變成分類問題,而分類問題正好是深度學習的強項。如果只將特徵map直接上採樣或者反捲積,明顯會丟失很多信息。

圖三
3. FCN採取解決方法是將pool4、pool3、和特徵map融合起來,由於pool3、pool4、特徵map大小尺寸是不一樣的,所以融合應該前上採樣到同一尺寸。這裏的融合是拼接在一起,不是對應元素相加。

圖四
4. FCN是深度學習在圖像分割的開山之作,FCN優點是實現端到端分割等,缺點是分割結果細節不夠好,可以看到圖四,FCN8s是上面講的pool4、pool3和特徵map融合,FCN16s是pool4和特徵map融合,FCN32s是隻有特徵map,得出結果都是細節不夠好,具體可以看自行車。由於網絡中只有卷積沒有全連接,所以這個網絡又叫全卷積網絡。

Unet網絡結構圖五

  1. 很多分割網絡都是基於FCNs做改進,包括Unet。Unet包括兩部分,可以看右圖,第一部分,特徵提取,VGG類似。第二部分上採樣部分。由於網絡結構像U型,所以叫Unet網絡。
    1. 特徵提取部分,每經過一個池化層就一個尺度,包括原圖尺度一共有5個尺度。
    2. 上採樣部分,每上採樣一次,就和特徵提取部分對應的通道數相同尺度融合,但是融合之前要將其crop。這裏的融合也是拼接。
      個人認爲改進FCN之處有:
      1. 多尺度
      2. 適合超大圖像分割,適合醫學圖像分割
  2. Unet——輸入輸出
    圖六
    醫學圖像是一般相當大,但是分割時候不可能將原圖太小輸入網絡,所以必須切成一張一張的小patch,在切成小patch的時候,Unet由於網絡結構原因適合有overlap的切圖,可以看圖,紅框是要分割區域,但是在切圖時要包含周圍區域,overlap另一個重要原因是周圍overlap部分可以爲分割區域邊緣部分提供文理等信息。可以看黃框的邊緣,分割結果並沒有受到切成小patch而造成分割情況不好。
    3.Unet——反向傳播
    Unet反向傳播過程,大家都知道卷積層和池化層都能反向傳播,Unet上採樣部分可以用上採樣或反捲積,那反捲積和上採樣可以怎麼反向傳播的呢?那什麼是反捲積呢?先來講下卷積的過程

                Y = Matrix_1(Filter)* Matrix_2(Image)
  • 1

Matrix_1和Matrix_2分別是將卷積核和圖像轉成矩陣函數。也就說給一個輸入X,利用矩陣乘法能得到卷積後輸出Y。

                                Y=C*X
  • 1

所以卷積可以分解成兩個矩陣相乘。很顯然,卷積反向傳播就是C的轉置相乘。舉個例子:

                            Y=[1,2]*[X,x_1]T
  • 1

Y對x求導,dy/dx=[1,2]^T。
圖7
反捲積就是轉置卷積,也是一種卷積,可以看到圖7,這個就是轉置卷積,由小尺寸到大尺寸的過程。也就是說反捲積也可以表示爲兩個矩陣乘積,很顯然轉置卷積的反向傳播就是也是可進行的。所以說整體是Unet是可以反向傳播的。
3.Unet——與其他結構比較之FPN
這裏寫圖片描述
這是FPN檢測網絡,可以看到紅框,如果將紅框到過來可以發現,FPN部分結構和Unet相似之處。從而說明Unet網絡結構是基於多尺度的。

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