基於弱監督深度學習的圖像分割方法綜述

本文是基於弱監督的深度學習的圖像分割方法的綜述,闡述了弱監督方法的原理以及相對於全監督方法的優勢。

1 基礎概念

生活中,我們和周圍的事物都是有“標籤”的,比如人、杯子、天空等等。在不同的場景下,相同的事物可能對應了不同的標籤,比如長在地上的一片小草稱爲“草地”,長在花盆裏的很可能屬於“盆栽”,畫在畫中的又屬於“裝飾”。

如果把整幅圖像比作我們生活的世界,那麼具有相同“標籤”的像素就組成了我們和周圍的事物。圖像分割的任務就是給這些像素標註它們所對應的“標籤”,而這個標籤通常取決於這個像素所屬於的“整體”的類別。比如下圖中就被分割成了天空、植被、草地和大象。

當然,與生活中相似,根據分類方式的不同,一個像素可能屬於多種類別。比如下圖中組成椅子的像素,按照整體應標註爲“椅子”,細分下又屬於“椅背”,按照材料分又屬於“木頭”。

根據方法和任務的不同,圖像分割可以分成很多類。比如在只關心圖像主要內容的時候,類別可能只有兩類:前景(關心的內容)和背景(除前景之外的其他部分,即不關心的內容)。或者只關心可數的目標,比如行人、自行車、杯子等等;或只關心不可數目標,比如天空、草地、海洋等。由此,我們給出了下面兩種可能的分類方式:

- 按模型分類:根據實現分割的手段,圖像分割可以大致分爲傳統方法與基於深度學習的方法。前者依靠純數學公式推導實現分割,而後者則依靠深度學習結構(如神經網絡、隨機樹等)實現分割。

- 按任務分類:根據圖像分割的具體任務,又可以將其分爲語義分割(semantic segmentation)、實例分割(instance segmentation)與全景分割(panoptic segmentation)。

如上圖所示,語義分割是比較容易的一種,其要求的是對所有像素點進行類別標註,比如天空、車、杯子等,但是不區分相同類別的個體,即所有屬於“杯子”的像素點都被標註成相同的標籤。而實例分割比語義分割困難一些,其不僅要求要標註像素點,還要區分相同類別的不同實例,比如“這個杯子”和“那個杯子”。

但是實例分割受限其要求,通常都是對可數的物體進行分割,而在不可數內容上(比如草地、馬路等),要麼沒有分割,要麼屬於一個類別。當其將屬於某一個不可數類別的像素點都標註成相同標籤,而所有屬於可數類別的像素點按實例標註時,就成爲了所謂的全景分割(如下圖所示)。

本文中我們主要介紹基於深度學習的圖像分割方法,包括語義分割、實例分割和全景分割。

2 爲什麼要弱監督學習

像前面說過的,圖像分割的任務是對每個像素都進行標註。因此,在深度學習方法中,直觀上就需要所有的像素都有真值標註。不難看出,這個要求下,真值標註的生成是極度耗時耗力的,尤其是以人工標註的方式。比如,CityScapes數據庫,在精標條件下,一張圖片的標註就需要1.5個小時。如此一來,數據庫標註的成本可想而知。

基於此,許多研究人員就想到用弱監督的方式進行網絡訓練,從而降低標註成本。所謂弱監督,就是用更容易獲得的真值標註替代逐像素的真值標註,常見的輸入有image-level tags和bounding boxes。下圖給出的是這兩種標註的示例。

image-level tag:一張圖片對應一個標籤。如上圖,標籤爲“貓”。

bounding box:即用一個矩形框(2D)或長方體(3D)給出目標存在的位置及標籤。

可見,這兩種標註的獲得比逐個像素標註容易太多。具體來說,一個bounding box的標註只需要7秒,而一個image-level tag的標註只需要1秒,按照這種方式,CityScapes數據庫的標註時間將縮短30倍。

在弱監督算法中,有的網絡是直接利用這些標註作爲輸入;也有的網絡是在這些標註的基礎上生成部分像素點的標註,再進行全監督訓練。但無論哪種方式,都可見直接降低了標註成本。

3 常用的弱監督分割算法

