Paper:UNet++: A Nested U-Net Architecture for Medical Image Segmentation
u-net網絡的基本拓撲結構
目前最先進的圖像分割模型是各種個同樣的 encoder-decoder架構,他們具有一個關鍵的相似性:skip connections,它可以將編碼器子網絡的深度、語義、粗粒度的特征映射與來自編碼器子網絡的淺層、低級、細粒度的特征映射相結合。
在恢復目標對象的細粒度細節方面,skip connections時非常有用的。
U-NET++網絡是為了解決醫學圖像分割的精確性問題,從而提出的一種新的基于嵌套密集跳躍連接的分割體系結構。
上圖為U-NET++網絡結構的基本模型圖
圖a 表示U-NET++網絡的基本架構,我們可以看出U-Net++網絡也是由編碼器和解碼器組成,與U-NET不同的是U-Net++的由編碼器和解碼器通過一系列嵌套的密集卷積塊連接,也就是圖中綠色代表的區域。UNet++背后的主要思想是在融合之前彌合編碼器和解碼器的特征映射之間的語義鴻溝。例如,(X0,0,X1,3)之間的語義鴻溝是使用一個具有三個卷積層的密集卷積塊來橋接的。另外,在圖形摘要中,黑色表示原始的U-NET網絡,綠色和藍色表示在跳躍路徑上有密集的卷積塊,紅色表示deep supervision。紅色、綠色和藍色的組件將UNet++與U-Net區分開來。
圖b詳細分析了UNet++的第一個skip pathway
圖C展示了在深度監督情況下U-NET++的剪枝
接下來說一下U-NET++網絡中的Re-designed skip pathways,也就是在圖a中綠色的區域。它主要用于轉換編碼器和解碼器之間的連通性。在之前的U-NET網絡中,編碼器和解碼器是通過長連接直接進行特種映射的,而在U-NET++中,作者通過一個密集的卷積塊將編碼器與解碼器連接了起來。
形式上,我們可以表示為以下結構,令xi,jx^{i,j}xi,j的輸出,其中i為沿編碼器向下采樣層的索引,j為沿skip pathways的稠密塊卷積層的索引。由xi,jx^{i,j}xi,j表示的特征映射的堆棧計算為
其中函數H(·)為激活函數后的卷積運算,U(·)為上采樣層,[]為級聯層。
具體實例我們可以看圖b。
U-NET++在深度監督下能夠運行兩種模式:
1)精確模式,對所有分割分支的輸出求平均值
2)快速模式,最終的分割圖只從一個分割分支中選擇,其選擇決定了模型修剪的程度和速度增益。圖1c顯示了快速模式下分割分支的選擇是如何導致不同復雜度的架構的。
另外,作者給出了一個損失函數公式,如下圖:
其中Y^b\widehat{Y}_bYb?是預測概率,YbY_bYb?是真實數據。 N代表 the batch size。
U-NET++與最初的U-Net在三個方面有所不同:
1)在 skip pathways 上有卷積層(綠色表示),連接編碼器和解碼器特征圖之間的語義鴻溝;
2)在 skip pathways 上有密集的 skip connections (如藍色所示),提高了梯度流動性;
3)有 deep supervision (紅色表示),它支持模型修剪和改進。
效果對比:
上圖為 U-Net, wide U-Net and UNet++ with and without deep supervision (DS) UNET++的分割結果(IoU: %)
上圖為對剪枝后的UNet++的復雜性、速度和準確性進行的測試結果,其中(a)代表細胞核(b)代表結腸息肉?代表肝臟(d)代表肺結節。
可以看到剪枝過后的網絡推演速度變快了,但是準確率會相應的降低。
code :https://github.com/MrGiovanni/UNetPlusPlus