close

點擊下方卡片,關注「新機器視覺」公眾號

重磅乾貨,第一時間送達


摘 要場景分割的目標是判斷場景圖像中每個像素的類別.場景分割是計算機視覺領域重要的基本問題之一,對場景圖像的分析和理解具有重要意義,同時在自動駕駛、視頻監控、增強現實等諸多領域具有廣泛的應用價值.近年來,基於深度學習的場景分割技術取得了突破性進展,與傳統場景分割算法相比獲得分割精度的大幅度提升.首先分析和描述場景分割問題面臨的3個主要難點:分割粒度細、尺度變化多樣、空間相關性強;其次着重介紹了目前大部分基於深度學習的場景分割算法採用的「卷積-反卷積」結構;在此基礎上,對近年來出現的基於深度學習的場景分割算法進行梳理,介紹針對場景分割問題的3個主要難點,分別提出基於高分辨率語義特徵圖、基於多尺度信息和基於空間上下文等場景分割算法;簡要介紹常用的場景分割公開數據集;最後對基於深度學習的場景分割算法的研究前景進行總結和展望.

關鍵詞場景分割;圖像分割;深度學習;神經網絡;全卷積網絡

場景分割[1]是計算機視覺領域一個基本而重要的問題.相比一般的圖像分割,場景分割針對場景圖像.場景圖像[2]是指面向某個空間的圖像,通常具有一定的透視形變,且其中包含的視覺要素數量較多.場景分割算法的目標是對於場景圖像中的每個像素判斷其所屬類別,如圖1所示:

Fig. 1 Illustration of scene parsing圖1 場景分割問題

場景分割算法對於圖像分析和場景理解具有極大的幫助.場景分割算法可以綜合完成場景圖像中視覺要素的識別、檢測和分割,提高圖像理解的效率和準確率.同時由於場景分割結果精確到像素級,相比圖像分類和目標檢測[3],場景分割結果可以提供更加豐富的關於圖像局部和細節的信息.此外,場景分割算法具有廣泛的應用價值和長遠的發展前景.例如在自動駕駛技術中,場景分割算法可以通過對道路、車輛和行人的分割輔助自動駕駛系統判斷道路情況;在視頻監控技術中,場景分割算法可以通過對監控目標的分割協助進行目標的分析和跟蹤;在增強現實技術中,場景分割算法可以通過分割場景中的前景和背景輔助實現多種增強現實效果.

作為計算機視覺領域的一個經典任務,場景分割極具挑戰性.如圖2所示,場景分割的難點可概括為3個方面:1)分割粒度細.場景分割結果需要精確到像素級別,且需要預測精確的分割邊界.2)尺度變化多樣.由於場景圖像中通常包含多種類別的視覺要素,不同類別的視覺要素往往存在尺度差異,同時由於場景圖像存在透視形變,相同類別的視覺要素也會呈現出不同尺度.3)空間相關性強.場景圖像中的視覺要素存在複雜而緊密的空間相關關係,這些空間相關關係對視覺要素的識別和分割具有極大幫助.

Fig. 2 Difficulties in scene parsing圖2 場景分割的難點

場景分割問題是傳統圖像分割問題的子問題,近年來受到越來越多國內外研究人員的關注.在研究初期,研究人員使用傳統的圖像分割算法解決場景分割問題,包括基於閾值[4]、基於區域提取[5-6]、基於邊緣檢測[7]、基於概率圖模型[8-10]和基於像素或超像素分類[11]的分割算法.這些傳統分割算法通常使用人工設計的圖像特徵[12],與語義概念之間存在着語義鴻溝,因此制約了傳統圖像分割算法的性能.

近年來,深度學習的快速發展為場景分割帶來了新的解決思路.深度學習算法通過構建多層神經網絡,利用多層變換模仿人腦的機制來分析和理解圖像.深度學習算法可以從大規模數據中學習逐漸抽象的層次化特徵,從而建立場景圖像到語義類別的映射.深度學習是近年來機器學習領域最令人矚目的方向之一,在語音識別、計算機視覺、自然語言處理等多個領域均獲得了突破性進展[13].基於深度學習的場景分割算法同樣取得了巨大突破.這些算法主要基於「卷積-反卷積」結構,包括全卷積網絡[14]和反卷積網絡[15-16]兩大類.「卷積-反卷積」結構可以建立從原始圖像到分割結果的映射,並且可以進行端到端的訓練.相比傳統圖像分割算法,基於深度學習的場景分割算法實現了分割精度的大幅度提升.在此基礎上,研究人員針對場景分割問題的難點和挑戰,提出了多種基於深度學習的場景分割算法並不斷提高算法性能.其中,針對分割粒度細的問題,研究人員提出了基於高分辨率語義特徵圖的場景分割算法,通過提高特徵圖的分辨率獲得更高精度的分割結果;針對尺度變化多樣的問題,研究人員提出了基於多尺度信息的場景分割算法,通過捕捉場景圖像中的多尺度信息提升算法的分割精度;針對空間相關性強的問題,研究人員提出了基於空間上下文信息的場景分割算法,通過捕捉場景圖像中的空間上下文和相關關係提升算法的分割精度.

在國內外的研究成果中有許多對圖像分割進行綜述的文獻,可以分為兩大類:1)概述傳統圖像分割算法的綜述[17-23],介紹了基於閾值、區域提取、邊緣檢測等利用圖像特徵的傳統圖像分割算法.2)側重介紹基於深度學習的圖像分割算法的綜述[24-27].例如文獻[24]側重介紹不同圖像分割算法使用的深度神經網絡結構;文獻[25]將上百種基於深度學習的圖像分割算法分為10個大類進行概述;文獻[26-27]以圖像標註的粒度作為分類標準,分別介紹了全監督和弱監督的圖像分割算法.但這些文獻都是對通用的圖像分割算法進行綜述,目前並沒有針對場景分割的算法綜述.與這些綜述不同,本文介紹的算法針對圖像分割中的場景分割子問題,且主要介紹基於深度學習的算法.本文以算法針對的場景分割問題的3個難點作為分類依據,梳理近年來出現的基於深度學習的場景分割算法.

1 深度學習發展概述

深度學習算法近年來在機器學習領域取得了巨大的進展,其中,基於深度卷積神經網絡的算法在計算機視覺領域取得了令人矚目的成就.深度卷積神經網絡是以傳統的神經網絡為基礎,不斷發展演變而來.早在1998年「LeNet」網絡[28]就已具備現在深度卷積神經網絡的完整結構,包括卷積層、非線性變換層、池化層、全連接層等深度卷積神經網絡的基本單元.因此,「LeNet」網絡可以被視為當前深度卷積神經網絡的雛形.然而,計算能力和數據集規模的限制阻礙了深度卷積神經網絡的發展.

近年來,隨着硬件設備的不斷發展和計算能力的不斷提高,計算機的運算速度和效率得到了極大提升.尤其是圖像並行處理單元(graphics processing unit, GPU)的廣泛使用提高了大規模並行計算的能力.此外,隨着互聯網的興起和大數據技術的發展,多種大規模圖像數據集相繼出現,為訓練深度卷積神經網絡提供數據支持.得益於並行計算能力和大規模數據集,深度卷積神經網絡在以圖像識別為代表的計算機視覺領域相關任務中取得了驚人的突破.在2012年的「ImageNet大規模視覺識別挑戰賽」[29]中,卷積神經網絡模型AlexNet[30]將ImageNet分類數據集[31]的Top-5識別錯誤率從傳統算法的26%降低到16.4%,取得了令人振奮的進步.這一工作也掀起了深度卷積神經網絡的研究熱潮.

此後,越來越多的研究人員投身到對深度卷積神經網絡的研究中.以圖像識別任務為切入點,研究人員不斷提出更深更精巧的網絡結構和非線性激活函數提高神經網絡的特徵表達能力,先後提出了VGG[32],GoogLeNet[33],ResNet[34],ResNeXt[35],DenseNet[36]等網絡和Maxout[37],PReLU[38],ELU[39]等非線性激活函數.同時,研究人員還通過設計合理的網絡初始化方法[38,40]和特徵歸一化方法[41-44]促進神經網絡的優化過程.深度卷積神經網絡可以從大規模數據中自動學習到逐漸抽象的層次化特徵,從底層圖像特徵到高層語義概念的映射.因此,利用在大規模圖像識別數據集上預訓練的深度卷積神經網絡可以學習到合適的圖像特徵表達,並通過遷移學習的方法被應用於計算機視覺領域的諸多任務中,均取得了極大的成功.例如目標檢測算法[45-47]利用深度卷積神經網絡同時預測圖像中目標的類別和位置;圖像語義分割算法[14,48]利用深度卷積神經網絡預測圖像中每個像素的類別;實例分割算法[49]利用深度卷積神經網絡同時預測圖像中每個目標的類別、位置和包含像素;圖像描述算法[50]利用深度卷積神經網絡學習圖像特徵,並輸入到循環神經網絡中生成圖像的描述.

2 場景分割算法的「卷積反卷積」框架

目前基於深度學習的場景分割算法主要利用了一種「卷積-反卷積」框架,包含卷積模塊和反卷積模塊.首先卷積模塊使用若干卷積層和池化層,逐漸從場景圖像中學習到抽象的語義特徵表達,獲得語義特徵圖.由於使用了若干次池化層,生成的語義特徵圖分辨率小於原始圖像.為獲得原始圖像的像素級類別預測結果,語義特徵圖將輸入到由多個反卷積層組成的反卷積模塊,不斷擴大特徵圖的分辨率,直至與原始場景圖像分辨率相同.最終獲得的特徵圖中每個位置對應場景圖像中每個像素的類別置信度,從而得到場景圖像的分割結果.「卷積-反卷積」框架可以高效地對整幅場景圖像進行處理,從原始圖像直接獲得分割結果.同時,在訓練過程中,「卷積-反卷積」框架可以進行端對端的訓練,更有益於從場景數據集中學習合適的特徵表達,因此其性能優於傳統圖像分割算法.

常用的「卷積-反卷積」框架主要可分為全卷積網絡和反卷積網絡兩大類.全卷積網絡[14](fully convolutional network, FCN)通常以深度圖像識別網絡作為基礎,將其結構全卷積化後作為卷積模塊,獲得語義特徵圖,再添加若干反卷積層作為反卷積模塊,如圖3所示.全卷積化是指將圖像識別網絡中的全連接層轉化為卷積核為1的卷積層,使網絡僅由卷積層、非線性激活層和池化層組成.經過全卷積化之後,全卷積網絡可以接受任意大小的場景圖像作為輸入,並通過多個反卷積層獲得與原始輸入圖像相同大小的類別置信度圖.利用深度圖像識別網絡的結構作為卷積模塊後,可以利用深度圖像識別網絡在大規模的圖像分類數據集(如ImageNet)上預訓練得到的網絡參數作為全卷積網絡的初始化參數.這種參數遷移的方法有利於全卷積網絡參數的優化.由於場景分割需要精確到像素級,構建場景分割的人工標註需要花費大量的人力物力,導致現有的場景分割數據集的樣本數量通常較少.而訓練深度神經網絡通常需要大量有標註的數據,因此如果直接使用樣本數量較少的場景分割數據集訓練,可能因為樣本不夠導致模型陷入精度較低的局部極小點,損害模型的精度.而使用大規模圖像識別數據集進行預訓練後,模型參數可以學習到較為合適的圖像特徵表達,為後續訓練場景分割模型提供較好的初始值,幫助模型收斂到精度較高的局部極小點,從而提升場景分割模型的性能.利用數據集SIFT Flow[51]進行評測,全卷積網絡的像素級正確率(pixel accuracy)達到85.2%,相比傳統方法[52]的78.6%,取得6.6%的性能提升.在目前常用的場景分割數據集Cityscapes[53]上全卷積網絡可以取得平均交並比(mean Intersection-over-Union,mIoU)為65.3%,達到當時的最佳性能.

