天天看點

用語義分割突破邊界框

我們應該如何描述一個場景?我們可以說窗戶下面有一張桌子,或者沙發右邊有一盞燈。了解圖像的關鍵就是:将場景分解成一個個單獨的實體,這也有助于我們了解對象的行為。

對象檢測有助于繪制某些實體周圍的邊界框。但人類想要對場景有真正的了解,還需要能夠以像素級精度對每個實體的邊界進行檢測和标記。随着我們開始建構無人駕駛汽車和智能機器人,而這些就需要細緻了解周圍環境,是以,繪制邊界框也變得越來越重要。

什麼是語義分割? 語義分割

是一項計算機視覺任務,我們将視覺輸入的不同部分分成不同的語義解釋類。“語義解釋”,也就是說,這些類具有某些真實世界的含義。例如,我們可能想要擷取屬于汽車類别的圖像的所有像素,并将其着色為藍色。

用語義分割突破邊界框

雖然聚類等無監督算法可用于分割,但并不适用于語義分割。這些方法不會對他們接受過訓練的類别上進行分割,而是更廣義上找到區域的邊界,

參見Thoma et al.2016

相對于圖像分類和對象檢測,語義分割更有助于我們更詳細地了解圖像。這種詳細的了解在很多領域都非常重要,包括無人駕駛、機器人和圖像搜尋引擎等。 本文将使用深度學習進行監督語義分割。

資料集和度量标準

常用于訓練語義分割模型的資料集包括:

1

.Pascal VOC 2012

資料集:包含20個對象類别,包括Person,Vehicle和其他類别。目标是分割對象類或背景。

2.

Cityscapes

資料集:包含50個城市的語義城市場景的了解。

3.

Pascal Context

資料集:包含400多個類别的室内和室外場景。

4.

Stanford Background

資料集:包含至少有一個前景對象的室外場景集。

用語義分割突破邊界框

評估語義分割算法性能的一個度量标準是平均交并比IOU(Intersection Over Union),其中,IOU定義如下:

用語義分割突破邊界框

這個度量标準確定了我們能夠捕捉到每個對象(使預測标簽與真是對象重疊),并且,也能夠做到精确(使之盡可能的接近重疊)。

管道(Pipeline)

用于語義分割模型的管道通常如下:

用語義分割突破邊界框

下面,我們将進一步讨論管道的分類器(Classifier )和後處理(Post-Processing )階段。

模型架構和方法 用卷積神經網絡進行分類

現在,語義分割架構通常使用卷積神經網絡(CNN)為每個像素配置設定一個初始類别标簽。卷積層可以有效地捕捉圖像中的局部特征,并以分層的方式嵌套許多這樣的層,試圖提取更廣泛的結構特征。通過使用能夠捕捉圖像中越來越複雜特征的連續卷積層,CNN可以将圖像編碼為其内容的緊湊表示。

為了将各個像素映射為類别标簽,我們需要将标準CNN編碼器擴充為編碼-解碼器。在這裡,編碼器使用卷積層和池化層将圖像的寬度和高度縮小為較低維表示(representation);解碼器收到該表示,通過上采樣(通過轉置卷積)“恢複”空間次元,進而在每步解碼中擴充表示的大小。在某些情況下,編碼器的中間步驟有助于幫助解碼。最終,解碼器會生成一個表示原始圖像标簽的數組。

用語義分割突破邊界框

在許多語義分割架構中,CNN希望最小化的損失函數是交叉熵損失。該目标函數測量每個像素的預測機率分布(在類别上)與實際機率分布之間的距離。

然而,語義分割的交叉熵損失并不理想。由于圖像的最終損失僅僅是每個像素的損失之和,是以交叉熵損失并不會使附近的像素保持一緻。因為交叉熵損失不能在像素之間施加更進階别的架構,是以使交叉熵損失最小化的标簽通常不完整或模糊,并且後續也需要進行處理。

用條件随機場優化

CNN産生的原始标簽通常是“斑點”圖像,其中有些小區域可能有與其周圍像素标簽不比對的錯誤标簽。為了解決這一不連續性,可以采用一種平滑方法。我們希望這樣能夠確定對象占據圖像中的連通區域,并且給定的像素可能與其大多數鄰居具有相同的标簽。

為了解決這一問題,一些模型架構使用

條件随機場(CRF)

,它使用原始圖像中的像素相似性對CNN的标簽進行細化。

用語義分割突破邊界框

條件随機場是一個随機變量的圖形。在這種情況下,每個頂點代表

1.某個像素的CNN标簽(綠色頂點Xi)

2.某個像素的實際對象标簽(黃色頂點Yi)

邊緣編碼兩種類型的資訊:

1.藍色框:兩個像素的實際對象标簽之間的依賴性實體上彼此接近。

2.紅色框:CNN的原始預測與給定像素的實際對象标簽之間的依賴性。

