張宏釗 呂啟深 黨曉婧 李炎裕 代德宇
1(深圳供電局有限公司 廣東 深圳 518000)2(深圳市康拓普信息技術有限公司 廣東 深圳 518034)
語義分割是計算機視覺領域具有挑戰性的研究課題之一,其目的是為圖像中的每個像素分配標簽,將一個整體場景分解成幾個單獨的實體,有助于推理目標的不同行為,解決更高級別的視覺問題,包括自動駕駛、增強現實等[1]。隨著人工智能技術的發展,語義分割已經引起越來越多的學者關注,并提出了一系列行之有效的解決方案。然而,語義分割模型在目標定位與分割方面獲得精確分割仍然非常具有挑戰性,主要歸咎于復雜背景、多視場變化、非剛性運動、姿態變化等[2]。
近年來,以卷積神經網絡(CNN)為代表的深度學習算法在圖像語義分割方面已經取得了顯著的性能改進,但這些方法總是遭受基準模板與分割結果之間的空間不一致,部分歸因于標簽變量的獨立預測過程產生的隨機誤差[3]。因此,學者們提出了許多后處理方法以增強預測標簽圖中的空間一致性,細化分段標簽掩碼并消除明顯的邊界錯誤。Chen等[4]在深度語義像素分類結果的基礎上增加了全連接條件隨機場,增強了分割結果的空間一致性,且邊界更加精細。DeepLab方法在深度網絡的最后一層引入全連接條件隨機場,合并不同尺度下的響應結果,增強了目標定位的性能,該方法可廣泛用于高級深度特征與低層次局部特征的信息組合[5]。盡管在使用后處理方法方面取得了這些進步,但DeepLab模型仍局限于使用點對條件隨機場模型來融合特征信息與先驗信息。文獻[6]提出了一種生成對抗訓練方法來訓練分割模型,該方法的平均性能較好,但對某些特定場景下的語義分割性能一般。
由于目標圖的多尺度特性與特征圖的低分辨性,深度網絡主要采用最大池化和降采樣方法獲得特征不變性,這就導致定位精度存在損失[7]。一般來說,深度網絡都會在卷積層之后接上若干個全連接層,其目的是將卷積層產生的特征圖映射成固定長度的特征向量[8]。由于網絡輸出結果是一個基于概率的特征量,網絡適合于像素級的二分類和回歸任務[9]。然而對于語義多目標分割模型,全連接卷積網絡可能輸入任意尺寸的圖像,通過逐層卷積壓縮,然后利用反卷積層對最終特征圖進行上采樣,使它恢復到輸入圖像相同的尺寸,這就使得最終顯著圖存在偏差。一般的解決方案是在保留原始空間信息的同時,對每個像素都產生了一個預測概率,最終實現逐像素分類,但這增加了網絡的空間與時間復雜度[10]。文獻[11]提出了一種新穎的特征變換網絡,將卷積網絡和反卷積網絡連接起來增強共享特征的表征能力,以便從低分辨率特征圖中恢復空間信息。文獻[12]提出的DeepLab V3模型,通過引入空洞卷積思想,在保證卷積特征分辨率不變的基礎上實現感受野的指數級擴大,同時在級聯模塊和空間金字塔池化的框架下,提取多尺度的語義信息,提高分割效果[12]。然而,DeepLab V3網絡在最后一層中移除全連接模塊以獲得準確的局部空間一致性信息,但同時也消除全局信息,導致分割結果存在不完整的情況。
由于經典的空間金字塔尺度結構可以處理任意大小和尺度的圖片,不僅提升了分類的準確率,還提高了檢測效率。為了獲取更多尺度的不規則目標信息,不同級別的特征可通過多孔空間金字塔池化(ASPP)進行級聯,通過融合局部與全局的語義特征,增強圖像理解能力。本文在DeepLab V3基本框架的基礎上,引入Pix2pix網絡作為生成對抗網絡模型,實現基于深度特征和多尺度語義特征的分割架構,該架構采用一個生成器、兩個鑒別器以及一個語義解析網絡對來校正語義分割結果,減小空間結構不一致性。為了增加模型的泛化能力與訓練精度,本文提出將傳統的多分類的交叉熵損失函數與生成器輸出的內容損失函數和鑒別器輸出的對抗損失函數相結合,構建加權損失函數,并采用WGAN算法來優化語義分割模型。定性定量實驗結果表明,本文所提出的語義分割算法的性能超過現有的分割算法,在保證語義分割空間一致性的同時提高分割效率。
語義分割是計算機視覺領域非常活躍的研究方向,并且已經提出了許多優秀的算法。在深度網絡到來之前,語義分割方法主要依靠人工設計的特征來獨立地對像素進行分類。具體而言,將圖像分塊的特征送入精心設計的分類器,如SVM、隨機森林或Boosting等,預測圖像塊中心像素的類別。隨著卷積神經網絡在圖像分類中的快速發展,采用深度模型提取的深層特征進行語義分割可提高分割的精度。近年來,以卷積神經網絡為代表的深度學習模型在語義分割問題中展示出具大的潛力,極大地推動著該領域的發展。FCN[13]是基于深度學習語義分割的開山之作,該方法在不僅實現端對端訓練,還有效地解決了對任意尺寸的輸入產生像素級別輸出的語義預測問題。隨后,各類國際競賽、頂級會議中提出了許多優異的語義分割算法。牛津大學提出的GoogLeNet[14]在ILSVRC-2014競賽上以93.3%準確率取得冠軍,該網絡采取了更深的網絡結構,并引入新穎的Inception模塊,提高分類精度;微軟研究院提出的Resnet[15]在ILS VRC-2015競賽中以96.4%的準確率獲得冠軍;與GoogLeNet相比,ResNet將網絡的深度擴展到152層,并構造殘差模塊與捷徑連接,解決梯度消失現象;考慮到像素間的局部關聯,Zheng等[16]提出了CRFasRNN模型,通過CRF來調優FCN網絡語義分割性能;SharpMask網絡[18]引入Refinement模塊,該網絡不僅具有傳統自下而上的CNN網絡,還設計了自上而下的通道;ParseNet網絡[19]則是在融合前增加上下文模塊,其核心思想是利用反池化操作將全局特征圖轉化為與局部特征圖相同的尺寸,合并后輸入下一層或用于學習分類器;PSPNet采用金字塔池化模塊聚合不同子區域之間的不同尺度信息,實現多尺度特征融合[20];Visin等[21]基于ReNet分類網絡,提出了面向語義分割的ReSeg模型;DeepLab是結合了深度卷積神經網絡(DCNNs)和概率圖模型(DenseCRFs)的方法[5];DeepLab V2是相對于DeepLab V1基礎上的優化,仍存在分辨率低、尺度等問題[22];DeepLab V3網絡通過引入空洞卷積捕獲多尺度信息。
以上語義分割算法模型中,DeepLab V3網絡是目前較好的語義分割算法,其模型架構如圖1所示,該結構的深度模塊一般基于VGG-16或ResNet-1架構進行改進。該模型將DeepLab中所有的全連接層替換為卷積層,并且通過空洞卷積將特征圖的分辨率降低到原圖的1/8;然后通過雙線性插值算法,將特征圖放大8倍,恢復到原圖尺寸。

