綜述論文翻譯:A Review on Deep Learning Techniques Applied to Semantic Segmentation

綜述論文翻譯:A Review on Deep Learning Techniques Applied to Semantic Segmentation

近期主要在學習語義分割相關方法,計劃將arXiv上的這篇綜述好好翻譯下,目前已完成了一部分,但僅僅是尊重原文的直譯,後續將繼續完成剩餘的部分,並對文中提及的多個方法給出自己的理解。

論文地址:https://arxiv.org/abs/1704.06857

應用於語義分割問題的深度學習技術綜述

摘要

計算機視覺與機器學習研究者對圖像語義分割問題越來越感興趣。越來越多的應用場景需要精確且高效的分割技術,如自動駕駛、室內導航、甚至虛擬現實與增強現實等。這個需求與視覺相關的各個領域及應用場景下的深度學習技術的發展相符合,包括語義分割及場景理解等。這篇論文回顧了各種應用場景下利用深度學習技術解決語義分割問題的情況:首先,我們引入了領域相關的術語及必要的背景知識;然後,我們介紹了主要的數據集以及對應的挑戰,幫助研究者選取真正適合他們問題需要及目標的數據集;接下來,我們介紹了現有的方法,突出了各自的貢獻以及對本領域的積極影響;最後,我們展示了大量的針對所述方法及數據集的實驗結果,同時對其進行了分析;我們還指出了一系列的未來工作的發展方向,並給出了我們對於目前最優的應用深度學習技術解決語義分割問題的研究結論。

引言

如今,語義分割(應用於靜態2D圖像、視頻甚至3D數據、體數據)是計算機視覺的關鍵問題之一。在宏觀意義上來說,語義分割是爲場景理解鋪平了道路的一種高層任務。作爲計算機視覺的核心問題,場景理解的重要性越來越突出,因爲現實中越來越多的應用場景需要從影像中推理出相關的知識或語義(即由具體到抽象的過程)。這些應用包括自動駕駛[1,2,3],人機交互[4],計算攝影學[5],圖像搜索引擎[6],增強現實等。應用各種傳統的計算機視覺和機器學習技術,這些問題已經得到了解決。雖然這些方法很流行,但深度學習革命讓相關領域發生了翻天覆地的變化,因此,包括語義分割在內的許多計算機視覺問題都開始使用深度架構來解決,通常是卷積神經網絡CNN[7-11],而CNN在準確率甚至效率上都遠遠超過了傳統方法。然而,相比於固有的計算機視覺及機器學習分支,深度學習還遠不成熟。也因此,還沒有一個統一的工作及對於目前最優方法的綜述。該領域的飛速發展使得對初學者的啓蒙教育比較困難,而且,由於大量的工作相繼被提出,要跟上發展的步伐也非常耗時。於是,追隨語義分割相關工作、合理地解釋它們的論點、過濾掉低水平的工作以及驗證相關實驗結果等是非常困難的。

就我所知,本文是第一篇致力於綜述用於語義分割的深度模型技術的文章。已經有較多的關於語義分割的綜述調查,比如[12,13]等,這些工作在總結、分類現有方法、討論數據集及評價指標以及爲未來研究者提供設計思路等方面做了很好的工作。但是,這些文章缺少對某些最新數據集的介紹,他們不去分析框架的情況,而且沒有提供深度學習技術的細節。因此,我們認爲本文是全新的工作,而且這對於深度學習相關的語義分割社區有着重要意義。

圖 1 物體識別或場景理解相關技術從粗粒度推理到細粒度推理的演變:四幅圖片分別代表分類、識別與定位、語義分割、實例分割。

 

本文核心貢獻如下:

1)我們對於現有的數據集給出了一個全面的調查,這些數據集將會對深度學習技術推動的分割項目發揮作用;

2)我們對於多數重要的深度學習語義分割方法進行了深度有條理的綜述,包括他們的起源、貢獻等;

3)我們進行了徹底的性能評估,使用了多種評價指標如準確率、運行時間、內存佔用等;

4)我們對以上結果進行了討論,並給出了未來工作的一系列可能的發展方向,這些方向可能在未來的發展進程中取得優勢。我們還給出了該領域目前最好方法的總結。

 

本文剩餘部分安排:

第二章介紹了語義分割問題,同時引入了相關工作中常用的符號、慣例等。其他的背景概念如通用的深度神經網絡也在這章中回顧;

第三章介紹了現有的數據集、挑戰及實驗基準;

第四章回顧了現有方法,基於其貢獻自下而上排序。本章重點關注這些方法的理論及閃光點,而不是給出一個定量的評估;

第五章給出了一個簡短的對於現有方法在給定數據集上定量表現的討論,另外還有未來相關工作的發展方向;

第六章則總結全文並對相關工作及該領域目前最優方法進行了總結。

術語及背景概念

爲了更好地理解語義分割問題是如何用深度學習框架解決的,有必要瞭解到其實基於深度學習的語義分割並不是一個孤立的領域,而是在從粗糙推理到精細化推理過程中很自然的一步。這可以追溯到分類問題,包括對整個輸入做出預測,即預測哪個物體是屬於這幅圖像的,或者給出多個物體可能性的排序。對於細粒度推理來說,將接下來進行物體的定位與檢測,這將不止提供物體的類別,而且提供關於各類別空間位置的額外信息,比如中心點或者邊框。這樣很顯然,語義分割是實現細粒度推理的很自然的一步,它的目標是:對每個像素點進行密集的預測,這樣每個像素點均被標註上期對應物體或區域的類別。這還可以進一步改進,比如實例分割(即對同一類的不同實例標以不同的標籤),甚至是基於部分的分割(即對已經分出不同類別的圖像進行底層分解,找到每個類對應的組成成分)。圖1展示了以上提到的演變過程。在本文中,我們主要關注一般的場景標註,也就是像素級別的分割,但是我們也會回顧實例分割及基於部分的分割的較重要的方法。

最後,像素級別的標註問題可以鬆弛爲以下公式:對於隨機變量集合 中的每個隨機變量,找到一種方法爲其指派一個來自標籤空間 中的一個狀態。每個標籤 表示唯一的一個類或者物體,比如飛機、汽車、交通標誌或背景等。這個標籤空間有 個可能的狀態,通常會被擴展爲  +1個,即視 爲背景或者空的類。通常, 是一個二維的圖像,包含W*H=N的像素點x。但是,這個隨機變量的集合可以被擴展到任意維度,比如體數據或者超譜圖像

除了問題的定義,回顧一些可能幫助讀者理解的背景概念也是必要的。首先是一些常見的被用作深度語義分割系統的網絡、方法以及設計決策;另外還有用於訓練的一些常見的技術比如遷移學習等。最後是數據的預處理以及增強式的方法等。

2.1 常見的深度網絡架構

正如之前所講,某些深度網絡已經對該領域產生了巨大的貢獻,並已成爲衆所周知的領域標準。這些方法包括AlexNet,VGG-16,GoogLeNet,以及ResNet。還有一些是由於其被用作許多分割架構的一部分而顯得重要。因此,本文將在本章致力於對其進行回顧。

2.1.1 AlexNet

AlexNet(以作者名字Alex命名)首創了深度卷積神經網絡模型,在2012年ILSVRC(ImageNet大規模圖像識別)競賽上以top-5準確率84.6%的成績獲勝,而與之最接近的競爭者使用了傳統的而非深度的模型技術,在相同的問題下僅取得了73.8%的準確率。由Krizhecsky等人[14]給出的架構相對簡單,包括卷積層、max-pooling層及ReLU層各五層作爲非線性層,全連接層三層以及dropout層。圖2給出了這個架構的示意。

圖 2 文獻[14]中給出的AlexNet卷積神經網絡架構。

2.1.2 VGG

VGG是由牛津大學Visual Geometry Group提出的卷積神經網絡模型(以課題組的名字命名)。他們提出了深度卷積神經網絡的多種模型及配置[15],其中一種提交到了2013年ILSVRC(ImageNet大規模圖像識別)競賽上。這個模型由於由16個權重層組成,因此也被稱爲VGG-16,其在該競賽中取得了top-5上92.7%的準確率。圖3展示了VGG-16的模型配置。VGG-16與之前的模型的主要的不同之處在於,其在第一層使用了一堆小感受野的卷積層,而不是少數的大感受野的卷積層。這使得模型的參數更少,非線性性更強,也因此使得決策函數更具區分度,模型更好訓練。

 

圖 3  VGG-16卷積神經網絡模型架構,本圖經許可取自Matthieu Cord的演講。

2.1.3 GoogLeNet

GoogLeNet是由Szegedy等人[16]提出的在ILSVRC-2014競賽上取得top-5上93.3%準確率的模型。這個CNN模型以其複雜程度著稱,事實上,其具有22個層以及新引入的inception模塊(如圖4所示)。這種新的方法證實了CNN層可以有更多的堆疊方式,而不僅僅是標準的序列方式。實際上,這些模塊由一個網絡內部的網絡層(NiN)、一個池化操作、一個大卷積核的卷積層及一個小核的卷積層組成。所有操作均並行計算出來,而後進行1×1卷積操作來進行降維。由於這些模塊的作用,參數及操作的數量大大減少,網絡在存儲空間佔用及耗時等方面均取得了進步