說完了基本概念和必要性,下面我們從輸入的角度具體聊一下常用的弱監督分割算法有哪些。在分割任務中,常用的分割網絡有AlexNet、VGG、GoogleNet、ResNet和ReNet等,且通常藉助遷移學習和必要的數據處理及擴張實現較好的分割。這些方法和結構在弱監督分割算法中也非常常見。具體而言,分割任務中常用的方法有譯碼器(decoder)的變體;整合上下文信息的方法,如條件隨機場、擴張卷積、多尺度估計、特徵融合等。

下圖就是一個典型的編碼器-解碼器結構。

考慮到關於分割算法的綜述有許多,本文着重介紹弱監督分割算法中特殊的處理方法。針對不同任務需求,每種輸入下的算法都按照語義分割、實例分割進行歸納(前景分割被歸入語義分割中);而全景分割要同時完成兩種分割任務,因此單獨列出來。總體上,目前弱監督的語義分割研究成果比較多,但是實例分割與全景分割則要少很多。由於論文數量龐大,這裏每種場景僅列出一篇有代表性的論文作爲範例。

1. 基於image-level tags的分割算法

Image-level tags已經在前文給出了示例,可以看出這一種標註中主要包含的是相同類別之間的共性,但無法區分實例(比如所有的車都會被標註成“車”,而不會區分顏色、形狀、大小、牌子等等)。因此基於image-level tags的算法大多用於語義分割,或是具有語義分割功能的實例分割或全景分割算法。下面就按照分類介紹部分基於image-level tags的深度學習分割算法。

(1) 《Built-in Foreground/Background Prior for Weakly-Supervised Semantic Segmentation》

這篇論文中提出的方法,是利用目標標籤作爲語義分割訓練的先驗,從而實現更高精度的分割效果。爲了實現這個目的,這個方法中構建了一個預訓練網絡,其作用是給出前景像素點信息,而忽略背景信息。

下圖是具體的網絡結構。給定輸入圖像,網絡經過了一個典型的編碼器-解碼器結構,隨後通過一個條件隨機場(CRF)生成最後的mask。整個網絡的訓練只需要image-level tags就可以。

帶有內置前背景先驗的弱監督網絡結構,圖片來源於論文。

上圖是編碼器-解碼器神經網絡部分的完整結構,圖片來源於論文。該網絡結構是從VGG-16網絡結構來的,感受野128,步長8。

(2) 《Exploiting saliency for object segmentation from image level labels》

此前的研究已經證明,可以從image-level labels中提取不同目標的信息(如下圖所示)。

熱度圖(heatmap),圖片來源於論文。

但是從上面的熱度圖也可以看出,如果目標之間存在遮擋,那麼在沒有額外信息的情況下,獲取完整的目標就很困難了(固有的不適定問題)。

出於這個考慮,這篇論文中提出了一個可以提供輔助信息的模型。整個網絡的訓練只用到了image-level labels和saliency masks。下圖是標註和論文結果。

下圖是具體的網絡結構,可以看出,輔助信息與分割網絡是並行的,共同用於計算最後的損失。圖片來源於論文。

2. 基於bounding boxes的分割算法

Bounding boxes是目標識別中常用的一種標註方式。現在許多算法已經能夠實現很高精度的bounding boxes檢測了,因此COCO Challenge等許多比賽已經取消了bounding boxes爲輸出的部分,而是更多關注於像素級的分割任務。

儘管如此,bounding boxes作爲一種能夠有效區分不同實例的標註方式,既包含了語義信息,也包含了實例信息。因此,bounding boxes被廣泛應用於分割任務中,尤其是實例分割與全景分割。

(1) 語義分割

《Image Segmentation with A Bounding Box Prior》

這篇論文放在這裏作爲一個基準,是微軟2009年提出的一種基於傳統手段的前景分割方法。在此之前,儘管bounding box被廣泛利用與圖像分割任務中,但是大多數算法只是用其排除外部信息或有時用於初始化能量函數。

這篇論文中提出bounding box可以作爲一種強大的拓撲先驗(topological prior),既可以防止模型過度萎縮(分割小於前景目標的區域),也可以確保bounding box就足夠用於分割任務了。論文用包含在全局能量最小化框架內的強約束表達此先驗,從而構造一個NP-hard的完整程序。

下圖左邊是沒有先驗的分割結果,右邊是有先驗的分割結果。圖片來源於論文。