圖1 基于ASSP的DeepLab V3模型架構
最后,將最終特征圖輸入全連接條件隨機場進行細化,進一步改善分割結果。可以看出,在級聯模塊和空間金字塔的框架下,空洞卷積模塊增大濾波器的感受野去融合多尺度的語義信息,網絡同時也引入不同學習率的卷積模塊,增強特征表征能力。
DeepLab V3網絡在最后一層中移除全連接模塊以獲得局部空間一致性信息,但同時也消除全局信息,導致分割結果存在不完整的情況。因此,本文在DeepLab V3基本框架的基礎上,引入Pix2pix網絡作為生成對抗網絡模型,實現結合深度特征和多尺度語義特征的分割架構,其基本框架如圖2所示。本文提出的模型由三個模塊組成:(1) 基本語義分割模型,主要由DeepLab V3網絡構建;(2)生成器,用于從樣本圖中重建生成圖;(3)鑒別器,用于識別生成圖和真實圖。生成器和鑒別器構成了生成對抗網絡(GAN),該模型首先使用基準掩模和原始圖像進行預訓練。在預訓練階段,利用基準掩模作為輸入,驅動生成器以產生難以與真實圖像區分的重建圖像。然后,采用預訓練的發生器和鑒別器來表征訓練過程中損失函數的變化。因此,本文提出的語義分割框架采用WGAN作為損失函數,以對抗方式優化基本語義分割網絡。

