Paper | U-Net: Convolutional Networks for Biomedical Image Segmentation


U-Net: Convolutional Networks for Biomedical Image Segmentation

發表在2015 MICCAI。原本是一篇醫學圖像分割的論文,但由於U-Net傑出的網絡設計,得到了8k+的引用。

摘要

There is large consent that successful training of deep networks requires many thousand annotated training samples. In this paper, we present a network and training strategy that relies on the strong use of data augmentation to use the available annotated samples more efficiently. The architecture consists of a contracting path to capture context and a symmetric expanding path that enables precise localization. We show that such a network can be trained end-to-end from very few images and outperforms the prior best method (a sliding-window convolutional network) on the ISBI challenge for segmentation of neuronal structures in electron microscopic stacks. Using the same network trained on transmitted light microscopy images (phase contrast and DIC) we won the ISBI cell tracking challenge 2015 in these categories by a large margin. Moreover, the network is fast. Segmentation of a 512x512 image takes less than a second on a recent GPU. The full implementation (based on Caffe) and the trained networks are available at http://lmb.informatik.uni-freiburg.de/people/ronneber/u-net.

結論

The u-net architecture achieves very good performance on very different biomedical segmentation applications. Thanks to data augmentation with elastic deformations, it only needs very few annotated images and has a very reasonable training time of only 10 hours on a NVidia Titan GPU (6 GB). We provide the full Caffe[6]-based implementation and the trained networks. We are sure that the u-net architecture can be applied easily to many more tasks.

要點

  1. U-Net能對有限的數據,進行非常強有效的處理和利用。即所謂的strong use of data augmentation。

  2. 該網絡處理速度也比較快:借助GPU處理一張\(512 \times 512\)的圖像,耗時不到一秒。

故事背景

現有的CNN突破,大多集中在兩點:1,數據量大,如ImageNet;2,網絡參數多,如[7]的網絡具有百萬參數。

但是在大多數問題中,如醫學圖像處理,數據是稀缺品,標注數據更是稀缺品。

為了解決這一問題,[1]采用如下方式:將patch輸入網絡訓練,而不是整圖輸入。測試也按patch測。
優點:

  1. 擴大了訓練集:patch的數量顯然比圖像數量多得多。

  2. 對patch處理,可以更好地考慮局部細節。

缺點:

  1. patch太小了,上下文(context)不足。

  2. 非常耗時,並且重疊patch導致了冗余。

U-Net

U-Net

U-Net的使命是:利用很少的數據,實現很好的效果

U-Net的基礎是全卷積網絡[9],其核心思想是:連續CNN處理會導致尺寸的收縮和分辨率下降;為此,我們將池化層改為升采樣層。為了更好地處理局部特征(localize),在前端收縮通路(contracting path)的特征與后端升采樣的輸出(upsampled output)進行拼接。
在這篇工作里,作者的主要改進是:在升采樣通路,U-Net也設置了大量的特征圖。這樣就使得上下文信息(context information)得以通過BP傳遞至高分辨率的收縮通路。因此整體上看,U-Net是一個U型的、較為對稱的網絡

我們知道,現在的GPU能力有限,無法處理任意大的輸入。此時,我們只能采取塊處理:

處理

但這樣處理有一個缺點:多多少少會丟失一些上下文信息。為此,作者引入了overlap-tile策略。如圖,為了獲得黃框的分割結果,U-Net的輸入必須略大一些:藍框,使得周圍上下文信息得到一定的保持。如果邊緣信息不存在,那么就簡單地鏡像擴展,如左圖。

具體結構

左側稱為收縮通路(contracting path),右側稱為擴張通路(expansive path)。

  • 我們看收縮通路。收縮通路由重復的兩層\(3 \times 3\)卷積和ReLU激活組成,不補零(如藍色箭頭)。這導致圖像在每一層尺寸(長或寬)都會減2(左右各減1)。一共重復5次,即10次卷積。

  • 在每一次2層卷積后,都執行步長為2的\(2 \times 2\)的最大池化,效果為\(\frac{1}{2}\)降采樣(如圖紅色箭頭)。一共執行4次。

  • 在每一次降采樣后,第一層卷積的輸出通道數翻倍。

  • 我們再看擴張通路。首先經過\(2 \times 2\)的升卷積(up-conv),通道尺寸拓展為4倍;其次,從收縮通路中短連接過來的特征圖經過裁剪,與之拼接;最后,執行2層\(3 \times 3\)的卷積和ReLU激活。同理也會越來越小。

  • 最后一層,我們采用\(1 \times 1\)的卷積,即尺寸不變,但通道數減小為目標類別數。可以注意到,輸入圖像尺寸比輸出尺寸要大。

網絡一共有23層卷積(包括\(3 \times 3\)不補零卷積、\(2 \times 2\)升采樣卷積和\(1 \times 1\)卷積)。

注意,輸入圖像(tile或者patch)的長和寬必須是偶數,這樣才可以讓\(2 \times 2\)升采樣卷積真正實現2倍升采樣。

損失

作者特別強調了不同分類之間的邊界像素點。因此在設置損失函數時,作者對每一個像素點設置了不同的權重,見式2。如果該像素離最近的兩個分類的距離之和小,說明該像素接近邊界,則其權重會較大。

數據擴充

作者采取了彈性變形(elastic deformations)對有限的數據進行擴充。這能促使網絡具有變形不變性。

具體而言,我們根據一個高斯分布(方差為10),隨機生成一個位移向量,然后對像素點在\(3 \times 3\)的格點內進行位移。位移后執行雙三次插值,即得到了最終的彈性形變結果。

此外,在收縮通路的最后,我們還采用了drop-out層。


免責聲明!

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



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