基於弱監督深度學習的圖像分割方法
本文主要介紹基於深度學習的圖像分割方法,即語義分割、實例分割和全景分割。
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》2018
文章介紹了一種基於弱監督的全景分割(實例分割加語義分割)的網絡結構,目前在CityScapes上面語義分割與實例分割效果都是第一。文中其實主要提出的是一種可以通過image-level tags和bounding boxes生成像素點標注的方法,當然這個方法無法標注全部的像素點的真值,但是按照前文所提到的理論,這些像素點的個數已經足夠支撐網絡的訓練。同時,真值會隨着網絡結構的不斷訓練,逐漸完善,下圖是真值標注的完善過程:
論文,結果示例:
4 總結一下
本文了解了什么是圖像分割及其種類,什么是圖像分割中的弱監督訓練,以及常用的方法。簡而言之,弱監督訓練就是用更少、更容易獲得的真值標注,替代逐像素的真值標注,從而在降低標注成本的基礎上,維持較高水平的分割。隨着分割領域的技術的不斷發展,語義分割與實例分割逐漸融合,全景分割正在成為新的主流趨勢。
學習內容來源於網絡
原創見 微信公眾號: