袁銘陽,黃宏博 ,2,周長勝,2
1.北京信息科技大學 計算機學院,北京 100101
2.北京信息科技大學 計算智能研究所,北京 100192
圖像語義分割在計算機視覺領域中是一個重要的研究方向,可以從像素級別對圖像中的各個事物進行圖像識別和目標檢測。具體來說,圖像語義分割是指從像素級別分辨出圖像中的目標對象具體是什么以及目標對象在哪個位置,即先把圖片中的目標檢測出來,然后描繪出每個個體和場景之間的輪廓,最后將它們分類并對屬于同一類的事物賦予一個顏色進行表示。而圖像語義分割存在一些難點,例如不同種類的物體有著相似的外觀或形狀,此時很難將物體種類區(qū)分開來。而且當物體尺寸過小時,不僅易丟失物體的細節(jié),而且難以識別出物體的具體輪廓。為了解決這些難點,最初大多圖像語義分割技術都是基于傳統(tǒng)方法,主要包括基于閾值、邊緣檢測以及區(qū)域的分割方法。隨著深度學習的出現(xiàn),基于深度學習的圖像語義分割方法逐漸取代了傳統(tǒng)方法,其準確率和速度等各種性能指標都有著很大程度的提高。現(xiàn)如今,基于深度學習的圖像語義分割在自動駕駛、面部分割、服裝解析、遙感圖像以及醫(yī)學圖像等領域都有著廣泛的應用前景,具有很好的研究價值。
目前,已經(jīng)存在不少綜述性文章對各種圖像語義分割方法進行分析和點評。文獻[1-2]主要是對常見的語義分割方法進行全面解析;文獻[3-4]對多種語義分割方法進行了合理的分類,并對數(shù)據(jù)集進行了詳細的說明;文獻[5-7]詳細描述了多種語義分割方法并對各方法的優(yōu)勢之處進行合理的分析對比,同時對各種方法進行明確的分類。本文在已有綜述的基礎上,補充了許多最新的圖像語義分割方法,并對目前主流方法的描述說明進行了進一步完善。
近年來,隨著深度學習的不斷發(fā)展,圖像語義分割技術也取得了重大進步,越來越多的基于深度學習的前沿圖像語義分割方法相繼出現(xiàn),均不同程度對網(wǎng)絡模型進行了改進。由于在前沿的深度學習語義分割方法中,全監(jiān)督學習的圖像語義分割方法的效果要明顯優(yōu)于弱監(jiān)督以及半監(jiān)督學習的圖像語義分割方法,本文旨在對全監(jiān)督學習的圖像語義分割方法的研究進展進行全面分析。全卷積網(wǎng)絡(Fully Convolutional Network,F(xiàn)CN)[8]的出現(xiàn),標志著深度學習正式進入視頻圖像語義分割領域。本文將從FCN 開始,按照分類依次介紹各種語義分割方法。接著對各種圖像語義分割方法進行性能對比,介紹圖像語義分割的評估指標和數(shù)據(jù)集。最后對所有圖像語義分割方法從多個方面進行總結,并對語義分割的未來進行展望。
由于經(jīng)過像素級標注的圖像可以包含較多的細節(jié)信息,有利于通過網(wǎng)絡訓練提取到更加豐富的語義信息,因此目前取得較好分割效果的方法大多屬于全監(jiān)督學習類型。由于早期計算效率低下,早期語義分割方法大多采用全卷積的方式來直觀地獲得分割結果,為了使網(wǎng)絡模型形成一種對稱的美感,編碼器解碼器結構也逐漸變得流行起來。隨著計算力的增加,新方法開始將注意力機制引入到語義分割模型中來提升性能,也有些方法嘗試著設計出特殊模塊添加進已知模型中來提升分割精度。后來,由于單一網(wǎng)絡難以滿足對所有數(shù)據(jù)集中圖像都有較好的分割效果,進而開始出現(xiàn)非靜態(tài)網(wǎng)絡用于圖像語義分割。根據(jù)這些方法的不同特點,將全監(jiān)督學習的圖像語義分割方法共分為5大類:基于全卷積的圖像語義分割方法、基于編碼器解碼器結構的圖像語義分割方法、基于注意力機制的圖像語義分割方法、基于添加特殊模塊的圖像語義分割方法以及基于非靜態(tài)網(wǎng)絡的圖像語義分割方法。
全卷積網(wǎng)絡(FCN)是將深度學習運用到圖像語義分割領域的開山之作。FCN的主要思想是把AlexNet[9]、VGG16[10]以及GoogleNet[11]等常見的網(wǎng)絡結構中的全連接層轉化為卷積層,并在最后使用反卷積,用來將經(jīng)過下采樣壓縮后的特征圖通過上采樣恢復到原來的尺寸,具體的網(wǎng)絡結構如圖1 所示。FCN 可以把圖像中的每一個像素作為訓練樣本,保留每個像素在原圖片中的位置信息,在網(wǎng)絡訓練時對各個像素進行預測并輸出一個相對應的判斷標注,最終計算出各個像素最大可能屬于哪一類別。
圖1 FCN網(wǎng)絡結構圖
FCN最先在圖像語義分割領域引入了一種端到端、像素到像素的全卷積網(wǎng)絡。文獻[12]是對FCN 的一種改進,引入了表觀適配網(wǎng)絡學習視覺的相似性,獲取特征圖的低級像素信息,并通過表征適配網(wǎng)絡獲取表征信息,能一定程度提升分割效果。文獻[13]以DenseNet[14]網(wǎng)絡結構作為骨干,并對Dense塊后的特征圖使用上采樣恢復圖像分辨率,使得網(wǎng)絡模型的精度更加準確且更加易于訓練。
DeepLab系列網(wǎng)絡專門用于圖像語義分割,該系列通過不斷改進網(wǎng)絡模型來優(yōu)化圖像語義分割效果,最先問世的是 DeepLabV1[15]。DeepLabV1 首先將 VGG16 中的全連接層轉化為卷積層,接著將網(wǎng)絡中最后兩個池化層之后的卷積層替換為空洞卷積(Dilation Convolution)[16]??斩淳矸e優(yōu)勢之處在于可以增加感受野,不僅可以很好地解決由于池化計算導致的圖像分辨率降低的問題,還能大幅提升網(wǎng)絡對圖像中大物體的分割效果。DeepLabV1在網(wǎng)絡的最后一層添加了全連接條件隨機場(Conditional Random Field,CRF)[17],可以小幅提升圖像語義分割的精確率。由于空洞卷積會增加計算復雜度,文獻[18]使用聯(lián)合金字塔上采樣來代替空洞卷積,通過將多個并行的不同擴張率的空洞卷積恢復到相同分辨率,在提高模型精度的同時還能加快計算速度。
DeepLabV2[19]在DeepLabV1 的基礎上做出了改進,以殘差網(wǎng)絡ResNet[20]代替VGG16作為網(wǎng)絡模型,ResNet直接將輸入信息繞道傳到輸出端,一定程度上解決了傳統(tǒng)神經(jīng)網(wǎng)絡在訓練過程中或多或少丟失部分信息的問題。為了解決空洞卷積難以識別小物體的問題,DeepLabV2使用了空洞空間金字塔池化(Atrous Spatial Pyramid Pooling,ASPP)對原圖提取多尺度特征。ASPP的思想與空間金字塔池化[21]類似,可以更有利于獲取同一事物在不同尺度下的特征。由于ASPP的加入,雖然使得DeepLabV2相較于DeepLabV1有了更多的參數(shù)量,但是卻帶來了很大程度上的精度提升。文獻[22]對DeepLabV2 的分割速度做出了優(yōu)化,采用Xception 網(wǎng)絡作為編碼器,增加FPN解碼特征的過程,并減少了ASSP的參數(shù)數(shù)量,使分割速度提高了近一倍。
DeepLabV3[23]在DeepLabV2 的基礎上做出了改進,依舊以殘差網(wǎng)絡ResNet 作為網(wǎng)絡模型。DeepLabV3 提供了兩種思路,第一種是在結構上利用空洞卷積能夠增加感受野的優(yōu)勢,采用空洞卷積來加深網(wǎng)絡的層數(shù),這樣做的優(yōu)勢在于不用擔心因為網(wǎng)絡層數(shù)的增加而降低圖像分辨率,之后將這些串行連接的空洞卷積與ASSP相結合。DeepLabV3 的第二種思路是在ASSP 模塊中做出了改進,在模塊中添加了一個1×1 的卷積層和BN(Batch Normalization),并在模型最后添加了全局平均池化[24],可以獲得更加全面的圖片語義信息。最后,由于CRF 學習速度過慢,且在DeepLabV1 和DeepLabV2中提升的精度較少,因此在DeepLabV3中被舍棄。最終實驗結果證明,DeepLabV3即使是在去除了CRF的條件下也能獲得比DeepLabV2 更高的精確度。文獻[25]在DeepLabV3 的基礎上,使用輕量化MobileNet 作為特征提取器,并采用Swish 激活函數(shù)進行精度補償,使得在相同精度的條件下,模型大小和運行時間大幅降低。
RefineNet[26]是一種用于高分辨率語義分割的多路徑優(yōu)化網(wǎng)絡,該網(wǎng)絡可以完美利用降采樣過程中的所有可用信息,以實現(xiàn)使用遠程殘差連接的高分辨率預測。RefineNet 網(wǎng)絡一共包含三部分:第一部分是殘差卷積單元,用來接收多個任意分辨率的特征圖并獲得這些特征圖的底層信息;第二部分是多分辨率融合,將多個分辨率的圖像通過上采樣恢復到相同的分辨率并進行融合;第三部分是鏈式殘差池化,構建由多個塊組成的鏈,每個塊由一個最大池化層和一個卷積層組成,可以從較大的圖像區(qū)域捕獲背景上下文信息并提取高級語義特征。RefineNet的主要貢獻在于提供了一個結合高級語義特征和低級特征生成高分辨率分割圖的網(wǎng)絡結構,該網(wǎng)絡適用于多類語義分割任務,在語義分割主流的7個數(shù)據(jù)集中超過了所有同期的其他網(wǎng)絡。
編碼器解碼器結構是語義分割領域中一種流行的網(wǎng)絡結構。其中編碼器通過卷積池化操作獲得像素的位置信息,而解碼器通過反卷積操作還原像素的位置信息,進而形成一種對稱的網(wǎng)絡結構。
SegNet[27]是最經(jīng)典的編碼器解碼器結構的圖像語義分割網(wǎng)絡,具體網(wǎng)絡結構圖如圖2所示。SegNet中編碼器以VGG16網(wǎng)絡結構為原型,保留了VGG16中的前13個網(wǎng)絡層,完全刪除了全連接層,用來提取輸入圖的特征。而解碼器與編碼器相對應,對編碼器生成的特征圖進行上采樣,保證最后的分割圖與原圖分辨率一樣。值得注意的是,SegNet中的每一個池化都添加了一個索引功能,作用是保留經(jīng)過最大池化后剩余元素的初始位置。添加索引使編碼器在網(wǎng)絡訓練過程中不再需要把完整的生成圖傳遞給解碼器,可以大幅減少網(wǎng)絡訓練時的內(nèi)存占用。文獻[28]也使用了編碼器解碼器結構,并提出了雙通道,用來分別處理像素標注目標圖像和所有源圖像,不僅一定程度上解決了圖像標注問題,還提升了精度。
U-Net[29]是對生物醫(yī)學圖像和遙感圖像[30]進行語義分割的編碼器解碼器結構的網(wǎng)絡。編碼器通過卷積和池化提取輸入圖特征,之后將這些特征圖傳遞給解碼器進行上采樣。U-Net用到了網(wǎng)絡層之間通道的拼接,這種網(wǎng)絡層之間的拼接方法可以實現(xiàn)多層次融合,也就是說把網(wǎng)絡中的每一層信息融合在了一起。拼接的優(yōu)勢在于通過實現(xiàn)多層次融合,使得網(wǎng)絡在訓練過程中可以很大程度減少因為池化層的計算而丟失的信息。而由于U-Net多次使用復制和裁剪,最終雖然會導致語義分割圖即使通過解碼器進行上采樣也不能夠恢復到與輸入圖相同的尺寸,但是在同期卻因為在網(wǎng)絡結構中保留了更多的原圖信息而取得了較高的精度。文獻[31]對U-Net進行了改進,采用了DenseNet的思想,將U-Net中的前四層全部連接起來,可以更好地獲取多個層次的特征,專門用來處理生物醫(yī)學圖像。
圖2 SegNet網(wǎng)絡結構圖
圖3 DeepLabV3+網(wǎng)絡結構圖
DeepLabV3+[32]在DeepLabV3的基礎上做出了改進,采用了編碼器解碼器結構進行圖像語義分割。DeepLabV3+將DeepLabV3網(wǎng)絡結構作為編碼器,并添加一個簡單高效的解碼器用于獲取空間信息,具體的網(wǎng)絡結構如圖3所示。DeepLabV3+使用了Xception[33]結構進行圖像語義分割,可以大幅提升網(wǎng)絡的運行速度。在編碼器中,利用空洞卷積獲取并調(diào)整編碼器特征的分辨率,來平衡運行時間和精確度之間的關系。在編碼器中的ASPP以及解碼器中,添加了深度分離卷積,可以大幅降低網(wǎng)絡的參數(shù)量,使得整個網(wǎng)絡模型可以快速計算并保持較好的學習能力。最后,將由空洞卷積獲得的低級紋理特征和由ASSP 獲得的高級語義特征拼接起來,經(jīng)過3×3 卷積層再上采樣獲得預測結果。DeepLabV3+取得了較DeepLabV3更高的精度,達到了當時的最高水準。
近年來,隨著注意力(Attention)機制在自然語言處理(Natural Language Processing,NLP)領域取得主導地位,人們把Attention機制也同樣用在了圖像語義分割上。將注意力機制引入語義分割網(wǎng)絡,可以更好地從大量語義信息中提取出最關鍵的部分,使得網(wǎng)絡的訓練過程更加高效,分割效果也會顯著提升。但基于通道注意力機制的模型SENet[34]很難達到像素級別的分割效果,因此大多基于注意力機制的圖像語義分割方法使用自注意力機制模型來提高圖像語義分割精度。
DANet[35]就是基于自注意力機制的圖像語義分割網(wǎng)絡,采用帶有空洞卷積的ResNet 作為主干網(wǎng)絡。將經(jīng)過主干網(wǎng)絡后的生成圖通過兩個并行的自注意力機制模塊,即位置注意力模塊和通道注意力模塊。位置注意力模塊通過加權求和的方式來更新位置特征,用來獲得生成圖的任意兩個位置之間的空間依賴關系。通道注意力模塊同樣通過加權求和的方式來更新每個通道,用來獲得生成圖任意兩個通道之間的通道依賴關系。最后對經(jīng)過兩個自注意力機制模塊的輸出圖進行元素求和實現(xiàn)融合,最終通過一次卷積獲得語義分割圖。
大多數(shù)的語義分割任務都通過多個卷積層來增大感受野,但隨著卷積層的不斷堆疊,不僅造成計算量的增加,而且使得能保留的原圖信息越來越少。為了解決這些問題,設計出non-local[36],一種可以用于圖像語義分割的自注意力機制模塊,該模塊的示意圖如圖4 所示。non-local 模塊可以通過直接計算出任意兩點的關系來高效獲得長范圍依賴,且能保證輸入圖和輸出圖尺度不變,便于應用到各種網(wǎng)絡模型中。文獻[37]以ResNet為網(wǎng)絡結構并利用non-local模塊,在該模塊中加入金字塔池化進行下采樣,使得non-local模塊從計算任意兩點的關系轉變?yōu)橛嬎闳我庖稽c和圖像塊之間的關系,大幅提升了計算效率。文獻[38]使用了兩個注意力機制模塊,第一個模塊通過雙線性池化[39]獲得圖像的全部特征,并將其放在一個集合中,第二個模塊將這些特征自適應地分配到每個位置,與non-local 有類似之處。CCNet[40]是一種基于十字交叉模塊的網(wǎng)絡,十字交叉模塊是對nonlocal 模塊的一種改進。使用了串行連接的兩個十字交叉模塊,使得每個像素點在第一個模塊中先計算出該點與其十字型結構的其他像素點的關系,接著在第二個模塊遍歷所有的像素點,這樣可以在提升精度的同時降低內(nèi)存。
圖4 non-local示意圖
雖然non-local 在圖像語義分割任務中表現(xiàn)十分突出,但由于每個像素點都要和全圖所有其他的像素點進行計算,時間復雜度和空間復雜度過大。EMANet[41]是一種期望最大化注意力機制網(wǎng)絡。EMANet 的核心之處在于EMA單元,該單元通過EM算法中的E步更新注意力圖,M步更新一組基,之后E步M步交替執(zhí)行,最后迭代出一組緊湊的基。由于僅在這組緊湊的基上運行注意力機制,相較于non-local大幅降低了復雜度。EMANet隨著EM算法迭代次數(shù)的增加,其性能相較non-local有了明顯的提升。
HANet[42]是一個添加了通用附加注意力機制模塊的網(wǎng)絡,名為高度驅動注意力網(wǎng)絡,專門用來對城市場景圖像進行語義分割。通過對城市場景圖像的觀察,發(fā)現(xiàn)圖像水平分割部分的像素存在著明顯的差異,因而可以根據(jù)像素的垂直位置有選擇地調(diào)整信息特征并對像素進行分類。就類別分布而言,城市場景圖像中每行像素都包含不同的上下文信息,HANet模塊的主要目的就是提取這些信息并計算每行像素的注意權重,用來表示每行的重要性。HANet 模塊將原圖通過寬度池化壓縮空間維度,再經(jīng)過三層卷積獲得注意力圖,并將正旋位置編碼添加到HANet模塊中,用于提取高度方向的上下文信息,最后將注意力圖與特征圖進行元素乘積獲得分割圖。HANet模塊可以添加進如DeeplabV3+的現(xiàn)有模型中,可在城市場景數(shù)據(jù)集中取得最高性能。
目前,許多圖像語義分割方法通過構建特殊模塊,并將特殊模塊添加到常見網(wǎng)絡結構中達到提升圖像語義分割性能的目的。E-Net[43]屬于實時圖像語義分割的網(wǎng)絡,和大多數(shù)的語義分割網(wǎng)絡不一樣,該網(wǎng)絡的側重點主要放在確保一定精度時網(wǎng)絡的速度上。E-Net設計出一種初始模塊來達到目的,初始模塊將池化層和卷積層采用并行的方式計算,代替?zhèn)鹘y(tǒng)CNN 中池化層在卷積層之后的設定。之后再對并行運行的結果進行拼接作為輸出,可以減少網(wǎng)絡的深度并降低計算量。另外將下采樣放置在網(wǎng)絡結構的前端,可以有效地對特征圖的尺寸進行壓縮并減少網(wǎng)絡參數(shù),從而進一步提升速度。單從速度指標來看,E-Net的速度是SegNet的20多倍。
PSPNet[44]是一種用于復雜場景的金字塔場景解析網(wǎng)絡,用來將復雜場景上下文特征嵌入基于FCN 的像素預測框架中,通過金字塔池化模塊聚合了基于不同區(qū)域的上下文信息,具體的網(wǎng)絡結構如圖5所示。PSPNet的核心之處在于金字塔池化模塊,首先讓經(jīng)過卷積層的特征圖進入金字塔池化模塊。該模塊通過四種不同尺度的池化得到不同大小的輸出特征圖,之后將多個輸出特征圖通過卷積層再進行上采樣,可以將多個不同大小輸出特征圖恢復到和原特征圖相同的尺寸,最后對所有的輸出特征圖和原特征圖進行拼接卷積得到最終圖像語義分割圖。PSPNet通過金字塔池化模塊可以很好地解決由于大多數(shù)基于FCN網(wǎng)絡沒有捕獲到足夠的上下文信息而導致錯誤分割的問題,因此可以提升對具有相似外觀的不同物體的語義分割精度。
PointRend[45]是基于點的渲染的神經(jīng)網(wǎng)絡模塊,該模塊的設計理念是將對圖像分割問題視為圖像渲染問題進行處理。所謂渲染,即把3D實體在2D平面上繪制出來,難點在于對實體的邊緣進行分割。PointRend 模塊共由三部分組成:第一部分是點的選擇策略,僅選擇處于物體邊緣位置的點;第二部分是點的特征表示,通過雙線性插值計算出被選擇的點的特征;第三部分則是對這些點的特征進行預測。其中重點在于點的選擇策略,通過計算該點與其近鄰點是否顯著不同的方式可以自適應地正確選擇出少量物體邊緣位置的點,不僅能避免對所有像素進行過多無用的計算,還能直接影響最終的分割效果。PointRend 模塊可以理解成上采樣功能模塊,用雙線性插值法進行上采樣,并對模糊的點進行預測,直到達到所需的分辨率。該模塊可以添加到實例分割網(wǎng)絡Mask R-CNN[46]和語義分割網(wǎng)絡DeepLab 中,進一步提升分割精度。
圖5 PSPNet網(wǎng)絡結構圖
SPNet[47]是由條紋池化模塊(Strip Pooling Module,SPM)和混合池化[48]模塊(Mixed Pooling Module,MPM)構建而成的圖像語義分割網(wǎng)絡,該網(wǎng)絡的核心在于條紋池化(Strip Pooling)。條紋池化是一種新的池化方法,其計算方式和平均池化一樣,但池化核變?yōu)?×n或n×1(n為特征圖的長或寬)。這種長方形池化核相較于大多數(shù)正方形池化核可以更好地捕獲圖像中長條型結構的目標對象。SPM 將輸入圖通過并行的水平條紋池化和豎直條紋池化得到兩張?zhí)卣鲌D,再將兩張?zhí)卣鲌D進行擴張求和后得到融合特征圖,最后將融合特征圖進行卷積處理后與原輸入圖進行像素相乘獲得輸出圖。MPM 是對SPM 的改進,區(qū)別在于添加了金字塔池化,與條形池化構成混合池化,用來解決SPM 不能較好地捕獲圖像中的非長方形目標的問題。SPNet 通過SPM和MPM 對各類形狀的物體都有較好的分割效果,其精度達到了SOTA。
SFNet[49]是用于場景解析的特征金字塔對齊網(wǎng)絡,通過將光流對齊模塊(Flow Alignment Module,F(xiàn)AM)插入特征金字塔網(wǎng)絡(Feature Pyramid Network,F(xiàn)PN)[50]框架構建而成。SFNet的核心部分在于FAM,F(xiàn)AM將變換后的高分辨率特征映射與低分辨率特征映射相結合,生成語義流場,用于將低分辨率的粗略特征轉化為高分辨率的精細特征。FAM在形式上類似于通過光流對齊兩個視頻幀,用于學習相鄰層特征映射之間的語義流,并將高級語義特征有效地傳播到高分辨率特征并進行對齊,進而獲得具有高分辨率的高級語義特征。由于FAM 可以高效地將語義信息從深層傳遞到淺層,可以更加豐富地表示低級特征的語義。SFNet 通過丟棄部分相對無關的卷積來減少計算開銷,再配合使用FAM提升精度,使得網(wǎng)絡在分割精度和速度之間實現(xiàn)最佳的平衡。最終不僅在速度上達到了實時的效果,還顯著提高了準確性,在多個數(shù)據(jù)集中均表現(xiàn)出了極佳的性能。
直到現(xiàn)在,大多圖像語義分割網(wǎng)絡都屬于單一靜態(tài)網(wǎng)絡,雖然靜態(tài)網(wǎng)絡也能對各種不同類型的圖像有著較高精度,但是靜態(tài)網(wǎng)絡卻不能保證最適用于所有類型的圖像。因此設計出一種可以對不同類型的圖像進行合理網(wǎng)絡構建的非靜態(tài)網(wǎng)絡,不僅會適用于所有圖像,還能較靜態(tài)網(wǎng)絡取得更高精度。
Auto-DeepLab[51]是一種自動搜索圖像語義分割架構的方法,該方法首次將神經(jīng)架構搜索(Neural Architecture Search,NAS)[52]用在圖像語義分割中。Auto-DeepLab提出了一種網(wǎng)絡級架構搜索空間,這種搜索空間可以增強單元級搜索空間,從而形成分層架構搜索空間,通過這種分層架構搜索空間可以搜索到最優(yōu)的單元架構和網(wǎng)絡架構。為了保證搜索最優(yōu)架構的高效性,Auto-DeepLab 設計出了一種與分層架構搜索空間相匹配的連續(xù)松弛的離散架構,可以通過梯度下降的方法進行優(yōu)化,進而明顯提升搜索效率。由于搜索的高效性,Auto-DeepLab 在未預訓練的條件下性能超過了當時大多數(shù)預訓練模型。
Dynamic Routing[53]是最新的語義分割表示方法,提出了一個動態(tài)路由的新概念。動態(tài)路由會根據(jù)輸入圖像中不同尺度目標的分布情況進行推理,并在推理過程中自適應地生成不同的網(wǎng)絡結構。利用動態(tài)路由,可以將圖像中各類物體根據(jù)尺寸的大小自適應地分配到相對應分辨率的網(wǎng)絡層上,從而針對性地實現(xiàn)特征變換。在路由空間方面,可以包含多個獨立的節(jié)點,每個節(jié)點都包含上采樣、尺度不變和下采樣三種尺度變換通路。與Auto-DeepLab 中的節(jié)點只能選擇一條路徑不同,動態(tài)路由中的每個節(jié)點都支持多通路選擇和跳躍連接,因而可以模擬出很多經(jīng)典的語義分割網(wǎng)絡架構。在路由選擇方面,由于對每個節(jié)點都設置了一個計算單元并設置了一種軟條件門控,使得該節(jié)點選擇的每一條路徑的概率都由門控函數(shù)計算,因而可以動態(tài)地選擇路徑。此外,通過給門控函數(shù)設計預算約束,可以盡可能舍棄無意義的計算,進而降低計算成本。實驗結果顯示,Dynamic Routing 網(wǎng)絡較大多數(shù)靜態(tài)網(wǎng)絡有著更優(yōu)越的性能。
為了對各種圖像語義分割方法的性能進行公平的對比,需要使用一種統(tǒng)一的、在語義分割領域公認的評估指標。目前,語義分割領域中常用的三種評價指標包括精度、執(zhí)行時間以及內(nèi)存占用。就精度這一評價指標而言,最常見的性能評估指標包括像素精度(PA)、平均像素精度(MPA)、平均精度(AP)、平均召回率(AR)、平均精度均值(mAP)、交并比(IoU)以及平均交并比(MIoU)。在評估結果時,一般會選擇PA、MPA 以及MIoU這三項指標進行綜合對比分析。
(1)精度
精度是當前語義分割任務中最重要的一項指標。PA表示語義分割圖像中分割正確的像素數(shù)量與總像素數(shù)量的比值,具體的計算方法如式(1)所示:
MPA表示每個類別中正確的像素數(shù)量與該類別所有像素數(shù)量的比值的均值,具體的計算方法如式(2)所示:
MIoU 從字面上理解,表示各類像素的觀測區(qū)域和真實區(qū)域的交集與并集之間的比值的平均值,從而可以反映出分割結果和真實圖像的重合程度。MIoU是圖像語義分割中使用頻率最高的一項指標,具體的計算方法如式(3)所示:
式中,n表示像素的類別;pij表示實際類型為i,預測類型為j的像素的數(shù)量;pii表示實際類型為i,預測類型也為i的像素的數(shù)量,即正確的像素數(shù)量。
(2)執(zhí)行時間
對于實時語義分割任務,執(zhí)行時間是比精度還重要的一個指標。這項指標可以反映運行速度的快慢,進而決定是否能投入到實際應用中。
(3)內(nèi)存占用
當滿足精度和執(zhí)行時間指標時,由于可能在某些應用場景中存在內(nèi)存配置固定的情況,此時需要考慮內(nèi)存占用問題。
不同的圖像語義分割方法在處理相同類型的圖像時的效果參差不齊,而且不同的圖像語義分割方法擅長處理的圖像類型也各不一樣。為了對各種圖像語義分割方法的優(yōu)劣性進行公平的比較,需要一個包含各種圖像類型且極具代表性的圖像語義分割數(shù)據(jù)集來測試并得到性能評估指標。下面將依次介紹圖像語義分割領域中常用的數(shù)據(jù)集,所有常用數(shù)據(jù)集的數(shù)據(jù)對比如表1所示。
PASCOL VOC 系列數(shù)據(jù)集在 2005 年至 2012 年每年都會用于圖像識別挑戰(zhàn),為圖像語義分割提供的一套優(yōu)秀的數(shù)據(jù)集。其中最常用的PASCOL VOC 2012[54]數(shù)據(jù)集包括場景在內(nèi)共有21種類別,主要包含人類、動物、交通工具和室內(nèi)家具等。該數(shù)據(jù)集共包含10 000多張圖像,而適用于語義分割的圖像有2 913張,其中1 464張作為訓練圖像,另外1 449 張作為驗證圖像。之后該數(shù)據(jù)集的增強版PASCOL VOC 2012+又標注了8 000多張圖像用于語義分割,這些適用于語義分割的圖片尺寸不同,且不同物體之間存在遮擋現(xiàn)象。
PASCOL Context[55]數(shù)據(jù)集是由PASCOL VOC 2010數(shù)據(jù)集改進而來,添加了大量的物體標注和場景信息,一共有540個標注類別。但在算法評估時,一般選擇出現(xiàn)頻率最高的59 個類別作為語義標簽,剩余類別充當背景。
PASCOL Part[56]數(shù)據(jù)集也是由PASCOL VOC 2010數(shù)據(jù)集改進而來,圖像數(shù)量保持不變,但對數(shù)據(jù)集中的訓練集、驗證集和測試集三部分中的圖像添加了像素級別的標注。對于原數(shù)據(jù)集中的部分類別也進行了切分,使得物體的各個部位都有像素標注,可以提供豐富的細節(jié)信息。
MS COCO[57]數(shù)據(jù)集是一種由微軟團隊提供的可用于語義分割的大型數(shù)據(jù)集。MS COCO 數(shù)據(jù)集提供了包括背景共 81 種類別、328 000 張圖像、2 500 000 個物體實例以及100 000個人體關鍵部位標注。數(shù)據(jù)集中的圖片來源于室內(nèi)室外的日常場景,圖片中每個物體都有精確的位置標注,適用于對網(wǎng)絡進行預訓練。
Cityscapes[58]數(shù)據(jù)集是一種無人駕駛視角下的城市景觀數(shù)據(jù)集。Cityscapes 數(shù)據(jù)集記錄了50 個不同城市的街道場景,包含了5 000 張精細標注還有20 000 張粗略標注的城市環(huán)境中無人駕駛的場景圖像。這5 000張精細標注圖像共分為2 975張訓練圖像,1 525張測試圖像以及500 張驗證圖像,總共提供了包括行人、車輛和道路等30種類別標注。
KITTI[59]數(shù)據(jù)集是一種用于自動駕駛場景的算法評估數(shù)據(jù)集。KITTI數(shù)據(jù)集中包含了城市、鄉(xiāng)村以及高速公路等多種真實場景圖像,最初用于評估目標檢測等技術,是自動駕駛領域最受歡迎的數(shù)據(jù)集之一。但是該數(shù)據(jù)集創(chuàng)立時卻缺乏語義標注,后來通過三人添加手工標注的方式使得該數(shù)據(jù)集可用于語義分割。
ADE20K[60-61]數(shù)據(jù)集是一種由MIT發(fā)布并維護的用于場景解析的大型數(shù)據(jù)集。ADE20K 數(shù)據(jù)集擁有超過25 000 張場景圖像,其中訓練集有20 210 張圖像,驗證集有3 000張圖像,測試集有3 352張圖像。數(shù)據(jù)集中的圖像包含了150種類別,圖像中的物體大多為室內(nèi)和室外的常見物體。
表1 語義分割常見數(shù)據(jù)集對比
SUN-RGBD[62]數(shù)據(jù)集是通過4 個RGBD 傳感器捕獲的圖像集合而成的數(shù)據(jù)集。SUN-RGBD數(shù)據(jù)集均為密集標注,圖像尺寸與PASCOL VOC一致,包含10 000多張RGBD圖像和37種類別,另外還包含了146 617個多邊形標注和58 657個邊界框標注。
NYUDv2[63]數(shù)據(jù)集是由微軟Kinect設備獲得的室內(nèi)場景組成的數(shù)據(jù)集。NYUDv2 數(shù)據(jù)集由一系列的視頻序列組成,包含1 449 張具有40 個類別的RGBD 圖像。數(shù)據(jù)集中共包含464 種室內(nèi)場景,26 種場景類型,適用于家庭機器人的圖像分割任務。
Sift Flow[64]數(shù)據(jù)集是以室外場景為主的數(shù)據(jù)集。Sift Flow 數(shù)據(jù)集共有2 688 張連同場景在內(nèi)的34 種類別的訓練集圖像,包含例如沙漠、河流以及山川等8 種戶外類型場景,每張圖像都帶有像素級標簽,專門用于基于室外場景的任務。
SBD[65]數(shù)據(jù)集是對PASCOL VOC數(shù)據(jù)集的一個擴展,為PASCOL VOC數(shù)據(jù)集中圖像提供了正確的標簽,這些標簽提供了各個物體的邊界信息。SBD 數(shù)據(jù)集包含11 335張具有21個類別的圖像,其中8 498張圖像作為訓練集,2 857張圖像作為驗證集。
CamVid[66]數(shù)據(jù)集是最早用于自動駕駛的數(shù)據(jù)集。CamVid數(shù)據(jù)集是由車載攝像頭從駕駛員的角度拍攝的5 個視頻序列組建而成的,包含了在不同時段的701 張圖像和具有32個類別的語義標簽。
各種圖像語義分割方法的網(wǎng)絡結構和所使用的數(shù)據(jù)集各不相同,無法對所有指標進行比較。為了對各種方法進行公平且直觀的對比,表2 選擇MIoU 作為對比上述圖像語義分割方法的指標,并列舉各種圖像語義分割方法的關鍵技術。
目前,自從深度學習進入圖像語義分割領域,越來越多的全監(jiān)督學習語義分割方法相繼提出,伴隨著計算機性能的提升和網(wǎng)絡模型的優(yōu)化,其分割精度不斷提升。本文主要對當前主流的全監(jiān)督圖像語義分割方法進行了分類,依次對每種類別中極具代表性的方法進行了綜合性的評估,詳細介紹了各方法的網(wǎng)絡模型和具體流程,并對各方法的實驗效果進行了對比。在語義分割領域現(xiàn)有研究的基礎上,對該領域的未來研究重點進行展望。
表2 圖像語義分割方法對比
表2 (續(xù))
(1)注意力機制
自從注意力機制引入到圖像語義分割領域,出現(xiàn)了多種基于注意力機制的語義分割方法。由于注意力機制可以簡化特征提取方式,使得引入注意力機制的方法性能超過了大多全卷積語義分割方法。語義分割領域僅僅在引入注意力機制的三年內(nèi),已經(jīng)出現(xiàn)少量通過引用注意力機制使其性能達到了SOTA 的語義分割網(wǎng)絡模型,證明了引入注意力機制的有效性。到目前為止,許多注意力機制模塊都是以non-local 為基準進行結構或者算法上的改進,嵌入到網(wǎng)絡模型中能提升分割精度。也有少量注意力機制模塊專門針對某一數(shù)據(jù)集圖片的共同特點來設計,僅在該數(shù)據(jù)集中能取得最好效果。從當前發(fā)展趨勢來看,語義分割網(wǎng)絡模型中如何引入更合適的注意力機制模塊來提高性能將會是未來研究的重點。
(2)實時圖像語義分割技術
目前,主流圖像語義分割方法把重點都放在分割精度方面,缺乏對實時性的關注。任何網(wǎng)絡模型在追求精度的同時,勢必會增加網(wǎng)絡層數(shù)和網(wǎng)絡參數(shù)量,這都對網(wǎng)絡的實時性產(chǎn)生影響。而在實際應用場景中,無論是無人駕駛還是智能機器人,為了保障人身安全,需要對網(wǎng)絡的實時性進行嚴格的把控?,F(xiàn)在,部分網(wǎng)絡通過采用輕量化的主干網(wǎng)絡、改變網(wǎng)絡模型通道數(shù)或對圖像進行壓縮的方法來確保實時性,但都會不同程度地導致分割精度的下降。值得一提的是,為了速度指標而大幅降低分割精度同樣不能滿足應用需求。因此如何在保證分割精度的前提下提升語義分割網(wǎng)絡模型的速度,也會成為語義分割領域中一個研究熱點。
(3)數(shù)據(jù)集的自動標注
目前大多數(shù)主流的圖像語義分割領域所使用的數(shù)據(jù)集都是依賴人工標注的方式構建的,這并不能滿足圖像語義分割的需求。人工進行圖像像素級標注所需的時間成本和人力成本過大,且產(chǎn)生的精細標注的圖片數(shù)量也較少。而自動標注的難點在于其容易忽略圖像的深層語義,且沒有一個固定的質(zhì)量評價標準,導致最終結果和人工標注圖像差距較大。隨著深度學習技術的深入,許多基于深度學習的數(shù)據(jù)集自動標注方法相繼出現(xiàn)。最初主要是基于多模態(tài)空間的方法以及基于多區(qū)域的方法。之后出現(xiàn)利用基于GAN 的方法,使自動標注圖像可以通過網(wǎng)絡訓練盡可能縮小與人工標注圖像的差距,取得了更好的效果。為了能在實際應用中有效地解決標注成本問題,設計出更好的GAN 模型對圖像數(shù)據(jù)集自動標注或將成為另一個研究熱點。