U型網路 是什麼?

U-Net:U型網路 的完整解釋

U-Net是一種用於圖像分割的深度學習模型,其架構呈U型,包含編碼器和解碼器,能有效捕捉圖像的上下文資訊和精確定位分割邊界。

容易混淆

U-Net vs 圖像分類 U-Net 要標出每個像素 圖像分類只要給整張圖一個標籤 最關鍵的區別:像素級和整張圖級

U-Net vs 自編碼器 U-Net 也有編碼和解碼 但它重視分割結果,不只是還原輸入 最關鍵的區別:任務目的不同

U-Net vs 一般 CNN U-Net 會保留更多中間層細節 一般 CNN 常一路壓到最後做分類 最關鍵的區別:有沒有把細節接回來

記住這句就好

左邊壓縮看全局,右邊放大畫邊界。

實際案例

醫學影像 在 CT 或超音波裡標出器官或病灶範圍,醫師就能更快檢查

工業檢測 在產品照片裡圈出刮痕或瑕疵區域,比只判斷有沒有瑕疵更實用

算法與應用

| 編碼器 | 把影像壓縮成高層特徵 | 負責看全局 | | 解碼器 | 把特徵放大回像素圖 | 負責畫細節 | | 跳躍連接 | 把高解析度資訊接回來 | 能減少邊界損失 | | 分割輸出 | 每個像素都有類別 | 這是 U-Net 的核心結果 |

U-Net 的形狀就是它的名字

U-Net 畫出來是一個 U 字形,左邊往下、右邊往上,中間有橫向的線把兩側接起來。三個部分各有職責。

左半邊,收縮路徑(contracting path)。 標準的卷積加池化,逐步降低解析度、增加通道數。這一邊負責「這是什麼」,也就是抽取語意。

底部,瓶頸(bottleneck)。 解析度最低、語意最強的地方。

右半邊,擴張路徑(expansive path)。 逐步上採樣把解析度放大回原尺寸,最後輸出一張跟輸入同樣大小的分割圖,每個像素都有一個類別。

中間的跳接(skip connection)。 這是 U-Net 最關鍵的設計。左邊每一層的特徵圖會直接接到右邊對應解析度的那一層,串接(concatenate)在一起。

為什麼需要跳接:下採樣過程中位置精度會流失,光靠上採樣還原不出邊界。左邊淺層保留了精確的邊界資訊,接過來之後右邊才能畫出貼合的輪廓。這也是 U-Net 分割邊界特別銳利的原因。

為什麼它在醫療影像上特別受歡迎

它是為了少量標註資料設計的。 醫療影像的標註要專業醫師逐像素畫,資料量天生就少。U-Net 原始論文用的訓練集只有 30 張影像,靠大量彈性形變的資料增強就達到當時最好的結果。

輸出跟輸入同尺寸,逐像素分類。 醫療上要的是「腫瘤在哪裡、多大」,不是「有沒有腫瘤」,所以需要的正是分割而不是分類。

結構簡單、參數量不大。 好訓練、好調整、也容易改。

後來的變體很多:3D U-Net 處理電腦斷層與磁振造影這類立體資料,Attention U-Net 在跳接上加注意力篩選有用的特徵,nnU-Net 則是自動依資料特性決定所有超參數的框架,長年在各種醫療分割競賽上表現領先。

用途也早就超出醫療:衛星影像地物分割、工業瑕疵檢測、影像修補,甚至擴散模型的去噪網路,骨架都是 U-Net。

情境判斷

Q1(直覺題):你要在顯微鏡照片裡圈出細胞輪廓,應該想到它嗎? → 應該,因為這就是典型的影像分割任務。

Q2(判斷題):如果你只想判斷照片裡有沒有病灶,還一定要用 U-Net 嗎? → 不一定,單純分類任務用一般 CNN 可能就夠了。

相關術語

常見問題

U-Net 只適合醫學影像嗎?

不是,任何需要像素級分割的任務都可能用到。

它為什麼叫 U-Net?

因為整個編碼與解碼的路徑畫出來像字母 U。

跳躍連接為什麼重要?

它把早期的細節資訊送回解碼端,讓邊界更準。