Fig. 3 FCN is transferred from an image recognition network圖3 全卷積網絡由圖像識別網絡全卷積化形成

相比之下,反卷積網絡[15-16]的卷積模塊與全卷積網絡類似,也是由多個卷積層和池化層堆疊而成.通常其反卷積模塊完全採用其卷積模塊的鏡像結構,同時設計了反池化層作為池化層的鏡像操作.反卷積網絡不使用預訓練參數,而是直接從隨機參數開始訓練網絡,因此時常難以優化,算法性能也會低於全卷積網絡,如SegNet[16]在Cityscapes數據集上的mIoU為57.0%.目前,大部分基於深度學習的場景分割算法都採用了全卷積網絡的結構,同時利用深度圖像識別網絡的預訓練參數作為初始化.

Fig. 4 Results of scene parsing algorithms based on deep learning on Cityscapes dataset圖4 基於深度學習的場景分割算法在Cityscapes數據集上的性能

全卷積網絡雖然在場景分割問題上取得了極大的突破,但其本身依賴於大規模圖像識別網絡結構,存在着一定的局限性.首先,全卷積網絡所使用的圖像識別網絡模型通常包含多次池化等下採樣操作,因此丟失了許多細節信息.而場景分割問題具有分割粒度細的特點,因此直接使用圖像識別網絡會極大損害最終的分割精度.針對這一問題,研究人員提出了基於高分辨率語義特徵圖的場景分割算法提高分割精度.其次,場景分割問題存在視覺要素尺度變化多樣的問題,但全卷積網絡對整幅圖像使用相同的卷積操作,未考慮視覺要素的多尺度問題,損害了場景圖像中較大尺度和較小尺度的視覺要素的分割精度.因此,研究人員提出了基於多尺度的場景分割算法.最後,全卷積網絡所使用的圖像識別網絡未考慮空間上下文信息,而場景分割問題存在空間相關性強的特點,場景圖像中的空間相關關係對提升分割精度有極大幫助.為了有效捕捉場景圖像中的空間上下文和相關關係,研究人員提出了基於空間上下文的場景分割算法.接下來我們將對這些方法進行梳理和詳細介紹.其中一些代表性方法在City-scapes數據集測試集上的性能對比如圖4所示:

3 基於高分辨率語義特徵圖的場景分割算法

全卷積網絡中使用圖像識別網絡的結構學習場景圖像的特徵表達.而在圖像識別網絡中,為了能有效捕捉圖像的全局語義特徵,排除圖像中視覺要素的空間變換對特徵學習的干擾,圖像識別網絡通常包含若干個步長大於1的池化層.池化層可以融合池化區域的特徵,擴大感受野,同時保持感受野中視覺要素的平移不變形.但同時,池化操作會縮小特徵圖的分辨率,從而丟失空間位置信息和許多細節信息.例如在目前常用的圖像識別網絡中,通常使用5個步長為2的池化層,使最後的語義特徵圖分辨率下降為原始輸入圖像的1/32.因此,當圖像識別網絡被遷移到全卷積網絡中後,語義特徵圖的分辨率過小和丟失過多細節信息導致分割邊界不準確,從而影響了全卷積網絡的分割精度.針對該問題,研究人員提出了諸多基於高分辨率語義特徵圖的算法,包括利用跨層結構、膨脹卷積和基於全分辨率的算法.

Fig. 5 Illustration of atrous convolution圖5 膨脹卷積

3.1 跨層結構算法

基於跨層結構的算法[14,54-56]通過融合較淺層的特徵圖提高語義特徵圖的分辨率.在前向傳播過程中,卷積神經網絡的特徵圖分辨率逐漸變小,每經過一個池化層,特徵圖的邊長會減小為原來的1/2.因此較淺層的特徵圖分辨率較大,保留了更多的細節.基於跨層結構的算法其基本思路為通過融合較淺層的分辨率較大的特徵圖,提高語義特徵圖的分辨率,捕捉更多的細節信息,從而提高分割精度.這些基於跨層結構的算法通常在反卷積模塊中融合較淺層的特徵圖,通過使用反卷積層將語義特徵圖的分辨率擴大後,與網絡淺層特徵圖的分辨率恰好相等,然後進行融合,之後進行後續的反卷積操作.例如FCN-8s[14]通過融合分辨率為原始圖像大小的1/16和1/8的淺層特徵圖,將Cityscapes數據集的mIoU性能從61.3%提高到65.3%;U-Net[54]將從1/16到原始圖像大小的特徵圖均進行了融合;LRR[55]借鑑了拉普拉斯金字塔結構,通過利用多個淺層的不同分辨率特徵圖對細節進行重建獲取高分辨率的語義特徵圖,在Cityscapes數據集上取得69.7%的mIoU;RefineNet[56]設計了一種遞歸的多路修正網絡結構,利用淺層高分辨特徵圖中的信息對深層低分辨率的特徵圖進行修正,從而生成高分辨的語義特徵圖,在Cityscapes數據集上將mIoU提高到73.6%.基於跨層結構的算法通過在反卷積模塊中利用淺層特徵圖恢復卷積模塊中丟失的細節信息,但是由於這些細節信息難以被完美恢復,這限制了跨層結構算法的分割性能.

