張嘉祺, 趙曉麗, 董曉亞, 張 翔
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
對(duì)圖像語(yǔ)義分割就是將圖像中目標(biāo)物體和背景區(qū)分出來(lái)。它是計(jì)算機(jī)理解圖像的基石,也是場(chǎng)景分類、三維重建,醫(yī)療圖像[1]等許多視覺任務(wù)中最重要的一步。過(guò)去的技術(shù)是,對(duì)圖像進(jìn)行特征提取,之后在根據(jù)特征進(jìn)行區(qū)域合并。其中研究投入最多的是特征提取,出現(xiàn)了大量的算法如梯度方向直方圖(histogram of gradient,HOG),尺度不變特征變換(scale-invariant feature transform,SIFT)等,但是其處理過(guò)程復(fù)雜,且不適用于所有圖像。隨著神經(jīng)網(wǎng)絡(luò)算法的出現(xiàn),圖像語(yǔ)義分割算法演變成了為圖像中的每個(gè)像素分配一個(gè)標(biāo)簽,從而使得端對(duì)端的訓(xùn)練成為可能。2015年,Long J等人[2]首次提出將全卷積神經(jīng)網(wǎng)絡(luò)模型運(yùn)用到圖像語(yǔ)義分割上,隨后,出現(xiàn)了許多依賴于全卷積神經(jīng)網(wǎng)絡(luò)的圖像語(yǔ)義分割模型。典型的語(yǔ)義分割網(wǎng)絡(luò)結(jié)構(gòu)通常包含一系列的池化步驟。該操作雖然可以增加視域野,但也導(dǎo)致了經(jīng)過(guò)幾個(gè)步驟之后輸出的圖片分辨率迅速降低,從而造成粗糙的分割結(jié)果。為了解決這個(gè)問(wèn)題,Chen L C等人[3]提出了空洞卷積的特殊卷積方法,該方法可以在不降低分辨率的情況下增加感受野,但輸出的語(yǔ)義分割圖的像素之間有時(shí)候依然會(huì)不連續(xù),因而語(yǔ)義分割圖的模型仍然不是很精確。
針對(duì)語(yǔ)義分割的不連續(xù)問(wèn)題,Koltun V和Chen L C等人[4]提出將條件隨機(jī)場(chǎng)(conditional random field,CRF)作為分割的后處理方法,來(lái)增強(qiáng)輸出標(biāo)簽像素之間的連續(xù)性,該方法已經(jīng)被證明在實(shí)驗(yàn)中可以有效地改善輸出語(yǔ)義分割圖的精細(xì)程度。但是,周圍的像素點(diǎn)對(duì)其需要判斷的像素點(diǎn)有巨大影響,且大量的參數(shù),需要大量的計(jì)算資源。
為了解決上述存在的問(wèn)題,本文提出將生成對(duì)抗網(wǎng)絡(luò)(generative adversarial network,GAN)[5]應(yīng)用到圖像語(yǔ)義分割中以提高語(yǔ)義分割的質(zhì)量。盡管生成對(duì)抗網(wǎng)絡(luò)已經(jīng)應(yīng)用到圖像生成及超分辨中[6],且取得了不錯(cuò)的效果,但將GAN用于圖像語(yǔ)義分割的研究還處于起步階段。本文提出一個(gè)用于圖像語(yǔ)義分割的生成式對(duì)抗網(wǎng)絡(luò)模型,該模型包括生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)兩部分,生成網(wǎng)絡(luò)用于生成語(yǔ)義分割圖,判別網(wǎng)絡(luò)通過(guò)學(xué)習(xí)來(lái)區(qū)分樣本是否屬于來(lái)自于數(shù)據(jù)集。通過(guò)生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)的對(duì)抗訓(xùn)練,督促生成網(wǎng)絡(luò)的生成數(shù)據(jù)更進(jìn)一步接近于Ground Truth,從而達(dá)到優(yōu)化語(yǔ)義分割的目的。
Goodfellow I J等人[6]在2014年提出使用對(duì)抗的方法來(lái)學(xué)習(xí)網(wǎng)絡(luò)模型。GANs普通的模型結(jié)構(gòu)是從一個(gè)隨機(jī)噪聲z,讓其通過(guò)生成網(wǎng)絡(luò)g,使得生成樣本g(z)盡可能接近訓(xùn)練樣本x。判別網(wǎng)絡(luò)通過(guò)學(xué)習(xí)最大化的區(qū)分真實(shí)的樣本x和生成樣本g(z)。
Radford 等人在此基礎(chǔ)上提出了新的網(wǎng)絡(luò)結(jié)構(gòu),他們?cè)谏删W(wǎng)絡(luò)中加入了反卷積,使得這個(gè)模型能夠訓(xùn)練圖片來(lái)合成真實(shí)的圖片。GANs也被運(yùn)用在其他地方,例如圖片標(biāo)簽預(yù)測(cè),人臉生成,圖片描述[7]等等。
隨著全卷積神經(jīng)網(wǎng)絡(luò)首次將深度學(xué)習(xí)成功運(yùn)用于圖像語(yǔ)義分割[2],現(xiàn)在效果最好的圖像語(yǔ)義分割方法大部分都是基于深度學(xué)習(xí)[7,8],這些方法的共同點(diǎn)是:1)使用上采樣代替最后幾層全連接層,以生成圖像;2)使用CRF進(jìn)行后處理,使得分割效果具有連續(xù)性;3)使用空洞卷積在不降低分辨率的情況下,增加感受野。
目前語(yǔ)義分割方面的工作,主要集中在以下兩個(gè)方向1)使用越來(lái)越深的全卷積神經(jīng)網(wǎng)絡(luò)模型。從16層的VGG—16模型到101層的ResNet—101再到152層的ResNet—152。網(wǎng)絡(luò)模型結(jié)構(gòu)越深,越能學(xué)到抽象的特征,分割的精度也迅速提升。但是計(jì)算量也是成倍增加。2)優(yōu)化CRF,這些工作包括使用成對(duì)的全連接CRF作為后處理步驟[3],把CRF嵌入進(jìn)網(wǎng)絡(luò),從而能夠端對(duì)端的訓(xùn)練,或者在CRF中加入邊緣或者目標(biāo)檢測(cè)的信息。
但是,上述這些工作仍然都是基于像素級(jí)別的預(yù)測(cè),會(huì)出現(xiàn)一些樣本以很高的置信度分為錯(cuò)誤類別的問(wèn)題。本文提出將對(duì)抗網(wǎng)絡(luò)運(yùn)用于圖像語(yǔ)義分割。相比之前的那些方法,本文提出的方法主要優(yōu)勢(shì)在于:1)對(duì)抗網(wǎng)絡(luò)包含對(duì)抗思想,生成器與判別器不斷優(yōu)化,各自提高自己的生成能力和判別能力,最終會(huì)達(dá)到兩者之間的一個(gè)納什均衡。使得以很高置信度的錯(cuò)誤分類能盡可能區(qū)分,從而能達(dá)到優(yōu)化語(yǔ)義分割圖的目的。2)相比于使用CRF做后處理的方法,本文所提方法只在訓(xùn)練過(guò)程中加入對(duì)抗訓(xùn)練,在生成過(guò)程中沒有增加大量的計(jì)算。
本文提出的面向圖像語(yǔ)義分割的端對(duì)端生成對(duì)抗網(wǎng)絡(luò)模型,包括生成網(wǎng)絡(luò)和對(duì)抗網(wǎng)絡(luò)兩部分。生成網(wǎng)絡(luò)用來(lái)從原始圖像生成分割圖像,隨后輸入進(jìn)判別網(wǎng)絡(luò),督促生成網(wǎng)絡(luò)生成的分割圖像更加接近Ground Truth,提高圖像分割的效果,其詳細(xì)的架構(gòu)圖如圖1所示。
在生成網(wǎng)絡(luò)模型設(shè)計(jì)過(guò)程中,最重要的是設(shè)計(jì)模型的網(wǎng)絡(luò)結(jié)構(gòu)及確定所使用的損失函數(shù)。
圖1 提出的生成對(duì)抗網(wǎng)絡(luò)詳細(xì)架構(gòu)圖
2.1.1 生成網(wǎng)絡(luò)結(jié)構(gòu)
現(xiàn)在很多工作表明網(wǎng)絡(luò)模型結(jié)構(gòu)越深,越能提升分割效果,但同時(shí)網(wǎng)絡(luò)模型結(jié)構(gòu)也越復(fù)雜,從而導(dǎo)致訓(xùn)練的困難。基于此,本文的生成網(wǎng)絡(luò)模型選擇適中的5個(gè)模塊,每個(gè)模塊含有2層卷積,每層卷積都選擇3×3的卷積核。為得到更多的特征信息,本文設(shè)計(jì)的生成網(wǎng)絡(luò)選擇64個(gè)特征圖;為防止網(wǎng)絡(luò)過(guò)深而導(dǎo)致過(guò)擬合,本文加入批量正則化層,從而有效訓(xùn)練這些網(wǎng)絡(luò),隨后加入整流線性單元(RELU)激活層;為解決卷積之后圖像分辨率不夠問(wèn)題,本文將第三和第四模塊提取的淺層信息作為輔助信息與第五個(gè)模塊的深層信息進(jìn)行特征融合送入反卷積層, 通過(guò)雙線性上采樣得到與原圖大小相同的語(yǔ)義分割圖,其結(jié)構(gòu)圖見圖1的生成網(wǎng)絡(luò)。
2.1.2 生成網(wǎng)絡(luò)的損失函數(shù)
為了盡可能衡量生成的語(yǔ)義分割圖與真實(shí)語(yǔ)義分割圖之間的差異,本文使用的損失函數(shù)如公式(1)所示。與其他一些損失函數(shù)相比,優(yōu)勢(shì)在于對(duì)于以低置信度分類正確的像素點(diǎn),依然有誤差,反向傳播時(shí)以比較大的導(dǎo)數(shù)傳播,從而可以優(yōu)化網(wǎng)絡(luò)參數(shù),使得以比較高的置信度分類正確
2.2.1 判別網(wǎng)絡(luò)結(jié)構(gòu)
本文在Goodfellow I J等人提出的對(duì)抗網(wǎng)絡(luò)模型[6]基礎(chǔ)上改進(jìn)了對(duì)抗網(wǎng)絡(luò)模型,具體見圖1的對(duì)抗網(wǎng)絡(luò)結(jié)構(gòu)。此結(jié)構(gòu)設(shè)計(jì)了六個(gè)模塊,每個(gè)模塊含有1層卷積,卷積核的大小為3×3,為獲得更多的特征信息,本文設(shè)計(jì)的對(duì)抗網(wǎng)絡(luò)使用了較多的特征圖的數(shù)量,每個(gè)模塊的特征圖數(shù)量分別為64,128,128,256,256,512,每個(gè)模塊使用漏整流線性單元(LeakyReLu)做激活函數(shù)(a = 0.2)。在512個(gè)特征圖后面是兩個(gè)全連接層,分別設(shè)定1 024和1個(gè)神經(jīng)網(wǎng)絡(luò)單元。最后使用Sigmoid作為激活函數(shù),輸出為[0,1]區(qū)間,代表這張圖來(lái)自于真實(shí)語(yǔ)義分割圖的置信度。
2.2.2 對(duì)抗網(wǎng)絡(luò)的損失函數(shù)
原對(duì)抗網(wǎng)絡(luò)模型的損失函數(shù)如式(2)所示
式中D為判別網(wǎng)絡(luò),θD,θG分別為判別網(wǎng)絡(luò)和生成網(wǎng)絡(luò)的參數(shù)。G(xn)為進(jìn)過(guò)生成網(wǎng)絡(luò)的語(yǔ)義分割圖,yn為Ground Truth。
針對(duì)本文提出的對(duì)抗網(wǎng)絡(luò)結(jié)構(gòu),將式(2)等價(jià)轉(zhuǎn)換成式(3),并將其作為判別網(wǎng)絡(luò)的損失函數(shù)
對(duì)抗訓(xùn)練的損失函數(shù)是生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)損失函數(shù)的不同比例疊加,并通過(guò)設(shè)置超參來(lái)表示兩部分不同的權(quán)重,其公式如式(4)所示。為找到最優(yōu)的,本文對(duì)不同的λ進(jìn)行了測(cè)試,結(jié)果如表1所示,最后本文將λ的值選擇為0.01
表1 不同參數(shù)對(duì)Loss值影響
本文的網(wǎng)絡(luò)模型基于TensorFlow深度學(xué)習(xí)框架,使用Python語(yǔ)言編寫。所有的訓(xùn)練和測(cè)試在Pascal VOC 2012數(shù)據(jù)集上進(jìn)行,這個(gè)數(shù)據(jù)集包含了20類前景物體和1類背景,總共分為21類。原始的PASCAL VOC 2012數(shù)據(jù)集語(yǔ)義分割部分有1 464張訓(xùn)練圖片,1 449張測(cè)試圖片。本文使用了其擴(kuò)充數(shù)據(jù)集,用10 582張圖像作為訓(xùn)練集,2 031張圖像作為測(cè)試集。本文選擇平均交叉重疊率(mean IOU)和平均準(zhǔn)確率(mean accuracy)作為語(yǔ)義分割圖的評(píng)價(jià)指標(biāo)。
本文使用NVIDIA Tesla K40顯卡進(jìn)行訓(xùn)練,CPU為Intel Xeon E5。每次訓(xùn)練16張圖片,總共迭代1 000次。訓(xùn)練之前,先將圖片進(jìn)行預(yù)處理,變成224×224大小的圖片,然后對(duì)3個(gè)通道同時(shí)除以255,使得每個(gè)數(shù)據(jù)在[-1,1]之間,從而不會(huì)造成某個(gè)通道值過(guò)大而產(chǎn)生偏差。本文先單獨(dú)訓(xùn)練生成網(wǎng)絡(luò)得到預(yù)訓(xùn)練的參數(shù),隨后將圖片經(jīng)過(guò)生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)同時(shí)進(jìn)行對(duì)抗訓(xùn)練,對(duì)生成網(wǎng)絡(luò)做進(jìn)一步的優(yōu)化。本文使用Adam算法進(jìn)行梯度下降,并設(shè)置β為0.9。為了加快訓(xùn)練速度,學(xué)習(xí)率初始設(shè)置為10-2,每經(jīng)過(guò)200輪訓(xùn)練學(xué)習(xí)率縮小10倍并最后定在10-4。整個(gè)訓(xùn)練過(guò)程如圖2所示。
圖2 面向語(yǔ)義分割的對(duì)抗生成網(wǎng)絡(luò)訓(xùn)練流程圖
為對(duì)圖像語(yǔ)義分割結(jié)果進(jìn)行定量和定性分析。本文在測(cè)試集上測(cè)試生成對(duì)抗網(wǎng)絡(luò)模型,并與最近的語(yǔ)義分割方法FCN-8s[2]及DeepLab[3]做了對(duì)比,圖3展示了5張圖像定量分割結(jié)果。
圖3 不同方法圖像語(yǔ)義分割效果圖
第一列表示原圖,第二、三列分別表示FCN-8s和DeepLab的分割結(jié)果,第四列是本文所提方法的結(jié)果,第五列是Ground Truth。從第一行圖中可以看出,相比于這兩個(gè)方法,本文提出的方法不會(huì)因?yàn)閺?fù)雜的背景而過(guò)度分割;第二,第三行圖說(shuō)明了本文的方法在細(xì)節(jié)上也優(yōu)于其余兩種方法;在第四行圖中,沒有出現(xiàn)其他兩種方法常見的不連續(xù)問(wèn)題;第五行圖中,本文的方法沒有出現(xiàn)漏分割和錯(cuò)誤分割問(wèn)題。綜上所述,從定量結(jié)果上來(lái)看,本文提出的方法要優(yōu)于FCN-8s 和 DeepLab。分割結(jié)果的定性分析如表2和表3所示,PASCAL VOC 數(shù)據(jù)集一共有21類,本文先測(cè)試了每類的準(zhǔn)確率,如表2所示,隨后測(cè)試了平均交叉重疊率(mean IOU)和平均準(zhǔn)確率(mean ACC)如表3所示。
表2 不同類圖像語(yǔ)義分割的準(zhǔn)確率
表3 圖像語(yǔ)義分割的平均準(zhǔn)確率(Mean ACC), 平均交叉準(zhǔn)確率(Mean IOU),運(yùn)行時(shí)間
從每類的分割準(zhǔn)確率上來(lái)看,除了自行車這一類略差于DeepLab以外,每一類的準(zhǔn)確率都要好于FCN-8s和DeepLab。相比于FCN-8s和DeepLab,所提出的方法在平均準(zhǔn)確率上(Mean ACC)分別提高了10.5 %,2.8 %,在平均交叉重疊率上分別高了6.7 %,3.6 %。本文測(cè)試了這三個(gè)算法在運(yùn)行一張圖片時(shí)所用的時(shí)間,從表3的結(jié)果可以看出:本文所提的算法也是略快于其余兩個(gè)算法。綜上所述,本文的方法優(yōu)于FCN-8s 和 DeepLab。
為了改善圖像語(yǔ)義分割的連續(xù)性和分割精度問(wèn)題,本文提出了基于對(duì)抗訓(xùn)練的端對(duì)端圖像語(yǔ)義分割網(wǎng)絡(luò)架構(gòu)。該方法首先將圖片輸入生成網(wǎng)絡(luò),生成語(yǔ)義分割圖,隨后和Ground Truth 一起輸入判別網(wǎng)絡(luò),不斷進(jìn)行對(duì)抗訓(xùn)練,督促生成網(wǎng)絡(luò)使得生成的語(yǔ)義分割圖越來(lái)越接近于Ground Truth。本文所提方法和FCN-8s,DeepLab等近幾年的語(yǔ)義分割方法在PASCAL VOC上進(jìn)行比較,通過(guò)定量和定性結(jié)果分析,證明了本文的方法可以有效提高分割效果。未來(lái)會(huì)在生成網(wǎng)絡(luò)上與優(yōu)化語(yǔ)義分割結(jié)果上做進(jìn)一步分析。