下面的公式是將tightness prior融入圖割(gruph cut framework)而得到的integer program(IP):

論文隨後還介紹了一種可能的優化策略,包括linear relaxation和一種新的graph cut算法(稱作pinpointing)。後者既可以作爲fractional LP solution的舍入法(rounding method,效果比閾值方法好),也可以作爲獨立的快速啓發式搜索(fast standalone heuristic)。下圖是pinpointing的結果,圖片來源於論文。

下圖是論文中的算法與其他算法的實驗結果比較,圖片來源於論文。可以看出,在人的頭部附近和植物枝幹附近,這篇論文中的算法具有明顯優勢。

(2) 實例分割

《DeepCut: Object Segmentation from Bounding Box Annotations using Convolutional Neural Networks》

這篇論文提出了一種給定弱標註的實例分割方法。其將微軟研究院提出的GrabCut進行擴展,可以實現給定bounding boxes的神經網絡分類器訓練。該論文將分類問題視爲在稠密連接的條件隨機場下的能量最小化問題,並通過不斷迭代實現實例分割。

論文中還提出了一些DeepCut方法的變體,並將它們與其它算法在弱監督條件下進行了比較。值得注意的是,該算法在解決大腦和肺的兩個問題上已經得到了實驗,精度還不錯(使用的數據庫是fetal magnetric resonance dataset)。下圖是基本的DeepCut網絡結構,圖片來源於論文。

下圖是實驗結果,圖片來自於論文。

3. 全景分割

《Weakly- and Semi-Supervised Panoptic Segmentation》

這篇文章介紹了一種基於弱監督的全景分割(實例分割加語義分割)的網絡結構,目前在CityScapes上面語義分割與實例分割都是第一。論文中其實主要提出的是一種可以通過image-level tags和bounding boxes生成像素點標註的方法,當然這個方法無法標註全部的像素點的真值,但是按照前文所提到的理論,這些像素點的個數已經足夠支撐網絡的訓練。同時,真值會隨着網絡結構的不斷訓練,逐漸完善。下圖是真值標註的完善過程,圖片來源於論文。

結果示例,圖片來源於論文。

論文效果,圖片來源於論文。

總結

通過這篇文章,我們瞭解了什麼是圖像分割及其種類,什麼是圖像分割中的弱監督訓練,以及常用的方法。簡而言之,弱監督訓練就是用更少、更容易獲得的真值標註,替代逐像素的真值標註,從而在降低標註成本的基礎上,維持較高水平的分割。

目前,隨着分割領域的不斷髮展,語義分割與實例分割逐漸融合,全景分割正在成爲新的主流趨勢。至於如何用好弱監督標籤,怎麼實現高精度的全景分割,就靠各位了。

參考鏈接

[1] A. Bansal, X. Chen, B. C. Russell, et al. Pixelnet: Representation of the pixels, by the pixels, and for the pixels[C].CoRR, 2017.

[2] Saleh F., Aliakbarian M.S., Salzmann M., et al. Built-in Foreground/Background Prior for Weakly-Supervised Semantic Segmentation[C]. ECCV, 2016, vol 9912.

[3] S. J. Oh, R. Benenson, A. Khoreva, et al. Exploiting saliency for object segmentation from image level labels[C]. CVPR, 2017.

[4] V. S. Lempitsky, P. Kohli, C. Rother, et al. Image

segmentation with a bounding box prior[C]. ICCV 2009: 277–284.

[5] M. Rajchl, M. C. H. Lee, O. Oktay, et al. Deepcut: Object segmentation from bounding box annotations using convolutional neural networks[J]. IEEE transactions on Medical Imaging, 2017, 36(2): 674–683.

[6] Q. Li, A. Arnab, and P. H. S. Torr. Weakly- and semi-supervised panoptic segmentation[C]. ECCV, 2018: 106–124.

[7] C. Rother, V. Kolmogorov, and A. Blake. Grabcut: interactive foreground extraction using iterated graph cuts[J]. ACM Transactions on Graphics, 2004, 23(3): 309–314.

作者介紹

孫叔橋,公衆號“有三AI”作者。該公號聚焦於讓大家能夠系統性地完成AI各個領域所需的專業知識的學習。

原文鏈接

https://mp.weixin.qq.com/s/USOWECXk_az4b6eTssfOBw

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章