張嘉祺, 趙曉麗, 董曉亞, 張 翔
(上海工程技術大學 電子電氣工程學院,上海 201620)
對圖像語義分割就是將圖像中目標物體和背景區分出來。它是計算機理解圖像的基石,也是場景分類、三維重建,醫療圖像[1]等許多視覺任務中最重要的一步。過去的技術是,對圖像進行特征提取,之后在根據特征進行區域合并。其中研究投入最多的是特征提取,出現了大量的算法如梯度方向直方圖(histogram of gradient,HOG),尺度不變特征變換(scale-invariant feature transform,SIFT)等,但是其處理過程復雜,且不適用于所有圖像。隨著神經網絡算法的出現,圖像語義分割算法演變成了為圖像中的每個像素分配一個標簽,從而使得端對端的訓練成為可能。2015年,Long J等人[2]首次提出將全卷積神經網絡模型運用到圖像語義分割上,隨后,出現了許多依賴于全卷積神經網絡的圖像語義分割模型。典型的語義分割網絡結構通常包含一系列的池化步驟。該操作雖然可以增加視域野,但也導致了經過幾個步驟之后輸出的圖片分辨率迅速降低,從而造成粗糙的分割結果。為了解決這個問題,Chen L C等人[3]提出了空洞卷積的特殊卷積方法,該方法可以在不降低分辨率的情況下增加感受野,但輸出的語義分割圖的像素之間有時候依然會不連續,因而語義分割圖的模型仍然不是很精確。
針對語義分割的不連續問題,Koltun V和Chen L C等人[4]提出將條件隨機場(conditional random field,CRF)作為分割的后處理方法,來增強輸出標簽像素之間的連續性,該方法已經被證明在實驗中可以有效地改善輸出語義分割圖的精細程度。但是,周圍的像素點對其需要判斷的像素點有巨大影響,且大量的參數,需要大量的計算資源。
為了解決上述存在的問題,本文提出將生成對抗網絡(generative adversarial network,GAN)[5]應用到圖像語義分割中以提高語義分割的質量。盡管生成對抗網絡已經應用到圖像生成及超分辨中[6],且取得了不錯的效果,但將GAN用于圖像語義分割的研究還處于起步階段。本文提出一個用于圖像語義分割的生成式對抗網絡模型,該模型包括生成網絡和判別網絡兩部分,生成網絡用于生成語義分割圖,判別網絡通過學習來區分樣本是否屬于來自于數據集。通過生成網絡和判別網絡的對抗訓練,督促生成網絡的生成數據更進一步接近于Ground Truth,從而達到優化語義分割的目的。
Goodfellow I J等人[6]在2014年提出使用對抗的方法來學習網絡模型。GANs普通的模型結構是從一個隨機噪聲z,讓其通過生成網絡g,使得生成樣本g(z)盡可能接近訓練樣本x。判別網絡通過學習最大化的區分真實的樣本x和生成樣本g(z)。
Radford 等人在此基礎上提出了新的網絡結構,他們在生成網絡中加入了反卷積,使得這個模型能夠訓練圖片來合成真實的圖片。GANs也被運用在其他地方,例如圖片標簽預測,人臉生成,圖片描述[7]等等。
隨著全卷積神經網絡首次將深度學習成功運用于圖像語義分割[2],現在效果最好的圖像語義分割方法大部分都是基于深度學習[7,8],這些方法的共同點是:1)使用上采樣代替最后幾層全連接層,以生成圖像;2)使用CRF進行后處理,使得分割效果具有連續性;3)使用空洞卷積在不降低分辨率的情況下,增加感受野。
目前語義分割方面的工作,主要集中在以下兩個方向1)使用越來越深的全卷積神經網絡模型。從16層的VGG—16模型到101層的ResNet—101再到152層的ResNet—152。網絡模型結構越深,越能學到抽象的特征,分割的精度也迅速提升。但是計算量也是成倍增加。2)優化CRF,這些工作包括使用成對的全連接CRF作為后處理步驟[3],把CRF嵌入進網絡,從而能夠端對端的訓練,或者在CRF中加入邊緣或者目標檢測的信息。
但是,上述這些工作仍然都是基于像素級別的預測,會出現一些樣本以很高的置信度分為錯誤類別的問題。本文提出將對抗網絡運用于圖像語義分割。相比之前的那些方法,本文提出的方法主要優勢在于:1)對抗網絡包含對抗思想,生成器與判別器不斷優化,各自提高自己的生成能力和判別能力,最終會達到兩者之間的一個納什均衡。使得以很高置信度的錯誤分類能盡可能區分,從而能達到優化語義分割圖的目的。2)相比于使用CRF做后處理的方法,本文所提方法只在訓練過程中加入對抗訓練,在生成過程中沒有增加大量的計算。
本文提出的面向圖像語義分割的端對端生成對抗網絡模型,包括生成網絡和對抗網絡兩部分。生成網絡用來從原始圖像生成分割圖像,隨后輸入進判別網絡,督促生成網絡生成的分割圖像更加接近Ground Truth,提高圖像分割的效果,其詳細的架構圖如圖1所示。
在生成網絡模型設計過程中,最重要的是設計模型的網絡結構及確定所使用的損失函數。