每個依賴性都與一個勢函數相關聯,勢函數是一個有兩個相關随機變量值的函數。例如,當相鄰像素的實際對象标簽相同時,第一種依賴性可能就有較高的可能性。直覺上來說,對象标簽用作隐藏變量,能夠根據某種機率分布産生可觀察的CNN像素标簽。

為了使用CRF來改進标簽,首先使用交叉驗證對帶有訓練資料的圖形模型的參數進行學習。然後,我們修改參數将機率

P(Y ,Y ,... Y n  | X ,X ,... X

最大化。CRF推斷的輸出是原始圖像像素的最終對象标簽。

實際上,CRF圖形是完全連接配接的,這就意味着,實體上距離較遠像素的節點之間仍然可以共享邊緣。這樣的圖形具有數十億個邊緣,使得精确的推斷在計算上難對其進行處理。CRF架構傾向于使用高效的近似技術進行推理。

分類器的架構

CNN分類和CRF細化僅僅是語義分割過程的一個例子。一些研究論文已經對這方面進行了論述:

U-Net(2015)

通過生成原始訓練資料的失真版本,對其訓練資料進行增強。這使CNN編碼-解碼器能夠抵抗這種變形,并從更少的訓練圖像中進行學習。在少于40張的生物醫學資料集圖像上進行訓練時,其IOU值仍高至92%。

DeepLab(2016)

将CNN編碼-解碼器與CRF細化相結合,來生成對象标簽(作者重點介紹了解碼中的上采樣)。空洞卷積(Dilated Convolutions)在每個層使用不同大小的濾波器,使得每個層都可以捕捉各種不同比例的特征。在Pascal VOC 2012測試裝置上,此架構的平均IOU為70.3%。

Dilation10(2016)

是空洞卷積的替代方法。完整的管道将空洞卷積“前端子產品”連接配接到上下文子產品和CRF-RNN,以便做進一步處理。Dilation10在Pascal VOC 2012測試裝置上的平均IOU為75.3%。

其他的訓練體系

本小節介紹現在主要的的偏離分類器和CRF模型的訓練方案。這些方法并不是由單獨的元件和優化組成,而是一些端到端的方法。

完全可微的條件随機場 Zheng

等人的CRF-RNN模型介紹了一種方法:将分類和後處理合并為單一端到端模型,可以共同優化兩個圖形。是以,模型可自動學習類似于CRF高斯核心權重的參數——将推理逼近算法中的步驟用卷積表示來實作,并且通過使用遞歸神經網絡(RNN)來對推理算法的完全疊代進行模組化。

用語義分割突破邊界框
對抗訓練

對抗訓練有助于提高高階一緻性。受生成對抗網絡(GAN)的啟發,

Luc等人

訓練了一個标準CNN(用于語義分割)和對抗網絡(嘗試學習區分标記過的真實資料分割和分割網絡的預測)。分割網絡旨在産生分割,而這種分割是對抗網絡無法從真實分割中區分開來的。

在這裡,我們希望分割看起來能夠盡可能貼近真實。如果其他網絡很容易将預測與實際情況分開,那麼我們的預測就不夠好。

用語義分割突破邊界框
時間上的分割

我們如何對未來的對象進行預測?為了實作這一點,可以通過對場景中的連續分割進行模組化。這比較适用于機器人或無人駕駛場景,其中對物體的運動進行模組化對計劃有用。

的文章表明,直接預測未來語義分割,比先預測未來幀再進行分割的性能要好。他們使用自回歸模型,使用過去的分割來預測下一個分割St + 1。然後使用Si和St + 1預測下一個分割St + 2。

用語義分割突破邊界框

他們對模型在不同時間尺度上的表現進行了對比:在Cityscapes資料集上,預測模型在下一幀、未來0.5秒和未來10秒上的性能。結果顯示,模型在10s的時間尺度上表現不佳,但在下一幀和未來0.5s的時間尺度上表現較好。總體來說,該方法在性能上要比由基于光流的經典技術組成的

基線方法

好的多。

總結

這些方法(如U-Net)基本上都遵循一個基本結構:采用深度學習(卷積網絡)進行預處理,再用經典機率技術對其輸出做後處理。盡管卷積網絡的原始輸出可能不完美,但後處理能夠更好的使用與人類直覺相比對的分割,輸出“好的”标簽。

其餘的方法(如對抗學習),可以作為語義分割的端到端解決方案。與前面介紹的CRF步驟不同,端到端技術不需要手動對各個元件進行模組化,來完善原始預測。由于端到端解決方案的性能更加優于多級管道方法,未來的研究可能會越來越多地關注端到端算法。

數十款阿裡雲産品限時折扣中,趕緊點選領劵開始雲上實踐吧!

以上為譯文。

本文由北郵

@愛可可-愛生活

 老師推薦,

阿裡雲雲栖社群

組織翻譯。

文章原标題《Going beyond the bounding box with semantic segmentation》,譯者:Mags,審校:袁虎。 文章為簡譯,更為詳細的内容,請檢視 原文

繼續閱讀