圖2 本文提出的深度對抗網絡
生成對抗網絡(GAN)主要包括了兩個模塊:生成器與鑒別器。生成器主要用來學習真實圖像分布從而讓自身生成的圖像更加真實,以騙過判別器;鑒別器則對輸入的圖片進行真假判別。整個學習過程就是生成器生成更加真實的圖像,而鑒別器準確地識別出圖像的真假,這個過程相當于二人博弈,通過不斷地對抗,最終達到了一個動態均衡。也就是說,生成器得到接近于真實圖像分布,而判別器無法識別出真假圖像。GAN的這種訓練過程可以定義如下:
(1)
生成器同時采用預測層pseg的輸出和原始圖像I作為輸入,生成與原始圖像類似的圖像。受Pix2pix網絡啟發,本文選擇PatchGAN作為馬爾科夫判別器,生成器由4個卷積層與4個反卷積層組成,并在其后增加一個dropout層防止網絡過擬合。訓練時只需要按一定的概率p=0.5來對權值層的參數進行隨機采樣,將相應子網絡作為當前更新的目標網絡;判別器網絡由4個卷積層組成,每個層后面都有一個ReLU方法作為激活函數。
如上所述,生成器被構造為一個具有卷積和反卷積層的編解碼網絡,通過一系列編解碼逐步縮小采樣尺度,直到達到瓶頸層,然后此過程反向重構到原始層。為了避免編解碼過程信息丟失,在第i層和第n-i層之間增加了跨連接,其中n表示生成器中總層數。每個跨連接只是將第i層的輸出特征與第n-i層的特征級聯起來。因此,不同級別的特征通過多孔空間金字塔池化(ASPP)進行級聯,將局部與全局的語義特征融合,增強圖像理解能力。
眾所周知,語義分割模型的目標是生成置信度圖pseg∈Rc×w×h,其中c是數據集類編號,w、h分別是預測顯著圖的寬度和高度。然后,對預測結果執行最大化操作,并通過全連接網絡構建深度模型,從而可以處理不同尺寸的圖像。
因此,本文選擇了DeepLab V3作為基本的分割模型,其目的是生成置信圖pseg,采用argmax運算得到最終的預測掩模,其中每個值表明了輸入像素的標簽響應。
本文的語義分割框架采用了混合損失函數l,其主要由三部分組成:分割損失項ls、內容損失項lc和對抗損失項la。混合損失函數l可以表示為:
l=ls+λ1lc+λ2la
(2)
式中:λ1與λ2分別是兩個經驗權值參數。本文采用多類交叉熵損失來評估語義分割性能,其損失項定義為:
(3)
式中:Pxi由分割模型計算,表示將標簽i分配給像素x的概率;Yxi表示基準模板標簽的概率;M、N、C分別表示樣本數量,像素總數以及數據集類別號。
內容損失函數用于計算由生成器網絡生成的重建圖像IR的質量。因此,逐像素計算其損失函數如下:
lc=Ll1(G)=ΕY,I~Pdata(Y,I),z~Pz(z)‖I-G(Y,z)‖1
(4)
對抗性損失項反映了由生成器重建的圖像質量。本文采用了Wasserteins GAN網絡的損失項,其等式如下:
la=-ΕY~Pdata(Y,I),Z~Pz(Z)D(G(Y,Z))
(5)
對抗網絡的目標函數表示為:
LcG(G,D)=EY,z~Pdata(Y,z)(Y,z)[D(Y,z)]-
EY~Pdata(Y,z),I~Pz(I)[1-D(Y,G(Y,I))]
(6)
式中:G是最小化使對抗生成圖最大化的損失項,即G*=argminGmaxDLcG(G,D)。實驗結果表明,GAN目標損失函數與傳統的l1損失函數共同作用與生成圖有助于提升學習的精度。這表明在鑒別器的目標函數不變的情況下,發生器不僅需要欺騙鑒別器,還要絕對值誤差損失函數意義接近真實基準值。因此,本文提出的算法的最終損失函數項可以表示為:
G*=argminGmaxDLcG(G,D)+λLl1(G)
(7)
如果沒有輸入信號z,網絡仍然可以學習到從x到y的映射,但會產生不確定性輸出,因此無法匹配除δ函數之外的任何分布。由生成器只是忽略噪聲,因此該策略無法增強模型泛化能力。對于最終語義模型,其dropout層可視為噪聲。盡管存在dropout噪聲,但結果表明本文模型的輸出中僅有微小的隨機性,能夠捕獲條件分布的完整熵,實現準確的語義分割。