圖1 提出的生成對抗網絡詳細架構圖
2.1.1 生成網絡結構
現在很多工作表明網絡模型結構越深,越能提升分割效果,但同時網絡模型結構也越復雜,從而導致訓練的困難。基于此,本文的生成網絡模型選擇適中的5個模塊,每個模塊含有2層卷積,每層卷積都選擇3×3的卷積核。為得到更多的特征信息,本文設計的生成網絡選擇64個特征圖;為防止網絡過深而導致過擬合,本文加入批量正則化層,從而有效訓練這些網絡,隨后加入整流線性單元(RELU)激活層;為解決卷積之后圖像分辨率不夠問題,本文將第三和第四模塊提取的淺層信息作為輔助信息與第五個模塊的深層信息進行特征融合送入反卷積層, 通過雙線性上采樣得到與原圖大小相同的語義分割圖,其結構圖見圖1的生成網絡。
2.1.2 生成網絡的損失函數
為了盡可能衡量生成的語義分割圖與真實語義分割圖之間的差異,本文使用的損失函數如公式(1)所示。與其他一些損失函數相比,優勢在于對于以低置信度分類正確的像素點,依然有誤差,反向傳播時以比較大的導數傳播,從而可以優化網絡參數,使得以比較高的置信度分類正確

2.2.1 判別網絡結構
本文在Goodfellow I J等人提出的對抗網絡模型[6]基礎上改進了對抗網絡模型,具體見圖1的對抗網絡結構。此結構設計了六個模塊,每個模塊含有1層卷積,卷積核的大小為3×3,為獲得更多的特征信息,本文設計的對抗網絡使用了較多的特征圖的數量,每個模塊的特征圖數量分別為64,128,128,256,256,512,每個模塊使用漏整流線性單元(LeakyReLu)做激活函數(a = 0.2)。在512個特征圖后面是兩個全連接層,分別設定1 024和1個神經網絡單元。最后使用Sigmoid作為激活函數,輸出為[0,1]區間,代表這張圖來自于真實語義分割圖的置信度。
2.2.2 對抗網絡的損失函數
原對抗網絡模型的損失函數如式(2)所示
式中D為判別網絡,θD,θG分別為判別網絡和生成網絡的參數。G(xn)為進過生成網絡的語義分割圖,yn為Ground Truth。
針對本文提出的對抗網絡結構,將式(2)等價轉換成式(3),并將其作為判別網絡的損失函數

對抗訓練的損失函數是生成網絡和判別網絡損失函數的不同比例疊加,并通過設置超參來表示兩部分不同的權重,其公式如式(4)所示。為找到最優的,本文對不同的λ進行了測試,結果如表1所示,最后本文將λ的值選擇為0.01

