图像分割的U-Net系列方法
原文鏈接:https://zhuanlan.zhihu.com/p/57530767
圖像分割的U-Net系列方法
在圖像分割任務特別是醫學圖像分割中,U-Net[1]無疑是最成功的方法之一,該方法在2015年MICCAI會議上提出,目前已達到四千多次引用。其采用的編碼器(下采樣)-解碼器(上采樣)結構和跳躍連接是一種非常經典的設計方法。目前已有許多新的卷積神經網絡設計方式,但很多仍延續了U-Net的核心思想,加入了新的模塊或者融入其他設計理念。本文對U-Net及其幾種改進版做一個介紹。
1, U-Net和3D U-Net
U-Net最初是一個用于二維圖像分割的卷積神經網絡,分別贏得了ISBI 2015細胞追蹤挑戰賽和齲齒檢測挑戰賽的冠軍[2]。U-Net的一個Karas實現代碼:
https://github.com/zhixuhao/unetU-Net的結構如下圖所示,左側可視為一個編碼器,右側可視為一個解碼器。編碼器有四個子模塊,每個子模塊包含兩個卷積層,每個子模塊之后有一個通過max pool實現的下采樣層。輸入圖像的分辨率是572x572, 第1-5個模塊的分辨率分別是572x572, 284x284, 140x140, 68x68和32x32。由于卷積使用的是valid模式,故這里后一個子模塊的分辨率等于(前一個子模塊的分辨率-4)/2。解碼器包含四個子模塊,分辨率通過上采樣操作依次上升,直到與輸入圖像的分辨率一致(由于卷積使用的是valid模式,實際輸出比輸入圖像小一些)。該網絡還使用了跳躍連接,將上采樣結果與編碼器中具有相同分辨率的子模塊的輸出進行連接,作為解碼器中下一個子模塊的輸入。
3D U-Net[3]是U-Net的一個簡單擴展,應用于三維圖像分割,結構如下圖所示。相比于U-Net,該網絡僅用了三次下采樣操作,在每個卷積層后使用了batch normalization,但3D U-Net和U-Net均沒有使用dropout。
在2018年MICCAI腦腫瘤分割挑戰賽(brats)中[4],德國癌癥研究中心的團隊使用3D U-Net,僅做了少量的改動,取得了該挑戰賽第二名的成績,發現相比于許多新的網絡,3D U-Net仍然十分具有優勢[5]。3D U-Net的一種Pytorch實現:
wolny/pytorch-3dunet2,TernausNet
TernausNet全稱為"TernausNet: U-Net with VGG11 Encoder Pre-Trained on ImageNet for Image Segmentation"[6]。該網絡將U-Net中的編碼器替換為VGG11,并在ImageNet上進行預訓練,從735個參賽隊伍中脫穎而出,取得了Kaggle 二手車分割挑戰賽(Carvana Image Masking Challenge)第一名。代碼鏈接:
ternaus/TernausNet下圖是該網絡的示意圖:
3,Res-UNet 和Dense U-Net
Res-UNet和Dense-UNet分別受到殘差連接和密集連接的啟發,將UNet的每一個子模塊分別替換為具有殘差連接和密集連接的形式。[6] 中將Res-UNet用于視網膜圖像的分割,其結構如下圖所示,其中灰色實線表示各個模塊中添加的殘差連接。
密集連接即將子模塊中某一層的輸出分別作為后續若干層的輸入的一部分,某一層的輸入則來自前面若干層的輸出的組合。下圖是[7]中的密集連接的一個例子。該文章中將U-Net的各個子模塊替換為這樣的密集連接模塊,提出Fully Dense UNet 用于去除圖像中的偽影。
4, MultiResUNet
MultiResUNet[8]提出了一個MutiRes模塊與UNet結合。MutiRes模塊如下圖所示,是一個殘差連接的擴展,在該模塊中三個3x3的卷積結果拼接起來作為一個組合的特征圖,再與輸入特征圖經過1x1卷積得到的結果相加。
該網絡的結構圖如下圖所示,其中各個MultiRes模塊的內部即為上圖所示。
該網絡除了MultiRes模塊以外,還提出了一個殘差路徑(ResPath), 使編碼器的特征在與解碼器中的對應特征拼接之前,先進行了一些額外的卷積操作,如下圖所示。作者認為編碼器中的特征由于卷積層數較淺,是低層次的特征,而解碼器中對應的特征由于卷積層更深,是較高層次的特征,二者在語義上有較大差距,推測不宜直接將二者進行拼接。因此,使用額外的ResPath使二者在拼接前具有一致的深度,在ResPath1, 2, 3, 4中分別使用4,3,2,1個卷積層。
該文章在ISIC、CVC-ClinicDB、Brats等多個數據集上驗證了其性能。代碼鏈接為
nibtehaz/MultiResUNet5, R2U-Net
R2U-Net全稱叫做Recurrent Residual CNN-based U-Net[9]。該方法將殘差連接和循環卷積結合起來,用于替換U-Net中原來的子模塊,如下圖所示
其中環形箭頭表示循環連接。下圖表示了幾種不同的子模塊內部結構圖,(a)是常規的U-Net中使用的方法,(b)是在(a)的基礎上循環使用包含激活函數的卷積層,(c)是使用殘差連接的方式,(d)是該文章提出的結合(b)和(c)的循環殘差卷積模塊。
該方法也在皮膚病圖像、視網膜圖像、肺部圖像等幾個公共數據集驗證了其性能,代碼鏈接:
LeeJunHyun/Image_Segmentation6, Attention UNet
Attention UNet[10]在UNet中引入注意力機制,在對編碼器每個分辨率上的特征與解碼器中對應特征進行拼接之前,使用了一個注意力模塊,重新調整了編碼器的輸出特征。該模塊生成一個門控信號,用來控制不同空間位置處特征的重要性,如下圖中紅色圓圈所示。
該方法的注意力模塊內部如下圖所示,該模塊通過1x1x1的卷積分別與ReLU和Sigmoid結合,生成一個權重圖 , 通過與編碼器中的特征相乘來對其進行校正。
下圖展示了注意力權重圖的可視化效果。從左至右分別是一幅圖像和隨著訓練次數的增加該圖像中得到的注意力權重。可見得到的注意力權重傾向于在目標器官區域取得大的值,在背景區域取得較小的值,有助于提高圖像分割的精度。
該文章的代碼鏈接:
ozan-oktay/Attention-Gated-Networks7, 其他
基于U-Net框架設計的圖像分割網絡還有很多,難以一一列舉,這里再提供兩篇具有參考性的文章:
AnatomyNet: Deep 3D Squeeze-and-excitation U-Nets for fast and fully automated whole-volume anatomical segmentation
H-DenseUNet: Hybrid Densely Connected UNet for Liver and Liver Tumor Segmentation from CT Volumes
總結
UNet是一個經典的網絡設計方式,在圖像分割任務中具有大量的應用。也有許多新的方法在此基礎上進行改進,融合更加新的網絡設計理念,但目前幾乎沒有人對這些改進版本做過比較綜合的比較。由于同一個網絡結構可能在不同的數據集上表現出不一樣的性能,在具體的任務場景中還是要結合數據集來選擇合適的網絡。希望本文對做圖像分割的同學有所啟發。
參考文章:
[1] Ronneberger, Olaf, Philipp Fischer, and Thomas Brox. "U-net: Convolutional networks for biomedical image segmentation." In International Conference on Medical image computing and computer-assisted intervention, pp. 234-241. Springer, Cham, 2015.
[2] U-Net: Convolutional Networks for Biomedical Image Segmentation
[3] ?i?ek, ?zgün, Ahmed Abdulkadir, Soeren S. Lienkamp, Thomas Brox, and Olaf Ronneberger. "3D U-Net: learning dense volumetric segmentation from sparse annotation." In International conference on medical image computing and computer-assisted intervention, pp. 424-432. Springer, Cham, 2016.
[4] Section for Biomedical Image Analysis (SBIA)
[5] Isensee, Fabian, Philipp Kickingereder, Wolfgang Wick, Martin Bendszus, and Klaus H. Maier-Hein. "No new-net." In International MICCAI Brainlesion Workshop, pp. 234-244. Springer, Cham, 2018.
[6] Xiao, Xiao, Shen Lian, Zhiming Luo, and Shaozi Li. "Weighted Res-UNet for High-Quality Retina Vessel Segmentation." In 2018 9th International Conference on Information Technology in Medicine and Education (ITME), pp. 327-331. IEEE, 2018.
[7] Guan, Steven, Amir Khan, Siddhartha Sikdar, and Parag V. Chitnis. "Fully Dense UNet for 2D Sparse Photoacoustic Tomography Artifact Removal." arXiv preprint arXiv:1808.10848 (2018).
[8] Ibtehaz, Nabil, and M. Sohel Rahman. "MultiResUNet: Rethinking the U-Net Architecture for Multimodal Biomedical Image Segmentation." arXiv preprint arXiv:1902.04049 (2019).
[9] Alom, Md Zahangir, Mahmudul Hasan, Chris Yakopcic, Tarek M. Taha, and Vijayan K. Asari. "Recurrent residual convolutional neural network based on u-net (r2u-net) for medical image segmentation." arXiv preprint arXiv:1802.06955 (2018).
[10] Oktay, Ozan, Jo Schlemper, Loic Le Folgoc, Matthew Lee, Mattias Heinrich, Kazunari Misawa, Kensaku Mori et al. "Attention U-Net: learning where to look for the pancreas." arXiv preprint arXiv:1804.03999 (2018).
總結
以上是生活随笔為你收集整理的图像分割的U-Net系列方法的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 启用LSI 2208阵列卡JBOD模式
- 下一篇: tcpdump详解
