《Unet》論文閱讀與

題外話


上篇對FCN的論文解讀提到,FCN的訓練依賴大量數據,而且仍存在分割結果不精細的弱點。今天要說的Unet就是受到FCN啓發針對醫學圖像作語義分割,且能夠利用少許的數據學習到一個對邊緣提取十分魯棒的模型,在生物醫學圖像分割領域有很大做用。據我瞭解,Unet是如今不少公司的魔改對話,在移動/嵌入式端的,也已經有把Unet作到了實時的例子。html


網絡架構


這就是整個網絡的結構,大致分爲收縮和擴張路徑來組成。由於形似一個字母U,得名Unet。收縮路徑仍然是利用傳統卷積神經網絡的卷積池化組件,其中通過一次下采樣以後,channels變爲原來的2倍。擴張路徑由2 * 2的反捲積,反捲機的輸出通道爲原來通道數的一半,再與原來的feature map(裁剪以後)串聯,獲得和原來同樣多的通道數的feature map,再通過2個尺寸爲3 * 3的卷積和ReLU的做用。裁剪特徵圖是必要的,由於在卷積的過程當中會有邊界像素的丟失。在最後一層經過卷積核大小爲1 * 1的卷積做用獲得想要的目標種類。在Unet中一共有23個卷積層。可是這個網絡須要謹慎的選擇輸入圖片的尺寸,以保證全部的Max Pooling操做做用於長寬爲偶數的feature map。git


Trick 1github

對於尺寸較大的圖像:Overlap-tile strategy

因爲網絡沒有全鏈接層,而且只使用每一個卷積的有效部分,因此只有分割圖像徹底包含在輸入圖像中能夠得到完整的上下文像素。而這個策略容許經過重疊區塊無縫分割任意大的圖像,爲了預測圖像邊界區域中的像素,經過鏡像的輸入圖像來外推丟失的上下文。這種平鋪策略對於將網絡應用於大圖像很重要,不然分辨率將受到GPU內存的限制。能夠把這個問題理解爲要對超級大的圖像中的小目標進行檢測,那麼一個可行的策略就是把原圖分紅不少patch,再對每一個patch分別檢測,最後把結果組合在一塊兒。微信


Trick 2網絡


數據集可用數據量較少:數據加強

可用的訓練數據很是少,經過對可用的訓練圖像應用彈性變形來進行數據加強。這容許網絡學習到這種變形的不變性,而不須要在註釋的圖像語料庫中看到這些變換。這在生物醫學分割中尤爲重要,由於變形是組織中最多見的變化,而且能夠有效的模仿真實的變形。Dosovitskiy等人已經證實在無監督表徵學習的範圍內學習不變性的數據增長的價值,經過在一個3*3的粗糙網格中使用一個隨機位移向量產生一個平滑的變形,位移量從高斯分佈中取樣,高斯分佈有10個像素的標準差,每一個像素的偏移值經過bicubic interpolation來得到。

Trick 3架構

相同物體間的間隔不容易分割出來:加權損失

不少細胞分割任務中的一大挑戰是分離同一類接觸體,本文采用加權損失,其中接觸單元之間的分離背景標籤在損失函數中得到大的權重。以此方法提高對於相互接觸的相同物體之間縫隙的分割效果。
函數


代碼實現學習

caffe版本Unet: https://github.com/warden3344/unetspa

keras版本Unet: https://github.com/zhixuhao/unet.net

個人實現: https://github.com/BBuf/Keras-Semantic-Segmentation

本文分享自微信公衆號 - GiantPandaCV(BBuf233)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索