【CVPR2020】Semi-Supervised Semantic Image Segmentation with Self-correcting Networks

今天和大家分享一篇CVPR2020的文章——Semi-Supervised Semantic Image Segmentation with Self-correcting Networks,CVPR2020放榜不久,有很多新鮮的內容引人關注,據說這篇論文在2018年就初具雛形,直到今年才正式發表,所以我們來一起來看一下這篇論文。
在這裏插入圖片描述

Abstract 摘要

使用高質量對象構建大型圖像數據集語義分割的掩碼昂貴且耗時。 在本文中,介紹了一種有原則的半監督框架,該框架僅使用一小組完全監督的圖像(具有語義分割標籤和檢測框標籤:Boundingbox+mask)和一組僅具有對象邊界框標籤的圖像(具有檢測框標籤:Boundingbox)。 我們框架藉助一個輔助模型(該模型爲弱集生成初始分割標籤)和一個自校正模塊來訓練主分割模型,該模塊使用越來越精確的主模型在訓練過程中改善了生成的標籤。 我們使用線性或卷積函數介紹了自校正模塊的兩種變體。 在PASCAL VOC 2012和Cityscape數據集上進行的實驗表明,我們訓練的帶有小型全監督集合的模型的性能類似於或優於訓練有大型的完整監督集合的模型,而所需的標註工作卻減少了約7倍。

一般認爲,圖像級的標註是弱標註(例如圖像分類的類別標註),像素級的標註是強標註(例如分割標註的mask標註),對於普通的分割任務來說,數據是圖像,標註是mask,這屬於完全監督問題Supervised;如果標註是annotations或者圖像級標註,這屬於弱監督問題Weakly-supervised;如果標註只有少部分是mask,剩餘是annotations或者圖像級標註,這屬於半監督問題Semi-supervised。

Introduction 介紹

當前最新的半監督方法通常依賴手工製作(hand-crafted) 的方法來推斷邊界框內的對象蒙版(object mask)。

  • Weakly-and semi-supervised learning of a deep convolutional network for semantic image segmentation:在DeepLab_v1的基礎上提出了一種基於期望最大化的(EM)算法,以估計弱圖像集的分割標籤(僅包含框信息)。在每個訓練步驟中,都以EM方式根據網絡輸出估算細分標籤。
  • Simple does it: Weakly supervised instance and semantic segmentation:提出了一種迭代訓練方法,該方法可以在生成區域建議(來自一組固定建議)和微調網絡之間進行切換。
  • Boxsup: Exploiting bounding boxes to supervise convolutional networks for se- mantic segmentation:使用迭代算法,但依賴GrabCut和手工提取規則來提取每次迭代中的分割蒙版。

本文中的框架稱爲自校正分割模型,因爲它基於其當前的對象蒙版概率模型(probabilistic model of object masks)改善了弱監督標籤。目前這些弱監督信息主要包括了bounding boxes,scribbles,points,image labels等,主要方式如下圖:
在這裏插入圖片描述
本文中提供了兩種自校正機制,一種是使用的函數將輔助預測和模型預測線性地組合在一起,簡單有效的方法是最小化加權Kullback Leibler(KL)從分割標籤到輔助模型和主模型的分佈的自然結果,另一種是使用CNN來學習如何結合輔助模型和主要模型來預測弱圖像集上的分割,這種方式可以消除對於權重加權的計劃。

Method 方法

本篇論文的主要目的是:在半監督的設置下(小部分的全監督數據+大多部分將測框數據集),訓練一個分割網絡,主要結構如下圖:
在這裏插入圖片描述
本篇論文的結構主要分爲三個部分或者模塊:

  • Primary segmentation model:金字塔分割模型,生成語義分割結果,以Deeplabv3+爲基礎;
  • Ancillary segmentation model:輔助分割模型,在給一張圖像和bbox的前提下產生分割結果,以Deeplabv3+爲基礎;
  • Self-correction module:自校正模塊,優化了由輔助模型和當前主模型針對弱集產生的分割結果;

Ancillary Segmentation Model 輔助分割模型

