語義分割(semantic segmentation)
/ sih-MAN-tik seg-men-TAY-shun /
語義分割為圖像裡每一個像素分類。它不是給整張圖一個標籤,也不是在物體周圍畫框,而是生成一張彩色的地圖:每個像素都被標上它屬於什麼——這個像素是道路、那個是天空、那些是樹、這些是人。結果看起來就像有人按類別仔細地把照片塗了一遍,沒有一個像素被漏掉。這是回答圖像中「什麼在哪裡」最精細的方式。
和邊界框相比,這是精度上的一次飛躍。圍住一條蜿蜒道路的框會把草地、天空和車都框進去;分割則描出道路精確而不規則的輪廓。正是這份精度,讓它驅動了自動駕駛(可行駛車道究竟在哪裡?)、醫學影像(哪些像素是腫瘤、哪些是健康組織?)、衛星分析(森林還是農田),以及照片的背景摳除。模型訓練所用的圖像,是人類一個像素一個像素辛苦標註出來的——這種又慢又貴的工作,正是該領域的主要瓶頸。
關鍵的局限就藏在「語義」這個詞裡。它標出每個像素「是什麼」,卻不區分是「哪一個」。如果三個人肩並肩站著,語義分割會把他們全塗成同一種「人」的顏色,連成一團——它沒法告訴你那裡有三個人,也分不出一個人在哪兒結束、下一個從哪兒開始。把一個個個體分開,是另一個更難的任務,叫實例分割。所以語義分割擅長處理「物質」(天空、草地、道路),在「數清一個個東西」這件事上則較弱。
把一張街景圖餵給分割模型,你會得到一張重新上色的圖:道路是灰色、天空是藍色、樹是綠色、所有行人是紅色。在街角等待的三個人是一整片連續的紅色區域——這張地圖知道他們是「人」,卻不知道他們是三個分開的人。
每個像素都被賦予一個類別——但相鄰的同類像素會融成一團。
語義分割回答的是「這個像素屬於哪個類別?」,而不是「屬於哪一個物體?」。它無法數數,也無法把同類、相互接觸的東西分開。如果你需要區分一個個獨立的物體,那要用實例分割——一個截然不同、也更難的任務。