圖 4 GoogLeNet框架中帶有降維的Inception模塊。

2.1.4 ResNet

微軟提出的ResNet[17]由於在ILSVRC-2016中取得的96.4%的準確率而廣受關注。除了準確率較高之外,ResNet網絡還以其高達152層的深度以及對殘差模塊的引入而聞名。殘差模塊解決了訓練真正深層網絡時存在的問題,通過引入identity skip connections網絡各層可以把其輸入複製到後面的層上。

本方法的關鍵想法便是,保證下一層可以從輸入中學到與已經學到的信息不同的新東西(因爲下一層同時得到了前一層的輸出以及原始的輸入)。另外,這種連接也協助解決了梯度消失的問題。

 

圖 5 ResNet中的殘差模塊。

2.1.5 ReNet

爲了將循環神經網絡RNN模型擴展到多維度的任務上,Graves等人[18]提出了一種多維度循環神經網絡(MDRNN)模型,將每個單一的循環連接替換爲帶有d個連接的標準RNN,其中d是數據的spatio-temporal維度。基於這篇工作,Visin等人[19]提出了ReNet模型,其不使用多維RNN模型,而是使用常見的序列RNN模型。這樣,RNN模型的數量在每一層關於d(輸入圖像的維數2d)線性增長。在ReNet中,每個卷積層(卷積+池化)被4個同時在水平方向與豎直方向切分圖像的RNN模型所替代,如圖6所示:

 

圖 6 ReNet架構中的一層,對豎直與水平方向的空間依賴性建模

2.2 遷移學習

從頭訓練一個深度神經網絡通常是不可行的,有這樣兩個原因:訓練需要足量的數據集,而這一般是很難得到的;網絡達到收斂需要很長的時間。即便得到了足夠大的數據集並且網絡可以在短時間內達到收斂,從之前的訓練結果中的權重開始訓練也總比從隨機初始化的權重開始訓練要好[20,21]。遷移學習的一種重要的做法便是從之前訓練好的網絡開始繼續訓練過程來微調模型的權重值。

Yosinski等人[22]證明了即便是從較不相關的任務中遷移學習來的特徵也要比直接從隨機初始化學習的特徵要好,這個結論也考慮到了隨着提前訓練的任務與目標任務之間差異的增大,可遷移性將減小的情況。

然而,遷移學習技術的應用並沒有如此的直接。一方面,使用提前訓練的網絡必須滿足網絡架構等的約束,不過,因爲一般不會新提出一個全新的網絡結構來使用,所以使用現有的網絡架構或網絡組件進行遷移學習是常見的;另一方面,遷移學習中的訓練過程本身相對於從頭開始的訓練過程來說區別非常小。合理選擇進行微調的層是很重要的,一般選網絡中較高的層因爲底層一般傾向於保留更加通用的特徵;同時,合理地確定學習率也是重要的,一般選取較小的值,因爲一般認爲提前訓練的權重相對比較好,無需過度修改。

由於收集和創建像素級別的分割標註數據集的內在的困難性,這些數據集的規模一般不如分類數據集如ImageNet[23,24]等的大。分割研究中數據集的規模問題在處理RGB-D或3D數據集時更加嚴重,因爲這些數據集規模更小。也因此,遷移學習,尤其是從提前訓練好的分類網絡中微調而來的方式,將會成爲分割領域的大勢所趨,並且已經有方法成功地進行了應用,我們將在後面幾章進行回顧。

2.3 數據預處理與數據增強

數據增強技術被證明了有利於通用的尤其是深度的機器學習架構的訓練,無論是加速收斂過程還是作爲一個正則項,這也避免了過擬合併增強了模型泛化能力[15]。

數據增強一般包括在數據空間或特徵空間(或二者均有)上應用一系列的遷移技術。在數據空間上應用增強技術最常見,這種增強技術應用遷移方法從已有數據中得到新的樣本。有很多的可用的遷移方法:平移、旋轉、扭曲、縮放、顏色空間轉換、裁剪等。這些方法的目標均是通過生成更多的樣本來構建更大的數據集,防止過擬合以及對模型進行正則化,還可以對該數據集的各個類的大小進行平衡,甚至手工地產生對當前任務或應用場景更加具有代表性的新樣本。

數據增強對小數據集尤其有用,而且其效用已經在長期使用過程中被證明。例如,在[26]中,有1500張肖像圖片的數據集通過設計4個新的尺寸(0.6,0.8,1.2,1.5),4個新的旋角(-45,-22,22,45),以及4個新的gamma變化(0.5,0.8,1.2,1.5)被增強爲有着19000張訓練圖像的數據集。通過這一處理,當使用增強數據集進行微調時,其肖像畫分割系統的交疊準確率(IoU)從73.09%提升到了94.20%。

數據集及競賽

以下兩種讀者應該閱讀本部分內容:一是剛剛開始研究本領域問題的讀者,再就是已經很有經驗但是想了解最近幾年其他研究者研究成果的可取之處的讀者。雖然第二種讀者一般很明確對於開始語義分割相關的研究來說數據集及競賽是很重要的兩個方面,但是對於初學者來說掌握目前最優的數據集以及(主流的)競賽是很關鍵的。因此,本章的目標便是對研究者進行啓發,提供一個對數據集的簡要總結,這裏面可能有正好他們需求的數據集以及數據增強或預處理等方面的技巧。不過,這也可以幫助到已經有深入研究的工作者,他們可能想要回顧基礎或者挖掘新的信息。

值得爭辯的是,對於機器學習來說數據是最重要的或者最重要的之一。當處理深度網絡時,這種重要性更加明顯。因此,收集正確的數據放入數據集對於任何基於深度學習的分割系統來說都是極爲重要的。收集與創建一個足夠大而且能夠正確代表系統應用場景的數據集,需要大量的時間,需要領域專門知識來挑選相關信息,也需要相關的基礎設施使得系統可以正確的理解與學習(捕捉到的數據)。這個任務的公式化過程雖然相比複雜的神經網絡結構的定義要簡單,但是其解決過程卻是相關工作中最難的之一。因此,最明智的做法通常是使用一個現存的足夠可以代表該問題應用場景的標準數據集。使用標準數據集還有一個好處就是可以使系統間的對比更加公平,實際上,許多數據集是爲了與其他方法進行對比而不是給研究者測試其算法的,在對比過程中,會根據方法的實際表現得到一個公平的排序,其中不涉及任何數據隨機選取的過程。

接下來我們將介紹語義分割領域最近最受歡迎的大規模數據集。所有列出的數據集均包含像素級別或點級別的標籤。這個列表將根據數據內在屬性分爲3個部分:2維的或平面的RGB數據集,2.5維或帶有深度信息的RGB(RGB-D)數據集,以及純體數據或3維數據集。表1給出了這些數據集的概覽,收錄了所有本文涉及的數據集並提供了一些有用信息如他們的被構建的目的、類數、數據格式以及訓練集、驗證集、測試集劃分情況。

表 1  常見的大規模分割數據集

3.1  2維數據集

自始至終,語義分割問題最關注的是二維圖像。因此,二維數據集在所有類型中是最豐富的。本章我們討論語義分割領域最流行的二維大規模數據集,這考慮到所有的包含二維表示如灰度或RGB圖像的數據集。