3.2 膨脹卷積算法

基於跨層結構的算法主要在「卷積-反卷積」結構的反卷積模塊提升語義特徵圖的分辨率,但在卷積模塊中語義特徵圖的分辨率依然會下降到非常低,如原始輸入大小的1/32.而基於膨脹卷積的算法[48,57-59]着眼於在卷積模塊中保持語義特徵圖的分辨率,如保持在原始輸入大小的1/8,這樣就可以在卷積模塊中保留更多的細節信息.

Fig. 6 Multi-scale scene parsing algrithms based shared structure, hierarchical structure and parallel structure圖6 基於共享結構、層級結構、並行結構的多尺度場景分割算法

圖像識別網絡中,特徵圖分辨率的下降是由步長為2的池化操作引起的,即每2步的計算中丟棄1個結果.如果將池化操作的步長從2改為1,則可以保持特徵圖的分辨率,即保留了上述被丟棄的結果.但在後續的卷積操作中,特徵圖中原來相鄰的特徵向量間插入了本應被丟棄的特徵向量,與卷積核直接相乘時會造成錯位,導致錯誤的卷積結果.為解決該問題,DeepLab系列算法[48,57-59]使用了膨脹卷積操作代替標準卷積.如圖5所示,膨脹卷積會在卷積核向量中插入一個0,將卷積核邊長「膨脹」為原來的2倍.膨脹後的卷積核與修改池化操作步長後得到的特徵圖進行卷積,可以有效解決相乘錯位的問題.原來被丟棄的特徵向量會恰好與插入的0相乘,並不影響最終的卷積結果.因此,膨脹卷積可以保證將池化操作的步長從2改為1後,後面的卷積層依然可以得到正確的卷積結果.值得注意的是,若某一個池化層的步長從2改為1,其後的所有卷積層均需使用膨脹係數為2的膨脹卷積.如果後面又出現了將池化層的步長從2改為1的修改,則在之後的所有卷積層的膨脹係數需要再乘2,即使用膨脹係數為4的膨脹卷積,以此類推.例如,將圖像識別網絡的第4和第5階段的池化層步長從2改為1,並對其後的卷積層分別使用膨脹係數為2和4的膨脹卷積,將卷積模塊的語義特徵圖分辨率從原始圖像大小的1/32提高到1/8.使用膨脹卷積可以在「卷積-反卷積」結構的卷積模塊中保持較高分辨率的語義特徵圖,從而保留更多的細節信息,提高分割的精度,例如DeepLabv2[48]在Cityscapes數據集上取得mIoU為70.4%.膨脹卷積算法由於其方便有效的特點,被廣泛應用於場景分割算法的卷積模塊中.

3.3 全分辨率算法

基於膨脹卷積的算法只對語義特徵圖進行一定程度的擴大,從原始圖像的1/32擴大為1/8,依然丟失了部分細節信息,對分割邊界的確定造成一定影響.相比之下,全分辨率殘差網絡(FRRN)[60]則提出了一種基於全分辨率特徵圖的算法,將特徵圖分辨率始終保持在原始圖像大小.該算法借鑑了殘差學習的思想,包含2個信息流:殘差流和池化流.其中殘差流不包含任何池化和下採樣操作,將該流的特徵圖始終保持在與原始圖像相同的分辨率大小;而池化流則包含若干步長為2的池化操作,特徵圖的分辨率先減小後增大.殘差流側重於捕捉細節信息,主要用於確定精確的分割邊界;而池化流則側重於學習語義特徵,主要用於識別視覺要素的類別.殘差流和池化流在網絡的前向傳播過程中不斷進行交互,從而使全分辨率殘差網絡可以同時學習語義特徵和捕捉細節信息,因此可以獲得更加精確的分割結果.FRRN在Cityscapes數據集取得的mIoU為71.8%.但全分辨率殘差網絡也有其局限性.由於殘差流始終保持在原始圖像的分辨率,因此其維度較高,會占用大量的顯存空間.同時,殘差流和池化流的交互操作也會產生大量的空間消耗.這都制約了全分辨率殘差網絡在高分辨率場景圖像中的使用.

4 基於多尺度的場景分割算法

由於場景圖像中存在一定的透視畸變,且包含多種類別的視覺要素,因此場景圖像中視覺要素的尺度是多樣的.而卷積神經網絡的感受野大小是固定的.對於圖像中尺度較大的視覺要素,感受野只能覆蓋其局部區域,容易造成錯誤的識別結果;而對於圖像中尺度較小的視覺要素,感受野會覆蓋過多的背景區域,導致誤判為背景類別.針對上述問題,研究人員提出了基於多尺度的場景分割算法,通過獲取多尺度信息學習不同尺度視覺要素的特徵表達,以提高場景分割的精度.大部分基於多尺度的算法通過設計不同的網絡結構獲取多尺度特徵,可分為共享結構、層級結構、並行結構3類,如圖6所示.這些算法所採用的尺度通常通過人工設計,與網絡的結構緊密相關.獲取多尺度信息之後再通過多種方法融合多尺度特徵.另外一些算法則利用自適應學習而非人工設計的方法獲取多尺度特徵.

4.1 共享結構算法

基於共享結構的算法[61-62]主要在卷積模塊中利用一個參數共享的卷積神經網絡.通過將輸入圖像縮放為不同的尺度(通常使用2~3種),均輸入到共享網絡中,從而獲取不同尺度的語義特徵圖.之後通過上下採樣將不同尺度的語義特徵圖插值到相同的分辨率,再進行特徵融合.這種算法並沒有改變卷積神經網絡的結構,即沒有改變網絡的感受野大小,而是通過調整輸入圖像的尺度獲取多尺度特徵.同時通過將輸入圖像進行縮放,使共享網絡獲得處理多尺度視覺要素的能力.利用共享結構,FeatMap-Net[62]在Cityscapes數據集上達到mIoU為71.6%.基於共享結構的算法需要將同一幅輸入圖像利用不同尺度計算若干次,因此會使卷積模塊的計算量成倍增加,降低分割速度.

