[論文解讀] U-Net: Convolutional Networks for Biomedical Image Segmentation (用於生物醫學圖像分割的卷積網絡)


Unet論文:http://www.arxiv.org/pdf/1505.04597.pdf
Unet源代碼:https://github.com/jakeret/tf_unet
發表於:2015年的MICCAI

一、基本介紹
1.1歷史背景
卷積神經網絡(CNN)不僅對圖像識別有所幫助,也對語義分割領域的發展起到巨大的促進作用。 2014 年,加州大學伯克利分校的 Long 等人提出全卷積網絡(FCN),這使得卷積神經網絡無需全連接層即可進行密集的像素預測,CNN 從而得到普及。使用這種方法可生成任意大小的圖像分割圖,且該方法比圖像塊分類法要快上許多。之后,語義分割領域幾乎所有先進方法都采用了該模型。

1.2 FCN(全卷積網絡)
file
網絡的整體結構分為:全卷積部分和反卷積部分。
全卷積部分:借用了一些經典的CNN網絡並把最后的全連接層換成卷積,用於提取特征,形成熱點圖;
反卷積部分:將小尺寸的熱點圖上采樣得到原尺寸的語義分割圖像。
總的來說:FCN對圖像進行像素級的分類,從而解決了語義級別的圖像分割問題。與經典的CNN在卷積層之后使用全連接層得到固定長度的特征向量進行分類(全聯接層+softmax輸出)不同,FCN可以接受任意尺寸的輸入圖像,采用反卷積層對最后一個卷積層的feature map進行上采樣, 使它恢復到輸入圖像相同的尺寸,從而可以對每個像素都產生了一個預測, 同時保留了原始輸入圖像中的空間信息, 最后在上采樣的特征圖上進行逐像素分類。
具體可參考:https://zhuanlan.zhihu.com/p/30195134
https://www.jianshu.com/p/14641b79a672

1.3提出的背景
雖然卷積網絡已經存在很長時間了,但是由於可用訓練集的大小和網絡結構的大小,它們的成功受到限制。在許多視覺任務中,特別是在生物醫學圖像處理中,期望的輸出應包括位置,所以應該給每個像素都進行標注。然而在生物醫學任務中通常無法獲得數千個訓練圖像。因此,提出了一種數據增強方法來有效利用標注數據,提出一種U型的網絡結構可以同時獲取上下文信息和位置信息

二、網絡結構
2.1 網絡組件
①U型結構
②編碼器-解碼器結構
編碼和解碼,早在2006年就發表在了Nature上。當時這個結構提出的主要作用並不是分割,而是壓縮圖像和去噪聲。后來把這個思路被用在了圖像分割的問題上,也就是現在我們看到的FCN或者U-Net結構,在它被提出的三年中,有很多很多的論文去講如何改進U-Net或者FCN,不過這個分割網絡的本質的結構是沒有改動的, 即下采樣、上采樣和跳躍連接。
編碼器逐漸減少池化層的空間維度,解碼器逐步修復物體的細節和空間維度。編碼器和解碼器之間通常存在快捷連接,因此能幫助解碼器更好地修復目標的細節。U-Net 是這種方法中最常用的結構。
③skip-connection

2.2結構詳解
file
①U-net前半部分作用是特征提取,后半部分是上采樣。每一個藍色塊表示一個多通道特征圖,特征圖的通道數標記在頂部,X-Y尺寸設置在塊的左下邊緣。不同顏色的箭頭代表不同的操作。
②藍色箭頭代表3x3的卷積操作,channel的大小乘2,stride是1,padding為0,因此,每個該操作以后, feature map的大小會減2。輸入是572x572的,但是輸出變成了388x388,是因為灰色箭頭表示復制和剪切操作,在同一層左邊的最后一層要比右邊的第一層要大一些,這就導致了,想要利用淺層的feature,就要進行一些剪切,也導致了最終的輸出是輸入的中心某個區域。
③紅色箭頭代表2x2的max pooling操作,需要注意的是,如果pooling之前feature map的大小是奇數,那么就會損失一些信息。
④綠色箭頭代表2x2的反卷積操作,操作會將feature map的大小乘2,channel的大小除以2。
⑤輸出的最后一層,使用了1x1的卷積層做了分類,把64個特征向量分成了2類(細胞類、背景類)。

