語義分割 是什麼?
Semantic Segmentation:語義分割 的完整解釋
對圖像中每個像素進行類別標記,將整張圖像分解為具有語義意義的區域的電腦視覺任務。
語義分割(Semantic Segmentation)是電腦視覺領域中最精細的圖像理解任務之一,要求模型對圖像中的每一個像素都做出類別判斷,而非僅識別圖像整體(分類)或標記物件邊界框(偵測)。
任務層次比較
電腦視覺的圖像理解任務從粗到細可分為:
- 影像分類(Image Classification):判斷整張圖像屬於什麼類別(狗/貓)
- 物件偵測(Object Detection):標記圖中每個物件的邊界框(Bounding Box)與類別
- 語義分割(Semantic Segmentation):對每個像素分類,但同類物件共用標籤
- 實例分割(Instance Segmentation):不僅分類每個像素,還區分同類別的不同個體
- 全景分割(Panoptic Segmentation):語義分割與實例分割的統一框架
主要模型架構演進
全卷積網路(FCN, Fully Convolutional Network) FCN(2015)是語義分割的開創性工作,將 VGG 等分類網路的全連接層替換為卷積層,實現端對端的像素級預測。透過反捲積(Transposed Convolution)進行上採樣,輸出與輸入等尺寸的分割圖。
編解碼架構(Encoder-Decoder) U-Net(2015,醫療影像)與 SegNet 採用對稱的編解碼結構:編碼器(Encoder)逐步縮小特徵圖提取語義,解碼器(Decoder)逐步放大還原空間分辨率。U-Net 的跳躍連接(Skip Connection)將編碼器的高分辨率特徵與解碼器的高語義特徵結合,保留細節邊界。
擴張卷積(Dilated/Atrous Convolution) DeepLab 系列(DeepLabv1 至 DeepLabv3+)引入擴張卷積,在不縮減特徵圖分辨率的情況下擴大感受野(Receptive Field),避免多次池化造成的空間信息損失。DeepLabv3+ 結合 ASPP(Atrous Spatial Pyramid Pooling)捕捉多尺度上下文。
Transformer-based 架構 SegFormer(2021)與 Mask2Former(2022)將視覺 Transformer(ViT)的自注意力機制引入語義分割,透過全局注意力捕捉長距離像素關係。Mask2Former 提出統一框架,同時支援語義、實例與全景分割。
SAM(Segment Anything Model) Meta AI 於 2023 年發布的 SAM 以大規模預訓練支援零樣本(Zero-shot)的通用分割,透過互動式提示(點擊、框選、文字)生成分割掩碼,顯著降低了語義分割在新場景中的部署門檻。
關鍵技術挑戰
- 類別不平衡:背景像素往往遠多於前景物件像素,訓練時需使用 Focal Loss、Dice Loss 或加權交叉熵。
- 邊界精度:小物件與細長物件(如柵欄、電線)的邊界難以精確分割。
- 遮擋與細小物件:被遮擋或像素極少的物件難以正確分類。
- 計算效率:像素級預測的計算量遠高於圖像分類,實時應用(如自動駕駛)需要輕量化架構(如 BiSeNet、Fast-SCNN)。
評估指標
- 像素準確率(Pixel Accuracy):正確分類的像素比例(對類別不平衡不敏感,不推薦單獨使用)
- 平均交並比(mIoU, mean Intersection over Union):各類別 IoU 的平均值,IoU = 真陽性 / (真陽性 + 假陽性 + 假陰性),是語義分割的主流評估指標
- Dice Coefficient:2×TP / (2×TP + FP + FN),在醫療影像中常用,等同於 F1 Score 的像素版本
應用場景
- 自動駕駛:區分道路、車道線、行人、車輛、障礙物,用於路徑規劃與碰撞避免
- 醫療影像:腫瘤分割、器官定位(CT、MRI)、視網膜病變識別
- 衛星遙感:土地覆蓋分類、農田識別、洪水範圍監測
- 工業品質檢測:識別產品表面的缺陷區域
- 增強現實(AR):場景理解用於虛擬物件融合
- 圖像編輯:自動摳圖與背景替換(如手機的人像模式)
中英對照與常見說法
| 說法 | 出現場合 |
|---|---|
| 語義分割、語意分割 | 台灣兩種寫法都常見 |
| 语义分割 | 簡體寫法 |
| Semantic Segmentation | 英文原名 |
| 像素級分類 | 描述它在做什麼的說法 |
三種分割任務的差別
| 任務 | 做什麼 | 同類的兩個物件 |
|---|---|---|
| 語義分割 | 每個像素分到一個類別 | 不區分,兩個人都標成「人」這一類 |
| 實例分割(instance segmentation,实例分割) | 每個像素分到一個類別且區分個體 | 區分,人 1 與人 2 分開 |
| 全景分割(panoptic segmentation) | 前兩者合併 | 可數物件區分個體,天空道路這類不可數的只分類別 |
判斷該用哪一種,看你需不需要「數得出來」。計算車流量、追蹤個別行人要用實例分割;判斷可行駛區域、算植被覆蓋率用語義分割就夠。
跟物件偵測的差別則是輸出形狀:偵測給的是矩形框,分割給的是逐像素的遮罩。斜放的長條物體、樹枝、道路這類形狀,矩形框裡大半是背景,分割才描述得準。
主要架構
全卷積網路(FCN) 是起點,把分類網路最後的全連接層換成卷積,讓輸出保持二維空間結構。
U-Net是最廣為使用的架構,尤其在醫療影像。它的編碼器逐層下採樣抓語意、解碼器逐層上採樣還原解析度,並用跳接(skip connection)把編碼器同層的細節直接送到解碼器。這解決了分割最核心的矛盾:要判斷是什麼需要大範圍的語意,要定位邊界需要高解析度的細節,跳接讓兩者都保得住。
DeepLab 系列 用空洞卷積(dilated convolution)在不降低解析度的前提下擴大感受野,並用多尺度的空洞空間金字塔池化處理大小差異很大的物件。
Transformer 類(SegFormer、Mask2Former)近年在多數基準上領先,靠的是全域注意力帶來的長距離脈絡。
評估與資料的實務要點
主要指標是 mIoU(mean Intersection over Union):每個類別各算預測遮罩與標準答案的交集除以聯集,再取所有類別的平均。
類別不平衡是常態。 一張街景圖裡道路與天空佔掉大半像素,交通號誌可能只佔千分之一。用純像素準確率評估會嚴重誤導,這也是評估一定要用 mIoU 而不是準確率的原因。訓練時則常用加權交叉熵或 Dice 損失來補償。
標註成本極高。 逐像素標一張街景圖可能要一小時以上,這是分割資料集普遍偏小的原因,也是自監督預訓練與合成資料在這個任務上特別有價值的原因。