AI-For-Beginners/translations/zh-TW/lessons/4-ComputerVision/12-Segmentation
localizeflow[bot] fea04feb77 chore(i18n): sync translations with latest source changes (chunk 8/8, 60 changes) 2026-01-30 01:25:06 +00:00
..
lab chore(i18n): sync translations with latest source changes (chunk 8/8, 60 changes) 2026-01-30 01:25:06 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 8/8, 60 changes) 2026-01-30 01:25:06 +00:00
SemanticSegmentationPytorch.ipynb chore(i18n): sync translations with latest source changes (chunk 8/8, 60 changes) 2026-01-30 01:25:06 +00:00
SemanticSegmentationTF.ipynb chore(i18n): sync translations with latest source changes (chunk 8/8, 60 changes) 2026-01-30 01:25:06 +00:00

README.md

分割

我們之前學過物件偵測,它可以透過預測物件的邊界框來定位影像中的物件。然而,對於某些任務,我們不僅需要邊界框,還需要更精確的物件定位。這項任務被稱為分割

課前測驗

分割可以被視為像素分類,即對影像中的每個像素進行分類,並預測其所屬的類別(背景也是其中一個類別)。主要有兩種分割算法:

  • 語義分割僅告訴像素的類別,並不區分同一類別中的不同物件。
  • 實例分割將類別分成不同的實例。

例如,在實例分割中,這些羊是不同的物件;但在語義分割中,所有的羊都被表示為同一類別。

圖片來源:這篇部落格文章

有許多不同的神經網路架構可用於分割,但它們的結構都相似。某種程度上,它類似於你之前學過的自編碼器,但我們的目標不是解構原始影像,而是解構一個遮罩。因此,分割網路包含以下部分:

  • 編碼器:從輸入影像中提取特徵。
  • 解碼器:將這些特徵轉換為遮罩影像,其大小與通道數與類別數相對應。

圖片來源:這篇出版物

我們特別需要提到分割中使用的損失函數。在使用傳統自編碼器時我們需要測量兩個影像之間的相似性可以使用均方誤差MSE來完成。在分割中目標遮罩影像中的每個像素代表類別編號在第三維度上進行獨熱編碼因此我們需要使用特定於分類的損失函數——交叉熵損失並對所有像素進行平均。如果遮罩是二元的則使用二元交叉熵損失BCE

獨熱編碼是一種將類別標籤編碼為向量的方法,其向量長度等於類別數。可以參考這篇文章了解這項技術。

醫學影像中的分割

在本課中,我們將通過訓練網路來識別醫學影像中的人類痣(也稱為痣),以實現分割。我們將使用PH2資料庫的皮膚鏡影像作為影像來源。該資料集包含200張影像分為三類典型痣、不典型痣和黑色素瘤。所有影像也包含相應的遮罩,用於勾勒痣的輪廓。

這項技術特別適合這類醫學影像,但你能想到其他現實世界中的應用嗎?

navi

圖片來源PH2資料庫

我們將訓練一個模型,將任何痣從背景中分割出來。

✍️ 練習:語義分割

打開以下筆記本,了解不同的語義分割架構,練習使用它們,並觀察它們的實際效果。

課後測驗

結論

分割是一種非常強大的影像分類技術,超越了邊界框,實現了像素級的分類。它在醫學影像等領域有著廣泛的應用。

🚀 挑戰

人體分割只是我們可以對人物影像進行的常見任務之一。其他重要任務包括骨架偵測姿勢偵測。試試OpenPose庫,看看姿勢偵測的應用。

回顧與自學

這篇維基百科文章提供了該技術各種應用的良好概述。自行學習實例分割和全景分割在該領域的子領域。

作業

在本次實驗中,使用 Segmentation Full Body MADS Dataset 資料集,嘗試進行人體分割