PASCAL視覺物體分類數據集(PASCAL-VOC[27] (http://host.robots.ox.ac.uk/pascal/VOC/voc2012/) : 包括一個標註了的圖像數據集和五個不同的競賽:分類、檢測、分割、動作分類、人物佈局。分割的競賽很有趣:他的目標是爲測試集裏的每幅圖像的每個像素預測其所屬的物體類別。有21個類,包括輪子、房子、動物以及其他的:飛機、自行車、船、公共汽車、轎車、摩托車、火車、瓶子、椅子、餐桌、盆栽、沙發、顯示器(或電視)、鳥、貓、狗、馬、綿羊、人。如果某像素不屬於任何類,那麼背景也會考慮作爲其標籤。該數據集被分爲兩個子集:訓練集1464張圖像以及驗證集1449張圖像。測試集在競賽中是私密的。爭議的說,這個數據集是目前最受歡迎的語義分割數據集,因此很多相關領域卓越的工作將其方法提交到該數據集的評估服務器上,在其測試集上測試其方法的性能。方法可以只用該數據集訓練,也可以藉助其他的信息。另外,其方法排行榜是公開的而且可以在線查詢。

PASCAL 上下文數據集PASCAL Context [28] (http://www.cs.stanford.edu/∼roozbeh/pascal-context/):對於PASCAL-VOC 2010識別競賽的擴展,包含了對所有訓練圖像的像素級別的標註。共有540個類,包括原有的20個類及由PASCAL VOC分割數據集得來的圖片背景,分爲三大類,分別是物體、材料以及混合物。雖然種類繁多,但是隻有59個常見類是較有意義的。由於其類別服從一個冪律分佈,其中有很多類對於整個數據集來說是非常稀疏的。就這點而言,包含這59類的子集常被選作真實類別來對該數據集進行研究,其他類別一律重標爲背景。

 

PASCAL 部分數據集PASCAL Part[29] (http://www.stat.ucla.edu/∼xianjie.chen/pascal part dataset/pascal part.html):對於PASCAL-VOC 2010識別競賽的擴展,超越了這次競賽的任務要求而爲圖像中的每個物體的部分提供了一個像素級別的分割標註(或者當物體沒有連續的部分的時候,至少是提供了一個輪廓的標註)。原來的PASCAL-VOC中的類被保留,但被細分了,如自行車被細分爲後輪、鏈輪、前輪、手把、前燈、鞍座等。本數據集包含了PASCAL VOC的所有訓練圖像、驗證圖像以及9637張測試圖像的標籤。

 

語義邊界數據集SBD[30] (http://home.bharathh.info/home/sbd):是PASCAL數據集的擴展,提供VOC中未標註圖像的語義分割標註。提供PASCAL VOC 2011 數據集中11355張數據集的標註,這些標註除了有每個物體的邊界信息外,還有類別級別及實例級別的信息。由於這些圖像是從完整的PASCAL VOC競賽中得到的,而不僅僅是其中的分割數據集,故訓練集與驗證集的劃分是不同的。實際上,SBD有着其獨特的訓練集與驗證集的劃分方式,即訓練集8498張,驗證集2857張。由於其訓練數據的增多,深度學習實踐中常常用SBD數據集來取代PASCAL VOC數據集。

 

微軟常見物體環境數據集Microsoft COCO [31]:(http://mscoco.org/) 是另一個大規模的圖像識別、分割、標註數據集。它可以用於多種競賽,與本領域最相關的是檢測部分,因爲其一部分是致力於解決分割問題的。該競賽包含了超過80個類別,提供了超過82783張訓練圖片,40504張驗證圖片,以及超過80000張測試圖片。特別地,其測試集分爲4個不同的子集各20000張:test-dev是用於額外的驗證及調試,test-standard是默認的測試數據,用來與其他最優的方法進行對比,test-challenge是競賽專用,提交到評估服務器上得出評估結果,test-reserve用於避免競賽過程中的過擬合現象(當一個方法有嫌疑提交過多次或者有嫌疑使用測試數據訓練時,其在該部分子集上的測試結果將會被拿來作比較)。由於其規模巨大,目前已非常常用,對領域發展很重要。實際上,該競賽的結果每年都會在ECCV的研討會上與ImageNet數據集的結果一起公佈。

 

圖像與註釋合成數據集SYNTHIA[32] (http://synthia-dataset.net/)是一個大規模的虛擬城市的真實感渲染圖數據集,帶有語義分割信息,是爲了在自動駕駛或城市場景規劃等研究領域中的場景理解而提出的。提供了11個類別物體(分別爲空、天空、建築、道路、人行道、柵欄、植被、杆、車、信號標誌、行人、騎自行車的人)細粒度的像素級別的標註。包含從渲染的視頻流中提取出的13407張訓練圖像,該數據集也以其多變性而著稱,包括場景(城鎮、城市、高速公路等)、物體、季節、天氣等。

 

城市風光數據集 [33] (https://www.cityscapes-dataset.com/)是一個大規模的關注於城市街道場景理解的數據集,提供了8種30個類別的語義級別、實例級別以及密集像素標註(包括平坦表面、人、車輛、建築、物體、自然、天空、空)。該數據集包括約5000張精細標註的圖片,20000張粗略標註的圖片。數據是從50個城市中持續數月採集而來,涵蓋不同的時間以及好的天氣情況。開始起以視頻形式存儲,因此該數據集按照以下特點手動選出視頻的幀:大量的動態物體,變化的場景佈局以及變化的背景。

 

CamVid數據集 [55,34] (http://mi.eng.cam.ac.uk/research/projects/VideoRec/CamVid/)是一個道路、駕駛場景理解數據集,開始是五個視頻序列,來自一個安裝在汽車儀表盤上的960x720分辨率的攝相機。這些序列中採樣出了701個幀(其中4個序列在1fps處,1個序列在15fps處),這些靜態圖被手工標註上32個類別:空、建築、牆、樹、植被、柵欄、人行道、停車場、柱或杆、錐形交通標誌、橋、標誌、各種文本、信號燈、天空、……(還有很多)。值得注意的是,Sturgess等人[35]將數據集按照367-100-233的比例分爲訓練集、驗證集、測試集,這種分法使用了部分類標籤:建築、樹、天空、車輛、信號、道路、行人、柵欄、杆、人行道、騎行者。

 

KITTI [56] 是用於移動機器人及自動駕駛研究的最受歡迎的數據集之一,包含了由多種形式的傳感器得出的數小時的交通場景數據,包括高分辨率RGB、灰度立體攝像機以及三維激光掃描器。儘管很受歡迎,該數據集本身並沒有包含真實語義分割標註,但是,衆多的研究者手工地爲該數據集的部分數據添加標註以滿足其問題的需求。Alvarez等人[36,37]爲道路檢測競賽中的323張圖片生成了真實標註,包含三個類別:道路、垂直面和天空。Zhang等人[39]標註了252張圖片,其中140張訓練、112張測試,其選自追蹤競賽中的RGB和Velodyne掃描數據,共十個類。Ros等人[38]在視覺測距數據集中標註了170個訓練圖片和46個測試圖片,共11個類。

 

YouTube物體數據集 [57] 是從YouTube上採集的視頻數據集,包含有PASCAL VOC中的10個類。該數據集不包含像素級別的標註,但是Jain等人[42]手動的標註了其126個序列的子集。其在這些序列中每10個幀選取一張圖片生成器語義標籤,總共10167張標註的幀,每幀480x360的分辨率。

 

Adobe肖像分割數據集 [26] (http://xiaoyongshen.me/webpage portrait/index.html) 包含從Flickr中收集的800x600的肖像照片,主要是來自手機前置攝像頭。該數據集包含1500張訓練圖片和300張預留的測試圖片,這些圖片均完全被二值化標註爲人或背景。圖片被半自動化的標註:首先在每幅圖片上運行一個人臉檢測器,將圖片變爲600x800的分辨率,然後,使用Photoshop快速選擇工具將人臉手工標註。這個數據集意義重大,因爲其專門適用於人臉前景的分割問題。

 

上下文語料數據集(MINC[43] 是用於對塊進行分類以及對整個場景進行分割的數據集。該數據集提供了23個類的分割標註(文中有詳細的各個類別的名稱),包含7061張標註了的分割圖片作爲訓練集,5000張的測試集和2500張的驗證集。這些圖片均來自OpenSurfaces數據集[58],同時使用其他來源如Flickr或Houzz進行增強。因此,該數據集中的圖像的分辨率是變化的,平均來看,圖片的分辨率一般是800x500或500x800。

 

密集標註的視頻分割數據集(DAVIS[44,45](http://davischallenge.org/index.html):該競賽的目標是視頻中的物體的分割,這個數據集由50個高清晰度的序列組成,選出4219幀用於訓練,2023張用於驗證。序列中的幀的分辨率是變化的,但是均被降採樣爲480p的。給出了四個不同類別的像素級別的標註,分別是人、動物、車輛、物體。該數據集的另一個特點是每個序列均有至少一個目標前景物體。另外,該數據集特意地較少不同的大動作物體的數量。對於那些確實有多個前景物體的場景,該數據集爲每個物體提供了單獨的真實標註,以此來支持實例分割。

 

斯坦福背景數據集[40] (http://dags.stanford.edu/data/iccv09Data.tar.gz)包含了從現有公開數據集中採集的戶外場景圖片,包括LabelMe, MSRC, PASCAL VOC 和Geometric Context。該數據集有715張圖片(320x240分辨率),至少包含一個前景物體,且有圖像的水平位置信息。該數據集被以像素級別標註(水平位置、像素語義分類、像素幾何分類以及圖像區域),用來評估場景語義理解方法。

 

SiftFlow [41]:包含2688張完全標註的圖像,是LabelMe數據集[59]的子集。多數圖像基於8種不同的戶外場景,包括街道、高山、田地、沙灘、建築等。圖像是256x256的,分別屬於33個語義類別。未標註的或者標爲其他語義類別的像素被認爲是空。

 

3.2  2.5維數據集

隨着廉價的掃描器的到來,帶有深度信息的數據集開始出現並被廣泛使用。本章,我們回顧最知名的2.5維數據集,其中包含了深度信息。

NYUDv2數據集[46](http://cs.nyu.edu/∼silberman/projects/indoor scene seg sup.html)包含1449張由微軟Kinect設備捕獲的室內的RGB-D圖像。其給出密集的像素級別的標註(類別級別和實力級別的均有),訓練集795張與測試集654張均有40個室內物體的類[60],該數據集由於其刻畫室內場景而格外重要,使得它可以用於某種家庭機器人的訓練任務。但是,它相對於其他數據集規模較小,限制了其在深度網絡中的應用。

 

SUN3D數據集[47](http://sun3d.cs.princeton.edu/):與NYUDv2數據集相似,該數據集包含了一個大規模的RGB-D視頻數據集,包含8個標註了的序列。每一幀均包含場景中物體的語義分割信息以及攝像機位態信息。該數據集還在擴充中,將會包含415個序列,在41座建築中的254個空間中獲取。另外,某些地方將會在一天中的多個時段被重複拍攝。

 

SUNRGBD數據集[48](http://rgbd.cs.princeton.edu/)由四個RGB-D傳感器得來,包含10000張RGB-D圖像,尺寸與PASCAL VOC一致。該數據集包含了NYU depth v2 [46], Berkeley B3DO [61], 以及SUN3D [47]數據集中的圖像,整個數據集均爲密集標註,包括多邊形、帶方向的邊界框以及三維空間,適合於場景理解任務。

 

物體分割數據集(OSD[62](http://www.acin.tuwien.ac.at/?id=289)該數據集用來處理未知物體的分割問題,甚至是在部分遮擋的情況下進行處理。該數據集有111個實例,提供了深度信息與顏色信息,每張圖均進行了像素級別的標註,以此來評估物體分割方法。但是,該數據集並沒有區分各個類,使其退化爲一個二值化的數據集,包含物體與非物體兩個類。

 

RGB-D物體數據集[49] (http://rgbd-dataset.cs.washington.edu/)該數據集由視頻序列構成,有300個常見的室內物體,分爲51個類,使用WordNet hypernym-hyponym關係進行分類。該數據集使用Kinect型三維攝像機進行攝製,640x480RGB圖像,深度信息30赫茲。對每一幀,數據集提供了RGB-D及深度信息,這其中包含了物體、位置及像素級別的標註。另外,每個物體放在旋轉的桌面上以得出360度的視頻序列。對於驗證過程,其提供了22個標註的自然室內場景的包含物體的視頻序列。

 

3.3  3維數據集

純粹的三維數據集是稀缺的,通常可以提供CAD網格或者其他的體元表示如點雲等。爲分割問題獲取三維數據集是困難的,因此很少有深度學習方法可以處理這種數據。也因此,三維數據集目前還不是很受歡迎。儘管如此,我們還是介紹目前出現的相關數據集來解決現有的問題。

ShapeNet部分數據集[50](http://cs.stanford.edu/ericyi/project page/part annotation/)是ShapeNet[63]數據集的子集,關注於細粒度的三維物體分割。包含取自元數據及16個類的31693個網格,每個形狀類被標註爲二到五個部分,整個數據集共有50個物體部分,也就是說,物體的每個部分比如飛機的機翼、機身、機尾、發動機等都被標註了。真實標註按照被網格分割開的點呈現。

 

斯坦福2D-3D-S數據集[51](http://buildingparser.stanford.edu)是一個多模態、大規模室內空間數據集,是斯坦福三維語義分析工作[64]的擴展。提供了多個模態:二維RGB,2.5維添加深度信息的圖片、三維網格和點雲,均提供分割標註信息。該數據集有70496張高分辨率的RGB圖像(1080x1080分辨率),以及其對應的深度圖譜、表面法線、網格以及點雲,軍事帶有像素級別及點級別的語義標註信息。這些數據取自6個室內區域,分別來自三個不同的教育與辦公建築。共有271個房間,大約7億個點,被標以13個類。

 

三維網格分割基準數據集[52](http://segeval.cs.princeton.edu/)該基準數據集有380個網格,被分爲19個類。每個網格手動的被分割爲不同的功能區域,主要目標是提供對於人們如何分配網格功能的一個概率分佈。

 

悉尼城市物體數據集[53](http://www.acfr.usyd.edu.au/papers/SydneyUrbanObjectsDataset.shtml)該數據集包含多個常見的城市道路物體,由Velodyne HDK-64E LIDAR掃描得到,共有631個獨立掃描的點雲,由車輛、行人、標誌、樹木等類別組成。有趣的是,除了正常的掃描之外,還提供了全景360度的掃描標註。

 

大規模點雲分類基準數據集[54](http://www.semantic3d.net/)該基準數據集提供手工標註的三維點雲,面向自然與城市場景。該數據集在形成點雲時保留了細節與密度等信息,訓練集和測試集各包含15個大規模的點雲,其規模達到超過十億個標註點的級別。

 

方法

深度學習技術在各種高層視覺任務上取得了巨大的成功,尤其是監督方法如卷積神經網絡CNN用於圖像分類或物體檢測 [14,15,16],這激勵着研究者們探索這些方法的像素級別標註能力,如語義分割能力。這些深度學習技術區別於傳統方法的關鍵優勢在於其強大的針對當前問題學習合適的特徵表示的能力,例如,對於一個特定數據集的像素級標註問題,其使用一種端對端的方法而不是手工設計的特徵,而手工設計特徵需要領域專門知識、耗時耗力而且有時太過精細化以致於只能在某個特定的場景下使用。

 

圖 7 [65]中的全卷積神經網絡示意圖。將全連接層替換爲卷積層,便可將用於分類的CNN網絡轉化爲生成空間熱區的網絡。加入反捲積層來實現上採樣,使得網絡可以進行密集推理並學到每個像素點的標籤。

最近,最成功用於語義分割的深度學習技術均來自同一個工作,即全卷積網絡FCN [65],該方法的出色之處在於,其利用了現存的CNN網絡作爲其模塊之一來產生層次化的特徵。作者將現存的知名的分類模型包括AlexNet、VGG-16、GoogLeNet和ResNet等轉化爲全卷積模型:將其全連接層均替換爲卷積層,輸出空間映射而不是分類分數。這些映射由小步幅卷積上採樣(又稱反捲積)得到,來產生密集的像素級別的標籤。該工作被視爲里程碑式的進步,因爲它闡釋了CNN如何可以在語義分割問題上被端對端的訓練,而且高效的學習瞭如何基於任意大小的輸入來爲語義分割問題產生像素級別的標籤預測。本方法在標準數據集如PASCAL VOC分割準確率上相對於傳統方法取得了極大的進步,且同樣高效。由於上述及更多顯著的貢獻,FCN成爲了深度學習技術應用於語義分割問題的基石,其處理過程如圖7所示。

表 2  基於深度學習的語義分割方法總結

圖 8 所提及方法的形象化展示

儘管FCN模型強大而普適,它任然有着多個缺點從而限制其對於某些問題的應用:其固有的空間不變性導致其沒有考慮到有用的全局上下文信息,其並沒有默認考慮對實例的辨識,其效率在高分辨率場景下還遠達不到實時操作的能力,並且其不完全適合非結構性數據如3D點雲,或者非結構化模型。這些問題我們將在本節進行綜述,同時給出目前最優的解決這些問題的辦法。表2給出了這個綜述的總結,展示了所有的提及的方法(按照本節中出現的先後排序)、他們所基於的架構、主要的貢獻、以及基於其任務目標的分級:準確率、效率、訓練難度、序列數據處理、多模式輸入以及3D數據處理能力等。每個目標分爲3個等級,依賴於對應工作對該目標的專注程度,叉號則代表該目標問題並沒有被該工作考慮進來。另外,圖8對提及方法的關係進行了形象化的描述。

4.1 解碼器變體

除了FCN之外,還有其他的變體來將原用於分類的網絡轉化爲適合分割的形式。有爭議的說,基於FCN的架構更加受歡迎,也更成功,但是其他替代的架構也同樣值得注意。一般來說,這些網絡均選用一種分類網絡如VGG-16,然後去掉其全連接層。分割網絡的這個部分通常被稱之爲編碼器,產生低分辨率的圖像表示或者特徵映射。而問題在於學習如何解碼或者將這些低分辨率的圖像爲分割問題映射到像素級別的預測上去。這部分被稱爲解碼器,一般是這種架構的不同方法的區別所在。

 

圖 9 SegNet架構示意圖。一個編碼器加一個解碼器,然後是一個softmax分類器用於像素級別的分類,圖來自[66]。

SegNet [66] 是理解這種區別的很明顯的例子(見圖9)。解碼器部分由一系列的上採樣及卷積層組成,最終接上一個softmax分類器來預測像素級別的標籤,以此作爲輸出,可以達到與輸入圖像相同的分辨率。解碼器部分的每個上採樣層對應於編碼器中的一個最大池化層,解碼器中的這些層用索引自編碼器階段的對應的特徵映射來進行最大池化,從而對目前的特徵映射進行上採樣。這些上採樣得來的映射接下來將由一系列的可訓練的濾波器集合來進行卷積,從而產生密集的特徵映射。當特徵映射被修復爲與原輸入相同分辨率的時候,其將被輸入softmax分類器中得到最終的分割結果。

 

圖 10 SegNet(左)與FCN(右)解碼器的對比。SegNets用對應的編碼器部分最大池化來進行上採樣,而FCN學習出反捲積濾波器來進行上採樣(其中加入編碼器中對應的特徵映射)。圖取自[66].

而另一方面,基於FCN的架構利用了可學習的反捲積濾波器來對特徵映射進行上採樣,然後,上採樣得到的特徵映射將按照元素優先的方式加入到編碼器部分卷積層得到的對應的特徵映射中。圖10展示了兩種方法的對比。

4.2 整合上下文知識

語義分割需要對多種空間尺度的信息予以整合,也需要對局部與全局信息進行平衡。一方面,細粒度的或者局部的信息對於提高像素級別的標註的正確率來說是關鍵的;另一方面,整合圖像全局的上下文信息對於解決局部模糊性問題來說也是重要的。

一般的CNN模型對於處理這種平衡不是很擅長。池化層可以使網絡取得某種程度的空間不變性並保持同樣的計算效率,卻丟失了全局的上下文信息。即便是純的CNN網絡,即沒有池化曾的CNN,也同樣受限,因爲其神經元的感受野只能隨着層數線性增長。

可以採用很多方法來使CNN對全局信息敏感:用條件隨機場(CRF)作爲後處理過程來調優結果,多尺度聚合,或者甚至是將對上下文的建模延緩到另一種深度模型中,如RNN。

4.2.1  條件隨機場

如前所述,CNN結構內在的空間轉化不變性限制了其應用到分割問題上的準確率(尤其是其在空間位置上的準確性)。調優分割架構的輸出並強化其捕捉細粒度信息的一個通用的辦法就是引入條件隨機場(CRF)作爲其後處理模塊。CRF促成了底層圖像信息(如像素間的相互關係[92,93])與產生像素級別的類別標籤的多類別推理輸出的結合,這種結合對於捕捉長期依賴性質尤其重要,這也是關注於局部細節的CNN所未能考慮到的。

DeepLab模型[68,69]使用了全連接的兩兩之間的CRF模型[94,95]作爲其流程中的一個獨立的後處理步驟,以此對分割結果進行調優。該模型將每個像素建模爲某區域內的一個節點,無論兩個像素距離多遠,其兩兩之間的關係都會被衡量,因此,本模型也被稱爲密集或全連接因子圖。使用此模型後,無論短期的還是長期的像素相互關係都被考慮進來,使得系統可以考慮到分割過程中需要的細節信息,而由於CNN的空間不變性,這些信息是CNN結構所未能考慮的。儘管全連接模型通常是低效的,該模型由於可以用概率推理來近似,所以也可以達到相對地高效。圖11展示了這種基於CRF的後處理過程對DeepLab模型產生的得分和信念映射產生的影響。

圖 11 DeepLab中展示的CRF調優每次迭代帶來的影響。第一行是得分映射(softmax之前的層的輸出),第二行是信念映射(softmax的輸出)。

Wild網絡[43]中的材質識別使用了多種CNN模型用來識別MINC數據集中的塊。這些CNN模型被以滑動窗口的方式使用,用來分類這些塊,他們的權重值被轉移到FCN的組成網絡中,而FCN通過添加對應的上採樣層來整合這些網絡。多個輸出取平均便得到了一個平均的映射。最後,與DeepLab中相同的CRF(只不過是離散化優化的)被用來預測與調優每個像素點處的材質。

應用CRF來調優FCN網絡的分割結果的另一個顯著的工作便是Zheng等人提出的CRFasRNN模型[70]。該工作主要的貢獻便是將密集CRF重寫爲帶有成對勢能的形式,作爲網絡的組成部分之一。通過展開均值場推理的各個步驟,並將其視爲RNN結構,該工作成功地將CRF與RNN整合在一起成爲一個完整的端對端的網絡。這篇文章的工作說明了將CRF重寫爲RNN模型來構造出深度網絡的一部分,與Pinheiro等人[81]的工作行成了對比,而該工作使用RNN來對大規模的空間依賴性進行建模。

4.2.2 擴張的(dilated)卷積

擴張卷積,又稱`a-trous卷積,是對考慮Kronecker的卷積核[96]的擴展,而這種卷積核可以指數級地擴大感受野而不丟失分辨率。換句話說,擴張卷積是常規的利用上採樣濾波器的方法。擴張率 控制着上採樣因子,如圖12所示,堆疊的以l爲擴張率的擴張卷積使得感受野呈現指數級的增長,而濾波器的參數保持線性增長。這意味着擴張卷積可以在任意分辨率圖片上高效地提取密集特徵。另外,值得注意的是一般的卷積只是擴張率爲1時的特殊情況。

圖 12  [71]所展示的不同擴張率的擴張卷積濾波器。(a)中擴張率爲1,每個單元有3*3的感受野;(b)中擴張率爲2,每個單元有7*7的感受野;(c)中擴張率爲3,每個單元有15*15的感受野。

實際上,這與做正常的卷積之前擴張卷積核是等同的,這意味着根據擴張率擴充其尺寸,爲空元素位置補零,換句話說,當擴張率大於1時,濾波器參數將與非近鄰元素相配對。圖13展示了這種擴張的濾波器。

 

圖 13  濾波器元素根據擴張率與輸入元素進行配對

使用擴張卷積的最重要的工作便是Yu等人[71]提出的多尺度上下文聚合模型、上文提及的DeepLab模型(其升級版本)[69]、以及實時處理網絡ENet[72]。所有這些將越來越大的各種擴張率結合,使得模型具有更大的感受野,同時不增添額外的消耗,也不會過度地對特徵映射進行下采樣。這些工作同時具有相同的趨勢:擴張卷積與緊密多尺度上下文聚合緊密耦合,這我們將在後面章節中解釋。

4.2.3 多尺度預測

整合上下文知識的另一種可能的做法便是使用多尺度預測。CNN中幾乎每個單獨的參數都會影響到得到的特徵映射的大小,換句話說,非常相似的架構也會對輸入圖像的像素數量產生較大的影響,而這關係到每個特徵映射。這意味着濾波器將會潛在地檢測特定尺度的特徵(大致上有着特定的程度)。另外,網絡的參數一般都與要解決的問題息息相關,也使得模型向不同尺度的擴展變得更難。一種可能的解決方案便是使用多尺度的網絡,這種網絡一般都是選用多個處理不同尺度的網絡,最後將他們的預測結果結合,產生一個單一的輸出。

Raj等人[73] 提出了全卷積VGG-16的一種多尺度版本,有着兩個路徑,一個是在原始分辨率上處理輸入,使用的是一個淺層的卷積網絡,再一個就是在兩倍分辨率上處理,使用全卷積VGG-16和一個額外的卷積層。第二個路徑的結果經過上採樣後與第一個路徑的結果相結合,這個串聯起來的結果再經過一系列的卷積層,得到最終的輸出。這樣,這個網絡便對尺度變換更加魯棒了。

Roy等人[75]採取了另外的方法解決這個問題,他們選用了包含4個多尺度CNN的網絡,而這4個網絡有着相同的架構,取自Eigen等人[74]。其中之一致力於爲當前場景找出語義標籤。這個網絡(整體上)以一個從粗糙到精細的尺度序列來逐步的提取特徵(如圖14)。

圖 14  [74]中提出的多尺度CNN架構,利用一個尺度序列預測深度、法向來逐步將輸出調優,並且對一個RGB的輸入執行語義分割。

另一個重要的工作是Bian等人[76]提出的網絡,這個網絡包含n個FCN,可以處理不同尺度的問題。該網絡提取的特徵將融合在一起(先使用合適的填充方法進行必要的上採樣),然後通過一個額外的卷積層之後得到最終的分割結果。這個工作的主要貢獻便是這個兩步的學習過程,首先,獨立的訓練每個網絡,然後,這些網絡將結合,最後一層將被微調。這種多尺度的模型可以高效地添加任意數量的訓練好的網絡進來。

4.2.4 特徵融合

再分割問題中,向全卷積神經網絡架構中加入上下文信息的另一種方式便是進行特徵融合。特種融合技術將一個全局特徵(由某網絡中較前面的層提取得到)與一個相對局部的特徵映射(後邊的層提取得)相結合。常見的架構如原始FCN網絡利用跳躍連接的方式進行延遲特徵融合,也是通過將不用層產生的特徵映射相結合(圖15)

圖 15 類似跳躍連接的架構,對特徵映射進行延遲融合,其類似於在每個層上做出獨立的預測後再對結果進行融合。圖來自[84]。(注:每個層均有“分割結果”,最後融合之)

另一種方法便是提前融合,這一方法來自ParseNet[77]中的上下文模塊。全局特徵被反池化爲與局部特徵相同的尺寸,然後,將這兩種特徵進行串聯後得到一個合併的特徵,輸入到下一層或者直接用於分類器的學習。如圖16所示。

 

圖 16  ParseNet中的上下文模塊示意圖。較前面的層產生的全局特徵與其下一層產生的特徵相結合,以此來添加上下文的信息。圖來自[77]。

SharpMask[84] 這個工作繼續發展了這種特徵融合的想法,其引入了一種先進的調優模塊來將前面層產生的特徵合併到後面的層,這個模塊使用的是一種自上而下的架構。由於其重點關注實例分割方面,所以這個工作我們將在後面章節介紹。

4.2.5 循環神經網絡RNN

我們注意到,CNN網絡在非一維數據如圖像等的處理上取得了成功,但是,這些網絡依賴於手工設計的核,將網絡限制於局部上下文中。而得益於其拓撲結構,循環神經網絡成功地應用到了對長期或短期序列的建模上。這樣,通過將像素級別的以及局部的信息聯繫起來,RNN可以成功地建模全局上下文信息並改善語義分割結果。但是,一個重要的問題便是,圖片中缺乏自然的序列結構,而標準的RNN架構關注的恰恰是一維的輸入。

圖 17 ReSeg網絡示意圖。VGG-16的卷積層以第一層中的藍色和黃色層展示,餘下的架構基於微調目的的ReNet,圖取自[78]。

基於面向分類的ReNet模型,Visin等人[19]提出了ReSeg模型[78]用於語義分割,如圖17所示。在本方法中,輸入圖像在第一層VGG-16層中被處理,特徵映射結果送入一個或更多的ReNet層中來進行微調。最終,特徵映射的尺寸被調整,使用的是基於反捲積的上採樣層。在本方法中,門循環單元(GRU)被用來平衡佔用空間與計算複雜度。一般的RNN在建模長期依賴關係時表現不好,主要是因爲梯度消失問題的存在。由此產生的長短期記憶網絡(LSTM)[97] 和GRU [98]是該領域目前最好的兩種方法,可以避免以上問題。

受ReNet架構的啓發,有人爲場景標註問題提出了一種新型的長短期記憶上下文融合模型(LSTM-CF)[99]。該方法使用了兩種不同的數據源:RGB信息和深度信息。基於RGB的部分依賴於DeepLab架構[29]的變體,串聯了三種不同尺度的特徵來豐富特徵表達(由[100]處獲得啓發)。全局信息在兩個部分(深度信息部分與光學信息部分)都是豎直的,最終這兩種豎直的上下文信息在水平方向上被融合。

我們注意到,對圖像全局上下文信息的建模與二維循環方法很有關係,只需在輸入圖像上按照水平和豎直方向分別將網絡展開。基於相同的想法,Byeon等人[80]提出了簡單的二維的基於LSTM的架構,其中的輸入圖像被分割爲無重疊的窗口,然後將其送入四個獨立的LSTM記憶單元。該工作突出貢獻是其計算複雜度較低、運行與單個CPU以及其模型的簡單性。

另一種捕獲全局信息的方法依賴於更大的輸入窗口的使用,這樣就可以建模更大範圍內的上下文信息。但是,這也降低了圖像的分辨率,而且引入了其他類似於窗口重疊等的問題。然而,Pinheiro等人[81] 引入了循環卷積神經網絡(rCNN)來使用不同的窗口大小循環地訓練,這相當於考慮了之前層中的預測信息。通過這種方法,預測出的標籤將自動地平滑,從而使網絡表現更好。

無向循環圖(UCG)同樣被用來建模圖像上下文信息從而用於語義分割[82]。但是,RNN並不直接適用於UCG,爲了解決這個問題,無向循環圖被分解爲了多個有向圖(DAG)。在本方法中,圖像在三個不同的層中被處理,分別是:CNN處理得到圖像的特徵映射,DAG-RNN對圖像的上下文依賴信息進行建模,反捲積層將特徵映射上採樣。這個工作說明了RNN如何可以與圖相結合,被用來建模長期範圍內的上下文依賴,並超過已有的最優方法。

4.3 實例分割

實例分割被認爲是語義分割的下一步,與此同時其相對於其他底層像素級別分割技術來說是最具挑戰性的。該問題的主要目標是將同一類的不同物體分割爲各個實例,這個處理過程的自動化操作並不直觀,因此,實例的數量並不是預先知道的,對得到的預測的評估方法也不像語義分割一樣達到像素級別。所以,這個問題至今仍有部分未被解決,但是考慮到其潛在的應用,目前領域研究者對此保有興趣。實例標註爲我們分析遮擋情況提供了額外的信息,還可以數出屬於同一類的物體的數量,從而可以爲執行抓取任務的機器人檢測出特定的物體。還有更多的其他應用。

基於此目的,Hariharan等人[10]提出了一種同時檢測和分割(SDS)的方法來提高現有方法的表現。這個方法首先使用了

一種自下而上的層次化圖像分割方法,稱之爲多尺度可結合組(MCG)[101],以此得到建議的分割區域。對於每個區域,使用適合的區域CNN(R-CNN)[102]版本來提取特徵,其是由MCG方法中給出的邊界框微調而來,而不是由選擇性的搜索以及前景區域得出。然後,對每個建議的區域使用線性支持向量機(SVM)在CNN頂層特徵上進行分類。最後,爲了進行調優,非最大抑制(NMS)方法被應用到了先前的區域建議上。

接下來,Pinheiro等人[83]提出了深度遮蓋(DeepMask)模型,這是一種對物體給出提議的方法,基於單個的卷積網絡。這個模型對於一個輸入的分塊預測出一個分割的覆蓋區域,並給出這個塊中包含物體的概率。這兩個任務同時被一個單個的網絡所學習和計算,他們共享多數的層,除了最後一層實現特定任務的層。

上述作者基於DeepMask架構(並由於其有效性將其作爲模型的起點)又提出了一種全新的模型,應用了一種自上而下的調優策略[84]解決物體實例分割問題,並在準確率和速度等方面取得了更好的表現。該過程的目標是高效的將底層特徵與更後邊的層中產生的高層語義信息相結合,這個過程包含了堆疊在一起的不同的調優模塊(每個模塊後都跟着池化層),目的在於通過生成一個新的上採樣物體編碼來轉化池化的影響。圖18展示了SharpMask中的調優模塊。

圖 18  SharpMask中的自上而下逐步調優的結構,這種調優是通過將底層特徵與上層中編碼的高層特徵想融合,來實現空間上豐富信息融合的目的。圖來自[83]。

另一種方法由Zagoruyko等人[85]提出,使用快速R-CNN作爲起點,使用DeepMask的物體提議而不是選擇性搜索。這種結合多種方法的系統成爲多路分類器,提高了COCO數據集上的表現,對於快速R-CNN做出了三處修改:使用整合的損失項改善了定位能力,使用中心區域提供上下文信息,以及最終跳過連接來爲網絡給出多尺度的特徵。該系統相對於快速R-CNN取得了66%的提升。

可以看出,多數提到的方法依賴於現有的物體檢測方法,這限制了模型的表現。即使這樣,實例分割過程依然有很多問題未被解決,上述方法僅僅是這個有挑戰性的方向的一小部分。

4.4 RGB-D數據(帶有深度)

我們注意到,相當數量的語義分割的工作都是使用的照片式的數據,但是,廉價的RGB-D傳感器促進了結構化信息的使用,這種傳感器提供了有用的來自深度信息的幾何線索。一些關注於RGB-D場景分割的工作已經在細粒度標註準確率上取得了進步,使用了深度信息而不僅僅是照片式的數據。利用深度信息進行分割更具挑戰,由於不可預測的場景光照變化伴隨着複雜遮擋導致的不完整的物體表示。但是,很多工作已經可以成功地使用深度信息提高準確率。

帶有深度信息的圖片並不能直接應用到專門處理照片式數據的模型中。深度數據需要被編碼爲每個像素點上的三個通道,就好像是RGB圖像一樣。有許多不同的技術,比如水平-高度-角度(HHA)[11]方法,這個方法被用於將深度信息編碼爲以下三個通道:水平方向的差距,距離“地面”的高度,以及局部表面法向與推知的重力方向的夾角。這樣,我們便可以向爲RGB數據設計的模型中輸入深度信息,並通過從結構化信息中學習新的特徵來提高模型的性能。一些方法如[99]便是基於這種編碼技術的。

相關工作中還有一些工作,如同使用RGB-D數據的方法一樣,利用一種多視角的方法來提高目前的單視角的工作的性能。

Zeng等人[103]提出了一種使用多視角RGB-D數據和深度學習技術的物體分割方法。多視角捕獲的RGB-D數據被送入FCN網絡中,得到每個圖像每個像素點分別作爲40類的概率。分割標籤由閾值截斷,該閾值爲各個視角下平均概率的三倍。另外,本工作訓練多個網絡(AlexNet [14] 和VGG-16 [15])來提取特徵,然後來評估使用深度信息的優勢。本工作發現,加入深度信息並沒有爲分割效果帶來任何的提高,而這可能是深度信息的噪聲導致的。這個工作是在2016年亞馬遜挑選競賽(Amazon Picking Challenge)上被提出的,是自RGB圖像數據獨立地輸入FCN網絡以來,對多視角深度學習系統的一個主要的貢獻。

Ma等人[104]提出了一個全新的物體類別分割方法,使用的也是多視角深度學習技術。多個視角是由運動的RGB-D攝像機拍攝的,在訓練階段,使用RGB-D SLAM技術獲取攝像機軌跡,然後將RGB-D圖像扭曲成與真實標註數據相同尺度以保證訓練中的多視角的連續性。該方法基於FuseNet[105],其在語義分割過程中結合了RGB與深度圖像,通過加入多尺度的損失最小化技術改善了原有工作的表現。

4.5 三維數據

三維幾何數據如點雲或多邊形網格數據等是一種非常實用的數據表示形式,原因在於其提供的附加的維度使得算法可以考慮更加豐富的空間信息,而這顯然對分割很有幫助。但是,絕大多數成功的深度學習分割技術,尤其是基於CNN的,開始並不是被設計爲解決上面提到的非結構化或者不規則的輸入的。爲了在卷積網絡中促成參數共享以及其他優化形式,多數工作藉助於三維立體網格或者映射來將非結構化或者不規則點雲或網格轉化爲普通表示形式,然後再將其輸入網絡中。例如,Huang等人[86](圖19)選取了一個點雲,通過一個密集的立體網格對其進行分析,生成了一系列的佔位體元,將其作爲三維CNN的輸入併爲每個體元產生一個標籤,最後,算法將標籤映射回點雲。雖然該方法已被成功地應用,其仍有不足之處如難以量化、丟失空間信息以及不必要的大規模表示等。因此,衆多研究者致力於構造出一種可以直接處理非結構化三維點集或網格的深度模型。

 

圖 19 Huang等人[86]提出的基於3DCNN的點雲語義標註系統。點雲經過一個密集的體元化處理過程,CNN將處理得到的每一個體元,然後將結果映射回原來的點雲。圖片來自[86]。

PointNet[87]是一個先驅性的工作,提出了一種深度神經網絡來將原始的點雲作爲輸入,給出了一個同時進行分類和分割的聯合的架構。圖20展示了這種可以處理無序三維點集的雙模塊的網絡。

 

圖 20  PointNet聯合結構,用於分類和分割,圖來自[87]。

我們可以看出,PointNet是一種與衆不同的深度網絡架構,因爲其基於全連接層而不是卷積層。該模型分爲兩部分,分別負責分類和分割。分類子網絡以點云爲輸入,採用一系列變換以及多層感知機(MLP)來生成特徵,然後使用最大池化來生成全局特徵以描述原輸入的點雲。另外的MLP將對這些全局特徵進行分類,然後爲每一個類得出分數。分割子網絡將全局特徵與分類網絡生成的每個點的特徵串聯起來,然後應用另外的兩個MLP來生成特徵,並計算出每個點屬於每一類的得分。

4.6 視頻序列

我們觀察到,單幅圖像的分割已經取得了較大的進展,但是,當處理圖像序列時,許多系統簡單地使用逐幀處理的方法,這種方法比較奏效,也通常可以得到不錯的結果,但是,這樣處理是機器耗時的,因此通常不可行。另外,這種方法完全忽略了短期連續性以及一致性信息,而這些信息極可能會提高系統準確率並減少運行時間。

可爭辯地,這方面最具標誌性的工作便是Shelhamer等人[88]提出的時鐘FCN網絡。該網絡改編自FCN,使用視頻中的短期線索來減少推理時間,同時保證正確率。這種時鐘的方法依賴於以下想法:特徵速度,即網絡中短期的特徵變化率,其在各層中經過某幀時是變化的,因此來自淺層的特徵變化的比來自深層的特徵要快。基於此假設,各層可以被分爲不同的階段,於是可以按照其深度指定不同的更新率來進行處理。這樣,由於其語義上的穩定性,深度特徵可以在各幀被保持,也就節省了推理時間。圖21展示了這種時鐘FCN的結構。

 

圖 21 三階段的時鐘FCN模型,以及其對應的時鐘速率。圖來自[88]。

值得注意的是,作者提出了兩種更新速率的策略:固定的和自適應的。固定的策略直接爲每個階段設置一個常數時間來重新計算特徵。自適應策略則使用數據驅動的方法來設置時鐘,例如,時鐘依賴於運動或語義改變的數量。圖22展示了這種自適應策略的例子。

 

圖 22 Shelhamer等人[88]提出的自適應的時鐘方法。提取出的特徵在靜止的幀將會被保留,而在動態的幀時將會被重新計算。圖來自[88]。

Zhang等人[106]採用了一種不同的方式,使用了3DCNN這種原本被設計來學習三維體數據特徵的方法,以此來從多通道輸入如視頻片段中學出層次化的時空聯合特徵。與此同時,該工作將輸入片段過分割爲超體元,然後利用這些超體元圖並將學得的特徵嵌入其中,最終將在超體元圖上應用graph-cut[107]來得到分割結果。

另一個重要的方法採用了三維卷積的思想,是由Tran等人[89]提出的一種深度的端對端的、體元對體元的預測系統。該方法將自己提出的三維卷積(C3D)網絡應用於先前的工作[108]中,在最後添加了反捲積層以將其擴展爲面向語義分割的算法。該系統將輸入的視頻片段分爲包含16個幀的小片段,對每個片段單獨進行預測。其主要的貢獻在於其使用的三維卷積技術。這種卷積技術使用了三維的濾波器,適應了從多通道數據中學出的時空聯合特徵,圖23展示了應用到多通道輸入數據上的二維和三維卷積的不同之處,證明了視頻分割情況下三維卷積核的有用性。

 

圖 23  應用於一系列的幀的時候,二維和三維卷積的不同。(a)中,二維卷積在各個幀(多通道)的各個深度使用的是相同的權重,產生的是一個單一的圖像。(b)三維卷積使用的是三維的濾波器,卷積後產生的是三維體元,因此保留了幀序列的時間信息。

討論

前面的章節我們定性地回顧了現有的方法,也就是說,我們沒有考慮任何定量的結果。在本章,我們從數學的角度討論這些方法。首先,我們將描述最常用的評價指標,這些指標在以下三方面度量語義分割系統的表現:運行時間、佔用內存、準確率。然後,我們將收集這些方法在最具代表性的數據集上運行的結果(以本文中所述的指標度量)。接着,我們將總結這些結果。最終,我們列舉未來研究可能的方向,以及我們認爲的該領域的重點之處。

5.1 評價指標

對於一個分割系統來說,要對該領域產生重要的影響,必須經過嚴格的評估。另外,評估過程中必須使用標準的衆所周知的評價指標,這樣對於現有方法來說纔是公平的。進一步的,必須對方法的各個方面進行評估,然後才能斷言該系統的有效性,這些方面包括運行時間、佔用內存、準確率等。由於對目標或上下文的依賴性,某些指標可能會更加重要,也就是說,在一個實時處理的應用中,可能會爲了運行速度而犧牲準確率。但是,爲了科學的嚴謹性,提供該方法的所有可能的評價指標度量是極其重要的。

5.1.1 運行時間

但是,考慮到可重複性以及對後續研究者的幫助,有必要在提供運行時間的同時給出系統運行的硬件信息,以及基準方法的配置。如果合理地做到了這些,後續的研究者們將可以判斷出這個方法是否對其真實應用實用,並且可以使用相同的環境進行公平的對比。

5.1.2 佔用存儲空間

內存佔用是分割問題中的另一個重要的考量。雖然不及運行時間那樣受限,因爲擴充容量一般是可行的,其仍然作爲系統的一個限制因素。在某些場景下,例如機器人平臺上的板載芯片,內存並不會像高性能服務器中一樣充裕。即使是普遍用來加速深度網絡的高端的顯卡(GPU)也不會搭載大容量的存儲空間。基於這些考慮,以及與在時間問題上相似的對於實際應用的考慮,詳細記錄網絡所佔用的最大及平均存儲空間是極其有用的。

5.1.3 準確率

已經提出了許多用於評估語義分割問題準確率的評價指標,這些指標通常是像素級準確率及IoU的變體。我們報告了語義分割方面最常用的評價指標,用來度量逐個像素標註類的方法的表現。爲便於解釋,我們給出下述標號的意思:我們假設共有k+1類,(從L0到Lk,包括一個空類或者是背景),pij是本屬於第i類卻被分到第j類的像素數量。也就是說,pii代表的是分類正確的正例數量,其他幾個p值類似。

像素準確率(PA:這是最簡單的指標,僅僅計算正確分類的像素數量與所有像素數量的比值。

像素準確率平均值(MPA:對PA的輕微改進版本,正確分類像素的比例是按類計算的,最終由類總數取平均。

 

平均交併比(MIoU):這是用於分割問題的標準評價指標,其計算的是兩個集合的交集與其並集的重合比例,在本問題中,其計算的便是真實分割與系統預測的分割之間的交併比。這個比例可以被重新定義爲真實正例(交集)的數量除以總數量(包括真實正例、錯誤負例、以及錯誤正例(並集))。IoU也是按類計算最後取平均。

 

頻率加權交併比(FWIoU):是對MIoU的改進,對每個類別按照重要性進行加權,重要性來自於其出現的頻率。

 

對於上述的所有指標,MIoU是最常用的一個,因爲它最具代表性,且非常簡單。許多競賽以及研究者使用該指標來報告其結果。

5.2 結果

如前所述,第四章根據各自的任務給出了各個方法的功能描述,現在,我們收集了這些方法對應論文中報告的所有的量化的結果。這些結果按照其輸入數據集的不同分爲三個部分:二維RGB數據、2.5維RGB-D數據以及三維體數據或視頻序列數據。

我們選用了最常用的數據集,值得注意的是,這些論文在報告結果是並不統一。雖然多數的方法試圖以標準數據集評估其方法,並儘量提供充足的信息來保證其結果可以重現,以及儘量使用最常用的評價指標來評價,但很多其他方法並沒有這樣做。這也使得公平地對比這些方法變得很困難。

另外,我們發現很少有作者提供除準確率之外的其他評價信息。儘管其他指標也是重要的,多數論文並沒有提供其運行時間或者佔用內存的信息。有時候這些信息有,但是必要的程序再現性信息又沒有給出,所以,無法得知這些方法的配置信息。

5.2.1 RGB圖像

對於二維圖像這一類,我們選取了7個數據集:PASCAL VOC 2012、PASCAL上下文、PASCAL人物、CamVid、CityScapes、斯坦福背景以及SiftFlow數據集。這些數據集涵蓋了多種情況和優化目標。

首先是,值得爭議的最終的數據集,也是絕大多數方法都會使用的PASCAL VOC 2012數據集。表3給出了提供該數據集上結果的方法在其測試集上的準確率。這個結果集展現了一個清晰的上升趨勢(從第一個提出的方法SegNet以及原始FCN開始),直到最複雜的模型如CRFasRNN以及目前最優的DeepLab(IoU爲79.70)。

 

表 3 PASCAL VOC 2012 上的表現結果

除了最常見的VOC數據集,我們還收集了在上下文數據集上各方法的準確率,表4給出了結果統計,DeepLab依然是最高(IoU爲45.70)。

 

表 4  PASCAL上下文數據集上的表現結果

另外,我們考慮了PASCAL人物部分,結果見表5。在本數據集上僅有DeepLab進行了實驗,結果IoU是64.94。

 

表 5  PASCAL人物部分數據集的表現結果

上面考慮了通用目標的數據集如PASCAL VOC,接下來我們收集了兩種最重要的城市駕駛數據集上的結果。表6給出了CamVid數據集上的方法的結果,一種基於RNN的方法即DAG-RNN取得了最優的IoU爲91.60。

 

表 6  CamVid數據集上的表現結果

表7給出了更具挑戰性且目前更常用的數據集及CityScape數據集上的結果。其表現出的趨勢與PASCAL VOC上的相似,DeepLab以IoU70.40領跑。

 

表 7  CityScape數據集上的結果

表8給出了多種循環網絡在斯坦福背景數據集上的結果,rCNN取得了最好的結果,其最大IoU爲80.20。

 

表 8 斯坦福背景數據集上的結果

最後,其它常見數據集如SiftFlow等的結果在表9中展示。這個數據集同樣被循環方法所霸佔,尤其是DAG-RNN取得了最好的IoU85.30。

 

表 9 SiftFlow上的結果

5.2.2  2.5維數據

對於2.5爲數據這一分類,也就是數據中不僅包含RGB三個通道,還包含深度信息,我們選擇了三個數據集進行分析,分別是SUN-RGB-D、NYUDv2、SUN3D。表10、11、12分別給出了這三個數據集上的結果。

 

表 10 SUN-RGB-D上的結果

 

表 11 NYUDv2上的結果

表 12  SUN3D上的結果

5.2.3 三維數據

選用了兩個三維數據集:ShapeNet Part和Stanford-2D-3D-S。表13和表14分別展示了其結果。

 

表 13  ShapeNet Part數據集上的結果

表 14 Stanford-2D-3D-S數據集上的結果

5.2.4 序列數據

最後一個分類便是視頻或序列數據數據集。我們選取了兩個適合於序列分割的數據集:CityScapes和YouTube-Objects。表15和表16分別展示了結果。

 

表 15 CityScapes數據集上的結果

表 16 Youtube-Objects數據集上的結果

5.3 總結

根據這些結果,我們可以得出許多結論。最重要的結論與可重現性有關。正如我們所觀察到的一樣,許多方法報告了非標準數據集上的結果,或者有些方法根本沒有進行測試,這使其不可能參與對比。另外,有些方法沒有描述其實驗的配置,或者沒有提供可執行的代碼,於是這也使得重現起來非常困難。各個方法都應在標準數據集上評估其結果,儘可能全地描述其訓練過程,同時公開其模型與參數。

另一個發現便是,很多方法缺少對運行時間與佔用內存的評價。幾乎沒有論文報告這兩種信息,這些也都面臨着無法重現的問題。多數方法關注準確率而忽視了時間與空間效率,這導致了其在分析這些問題上的空缺。但是,但其被應用時,這些問題是很重要的。實際上,多數算法將被應用於植入型設備上,如自動駕駛汽車、無人機、機器人等,這些應用都受限於計算消耗以及內存空間。

考慮到方法各自的結果,我們認爲DeepLab是最可靠的方法,其在幾乎每個RGB圖像數據集上都遠遠超過了其他方法。2.5維和多模態數據集上,循環的網絡如LSTM-CF起到了主導作用。三維數據的分割問題仍有很長的路要走,PointNet爲解決無序點雲的分割問題開闢了道路。最後,處理視頻序列同樣作爲一個待開發區域,至今並沒有明確的方向,但是,時鐘卷積神經網絡憑藉其效率和準確率還是成爲了最可靠的方法。三維卷積是值得關注的,由於其強大的功能及對多通道輸入數據的可擴展性,且三維卷積可以同時捕獲時間空間信息。

5.4 未來研究方向

基於以上回顧過的代表了目前最高水平的方法,我們給出了一系列的未來研究的可能的方向。

1)三維數據集:充分利用三維數據的一些方法已經開始出現,但是,即使是最新的方案,仍然缺乏對於最重要的構成成分之一即數據的考慮。目前急需一個大規模三維語義分割數據集,但這相對於其低維部分來說是較難創建的。雖然已經有了一些不錯的工作,仍然需要更多、更好、更富變化的數據集的出現。值得注意的是,真實世界的三維數據是極其重要的,因爲目前幾乎所有的工作都是使用的合成數據集。三維數據重要性的一個證明便是,2018年ILSVRC將會創建三維數據。

2)序列數據集:三維數據集上大規模數據集缺乏的問題同樣影響到了視頻序列分割問題。目前僅有少數幾個數據集是基於序列的,這些數據集對於利用時間序列信息的方法的發展很有利。從本質上將二維及三維高質量數據聯繫起來必將引領新的研究方向。

3)使用圖卷積網絡(GCN)對點雲進行分割:如之前所述,處理三維數據如點雲等目前尚未解決,由於點雲內在的無序性及非結構性,傳統的架構如CNN等不能直接予以應用,除非使用某種離散化手段使其結構化。一個靠譜的研究方向便致力於將點雲處理爲圖,然後在其上應用卷積[109,110,111]。這種做法的好處便是在不量化數據的基礎上保留了每個維度上的空間信息。

4)上下文知識:雖然FCN是語義分割領域中的一種堅實的方法,但是FCN網絡缺乏對於上下文等特徵的建模,而這些信息有可能會提高準確率。將CRF重寫爲RNN來創造一種端對端的解決方法看起來是一個靠譜的方法,可以提高真實生活場景下的性能。多尺度及特徵融合方法也取得了較大的進展。總之,這些方法已經取得了不小的進步,但是仍然有許多問題亟待解決。

5)實時分割:在很多應用場景下,準確率是重要的,但是,能夠處理達到常見的攝像機幀率(至少25幀每秒)的輸入速度也是很關鍵的。目前多數的方法遠遠達不到這個幀率,比如,FCN-8處理一張低分辨率的PASCAL VOC數據集中的圖像需要100ms,同時,CRFasRNN需要500ms。因此,接下來幾年,我們期待會有一系列的工作關注於實時處理的限定,這些工作將必須在準確率與運行時間之間尋求一個平衡。

6)存儲空間:某些平臺受限於其存儲空間。分割網絡一般需要較大的存儲空間,從而可以同時進行推理與訓練。爲了適應各種設備,網絡必須要簡單。雖然這可以通過降低複雜性(一般會犧牲準確率)來簡單地實現,但是還是可以採取另外的辦法。剪枝是一種靠譜的研究方向,可以用來簡化網絡,使得網絡在保留多數信息的同時變得輕量化,也因此同時保留了原網絡的準確率。

7)序列數據的時間一致性:一些方法解決了視頻或序列分割的問題,但是他們有些未利用時間序列信息來提高準確率或效率。然而,沒有一種方法解決了一致性的問題。對於一個應用在視頻流上的分割系統來說,一致性信息是重要的,不僅可以逐幀地處理數據,還可以對整個片段的處理保持一致,而不需要通過平滑爲序列預測出的像素級別的標籤而產生人工的信息。

8)多視角整合:在最近提出的分割網絡上應用多視角信息目前僅僅限於RGB-D攝像機相關的場景,尤其是致力於單一物體分割的情況。

總結

就我們所知,本文是第一篇對利用深度學習技術的語義分割技術的綜述。對比其他綜述文章,本文致力於深度學習這一正在崛起的研究領域,涵蓋了最先進的相關工作。我們對語義分割進行了公式化定義,同時爲讀者提供了必要的深度學習應用於語義分割任務的背景知識信息。我們涵蓋了相關工作中的方法和數據集,提供了對於28個數據集和27個方法的綜述。我們詳細介紹了數據集的情況,闡述了這些數據集的目的和特點,這樣,研究者便可以輕鬆地挑選出最適合他們問題的數據集。方法按照兩個方面進行綜述:其貢獻和原始結果即準確率。我們還以表格的形式提供了數據集和方法的總結,按照多種指標對其進行了分類。最後,我們討論了這些結果,提供了對未來工作方向的看法以及該領域一些開放問題的討論。總之,語義分割問題已經被很多不錯的方法所解決,但是仍然存在着開放的問題,這些問題一旦解決將會對真實場景的應用產生較大的幫助。另外,深度學習技術被證明了對於解決語義分割問題的強大性,因此,我們期待接下來幾年各種創新的不斷涌現。

發佈了36 篇原創文章 · 獲贊 13 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章