在計算機視覺中,圖像分割是個非常重要且基礎的研究方向。簡單來說,圖像分割(image segmentation)就是根據某些規則把圖片中的像素分成不同的部分(加不同的標籤)。

圖像分割中的一些常見的術語有:superpixels(超像素)、Semantic Segmentation(語義分割)、Instance Segmentation(實例分割)、Panoptic Segmentation(全景分割)。他們之間到底有什麼區別呢?如果你對這幾個術語非常了解了,那麼恭喜你!可以直接把文章拖到結尾,順手點個廣告,就可以返回了(笑)。

不過很多剛接觸這個領域的同學有點搞不太清楚上面的區別,那麼跟我一起來學習一下吧!

superpixels(超像素)

第一次聽說這個超像素很容易理解錯誤,以為是在普通的像素基礎上繼續像微觀細分,如果這樣理解就恰好理解反了,其實超像素是一系列像素的集合,這些像素具有類似的顏色、紋理等特徵,距離也比較近。用超像素對一張圖片進行分割的結果見下圖,其中每個白色線條區域內的像素集合就是一個超像素。需要注意的是,超像素很可能把同一個物體的不同部分分成多個超像素。

超像素最早的定義來自2003年 Xiaofeng Ren等人的一篇論文《Learning a Classification Model for Segmentation》。

其中超像素中比較常用的一種方法是SLIC(simple linear iterative clustering),是Achanta 等人2010年提出的一種思想簡單、實現方便的演算法,將彩色圖像轉化為CIELAB顏色空間和XY坐標下的5維特徵向量,然後對5維特徵向量構造距離度量標準,對圖像像素進行局部聚類的過程。SLIC演算法能生成緊湊、近似均勻的超像素,在運算速度,物體輪廓保持、超像素形狀方面具有較高的綜合評價,比較符合人們期望的分割效果。

Semantic Segmentation(語義分割)

語義分割還是比較常見的,就是把圖像中每個像素賦予一個類別標籤(比如汽車、建築、地面、天空等),比如下圖就把圖像分為了草地(淺綠)、人(紅色)、樹木(深綠)、天空(藍色)等標籤,用不同的顏色來表示。

不過這種分割方式存在一些問題,比如如果一個像素被標記為紅色,那就代表這個像素所在的位置是一個人,但是如果有兩個都是紅色的像素,這種方式無法判斷它們是屬於同一個人還是不同的人。也就是說語義分割只能判斷類別,無法區分個體。

但很多時候我們更需要個體信息,想要區分出個體怎麼辦呢?繼續往下看吧

Instance Segmentation(實例分割)

實例分割方式有點類似於物體檢測,不過物體檢測一般輸出的是 bounding box,實例分割輸出的是一個mask。

實例分割和上面的語義分割也不同,它不需要對每個像素進行標記,它只需要找到感興趣物體的邊緣輪廓就行,比如下圖中的人就是感興趣的物體。該圖的分割方法採用了一種稱為Mask R-CNN的方法。我們可以看到每個人都是不同的顏色的輪廓,因此我們可以區分出單個個體。

Panoptic Segmentation(全景分割)

最後說說全景分割,它是語義分割和實例分割的結合。如下圖所示,每個像素都被分為一類,如果一種類別里有多個實例,會用不同的顏色進行區分,我們可以知道哪個像素屬於哪個類中的哪個實例。比如下圖中黃色和紅色都屬於人這一個類別里,但是分別屬於不同的實例(人),因此我們可以通過mask的顏色很容易分辨出不同的實例。

現在是不是對這幾個術語瞭然於胸了呢!

關注公眾號:計算機視覺life,第一時間接收消息

推薦閱讀:

查看原文 >>
相关文章