4.2 層級結構算法

基於層級結構的算法[63-65]通過卷積神經網絡不同階段的特徵圖獲取多尺度信息.卷積神經網絡在前向傳播過程中,隨着卷積和池化操作,感受野不斷增大.較淺層的特徵圖對應的感受野較小,特徵的尺度也較小;而較深層的特徵圖對應的感受野較大,特徵的尺度也較大.因此,通過融合卷積神經網絡不同階段的特徵圖即可獲取多尺度信息.

利用層級結構,ML-CRNN[65]在Cityscapes數據集的mIoU達到71.2%.由於不同階段特徵圖的分辨率不同,融合前需要利用上下採樣等方法將特徵圖插值到相同的分辨率再進行融合.基於層級結構的算法不會引起過多的計算量,但卷積神經網絡的較淺層通常更偏重學習圖像的視覺特徵,而較深層更偏重學習圖像的語義特徵.將淺層與深層特徵進行融合時會對最終的語義特徵圖引入一定的噪聲,損害語義表達的精確度.

4.3 並行結構算法

基於並行結構的算法在卷積模塊獲得的語義特徵圖之後連接多個感受野不同的並行分支,形成一種並行的結構,以捕捉不同尺度的特徵.其中,PSPNet[66]使用空間金字塔池化,利用不同係數的池化層生成對應多個尺度的分支,再利用不同的上採樣係數在特徵圖上採樣到相同的分辨率,在Cityscapes數據集上獲得mIoU為81.2%.而DeepLab系列算法[48,58-59]則使用多尺度膨脹卷積的思想,建立ASPP(atrous spatial pyramid pooling)模塊,利用不同係數的膨脹卷積層生成對應多個尺度的分支.ASPP模塊中不同分支的特徵圖分辨率相同,融合前不需要進行上採樣.其中,在Cityscapes數據集上DeepLabv3[58]的mIoU為81.2%,而DeepLabv3+[59]則將mIoU提升至82.1%.TKCN[67]將多個並行分支建立為樹型結構,提高了多尺度融合的效率,在Cityscapes數據集上的mIoU達到79.5%.Dense ASPP[68]將並行的ASPP模塊內部加入全連接,從而高效地擴增了ASPP模塊能夠捕捉的尺度,並在Cityscapes數據集上DeepLabv3的mIoU達到80.6%.基於並行結構的算法僅需在語義特徵圖之後加入幾個新的分支,因此增加的計算量遠遠小於基於共享結構的算法.同時由於這些並行分支都是從卷積模塊獲得的語義特徵圖計算得到,相比基於層級結構的算法更加適合於進行語義特徵的學習.

4.4 多尺度特徵融合

利用4.1~4.3節所述的結構獲取多尺度特徵後,還需要將特徵融合起來以預測分割結果.目前主流的特徵融合算法包括特徵連接、加權融合或基於注意力機制.基於特徵連接的算法[63-64]將不同尺度的特徵直接按通道進行拼接,後面連接一個卷積層或全連接層進行融合.因此這個卷積層的參數可以被視為是多尺度特徵的融合係數.基於加權融合的算法[48]則對每個尺度的特徵使用不同的融合係數,這些融合係數通常是人工預設的.基於注意力機制的融合算法[61,65]則通過學習不同尺度、不同位置最合適的注意力參數進行融合.這3種融合算法的最大區別是其需要的融合係數數量不同.其中特徵連接算法使用的融合係數數量最多,特徵圖的每個尺度、每個位置、每個通道的值都需要學習不同的融合係數;而加權融合算法使用的融合係數數量最少,僅需要與尺度數量相同的融合係數,這是因為相同的尺度特徵在不同的位置和通道的值均使用相同的係數;而使用注意力機制的算法需要的融合係數數量介於特徵連接和加權融合算法之間,其思想為在每個空間位置學習最合適的尺度融合係數.因此雖然不同尺度、不同位置需要利用注意力思想學習不同的融合係數,但同一通道內會共享融合係數.在實際應用中,特徵連接算法參數量較大,加權融合算法相對簡單便捷,但需要人工設定合適的融合係數.而由於場景圖像中不同空間位置的視覺要素尺度不同,使用注意力機制對不同空間位置學習不同的融合係數常常可以有效提高特徵融合的效果,從而獲得較高的分割精度.

Fig. 7 Different structures of RNN in scene parsing圖7 場景分割中循環神經網絡的不同結構

4.5 自適應學習算法

4.4節所述的基於多尺度融合的算法所捕捉的尺度通常是人工預設的,且受限於計算複雜度一般僅使用3~5種尺度.這些人工設計的尺度無法涵蓋場景圖像中的視覺要素可能出現的所有尺度,會出現遺漏和偏差.視覺要素的尺度可能會較大或較小,超出人工預設尺度的範圍;而尺度在人工預設範圍內的視覺要素也不一定會恰好符合某個預設尺度,而是更可能介於2個預設尺度之間.針對以上問題,文獻[69-72]提出了基於自適應學習的多尺度變換算法.其中SAC[69]通過自適應學習卷積核的縮放係數調整卷積的感受野大小,從而對場景圖像的不同空間位置學習多種尺度的特徵,在Cityscapes數據集上的mIoU達到78.1%.而DeformableNet[71]則通過學習卷積核中卷積向量的偏移對卷積的感受野產生形變,也可以實現學習多種尺度特徵的目的,並在Cityscapes數據集上獲得的mIoU為75.2%.FoveaNet[72]借鑑目標檢測的思想,先自適應檢測場景圖像中視覺要素尺度較小的區域,然後將該區域放大進行特徵學習,最後融合2種尺度的結果,在Cityscapes數據集上的mIoU為74.1%.相比人工預設尺度,基於自適應學習的算法更加靈活,學習到的尺度更加貼合場景圖像中視覺要素的實際尺度.

