影像分割(image segmentation)任務的定義是:根據某些規則將圖片分成若干個特定的、具有獨特性質的區域,並提出感興趣目標的技術和過程。
目前影像分割任務發展出了以下幾個子領域:語義分割(semantic segmentation)、例項分割(instance segmentation)以及今年剛興起的新領域全景分割(panoptic segmentation)。
而想要理清三個子領域的區別就不得不提到關於影像分割中 things 和 stuff 的區別:影像中的內容可以按照是否有固定形狀分為 things 類別和 stuff 類別,其中,人,車等有固定形狀的物體屬於 things 類別(可數名詞通常屬於 things);天空,草地等沒有固定形狀的物體屬於 stuff 類別(不可數名詞屬於 stuff)。
語義分割更注重「類別之間的區分」,而例項分割更注重「個體之間的區分」,以下圖為例,從上到下分別是原圖、語義分割結果和例項分割結果。語義分割會重點將前景裡的人群和背景裡樹木、天空和草地分割開,但是它不區分人群的單獨個體,如圖中的人全部標記為紅色,導致右邊黃色框中的人無法辨別是一個人還是不同的人;而例項分割會重點將人群裡的每一個人分割開,但是不在乎草地、樹木和天空的分割。
全景分割可以說是語義分割和例項分割的結合,下圖是同一張原圖的全景分割結果,每個 stuff 類別與 things 類別都被分割開,可以看到,things 類別的不同個體也被彼此分割開了。
目前用於全景分割的常見公開資料集包括:MSCOCO、Vistas、ADE20K 和 Cityscapes。
COCO 是微軟團隊公佈的可以用來影像 recognition、segmentation 和 captioning 的資料集,主要從複雜的日常場景中擷取,主要有 91 個類別,雖然類別比 ImageNet 少很多,但每一類的影像很多。
Vistas 是全球最大的和最多樣化的街景影像資料庫,以幫助全球範圍內的無人駕駛和自主運輸技術。
ADE20K 是一個可用於場景感知、分割和多物體識別等多種任務的資料集。相比於大規模資料集 ImageNet 和 COCO,它的場景更多樣化,相比於 SUN,它的影像數量更多,對資料的註釋也更詳細。
Cityscapes 是一個包含 50 個城市街景的資料集,也是提供無人駕駛環境下的影像分割用的資料集。
連結如下:
COCO: http://mscoco.org/
Vistas: https://blog.mapillary.com/product/2017/05/03/mapillary-vistas-dataset.html
ADE20k: http://groups.csail.mit.edu/vision/datasets/ADE20K/
Cityscapes:https://www.cityscapes-dataset.com/
對於語義分割和例項分割任務,現在已經有了一些效果很好的模型,為研究者熟知的有語義分割的 FCN、Dilated Convolutions、DeepLab、PSPNet 等,例項分割的 SDS、CFM、FCIS、Mask R-CNN 等,而全景分割作為一個今年剛出現的概念,目前的相關研究仍然屈指可數。
今年一月,為了找到一種能將 stuff 和 things 同時分割開的演算法,Facebook 人工智慧實驗室(FAIR)的研究科學家何愷明和他的團隊提出了一個新的研究正規化:全景分割(Panoptic Segmentation,PS),定義了新的評價標準。
全景分割概念的提出:如何同時分割 stuff 和 things?
論文地址:https://arxiv.org/abs/1801.00868
何愷明這篇開創新領域的論文的主要創新包含以下兩點:
① 將語義分割和例項分割統一起來提出新的領域:全景分割;
② 定義新的評價指標。
針對語義分割和例項分割這兩個單獨的任務來說,現有一些專門的評價指標。
而作者認為沒有使用一個統一的指標(將這兩個任務聯合起來的評價指標)是研究者們通常孤立地研究 stuff 和 thing 分割的主要原因之一。因此,定義了一個新的評價指標 panoptic quality (PQ) metric,來評價全景分割演算法的好壞,PQ 的計算方式為:
給定 TP(樣本為正,預測結果為正)、FP(樣本為負,預測結果為正)和 FN(樣本為正,預測結果為負),則 PQ 的定義為:
其中 p 表示預測的 segment,ɡ表示 ground truth。
在這篇開創性的文章中,作者並沒有提出關於全景分割的新演算法,只是定義了新的問題,文章中關於全景分割的效果是通過將語義分割(PSPNet)與例項分割(Mask R-CNN)的結果聯合在一起得到的。作者只是定義了一個基於規則的將二者的預測結果結合在一起的方法。最後,文章還給出了兩個潛在的研究方向為後面的研究者提供參考,一是研究端到端的全景分割模型;二是研究如何更好的將語義分割與例項分割模型結合的演算法。
JSIS-Net:端到端的嘗試
今年 9 月,埃因霍芬理工大學的團隊使用共享的特徵提取器,提出了聯合語義與例項分割來得到全景分割的方法(a Joint Semantic and Instance Segmentation Network , JSIS-Net)。
論文地址:https://arxiv.org/abs/1809.02110
該網路的結構圖如下:
該演算法與何愷明團隊的做法是類似的,都是將語義分割與例項分割模型結合得到全景分割結果,只不過兩個模型採用共享特徵提取器來提取特徵,並且進行聯合訓練。基本網路結構採用 ResNet-50,將提取到的特徵同時輸入到語義分割和例項分割分支中,在語義分割分支中,首先採用 PSPNet 中的金字塔池化模組產生特徵圖,然後採用混合上取樣方法將預測的結果調整到輸入影像的大小;例項分割分支中採用的是 Mask R-CNN,最後也將這兩個模型得到的結果結合在一起得到全景分割的結果。
在將語義分割與例項分割的結果結合的過程中,有以下兩個問題需要解決:
一是:由於全景分割任務要求所有的分割結果都不能有重疊,所以如何處理例項分割結果產生的重疊是首先需要解決的問題,即對於一個處於兩個物體交疊部分的 things 類的畫素來說,可能有來自例項分割模型的兩個例項 id 標籤,那麼這時這個畫素應該分配給誰?
二是:在將語義分割與例項分割的結果聯合的過程中,由於 stuff 的分割只有來自語義分割的預測,而對 things 的預測,語義分割和例項分割兩部分都能產生預測,所以對於一個 things 類別的畫素來說,可能有來自語義分割和來自例項分割模型的兩個標籤,那麼當對這種情況兩個模型預測產生衝突時該如何如何解決?
對於第一個問題,何愷明團隊的做法是採用一種類似非極大值抑制的演算法(NMS-like)將重疊的分割結果去除掉;而埃因霍芬理工大學團隊的做法是計算重疊部分的畫素屬於各個例項的概率,並將其分配給那個概率最高的例項。
對於第二個問題,如果產生預測衝突,何愷明團隊的做法是將此標籤分配給 things 標籤及其對應的例項 id,而埃因霍芬理工大學團隊的做法是,首先將語義分割結果中得到的 things 類都刪除掉,並且用語義分割結果預測的最有可能的 stuff 類代替它們,這樣就使得語義分割的結果只有 stuff 類,然後用例項分割的 things 類的結果來替換語義分割結果中屬於 things 類的畫素。
JSIS-Net 的主要貢獻在於,應用端到端學習的思想來聯合進行語義分割和例項分割預測,從而最終預測全景分割輸出。作者在最後的結論中表明這種網路雖然可以 work,但是效果比何愷明團隊提出的基本方法的效果還差。
如何在沒有足夠的全景分割標註資料的情況下,習得全景分割模型
今年 11 月份,牛津大學的團隊提出了弱監督全景分割模型:
論文地址:https://arxiv.org/abs/1808.03575
code 地址:https://github.com/qizhuli/Weakly-Supervised-Panoptic-Segmentation
這是首個利用弱監督方式訓練得到全景分割效果的模型,文章中也沒有提出新的關於全景分割的模型,採用的模型是《Pixelwise Instance Segmentation with a Dynamically Instantiated Network》論文中的模型,網路結構如下:
這篇文章的主要特點如下:
① 對於僅有 bounding boxes 註釋的影像,也可以將影像中的 stuff 類和 things 類很好的區分出來。
② 對於上面提到的全景分割得到的 segments 不能有重疊的問題,這篇論文很好的解決了此問題,它不會預測出任何的 overlap,其解決辦法是:對於影像中的所有畫素,在沒有可靠註釋的情況下,該模型首先採用弱監督(weak supervision)和影像先驗(image priors)來使影像中畫素的一個子集去逼近 ground-truth,然後,使用這個畫素子集的估計標籤來訓練網路。逼近 ground-truth 的方法是:只對那些確定的畫素分配標籤,並將剩餘的畫素集標記為「忽略」區域。
TASCNet:端到端實現
12 月份,豐田研究院也提出了端到端的全景分割模型 TASCNet:
論文地址:https://arxiv.org/abs/1812.01192
這篇文章針對何愷明提出的兩個研究方向都進行研究,既設計了一個 end-to-end 的全景分割模型,也提出了一個新演算法可以更好的將語義分割與例項分割模型結合。網路結構如下:
和所有的網路一樣,TASCNet 也用了深度網路提取特徵,它使用的是 ResNet-50 和 FPN 作為 backbone,使用 FPN 能夠從 backbone 網路的更深處捕獲低階特徵,這樣可以識別更多的物件。
這篇文章的創新主要在於它提出了一個新的演算法(Things and Stuff Consistency, TASC),用於在訓練過程中保持語義分割和例項分割這兩個子任務的輸出分佈之間對齊(alignment)。作者認為雖然語義分割與例項分割這兩個分支都使用的是同一個 backbone 網路訓練得到的特徵,但是由於這兩個任務在註釋上的細微差別以及其他因素的影響,會使得這兩個分支 drift apart,而全景分割的任務是使得全域性最優,所以採用 TASC 演算法來使得兩個任務更好的融合。