(8)
式中:π表示生成器G的參數。判別器D分配的概率如下:
(9)
式中:Ii是原始圖像,φ表示判別器D的參數。深度網絡的學習過程就是通過損失函數迭代優化參數φ與π。初始化網絡參數并進行前向傳播以獲得每次的損失值loss(lc,la)。
在每次迭代中,從訓練集中選擇一小部分圖像進行學習,然后更新每個參數:
π←π+τ▽π(lc+la)
(10)
φ←φ+τ▽πla
(11)
式中:τ表示訓練過程的學習率,一般設置為0.01。

(12)
式中:θ是分割模型的參數。語義分割步驟中,GAN模型的參數是固定的,不會更新。我們使用反向傳播(BP)進行學習和隨機梯度下降(SGD)以最小化損失函數來學習并優化參數θ。同時,本文采用前向傳播來獲得每次迭代的損失值loss(la;lc;ls)。參數θ的更新策略π與參數一致,其公式為:
θ←θ+τ▽θ(la+lc+ls)
(13)
根據以上理論分析及模型描述推導,整個語義分割過程概括為三個步驟,對抗訓練、語義分割和參數優化與更新,算法步驟描述如下:
Step 1采用DeepLab V3模型對原始圖像進行分割,獲得分割損失函數;
Step2利用3.1節的模型作為生成器G,并采用式(1)對同時采用預測層的輸出和原始圖像作為輸入,其訓練過程是固定生成器G,利用標記樣本訓練鑒別器D,獲得內容損失函數;
Step3利用PatchGAN作為馬爾科夫判別器對步驟1的結果進行鑒別,獲得對抗損失函數;
Step4利用鑒別器D的輸出作為圖像標記結果,然后利用式(2)提出的加權損失項訓練鑒別器G;
Step5采用Adam算法對式(7)進行優化,獲取最優的語義標記結果;
Step6按照式(13)對參數進行優化更新。
為了評估所提語義分割模型的有效性,本文選用了公共數據集PASCAL VOC2012與Cityscape進行訓練與測試。Cityscape主要針對于城市交通駕駛環境,己經成為語義分割領域最權威的數據集之一,主要側重于城市街道的語義理解,總共有19類前景目標和一個背景用于分割任務,其訓練集共2 975張,驗證集500張,都具有相應的類別標簽。PASCAL VOC 2012共有11 530張圖片,每張圖片都有標注,標注的物體包括人、動物、交通工具、家具等20個類別。為了便于訓練與測試,本文選用了2 150張圖像作為訓練樣本,1 800張圖像作為測試樣本。
本文采用的圖像經預處理調整成大小為320×240的圖像進行訓練。本文所選用的網絡都是基于TensorFlow框架實現,其參數與文獻[20]一致。損失函數中λ1、λ2分別設置為0.15與0.1;學習速率初始化設置為0.15,然后在訓練到第50個Epoch時,學習速率改為0.015;若100個Epoch后,本文提出的損失函數沒有改變則停止訓練。受限于GPU內存,批大小設置為8。權重衰減為0.000 5,Dropout層的概率設置為0.5。對于發生器的訓練,采用具有各向同性高斯權重的Adam優化算法。本文實驗環境為:Xeon(至強)E7-8890 v2 @ 2.80 GHz (X4),128 GB(DDR3 1 600 MHz),Nvidia GeForce GTX 1 080 Ti,Ubuntul6.04,64位操作系統。
為了評價圖像語義分割結果的精度,本文采用像素精度(Pixel Accuracy, PA)、平均類別精度(Mean Accuracy, MA)和平均IoU (Mean Intersection over Union, MIoU)三個指標作為評價標準,其計算公式如下所示:
(14)
(15)
(16)
式中:nij是i類樣本被正確分類為第j類的像素數,ti是類別為i數據集類的數目。從IoU定義可以看出,這相當于兩個區域重疊的部分除以兩個區域的集合部分得出的結果。一般來說,評分值大于0.5就可以被認為正確檢測并分割出目標。
為了定性定量分析所提語義分割算法的性能,本文選擇的對比算法分別是DeepLab V3[12]、DeconvNet[17]、以及SegNet[5]。
(1) Cityscape數據集定性定量結果分析。表1展示了Cityscape數據集不同語義分割算法對不同測試子集的檢測結果,其中黑體與斜體分別是最優與次優的結果。可以看出,本文提出的算法是所有算法是最優的,主要歸咎于本文提出的語義分割模型采用Pix2pix網絡作為生成對抗網絡模型,并融合了深度特征和多尺度語義特征的分割架構,同時該模型引入加權損失函數,增強網絡的學習能力與目標的表征能力。Cityscape數據集中我們選用了最復雜的路況圖像,其檢測結果中本文算法也比DeepLab V3好,主要還是本文模型具有較高的空間一致性,提高了定量指標精度。