5 基於空間上下文的場景分割算法

場景圖像存在着複雜的空間相關關係,可以用於區分視覺上較為相似的類別,對於視覺要素的識別具有重要的幫助作用.而目前基於「卷積-反卷積」結構的場景分割算法所得到的語義特徵圖是通過卷積的滑動窗口操作計算所得,特徵向量之間並沒有交互,即並沒有考慮場景圖像的空間相關關係.針對上述問題,研究人員提出了基於空間上下文的場景分割算法,通過捕捉場景圖像的空間上下文信息和相關關係輔助視覺要素的識別,進一步提升分割精度.基於空間上下文的算法主要分為基於多維循環神經網絡、基於概率圖模型和基於注意力機制的算法.

5.1 基於多維循環神經網絡

多維循環神經網絡[73]具有循環的結構,適用於序列數據的編碼和特徵學習.在循環的過程中,多維循環神經網絡可以不斷存儲序列中的有用信息而丟棄無關信息,同時捕捉序列前後節點之間的相關關係.因此,可以利用多維循環神經網絡捕捉場景圖像中的空間上下文信息和相關關係.為縮短循環神經網絡的序列長度、降低計算複雜度,文獻[74-76]將循環神經網絡連接於卷積模塊得到的低分辨率語義特徵圖之後,對語義特徵圖的特徵向量進行編碼.另一些算法[65,77-78]則在深度神經網絡不同層的特徵圖之間利用循環神經網絡進行編碼,從不同層的特徵圖中捕捉空間上下文信息.針對語義特徵圖的結構特點,研究人員將循環神經網絡設計為對角結構、八鄰域結構、圖結構等不同的拓撲結構,如圖7所示.對角結構算法[65,74]從語義特徵圖的某個角點(如左上角點)出發,向對角方向進行編碼.在每一步的編碼過程中,均使用水平(如從左到右)、垂直(如從上到下)、對角(如從左上到右下)3個方向的特徵作為序列的輸入.為兼顧不同方向的空間上下文信息,可以將語義特徵圖的4個角點均作為出發點,將得到的4個方向編碼結果進行融合,從而獲取整幅圖像的空間上下文信息.基於八鄰域結構的算法[75]則以語義特徵圖中的每個特徵向量作為出發點,向周圍的8個方向進行輻射和傳播,逐漸擴大到整幅圖像,因此語義特徵圖中的每個位置都會聚合整幅圖像的空間上下文信息.對角結構和八鄰域結構算法都將語義特徵圖中的每個特徵向量作為序列單元.與之不同的是,圖結構算法[76-77]結合了圖像的低層特徵,使用圖像的超像素對應的特徵向量作為序列單元.同時通過超像素的鄰接關係構建圖結構,然後建立序列對超像素對應的節點進行特徵編碼.利用多維循環神經網絡,ML-CRNN[65]使用對角結構對不同層特徵圖進行編碼捕捉空間上下文,在Cityscapes數據集上取得的mIoU為71.2%.

5.2 基於概率圖模型

概率圖模型具有很強的概率推理能力,通過最大化特徵的概率分布獲得類別預測結果.概率圖模型也被應用於場景分割中捕捉場景圖像的空間上下文信息和相關關係.為有效減少概率圖模型的計算複雜度,通常在卷積模塊獲得的低分辨率語義特徵圖之後建立概率圖模型,並以語義特徵圖的特徵向量作為概率圖模型的節點.概率圖模型通常被建模為某種特殊的層插入到卷積神經網絡的整個結構中,實現端對端的訓練和優化.其中最常用的是Markov隨機場和條件隨機場.Markov隨機場基於Markov模型和貝葉斯理論,可以根據計算統計最優準則確定分割問題的目標函數,通過求解滿足目標函數的分布將分割問題轉化為最優化問題.DPN[79]將深度卷積神經網絡與Markov隨機場結合,設計同時性卷積層近似Mean-field算法對Markov隨機場進行求解,在Cityscapes數據集上的mIoU達到66.8%.條件隨機場模型則是基於無向圖的概率模型,計算條件隨機場模型的能量函數中的勢函數,通過最大化類別標籤的條件概率來得到無向圖中節點的預測類別.CRFasRNN[80]將條件隨機場利用循環神經網絡進行建模,連接在深度卷積神經網絡之後進行端對端的訓練,在Cityscapes數據集上的mIoU達到62.5%.FeatMap-Net[62]在多尺度融合得到的語義特徵圖之後建立條件隨機場模型學習「塊與塊」和「塊與背景」的相關關係捕捉空間上下文,在Cityscapes數據集上取得的mIoU為71.6%.SegModel[81]利用條件隨機場同時捕捉特徵圖和人工標註見的空間上下文,從而提高分割精度,在Cityscapes數據集上獲得的mIoU為79.2%.

5.3 基於注意力機制