在帶有邊界框註釋的分段模型的半監督訓練中,關鍵的挑戰是推斷對象在框內的分割。而目前以後的方法一般是基於手工提取(hand-crafted),例如Crubcut。這樣的手工提取一般迴帶來如下的問題:1)邊界框信息未直接用於提取分割mask,2)該過程可能是手工設計的,可能不是最佳選擇,3)當多個框重疊時,分割過程變得模棱兩可。
在這篇論文中,通過設計了輔助分割模型(ancillary segmentation model) 來避免上述問題,輔助分割模型在image+bounding box annotation的數據及標註條件下,可以形成像素級別的標籤分佈。此外,還利用了域訓練模型和將bounding box嵌入到多尺度網絡層級裏面參加訓練等方式來提高模型的準確率和遷移學習能力,結構如下圖所示。
在這裏插入圖片描述
Bounding box Encoder:是一個基於3x3卷積和sigmoid激活函數的編碼器;通過Encoder會生成tensor,看作是attention map以逐元素乘法(element-wise multiple)的方式加入到原圖像的tensor中,上圖是展示了在Deeplabv3+中兩個尺度的添加方式。對於每個尺度,生成一個attention map,使用逐元素乘法將其與相應的特徵圖融合,然後饋送到解碼器。因爲有C類,所以生成C+1類的二值mask。輔助分割模型用交叉熵損失來約束。

Self-correction module自校正模塊

No self-correction module 無自校正模塊

通過結果觀察到:輔助分割模型的性能優於沒有框信息的分割模型。這主要是因爲邊界框信息指導輔助分割模型在推理時在bounding box內查找對象。最簡單的訓練初步模型的方法是:在全監督數據集F上使用真值標籤來預測和在弱集W上通過輔助分割模型來生成標籤。
在這裏插入圖片描述

Linear self-correction module 線性自校正模塊

在無自校正模塊的情景下,分割模型只作用在全監督數據集F上,並沒有作用在弱集W上。Vahdat 引入了一種正則化的期望最大化算法,該算法使用KL散度的線性組合來推斷一般分類問題中缺失標籤的分佈。線性自校正模型也運用了這個靈感,主要思想是所推斷的標籤分佈和輔助模型的標籤分佈以及主模型的標籤分佈都是相近的。
在這裏插入圖片描述
當α趨近於無窮的時候,推斷更符合輔助標籤的分佈。線性自校正模型,因爲它使用KL散度的線性組合的解決方案來推斷潛在分割標籤的分佈。由於在訓練過程中優化了主要模型的參數,所以α將自校正機制偏向於主要模型。

Convolutional self-correction module 卷積自校正模塊

在linear self-correction module裏面有一個超參數α需要微調和設定,爲了克服這一難題,我們將linear self-correction module換成了convolutional self-correction module卷積自校正模塊。
在這裏插入圖片描述
卷積自校正子網絡由兩個卷積層組成。 這兩層都使用3×3內核和ReLU激活。 第一層具有128個輸出FM,第二層具有基於類別數量的FM。這裏的挑戰是訓練該子網,使更準確地預測分段標籤。 爲此,我們在目標函數中引入了一個附加體系,即在整個數據集中對主要模型進行訓練時,使用F中的訓練示例來訓練子網。
在這裏插入圖片描述
由於卷積子網絡的訓練是隨機初始化的,因此無法在訓練過程中及早準確預測W上的分段標籤。 爲了克服這個問題,我們提出以下預訓練過程:
1.初始化輔助模型:與以前的自校正模型一樣,我們需要訓練輔助模型,完全監督集F的一半用於此目的。
2.初始化訓練自校正網絡:全監督數據F用於訓練基本模型和卷積自校正網絡。
3.主要訓練:整個數據F和W用於使用目標函數i對以前的模型進行微調。

Experience 實驗

文中的實驗是在PASCAL VOC 2012和城市街景數據集上做的,所有的數據集都含有分割標籤和標註框標註。把數據集模擬成一個少部分全監督和一個大部分是弱監督的數據集。訓練:將Deeplabv3+做爲主要的模型,在4卡上Tensorflow的框架上做的,使用了Xception-65的域訓練模型,lr=0.007,batchsize=4。
在這裏插入圖片描述

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