表1 Cityscape數據集下語義分割指標結果 %
圖3分別是不同模型對Cityscape數據集的語義分割結果,其中:(a)是原始待處理的圖像;(b)是SegNet模型的語義分割的結果;(c)是DeconvNet模型的語義分割的結果;(d)是DeepLab V3模型的語義分割的結果;(e)是本文所提模型的語義分割的結果;(f)是基準的標注結果。可以看出,這些深度學習架構都取得了非常好的語義分割結果,但也存在各自的問題。圖3是路況圖像,兩側存在大量車輛、行人與建筑,其對比結果中DeepLab V3與本文模型類似,都能穩定的分割出道路建筑等目標,但DeepLab V3的像素精度比本文模型較低,主要還是空間不一致性降低分割精度。SegNet與DeepLab V3的結果比較粗糙,尤其是道路沿存在大量鋸齒。這主要是由于SegNet通過卷積層和一些跳躍連接產生語義概率圖,然后逐漸細化最終提高語義分割的精度;但是SegNet直接使用Softmax損失函數對結果進行判斷,不論是在邊界的處理上,還是在細小物體的處理上都比較粗糙,空間一致性較差。DeconvNet的結構與SegNet非常類似,但該網絡在encoder和decoder之間使用了全連接層作為中繼;DeepLab V3可以調整濾波器視野、控制卷積神經網絡計算的特征響應分辨率的強大工具,該網絡向ASPP中添加了BN層。不同采樣率的空洞卷積可以有效地捕獲多尺度信息,但仿真實驗結果表明,該網絡隨著采樣率的增加,濾波器的有效權重逐漸變小,這會導致性能的下降。