表1 不同參數對Loss值影響
本文的網絡模型基于TensorFlow深度學習框架,使用Python語言編寫。所有的訓練和測試在Pascal VOC 2012數據集上進行,這個數據集包含了20類前景物體和1類背景,總共分為21類。原始的PASCAL VOC 2012數據集語義分割部分有1 464張訓練圖片,1 449張測試圖片。本文使用了其擴充數據集,用10 582張圖像作為訓練集,2 031張圖像作為測試集。本文選擇平均交叉重疊率(mean IOU)和平均準確率(mean accuracy)作為語義分割圖的評價指標。
本文使用NVIDIA Tesla K40顯卡進行訓練,CPU為Intel Xeon E5。每次訓練16張圖片,總共迭代1 000次。訓練之前,先將圖片進行預處理,變成224×224大小的圖片,然后對3個通道同時除以255,使得每個數據在[-1,1]之間,從而不會造成某個通道值過大而產生偏差。本文先單獨訓練生成網絡得到預訓練的參數,隨后將圖片經過生成網絡和判別網絡同時進行對抗訓練,對生成網絡做進一步的優化。本文使用Adam算法進行梯度下降,并設置β為0.9。為了加快訓練速度,學習率初始設置為10-2,每經過200輪訓練學習率縮小10倍并最后定在10-4。整個訓練過程如圖2所示。

圖2 面向語義分割的對抗生成網絡訓練流程圖
為對圖像語義分割結果進行定量和定性分析。本文在測試集上測試生成對抗網絡模型,并與最近的語義分割方法FCN-8s[2]及DeepLab[3]做了對比,圖3展示了5張圖像定量分割結果。

圖3 不同方法圖像語義分割效果圖
第一列表示原圖,第二、三列分別表示FCN-8s和DeepLab的分割結果,第四列是本文所提方法的結果,第五列是Ground Truth。從第一行圖中可以看出,相比于這兩個方法,本文提出的方法不會因為復雜的背景而過度分割;第二,第三行圖說明了本文的方法在細節上也優于其余兩種方法;在第四行圖中,沒有出現其他兩種方法常見的不連續問題;第五行圖中,本文的方法沒有出現漏分割和錯誤分割問題。綜上所述,從定量結果上來看,本文提出的方法要優于FCN-8s 和 DeepLab。分割結果的定性分析如表2和表3所示,PASCAL VOC 數據集一共有21類,本文先測試了每類的準確率,如表2所示,隨后測試了平均交叉重疊率(mean IOU)和平均準確率(mean ACC)如表3所示。

表2 不同類圖像語義分割的準確率

表3 圖像語義分割的平均準確率(Mean ACC), 平均交叉準確率(Mean IOU),運行時間
從每類的分割準確率上來看,除了自行車這一類略差于DeepLab以外,每一類的準確率都要好于FCN-8s和DeepLab。相比于FCN-8s和DeepLab,所提出的方法在平均準確率上(Mean ACC)分別提高了10.5 %,2.8 %,在平均交叉重疊率上分別高了6.7 %,3.6 %。本文測試了這三個算法在運行一張圖片時所用的時間,從表3的結果可以看出:本文所提的算法也是略快于其余兩個算法。綜上所述,本文的方法優于FCN-8s 和 DeepLab。
為了改善圖像語義分割的連續性和分割精度問題,本文提出了基于對抗訓練的端對端圖像語義分割網絡架構。該方法首先將圖片輸入生成網絡,生成語義分割圖,隨后和Ground Truth 一起輸入判別網絡,不斷進行對抗訓練,督促生成網絡使得生成的語義分割圖越來越接近于Ground Truth。本文所提方法和FCN-8s,DeepLab等近幾年的語義分割方法在PASCAL VOC上進行比較,通過定量和定性結果分析,證明了本文的方法可以有效提高分割效果。未來會在生成網絡上與優化語義分割結果上做進一步分析。