基於注意力機制的算法[82-85]通過融合局部區域內的特徵向量捕捉場景圖像中的空間上下文信息和相關關係.在使用注意力機制時,需要添加額外的層學習注意力係數,之後利用該係數對局部區域內的特徵向量進行加權聚合.由於注意力係數的學習和局部特徵的聚合過程都是可導的,注意力機制可以靈活被插入在神經網絡的不同位置,並進行端對端的學習.由於注意力係數對局部區域內的不同位置會學習到不同的參數,因此在聚合時可以提高局部區域內相關信息的影響,並抑制局部區域內的無關信息的影響.同時,特徵圖中的不同位置可以通過模型訓練學習到最適合的注意力係數,從而有效捕捉空間上下文信息和相關關係.GLRN[82]通過學習注意力參數學習局部聚合係數捕捉局部上下文,對分割結果的邊界進行修正,在Cityscapes數據集上的mIoU達到77.3%.PSANet[83]利用注意力機制學習雙向自適應聚合參數捕捉局部上下文,在Cityscapes數據集上取得的mIoU為81.4%.DANet[84]設計了2個注意力分支,分別學習針對位置和通道的注意力參數,用於捕捉局部和全局空間上下文,在Cityscapes數據集上的mIoU達到81.5%.OCNet[85]利用注意力機制學習針對相同視覺類別的空間上下文,在Cityscapes數據集上取得的mIoU為81.7%.

6 場景分割相關數據集

場景分割數據集對驗證場景分割算法的有效性有重要意義.同時,帶標註的大規模數據集可以有效提升深度學習模型的性能.由於場景分割需要對場景中的每個像素進行類別識別,場景分割數據集的人工標註也需要精確到像素級別,因此場景分割數據集的標註工作十分費時費力.近年來,公開的場景分割數據集數量越來越多,規模越來越大,為場景分割問題的發展起到極大的推動作用.本節將從數據集規模等方面介紹常用的場景分割數據集,並分析其特點.這些數據集的基本信息如表1所示,部分示例如圖8所示.

Table 1 Common Scene Parsing Datasets表1 常用的場景分割數據集

Fig. 8 Samples of common scene parsing datasets圖8 常用的場景分割數據集示例

6.1 SIFT Flow

SIFT Flow數據集[51]中的圖像由8種典型的戶外場景組成.該數據集共包含2 688個圖像樣本,其中2 488個訓練樣本、200個測試樣本,每個圖像的分辨率為256×256.同時數據集中包含33個語義類別的像素級人工標註.SIFT Flow數據集的圖像分辨率較小,場景比較簡單,類別數和圖像數量較少.

6.2 CamVid

CamVid數據集[86]中的圖像均採集於街景,包括701個街景圖像,其中包括468個訓練圖像和233個測試圖像.每個圖像樣本的分辨率為960×720,並且包含11個語義類別的像素級人工標記.CamVid數據集的類別數和圖像數量較少,但圖像分辨率相對較大,場景針對於街景,對自動駕駛相關技術具有極大意義.

6.3 Barcelona

Barcelona數據集[87]由14 871個訓練圖像樣本和279個測試圖像樣本組成.其中訓練圖像採集於室內和室外場景,而測試圖像均採集於巴塞羅那的街道場景.該數據集中不同圖像樣本的分辨率不同,並且包含170個語義類別的像素級人工標記.

6.4 PASCAL Context

PASCAL Context數據集[88]是以PASCAL VOC數據集[89]為基礎建立的.原始PASCAL VOC數據集僅標註了前景視覺要素的類別,而PASCAL Context數據集還提供了背景視覺要素的類別,因此更加適合於場景分割算法.PASCAL Context數據集包括4 998個訓練圖像樣本和5 105個測試圖像樣本,每個圖像樣本的分辨率不超過500×500,並被標記為59個類別和1個其他類.相比原始PASCAL VOC數據集,PASCAL Context數據集包含的圖像樣本和類別數量更多,難度也更大.

6.5 Cityscapes

Cityscapes數據集[53]中的圖像是利用車載攝像頭採集的歐洲城市的街景.該數據集包含共5 000個圖像樣本,劃分為2 975個訓練圖像樣本、500個驗證圖像樣本和1 525個測試圖像樣本.數據集中包含19個類別的像素級的人工標註,其中每個圖像樣本的分辨率為2048×1024.Cityscapes數據集針對於街道場景,包含的圖像樣本數量和類別數較少,但圖像的分辨率較大,這就需要在設計算法時同時兼顧算法速度和性能,對自動駕駛相關技術具有重大的意義,是目前評測深度學習場景分割算法常用的數據集之一.

6.6 ADE20K

ADE20K數據集[90]取材於Places場景分類數據集.該數據集包含20 210個訓練圖像樣本、2 000個驗證圖像樣本和3 351個測試圖像樣本,同時包含150個語義類別的像素級人工標註.數據集中圖像樣本的分辨率不同且差距較大,最小的圖像邊長約200像素,最大的圖像邊長超過2 000像素.ADE20K數據集包含的場景類別較多,有會議室、臥室等室內場景,也有沙灘、街道等室外場景,且數據集中包含的樣本數量和類別數也較多,圖像的分辨率差距較大,因此ADE20K數據集的難度較高,對場景分割算法提出了更大的挑戰,也催生了一部分優秀的研究成果,是目前評測深度學習場景分割算法常用的數據集之一.

6.7 COCO-Stuff

COCO-Stuff數據集[91]是在COCO數據集[92]的基礎上對標註進行擴展得到的.與PASCAL Context數據集和PASCAL VOC數據集的關係類似,原始COCO數據集僅標註了前景視覺要素的類別,而COCO-Stuff數據集還提供了背景視覺要素的類別,因此更加適合於場景分割算法.COCO-Stuff數據集共包含10 000個圖像樣本,其中9 000個訓練圖像樣本和1 000個測試圖像樣本.同時包含172個類別的像素級標註,其中80個前景類別、91個背景類別和1個無標註類別.COCO-Stuff數據集包含的場景種類、語義類別和圖像樣本數量均較多,因此難度較高,對場景分割算法提出了更大的挑戰,是目前評測深度學習場景分割算法常用的數據集之一.此外,COCO-Stuff數據集還可作為預訓練數據集,從而提升深度學習場景分割模型在其他場景分割數據集上的性能.

