1. 程式人生 > >掃盲記-第四篇--弱監督深度學習的圖像分割

掃盲記-第四篇--弱監督深度學習的圖像分割

不錯 約束 tin 比賽 耗時 全局 ram 編碼器 tps

學習內容來源於網絡

原創見 微信公眾號: 有三AI https://mp.weixin.qq.com/s/USOWECXk_az4b6eTssfOBw

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

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

1 基礎概念

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

技術分享圖片

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

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

技術分享圖片

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

按模型分類:根據實現分割的手段,圖像分割可以大致分為傳統方法

基於深度學習的方法。前者依靠純數學公式推導實現分割,而後者則依靠深度學習結構(如神經網絡、隨機樹等)實現分割。

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

技術分享圖片

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

,比如“這個杯子”和“那個杯子”。

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

技術分享圖片

2 為什麽要弱監督學習

如前所述,圖像分割的任務是對每個像素都進行標註。因此,在深度學習方法中,直觀上就需要所有的像素都有真值標註。不難看出,在這個要求下,真值標註的生成是極度耗時耗力的,尤其是以人工標註的方式。比如,CityScapes數據庫,在精標條件下,一張圖片的標註就需要1.5個小時。如此一來,數據庫標註的成本可想而知。基於此,許多研究人員就想到用弱監督的方式進行網絡訓練,從而降低標註成本。

所謂弱監督,就是用更容易獲得的真值標註替代逐像素的真值標註,常見的輸入有image-level tagsbounding boxes下圖給出的是這兩種標註的示例:

技術分享圖片

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

技術分享圖片

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

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

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

3 常用的弱監督分割算法

以上描述了基本概念,接下來從輸入的角度梳理常用的弱監督分割算法。在分割任務中,常用的分割網絡有AlexNetVGGGoogleNetResNetReNet等,且通常借助遷移學習和必要的數據處理及擴張實現較好的分割。這些方法和結構在弱監督分割算法中也非常常見。具體而言,分割任務中常用的方法有譯碼器(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 Segmentation2018

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

技術分享圖片

論文,結果示例:

技術分享圖片

技術分享圖片

4 總結一下

本文了解了什麽是圖像分割及其種類,什麽是圖像分割中的弱監督訓練,以及常用的方法。簡而言之,弱監督訓練就是用更少、更容易獲得的真值標註,替代逐像素的真值標註,從而在降低標註成本的基礎上,維持較高水平的分割。隨著分割領域的技術的不斷發展,語義分割與實例分割逐漸融合,全景分割正在成為新的主流趨勢

掃盲記-第四篇--弱監督深度學習的圖像分割