三、方法亮點
3.1同時具備捕捉上下文信息的收縮路徑和允許精確定位的對稱擴展路徑,並且與FCN相比,U-net的上采樣過程依然有大量的通道,這使得網絡將上下文信息向更高層分辨率傳播。
收縮路徑遵循卷積網絡的典型架構。每一次下采樣后都把特征通道的數量加倍。擴展路徑中的每一步都首先使用反卷積,每次使用反卷積都將特征通道數量減半,特征圖大小加倍。反卷積過后,將反卷積的結果與收縮路徑中對應步驟的特征圖拼接起來。

3.2 Overlap-tile 策略,這種方法用於補全輸入圖像的上下信息,可以解決由於現存不足造成的圖像輸入的問題。
file
為了預測圖像邊界區域中的像素,通過鏡像輸入圖像來推斷缺失的上下文。 這種平鋪策略對於將網絡應用於大圖像非常重要,因為分辨率會受到GPU內存的限制。
該策略的思想是:對圖像的某一塊像素點(黃框內部分)進行預測時,需要該圖像塊周圍的像素點(藍色框內)提供上下文信息,以獲得更准確的預測。簡單地說,就是在預處理中,對輸入圖像進行padding,通過padding擴大輸入圖像的尺寸,使得最后輸出的結果正好是原始圖像的尺寸, 同時, 輸入圖像塊(黃框)的邊界也獲得了上下文信息從而提高預測的精度。

3.3使用隨機彈性變形進行數據增強。
作者采用了彈性變形的圖像增廣,以此讓網絡學習更穩定的圖像特征。因為數據集是細胞組織的圖像,細胞組織的邊界每時每刻都會發生不規則的畸變,所以這種彈性變形的增廣是非常有效的。
file
如果 σ值很大,則結果值很小,因為隨機值平均為0;如果σ很小,則歸一化后該字段看起來像一個完全隨機的字段。
對於中間σ值,位移場看起來像彈性變形,其中σ是彈性系數。然后將位移場乘以控制變形強度的比例因子 α。 將經過高斯卷積的位移場乘以控制變形強度的比例因子 α,得到一個彈性形變的位移場,最后將這個位移場作用在仿射變換之后的圖像上,得到最終彈性形變增強的數據。作用的過程相當於在仿射圖像上插值的過程,最后返回插值之后的結果。

3.4使用加權損失。(分離同一類別的接觸物體)
file
(a)原始圖像
(b)標注圖像實況分割 不同的顏色表示HeLa細胞的不同情況
(c)生成分割蒙版(白色:前景,黑色:背景)
(d)以像素為單位的權重映射,迫使網絡學習邊界像素
方法:預先計算權重圖,一方面補償了訓練數據每類像素的不同頻率,另一方面是網絡更注重學習相互接觸的細胞間邊緣。

因此,使用加權損失,其中接觸細胞之間的分離背景標簽在損失函數中獲得大的權重。預先計算每個真實分割的權重圖,以補償訓練數據集中某一類像素的不同頻率,並迫使網絡學習,在觸摸細胞之間引入的小分離邊界(見圖c和d)。
使用形態運算來計算分離邊界。權重圖計算如下:
file

四、網絡模型主要應用及結果
4.1在電子顯微鏡記錄中分割神經元結構,在下圖中演示了數據集中的一個例子和我們的分割結果。我們提供了全部結果作為補充材料。數據集是EM分割挑戰提供的,這個挑戰是從 ISBI 2012開始的,現在依舊開放。訓練數據是一組來自果蠅幼蟲腹側腹側神經索(VNC)的連續切片透射電鏡的30張圖像(512x512像素)。每個圖像都帶有一個對應的標注分割圖,細胞(白色)和膜(黑色)。測試集是公開可用的,但對應的標注圖是保密的,可以通過將預測的膜概率圖發送給組織者來獲得評估。通過在10個不同級別對結果進行閾值化和計算“warping error”, “Rand error”還有“pixel error”(預測的label和實際的label)。u-net(輸入數據的7個旋轉版本的平均值)無需進行任何進一步的預處理或后處理即可獲得0.0003529的warping error和0.0382的Rand error。
file

4.2 ISBI細胞追蹤挑戰的結果
file
(a)" PHc-U373 "數據集輸入圖像的一部分。(b)分割結果(青色mask)與人工真實(黃色邊框)(c)“DIC-HeLa”數據集的輸入圖像。(d)分割結果(隨機彩色mask)與人工真實(黃色邊框)。

4.3 ISBI細胞追蹤挑戰賽2015的分割結果(IOU)
file
將u-net應用於光顯微圖像中的細胞分割任務。這項分離任務是2014年和2015年ISBI細胞追蹤挑戰的一部分。第一個數據集“PHc-U373”包含Glioblastoma-astrocytoma(膠質母細胞瘤-星形細胞瘤)細胞在聚丙烯酰亞胺基底上,通過相差顯微鏡記錄。它包含35個部分注釋的訓練圖像。實現了92%的平均IOU,這明顯優於83%的第二好算法。第二個數據集“DIC-HeLa”是平板玻璃上的HeLa細胞,通過微分干涉對比顯微鏡記錄。它包含20個部分注釋的訓練圖像。在這里,實現了77.5%的平均IOU,這明顯優於第二好的算法46%。

五、網絡缺陷和不足
5.1 不足之處
感興趣的目標尺寸非常小,對於尺寸極小的目標,U-Net分割性能可能會不好,分割效果也不好。

5.2研習Unet
①FCN與Unet的區別
U-Net和FCN非常的相似,U-Net比FCN稍晚提出來,但都發表在2015年,和FCN相比,U-Net的第一個特點是完全對稱,也就是左邊和右邊是很類似的,而FCN的decoder相對簡單,只用了一個deconvolution的操作,之后並沒有跟上卷積結構。第二個區別就是skip connection,FCN用的是加操作(summation),U-Net用的是疊操作(concatenation)。這些都是細節,重點是它們的結構用了一個比較經典的思路,也就是編碼和解碼(encoder-decoder)結構。
②U型結構到底多深,是不是越深越好?
關於到底要多深這個問題,還有一個引申的問題就是,降采樣對於分割網絡到底是不是必須的?問這個問題的原因就是,既然輸入和輸出都是相同大小的圖,為什么要折騰去降采樣一下再升采樣呢?
比較直接的回答當然是降采樣的理論意義,我簡單朗讀一下,它可以增加對輸入圖像的一些小擾動的魯棒性,比如圖像平移,旋轉等,減少過擬合的風險,降低運算量,和增加感受野的大小。升采樣的最大的作用其實就是把抽象的特征再還原解碼到原圖的尺寸,最終得到分割結果。
參考https://zhuanlan.zhihu.com/p/44958351

六、個人思考總結
從2015年這篇文章發表以來,Unet被引用數千次。成為大多做醫療影像語義分割任務的baseline,也啟發了大量研究者去思考U型語義分割網絡。
新穎的特征融合,對圖像特征多尺度識別,skip connection,到現在依舊值得我們學習借鑒。

附錄:
①Unet-family:https://github.com/ShawnBIT/UNet-family

②醫學圖像特點:
(1)圖像語義較為簡單、結構較為固定。做腦部圖像的,就用腦CT和腦MRI,做胸片的只用胸片CT,做眼底的只用眼底OCT,都是一個固定的器官的成像,而不是全身的。由於器官本身結構固定和語義信息沒有特別豐富,所以高級語義信息和低級特征都顯得很重要。

(2)數據量少。醫學影像的數據獲取相對難一些,很多比賽只提供不到100例數據。所以我們設計的模型不宜多大,參數過多,很容易導致過擬合。(原始UNet的參數量在28M左右(上采樣帶轉置卷積的UNet參數量在31M左右),而如果把channel數成倍縮小,模型可以更小。縮小兩倍后,UNet參數量在7.75M。縮小四倍,可以把模型參數量縮小至2M以內)非常輕量。個人嘗試過使用Deeplab v3+和DRN等自然圖像語義分割的SOTA網絡在自己的項目上,發現效果和UNet差不多,但是參數量會大很多。

(3)多模態。相比自然影像,醫療影像是具有多種模態的。以ISLES腦梗競賽為例,其官方提供了CBF,MTT,CBV,TMAX,CTP等多種模態的數據。比如CBF是腦血流量,CBV用於檢測巨細胞病毒的。

(4)可解釋性重要。由於醫療影像最終是輔助醫生的臨床診斷,所以網絡告訴醫生一個3D的CT有沒有病是遠遠不夠的,醫生還要進一步的想知道,病在哪一層,在哪一層的哪個位置,分割出來了嗎,能不能求體積。

參考文章:https://blog.csdn.net/haoji007/article/details/78442088?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242
https://blog.csdn.net/qian99/article/details/85084686

本文由博客群發一文多發等運營工具平台 OpenWrite 發布


免責聲明!

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



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