天天看點

Unet(2D Unet&3D Unet)和Vnet——圖像分割2D U-net3D U-net。V-net

參考部落格:

https://blog.csdn.net/qq_36484003/article/details/108874913

https://blog.csdn.net/weixin_41424926/article/details/103105801

代碼參考:

https://github.com/liyun-lu/unet_and_vnet

目錄

2D U-net

3D U-net。

V-net

2D U-net

以全連接配接卷積神經網絡為基礎設計的。

創新點:上采樣,下采樣,U型結構,短接通道(skip connection)

Unet(2D Unet&3D Unet)和Vnet——圖像分割2D U-net3D U-net。V-net

下采樣:傳統的特征提取路徑,簡稱壓縮路徑,将特征壓縮成由特征組成的特征圖。

上采樣:經過複原路徑,簡稱擴充路徑,将提取的特征圖解碼為和原來圖像尺寸一緻的分割後的預測圖像。

另外,copy and crop 即大紅色箭頭所指的操作,是為了降低壓縮路徑中圖像資訊的丢失,将壓縮後的特征圖疊加在擴充路徑上同尺寸大小的特征圖上,再進行卷積核上采樣操作,以此來整合更多資訊進行圖像分割。

結構了解如是:從左上方開始到右上方結束就是一個完整的Unet路徑。

左側第1層stage1-----輸入572*572*1的單通道圖像,經過藍色箭頭3*3的卷積核的卷積,Relu激活,變為570*570*64的64通道圖像(n-f+1=572-3+1=570)。同理,變為568*568*64的64通道圖像。

在stage1結束後,經過紅色箭頭最大池化2*2,圖像尺寸縮小一倍,得到284*284*64的64通道圖像。然後進入左側第2層stage2,每次圖像尺寸縮小一倍,特征圖的通道數要擴大一倍,經過藍色箭頭3*3的卷積核的卷積,Relu激活,變為282*282*128。同理,變為280*280*128的128通道圖像。

..................

直到左側的第5層stage5,即最底層,此時完成了壓縮路徑,此時特征圖大小為28*28*1024。然後開始右側的擴充路徑。

經過綠色箭頭2*2的反卷積(轉置卷積),可以将圖像尺寸擴大一倍,同時特征圖的通道數縮小一倍,得到56*56*512的圖像。再疊加上從壓縮路徑第4個stage池化前的特征圖複制過來的,組合成56*56*1024的圖像。這裡疊加的特征圖是為了降低壓縮路徑中圖像資訊的損失。再經過藍色箭頭的兩次卷積,得到52*52*512的512通道圖像,512是強制得到的嗎??目前我是這麼了解的,不對之處麻煩批評指正。

以此類推,上采樣,卷積,最後得到388*388*2的2通道圖像,之是以是2 是因為作者做的是前景和後景的分類,如果是多分類,改成相應的類的數目即可。

(這裡還有個問題,為什麼輸入的是572*572的圖像,輸出的卻是388*388的圖像?

答:這裡作者在預處理圖像時用了一個小技巧“Overlap-tile”。如圖所示,實際要分割的是左圖中黃色的區域,如果隻用黃色區域分割,那麼黃色的邊緣效果肯定會很差,故為了保證邊緣分割效果,輸入圖像的尺寸要稍微比原圖像大一些,就是藍色區域。如果藍色區域超越了原始圖像的邊緣,也不能用0-padding來填充,而是要使用鏡像方式進行padding,這樣至少能保留細胞輪廓的完整性。

是以,藍色區域就是572*572,黃色區域就是388*388。在完成下一個黃色區域的預測時,藍色區域會有所重合,是以成為Overlap-tile

Unet(2D Unet&3D Unet)和Vnet——圖像分割2D U-net3D U-net。V-net

3D U-net。

創新點:将2D Unet的2D操作換成3D操作

Unet(2D Unet&3D Unet)和Vnet——圖像分割2D U-net3D U-net。V-net

2D U-net和3D U-net差別:通道數翻倍的時刻和反卷積操作不同。

(1)在2D U-net中,通道數翻倍的時刻是在下采樣後的第一次卷積時;在3D U-net中,通道數翻倍的時刻是在下采樣或上采樣前的卷積中。

(2)對于反卷積操作,2D U-net中通道數減半,而3D U-net中通道數不變。

(3)另外,3D U-net還使用batch normalization來加快收斂和避免網絡結構的瓶頸。

V-net

此模型是針對3D圖像提出來的。

創新點:1、引入殘差,在每個stage中,Vnet采用了ResNet的短路連接配接方式(水準方向的殘差連結使用element-wise);2、卷積層代替上采樣和下采樣的池化層。

Unet(2D Unet&3D Unet)和Vnet——圖像分割2D U-net3D U-net。V-net

V-Net 就是對U-net的一個變形。此時的資料集可以直接用3D資料集。最後輸出的也是單通道的3D資料。是以在這個論文裡做的是二分類問題,是以他們采用了醫學圖像常用的Dice loss。

另外,咋下采樣和上采樣時不是采用的最大池化和反卷積,而是使用的卷積和反卷積。

假設A是預測出的所有前景像素集合,B是ground truth的前景像素集合

Unet(2D Unet&3D Unet)和Vnet——圖像分割2D U-net3D U-net。V-net

如果想要多分類,則需要将通道數更改下。

繼續閱讀