1. 程式人生 > >《U-Net: Convolutional Networks for Biomedical Image Segmentation》學習筆記

《U-Net: Convolutional Networks for Biomedical Image Segmentation》學習筆記

1. 總述

在15年的文章:《U-Net: Convolutional Networks for Biomedical Image Segmentation》中提出了一種基於少量資料進行訓練的網路的模型,得到了不錯的分割精度,並且網路的速度很快。對於分割一副512*512大小的影象只需要不到1s的時間。它的網路模型結構是這樣的,看起來像是一個U型,故也叫U-net
這裡寫圖片描述
從上面的U-net網路圖結構可以看出下降的部分是採用conv+max-pool來實現的,並且在下采樣過程中逐次增加feature channels;對於上升部分是使用左邊的feature map拷貝和剪裁(是因為每次卷積過程中邊緣畫素的丟失)+up_convolution,這樣的結構使得在上取樣過程中網路可以傳播到更高解析度的層。
整個網路的思路跟FCN是差不多的,一個區別是它沒有用VGG等CNN模型作為預訓練模型,因為u-net做的是醫學影象的二值分割,沒必要用ImageNet的預訓練模型,而且u-net這個結構我們是可以根據自己的資料集自由加深網路結構的,比如在處理具有更大的感受野的目標的時候;另一個區別是u-net在進行淺層特徵融合的時候,採用的是疊加的做法,而不是FCN中的求和操作,也就是上圖中的白色模組,是直接從左邊的藍色模組疊加過來的(如果是在Caffe中實現的,u-net是Concat層,而fcn是Eltwise層)。
這裡寫圖片描述


它接收任意尺寸的影象作為輸入,對於缺失的資料是通過,映象操作來進行補充的。例如上圖右邊黃色區域的分割資料是需要通過左圖中藍色的框中的資料來提供的,不足的資料那就需要映象操作來完成。

2. 訓練

上圖中a代表的是原圖;b代表分割好的ground truth;c代表生成的分割結果,黑色為背景,白色為目標;d是pixel-wise的損失權重圖,它迫使網路學習邊緣處的畫素
這裡寫圖片描述
功能函式(energy function)是通過基於最後特徵圖的pixel-wise soft-max和交叉熵損失函式,其中soft-max是這樣定義的:
這裡寫圖片描述
然後使用交叉熵懲罰每個位置上與上面提到的soft-max與1偏差:
這裡寫圖片描述


分隔邊界是通過形態學運算得到的。其中的w(x)是這樣定義的:
這裡寫圖片描述
d1代表離最近細胞的邊界的距離,d2代表離第二近的細胞邊界的距離,經過實驗將w0設為10,δ為5畫素

網路權值初始化:通過標準差為sqrt(2/N),N代表的是輸入神經元節點的數目。例如一個3*3的64通道的前一層卷積就有N=3*3*64=576。

3. 資料增大

在深度學習網路中資料集的數量對於訓練的預期結果和魯棒性都是很關鍵的,但是在醫療影象領域不滿足這樣的資料兩條件,這就需要進行資料增大(擴充)。 在該論文中是通過在3×3的網格使用隨機位移向量生成平滑變形。位移是從10畫素標準差的高斯分佈抽樣得到的。逐畫素位移然後使用雙立方插值計算。收縮路徑的漏失層(Drop-out layers)執行進一步的隱式資料增大。