全景分割这一年,端到端之路
機器之心原創
作者:朱艷芳
編輯:邱陸陸
圖像分割(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 算法來使得兩個任務更好的融合。
?
本文為機器之心原創,轉載請聯系本公眾號獲得授權。
?------------------------------------------------
加入機器之心(全職記者 / 實習生):hr@jiqizhixin.com
投稿或尋求報道:content@jiqizhixin.com
廣告 & 商務合作:bd@jiqizhixin.com
總結
以上是生活随笔為你收集整理的全景分割这一年,端到端之路的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在测试集上训练,还能中CVPR?这篇IE
- 下一篇: 基于PyTorch的GAN框架Torch