圖3 Cityscape數據集中不同分割模型的結果對比
(2) PASCAL VOC2012數據集定性定量結果分析。表2展示了PASCAL VOC2012數據集不同語義分割算法對不同測試子集的檢測結果,其中黑體與斜體分別是最優與次優的結果。可以看出,本文提出的算法是所有算法中最優的。基于加權損失函數的深度對抗語義分割算法的像素精度是92.3%。比DeepLab V3提高的2.13%,充分說明了本文提出的加權損失函數的優勢。該策略不僅考慮目標像素間的差異,還引入了對抗差異,提升了分割目標的空間一致性,有助于推升精度。與DeconvNet相比,在PA、MA和MIoU三個評價標準中都有一定程度的提升,分別為:7.13%,5.02%和1.34%。實驗結果表明,所提方法超越了大多數已經存在的方法,具有可行性。

表2 PASCAL VOC2012數據集下語義分割結果 %
圖4是PASCAL 2012數據集中前景比較復雜,且目標與背景存在多處交叉的區域,主要驗證本文算法的空間一致性。實驗選用的圖像場景有天空、游輪、人、車輛等目標,當然對于游輪中間面積較小的字符,所有的模型均沒有給出較好的分割結果。SegNet沒有將字符分割出來,且輪廓不夠精確;DeepLab V3結果則是人物輪廓太過模糊,形成多個人影。從實驗結果可以看出,本文模型能夠學習出圖像中隱藏結構特征,以便提高分割模型的性能,而SegNet模型則把單一的目標分成多部分,且邊界不規整;DeepLab V3模型與本文結果比較一致,主要差異在于細小細節上存在錯分的情況。

圖4 PASCAL 2012數據集中不同分割模型的結果對比
(3) 模型訓練收斂對比分析。上文所有算法模型的訓練性能如圖5所示,主要表征整個算法的收斂性能。可以看出,DeepLab V3與對抗網絡的結合不僅可以獲得更高的分割指標,其收斂性能也更穩定。而DeconvNet與SegNet的性能要差一些,這足以說明經過本文算法框架訓練的神經網絡有了更好的收斂效果。

圖5 不同算法下訓練收斂情況對比
本文提出的語義分割模型,首先使用殘差網絡預訓練的參數初始化共享卷積層,使用xavier初始化GAN檢測和語義分割模塊,模型訓練前期,采用了交替訓練的策略:先輸入目標圖片,完成目標GAN模塊的前向傳播和反向傳播參數更新;再輸入語義分割圖片,在上一步目標生成器模塊的更新參數的基礎上,完成語義分割的前向傳播和反向傳播參數更新,交替進行兩個模塊的訓練,直到兩個模塊都趨于收斂。一旦交替訓練完成后,將兩個模塊的損失函數按比例加權求和得到總損失函數,對總損失函數采用Adam算法進行優化,對兩個損失函數設置合適的權值,最終融合網絡模型可以只用一次計算獲得語義分割的結果。
本文針對現有的語義分割算法存在分割結果空間不一致的問題,提出了一種結合加權損失函數的多尺度對抗網絡語義分割算法,該算法在DeepLab V3基本框架的基礎上,引入Pix2pix網絡作為生成對抗網絡模型,實現多尺度對抗網絡語義分割。同時,為增加模型的泛化能力與訓練精度,提出將傳統的多分類交叉熵損失函數與生成器輸出的內容損失函數和鑒別器輸出的對抗損失函數相結合,構建加權損失函數。大量定性定量實驗結果表明,本文提出的深度網絡架構可以穩定地提高語義分割模型的性能。未來將對算法進行優化并移植,希望借助中國科學院信息工程研究所研制的無人駕駛平臺進行環境感知測試。