昨天分享的 U-Net 特色就是它的 Upsampling 和 Skip Connection 結構,可以為影像分割任務帶來顯著的性能提升,使得模型能夠在處理像素級別的細節時保持穩健性,但同時 U-Net 也有存在一些限制
那今天的主角 UNet++ 就有對上述這些限制做處理
從名稱來看就可以知道是 U-Net 的升級版,它是由不同深度的 U-Net 組成的,這些 U-Net 子網路會部分共享一個編碼器,但每個 U-Net 子網路會有自己的解碼器,為了要能讓這些 U-Net 子網路同時訓練,UNet++ 使用了深度監督,也就是會監督每一層的輸出
此外,為了確保不同深度的 U-Net 之間的資訊能夠流通,UNet++ 對 Skip Connection 做了微調,它讓 Skip Connection 不僅使用於編碼器和解碼器之間,還使用於不同解碼器之間,這樣,對於某個解碼器單元來說,只要它不是位於最淺的那個 U-Net,它都可以接收來自下一層的同一個解碼器單元、同一層中其他比它更淺的 U-Net 的解碼器單元,以及同一層編碼器單元的資訊
(a) UNet++ 由一個編碼器和解碼器組成,它們會連接一系列巢狀的 dense convolutional blocks
(b) UNet++ 的第一個 skip pathway 的詳細分析
(c) 如果使用深度監督進行訓練,就可以在推論時對 UNet++ 進行修剪(pruning),以減少模型的大小
UNet++ 跟 U-net 相比有以下不同之處:
UNet++: A Nested U-Net Architecture for Medical Image Segmentation