7 算法泛化能力分析

算法泛化能力對算法的實際應用具有重要意義.我們從2個方面分析基於深度學習的場景分割算法的泛化能力:1)算法在不同數據集的泛化能力;2)算法在不同任務的泛化能力.表2展示了目前流行的基於深度學習的場景分割算法在不同場景分割數據集的分割精度,包括Cityscapes[53],PASCAL Context[88]和ADE20K[90]這3個數據集.同時列舉了部分算法在語義分割數據集PASCAL VOC 2012[89]的分割精度.語義分割不需要對背景類別進行分割,與場景分割相比更加關注前景的類別,因此場景分割與語義分割是不同的圖像分割子任務.首先,我們對比表2中現有基於深度學習的場景分割算法在場景分割不同數據集上的結果.由於不同數據集存在着類別差異,導致同一算法在不同數據集的精度值會有一定差異.但總體看來,在其中某個場景分割數據集上分割精度較高的算法在另外2個場景分割數據集的精度也相對較高,這說明現有算法在場景分割的不同數據集上具有較好的泛化能力.其次,我們對比表2中算法在場景分割和語義分割數據集上的結果.總體而言,在場景分割數據集上分割精度越高的算法在語義分割數據集上也可以得到越高的分割精度,這說明現有場景分割算法在不同的分割子任務上也具有較好的泛化能力.

Table 2 Generalization Ability of Scene Parsing Algorithms Based on Deep Learning表2 基於深度學習的場景分割算法的泛化能力

8 總結與展望

本文通過對近年來出現的基於深度學習的場景分割算法進行梳理和介紹,得到3個結論:

1) 目前基於深度學習的場景分割算法主要使用了全卷積網絡框架,該框架利用在大規模的圖像分類數據集上預訓練得到的圖像識別網絡,全卷積化後遷移到場景分割數據集上進行重新訓練.全卷積網絡的分割性能優於傳統基於圖像特徵的場景分割方法,將SIFT Flow數據集[51]的像素級正確率從傳統方法[52]的78.6%提升至85.2%.

2) 針對場景分割中面臨的分割粒度細、尺度變化多樣、空間相關性強3個主要難點和挑戰,在全卷積網絡的基礎上,研究人員提出諸多基於深度學習的場景分割算法.其中針對分割粒度細的問題,研究人員提出了基於高分辨率語義特徵圖的算法,包括利用跨層結構、膨脹卷積、全分辨率語義特徵圖的算法;針對尺度變化多樣的問題,研究人員提出了基於多尺度信息的算法,包括利用共享結構、層級結構、並行結構再進行多尺度特徵融合和利用自適應學習多尺度特徵的算法;針對空間相關性強的問題,研究人員提出了基於空間上下文的算法,包括利用多維循環神經網絡、概率圖模型和注意力機制的算法.

3) 近年來基於深度學習的場景分割算法的性能取得了極大的提升,例如在Cityscapes數據集[53]上的mIoU從57.0%[16]提升至82.1%[57].

基於深度學習的算法雖然已經成為場景分割的主流方法,但仍然面臨着諸多困難和挑戰.除上述場景分割問題本身帶來的困難和挑戰外,還存在4個更具挑戰性的場景分割問題:

1) 基於快速和輕量級模型的場景分割.為達到較高的分割精度,目前的場景分割算法傾向於使用較大較深的神經網絡結構,導致計算複雜度高、分割速度慢.同時較大較深的神經網絡包含較多的參數,增加了場景分割模型的存儲開銷.計算複雜度高的問題限制了場景分割算法在自動駕駛、視頻監控等場景中的應用,而存儲開銷大的問題限制了場景分割算法在移動平台的使用.因此,設計快速且輕量級的場景分割模型具有極大的實際應用價值.如何對場景分割算法進行模型壓縮、優化和加速具有重要的研究意義且極具挑戰性.

2) 基於弱監督的場景分割.由於場景分割問題需要對場景圖像中的每個像素判斷類別,全監督的場景分割算法需要依賴大量像素級的人工標註,因此場景分割數據集的建立需要大量的人力物力.同時,現有的場景分割數據集的圖像和類別數目有限,制約了場景分割算法的進一步發展.因此,如果利用圖像的弱標籤信息,如目標框級別、圖像級別的標註訓練場景分割模型,可以大大降低人工標註的成本.但利用弱監督信息會大幅度降低場景分割模型的精度.因此,基於弱監督的場景分割具有重要的研究意義,也更加具有挑戰性.

3) 基於深度信息的場景分割.現有的大部分場景分割算法主要利用了場景圖像的RGB信息.但在數據採集時,可以通過Kinect等基於紅外的設備獲同時取場景的深度信息,並利用RGBD信息設計場景分割算法.場景的深度信息相比圖像信息具有較大差異,並在分割空間距離較大的視覺要素時具有獨特的優勢,例如可以更好地對前景和背景的邊緣進行分割.因此可以利用深度信息對圖像信息進行補充,對提高場景分割精度具有重要幫助.

4) 基於時序上下文信息的場景分割.現有的大部分場景分割算法主要利用了靜態的場景圖像.而在視頻監控、自動駕駛等實際應用場景中,可以獲取場景圖像的時序上下文信息.可以通過挖掘時序上下文信息中的時序連續性提升場景分割精度.同時時序上連續的場景圖像也可以增加場景分割數據集的規模.因此,基於時序上下文信息的場景分割在實際應用中具有重要的研究價值.


來自《計算機研究與發展》,作者張 蕊等

本文僅做學術分享,如有侵權,請聯繫刪文。

—THE END—
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()