胡 敏 李良福
(陜西師范大學(xué)計算機(jī)科學(xué)學(xué)院 陜西 西安 710119)
裂縫作為最常見的公路問題,對其的檢測必不可少。訓(xùn)練一個對裂縫信息敏感的檢測器,需要數(shù)量龐大且形態(tài)各異的裂縫圖像數(shù)據(jù)集作為支撐,然而現(xiàn)實(shí)生活中采集到的裂縫圖像往往包含許多除了裂縫以外的障礙物,如落葉、石子、電纜等,這些障礙物可能會影響后期檢測器對裂縫的檢測,造成誤檢、漏檢等問題,因此對采集到的裂縫圖像進(jìn)行修復(fù)至關(guān)重要。
近年來,隨著計算機(jī)的發(fā)展,一系列基于數(shù)字圖像處理、深度學(xué)習(xí)的方法被運(yùn)用于圖像修復(fù)[1-2]領(lǐng)域。Bertalmio等[3]提出采用偏微分方程的方法進(jìn)行圖像修復(fù),但是該算法缺少穩(wěn)定性,修復(fù)結(jié)果往往不佳。隨后Chan等在此基礎(chǔ)上提出基于能量最小化原則的統(tǒng)一修復(fù)模型[4],但由于該模型受到修復(fù)區(qū)域大小的限制,且不滿足連續(xù)性原則,進(jìn)而又提出一種基于曲率擴(kuò)散模型[5]。只是以上算法均只適用于非紋理圖像的修復(fù),當(dāng)所需修復(fù)的圖像是紋理圖像時則沒有辦法完成修復(fù)任務(wù)。Raymond Yeh等[6]在2016年提出使用深度卷積生成式對抗網(wǎng)絡(luò)的方法進(jìn)行圖像修復(fù),通過訓(xùn)練有素的深度神經(jīng)網(wǎng)絡(luò)對破損圖像的紋理特征進(jìn)行修復(fù),降低了噪聲對修復(fù)結(jié)果的影響,帶來了視覺多樣性。但由于修復(fù)網(wǎng)絡(luò)中的二進(jìn)制掩碼的不可變性使得所有的像素點(diǎn)在圖像修復(fù)過程中對修復(fù)區(qū)域貢獻(xiàn)相同,往往導(dǎo)致修復(fù)結(jié)果不穩(wěn)定;隨后一系列基于文獻(xiàn)[6]的改進(jìn)[7-11]被提出,雖然取得了相對較好的輸出效果,但此類方法固定了受損區(qū)域的大小以及位置,靈活性較差,并且增加了修復(fù)過程的復(fù)雜性。
針對以上缺點(diǎn),本文提出了一種基于生成式對抗網(wǎng)絡(luò)的裂縫圖像修復(fù)方法CI-GAN(Crack Inpaint Generative Adversarial Network),首先擦除裂縫圖像中的障礙物信息獲得僅含有裂縫信息的待修復(fù)圖像,同時使用CI-GAN生成一系列候選向量送入CI-GAN的差異判別器,計算候選向量的感知損失。然后分別為待修復(fù)圖像和候選向量覆蓋距離懲罰掩碼,計算待修復(fù)圖像與覆蓋距離懲罰掩碼的候選向量之間的語義損失。選取感知損失與語義損失之和最小的候選向量為最優(yōu)補(bǔ)全圖,并截取最優(yōu)補(bǔ)全圖中與待修復(fù)圖像中信息缺失位置對應(yīng)的像素塊作為修復(fù)塊,將修復(fù)塊拼接到待修復(fù)位置的殘缺處即獲得修復(fù)圖。最后使用CI-GAN的全局判別器計算修復(fù)圖的全局損失,進(jìn)一步對最優(yōu)補(bǔ)全圖進(jìn)行優(yōu)化得到最終的修復(fù)圖。實(shí)驗(yàn)表明,本文修復(fù)方法得到的裂縫圖像對障礙物去除得更徹底,且修復(fù)后的裂縫圖像質(zhì)量更高。
生成式對抗網(wǎng)絡(luò)類似于一個博弈結(jié)構(gòu),其由生成器和判別器兩個部分組成,如圖1所示。判別器以真實(shí)裂縫圖像和生成器構(gòu)造的虛假裂縫圖像為輸入,通過神經(jīng)網(wǎng)絡(luò)模型對輸入進(jìn)行特征提取,最終輸出[0,1]區(qū)間的概率值,真實(shí)裂縫圖像對應(yīng)的標(biāo)簽為1,生成器生成的裂縫圖像對應(yīng)的標(biāo)簽為0;生成器則以隨機(jī)生成高斯白噪聲為網(wǎng)絡(luò)的輸入,經(jīng)過生成器網(wǎng)絡(luò)的解碼過程,最終輸出一個與真實(shí)裂縫圖像大小相同的向量,然后通過判別器預(yù)測的置信值計算與真實(shí)類別對應(yīng)標(biāo)簽之間的差距,直接將此誤差作為反向傳播的誤差來更新參數(shù)以及最初的輸入向量。
生成式對抗網(wǎng)絡(luò)采用交叉熵?fù)p失函數(shù)對參數(shù)進(jìn)行優(yōu)化,損失函數(shù)如下:
Ex~pG(z)[log(1-D(G(z)))]
(1)
Ex~pG(z)[log(1-D(G(z)))]
(2)
此時默認(rèn)生成器是固定不變的,判別器優(yōu)化即為一個二分類判別模型,輸入的真實(shí)裂縫圖片對應(yīng)標(biāo)簽為1,生成器生成的裂縫圖片對應(yīng)標(biāo)簽為0。對生成器進(jìn)行優(yōu)化時,此時判別器僅充當(dāng)判別輸入裂縫圖像真?zhèn)蔚姆诸惼?,因此僅計算下式給出的損失即可:
(3)
裂縫具有細(xì)長,分布無規(guī)律的特性,當(dāng)裂縫圖像中出現(xiàn)水漬、陰影、電線、石頭等障礙物時,裂縫誤檢或檢測不出來的情況很容易發(fā)生。在對裂縫圖像進(jìn)行修復(fù)時,首先將裂縫圖像中障礙物所在位置的像素置零,擦除障礙物所在位置的信息,同時使用訓(xùn)練好的生成器生成一系列候選向量,將生成的候選向量輸入到已經(jīng)訓(xùn)練好的判別器中,得到感知損失:
Lp=log(1-D(G(z)))
(4)
式中:Lp為感知損失,為了提取待修復(fù)的裂縫圖像的缺失部分位置信息,同時生成與用于待修復(fù)的裂縫圖像補(bǔ)全的修復(fù)塊,文獻(xiàn)[6]給出一種二進(jìn)制掩膜:
(5)
在該掩膜中,待修復(fù)的裂縫圖像的受損區(qū)域?qū)?yīng)值為1,未受損區(qū)域?qū)?yīng)值為0,Mij表示圖像第i行第j列對應(yīng)位置的掩碼值,σ表示圖像中的信息缺失區(qū)域。分別為待修復(fù)的裂縫圖像和候選向量覆蓋二進(jìn)制掩膜,并計算差異:
(6)
式中:Ls表示語義損失,M⊙(G(z)-x)表示生成圖像和待修復(fù)圖像加入掩膜后的像素差異,其中Ls越小,表示生成的裂縫圖像和待修復(fù)的裂縫圖像在非受損區(qū)域像素分布越接近,尋找語義損失和感知損失最小的候選向量作為最優(yōu)裂縫補(bǔ)全圖,提取其與待修復(fù)的裂縫圖像的受損區(qū)域?qū)?yīng)位置的像素塊作為修復(fù)塊,將修復(fù)塊與待修復(fù)的裂縫圖像拼接得到補(bǔ)全圖。該方法在對裂縫圖像進(jìn)行修復(fù)時,忽略了不同像素貢獻(xiàn)的信息重要程度不同的問題,此外修復(fù)后的裂縫圖像沒有進(jìn)行語義上的再判斷,使補(bǔ)全圖在視覺上看缺乏真實(shí)性,無法直接在裂縫檢測任務(wù)中使用。
傳統(tǒng)的生成式對抗網(wǎng)絡(luò)進(jìn)行圖像修復(fù)時使用的修復(fù)掩膜為二進(jìn)制掩膜,其默認(rèn)在待修復(fù)區(qū)域內(nèi),所有的像素點(diǎn)對修復(fù)時所作的貢獻(xiàn)是相同的。這樣做會導(dǎo)致生成器只注意到距離修復(fù)區(qū)域邊緣遠(yuǎn)的像素信息, 而忽略臨近修復(fù)區(qū)域邊緣的像素信息,從而造成修復(fù)邊緣不連貫問題。
(7)
(8)
式中:i表示圖像矩陣對應(yīng)行,j表示圖像矩陣對應(yīng)列,點(diǎn)p表示待修復(fù)區(qū)域的中心點(diǎn)位置,xij為當(dāng)前像素點(diǎn)位置,M為標(biāo)記矩陣,Mij為標(biāo)記矩陣內(nèi)位置為(i,j)的對應(yīng)點(diǎn),MD為距離修復(fù)掩膜,此時的語義損失變?yōu)椋?/p>
(9)
傳統(tǒng)的生成式對抗網(wǎng)絡(luò)中,判別器用來鑒別輸入的是真實(shí)裂縫圖像還是生成器生成的裂縫圖像。真實(shí)裂縫圖像對應(yīng)標(biāo)簽為1,生成器生成的裂縫圖像對應(yīng)標(biāo)簽為0。在此過程中真實(shí)裂縫圖像和生成器生成的裂縫圖像之間互不干擾,兩者的潛在關(guān)系僅通過判別器逐個計算損失并把梯度信息回傳給生成器,生成器根據(jù)判別器傳遞的梯度信息調(diào)整模型的參數(shù)以及隨機(jī)噪聲的分布。
為了更好地挖掘真實(shí)裂縫圖像分布與生成的裂縫圖像分布之間的潛在相關(guān)性,引導(dǎo)生成網(wǎng)絡(luò)生成的裂縫圖像可以更完美地擬合真實(shí)裂縫圖像,本文對判別器結(jié)構(gòu)作了如下改變。考慮到真實(shí)的裂縫圖像與生成器生成的裂縫圖像之間具有一定的相關(guān)性,并且真實(shí)的裂縫圖像對應(yīng)的真實(shí)程度和生成器生成的裂縫圖像對應(yīng)的虛假程度都是相對于判別器學(xué)習(xí)到的兩者間的相對差異而言的,所以它們之間的差異可以表示為:
dis(x,G(z))=|F(x)-E(F(G(z)))|L1
(10)
傳統(tǒng)的判別器輸出經(jīng)激活函數(shù)D=σ(F(·))映射到[0,1]區(qū)間的概率值,其中F表示判別網(wǎng)絡(luò)特征提取過程,σ表示激活函數(shù)。因此,式(10)中F(x)表示真實(shí)高分辨率裂縫圖像經(jīng)過判別網(wǎng)絡(luò)后提取到的特征,F(xiàn)(G(z))表示生成的超分辨率裂縫圖像經(jīng)過判別網(wǎng)絡(luò)后提取到的特征,E(x)表示均值。對于真實(shí)的裂縫圖像判別器輸出為D(dis(x,G(z))),對應(yīng)生成的裂縫圖像判別器輸出為D(dis(G(z),x)),經(jīng)過激活函數(shù)映射,此時的判別器輸出仍為[0,1]的概率值,與傳統(tǒng)的判別器一樣,真實(shí)的裂縫圖像相對生成裂縫的圖像的真實(shí)程度對應(yīng)標(biāo)簽為1,生成器生成的裂縫圖像相對真實(shí)的裂縫圖像的虛假程度對應(yīng)標(biāo)簽為0。此時生成式對抗網(wǎng)絡(luò)的損失具有如下定義:
Ladv=Ex~Pdata(x)[log(D(dis(x,G(z))))]+
Ex~PG(z)[log(1-D(dis(G(z),x)))]
(11)
式中:Ladv表示對抗損失。在訓(xùn)練判別器時,損失函數(shù)為:
Ex~PG(z)[log(1-D(dis(G(z),x)))]
(12)
訓(xùn)練生成器時,損失函數(shù)為:
(13)
本方法不僅引入距離加權(quán)修復(fù)掩膜和差異度量判別器,還從對抗網(wǎng)絡(luò)整體結(jié)構(gòu)、判別器結(jié)構(gòu)、生成器結(jié)構(gòu)三方面設(shè)計改進(jìn),針對裂縫圖像提出裂縫修復(fù)生成式對抗網(wǎng)絡(luò)CI-GAN(Crack Inpaint Generative Adversarial Network),近一步提升裂縫圖像的修復(fù)效果。模型的整體結(jié)構(gòu)如圖2所示,本文判別器與傳統(tǒng)判別器不同,不但可以判別生成器生成的裂縫圖像和真實(shí)的裂縫圖像的差異,同時還能夠判別修復(fù)后的裂縫圖像與真實(shí)的裂縫圖像之間的差異。在CI-GAN模型的訓(xùn)練階段,模型的輸入由真實(shí)的裂縫圖像和生成器生成的裂縫圖像兩部分構(gòu)成,判別器執(zhí)行生成判別器功能,輸出輸入圖像的真實(shí)程度或者虛假程度;在CI-GAN模型的修復(fù)階段,模型的輸入為修復(fù)圖像,判別器執(zhí)行全局判別功能,輸出輸入圖像整體的虛假程度。
圖2 CI-GAN結(jié)構(gòu)圖
2.3.1判別器結(jié)構(gòu)
判別模型與生成裂縫圖像的真實(shí)程度相關(guān)。本文判別器在不同的場景下,實(shí)現(xiàn)的功能也不相同。當(dāng)輸入為生成的裂縫圖像時,執(zhí)行生成判別器功能,當(dāng)輸入為修復(fù)后的裂縫圖像時執(zhí)行全局判別器功能。其中生成判別器功能是鑒別輸入圖像是真實(shí)裂縫圖像的真實(shí)程度還是生成裂縫圖像的虛假程度,全局判別器則是從圖像語義分布方向鑒別修復(fù)圖像整體的虛假程度,并對應(yīng)輸出全局損失,其公式如下:
(14)
L=Ls+λLp+μLg
(15)
式中:L為聯(lián)合損失函數(shù),λ為感知參數(shù),μ為全局參數(shù),Ls為加權(quán)語義損失,Lp為感知損失,Lg為全局損失。
在設(shè)計判別模型結(jié)構(gòu)時,若判別模型過于簡單,導(dǎo)致網(wǎng)絡(luò)對輸入圖像的特征學(xué)習(xí)不到位,容易產(chǎn)生欠擬合問題,使得生成的裂縫圖像呈明顯的網(wǎng)格化分布;若判別模型過于復(fù)雜,網(wǎng)絡(luò)訓(xùn)練難度大大增加,會產(chǎn)生模型不收斂等問題。文獻(xiàn)[6]中的模型的判別器由五個卷積塊構(gòu)成,其中每個卷積塊由卷積層(Conv)、激活層(Leaky Relu)、歸一化層(Batch Normalization)按序排列構(gòu)成。此結(jié)構(gòu)的判別器使用在修復(fù)圖像中雖然可以達(dá)到相對較好的效果,但是由于模型層數(shù)淺,特征學(xué)習(xí)不到位,網(wǎng)絡(luò)生成的裂縫圖像含有較為明顯的網(wǎng)格型噪聲,視覺效果差,無法直接應(yīng)用于裂縫檢測。
針對上述問題,本文在保證不丟失特征、不改變輸入輸出尺寸的前提下,對判別器模型進(jìn)行了改進(jìn),增加了卷積核大小為3×3,步長為1的卷積層,同時為了進(jìn)一步篩選無效特征加入激活層,并且為了加速模型收斂防止過擬合加入歸一化層。CI-GAN判別器的具體結(jié)構(gòu)如圖3所示,其中模型輸入包含兩個部分,G(z)表示生成器生成的裂縫圖像,X表示真實(shí)的裂縫圖像,模型的輸出為[0,1]區(qū)間的概率,表示輸入圖像的真實(shí)程度或者虛假程度。判別器將輸出的概率值回傳給生成器,為生成器的更新提供梯度信息。
圖3 判別器結(jié)構(gòu)
2.3.2生成器結(jié)構(gòu)
生成器使用接收到的梯度信息更新模型參數(shù)和生成向量的分布。生成器作為生成裂縫圖像的單元,不僅決定了生成的裂縫圖像的質(zhì)量,還影響著網(wǎng)絡(luò)的修復(fù)性能。本方法生成器由反卷積層(Deconv)、激活層(Relu)、歸一化層(Batch Normalization)構(gòu)成。考慮到模型的學(xué)習(xí)能力隨結(jié)構(gòu)加深而增強(qiáng),本文加入了反卷積塊(Deconv Block)結(jié)構(gòu),其由四個小塊順序拼接組成。每個小塊包含一層卷積核大小為3×3,步長為2的反卷積層,一層激活層和一層歸一化層。為了增加模型的深度,本文在第一小塊和第三小塊中增加了一層卷積核大小為3×3,步長為1的卷積層。同時為了近一步過濾掉無用特征并且加速模型收斂,在每個卷積層后面都加入了激活層和歸一化層,CI-GAN中生成模型的具體結(jié)構(gòu)如圖4所示,左邊為生成模型的結(jié)構(gòu)簡圖,右邊對應(yīng)反卷積塊的結(jié)構(gòu)圖。
圖4 生成網(wǎng)絡(luò)結(jié)構(gòu)對比圖
本文實(shí)拍的10 350張128×128大小的RGB彩色裂縫圖像作為原始裂縫數(shù)據(jù)集。通過隨機(jī)旋轉(zhuǎn)、左右翻轉(zhuǎn)對原始裂縫數(shù)據(jù)集進(jìn)行增強(qiáng),最終得到31 050張裂縫圖像,其中31 000張作為CI-GAN的訓(xùn)練數(shù)據(jù)集。為測試本文算法的準(zhǔn)確性和有效性,另增加50張包含落葉遮擋的裂縫圖像、50張包含石子覆蓋的裂縫圖像,將增加含有障礙物的圖像與剩余的50張裂縫圖像整合,共150張圖像作為本實(shí)驗(yàn)測試集。
本文使用adam梯度下降方式尋求最優(yōu)解,初始學(xué)習(xí)率為0.000 5,學(xué)習(xí)率衰減為0.1,衰減步長為50 000,批尺寸為128,動量項(xiàng)取值0.5,迭代100 000次后將訓(xùn)練結(jié)果保存。
3.2.1CI-GAN修復(fù)效果對比
通過實(shí)驗(yàn),改進(jìn)后模型對擦除障礙物的待修復(fù)裂縫圖像的修復(fù)效果得到了明顯的改善。改進(jìn)效果對比如圖5所示,由左列至右列分別為原始圖片、障礙物擦除后待修復(fù)圖片、CI-GAN結(jié)合二進(jìn)制掩膜修復(fù)圖片以及CI-GAN結(jié)合距離加權(quán)掩膜修復(fù)圖片。改進(jìn)前后模型的修復(fù)效果使用模糊系數(shù)(KBlur)、峰值信噪比(PSNR)、結(jié)構(gòu)相似度(SSIM)、均方誤差(MSE)對修復(fù)結(jié)果進(jìn)行評估,對比如表1所示??梢钥闯霰舅惴◤膶?shí)際觀測效果和圖片度量指標(biāo)對比結(jié)果均優(yōu)于改進(jìn)前模型。
圖5 掩膜修復(fù)效果對比圖
表1 不同掩膜修復(fù)效果對比
為了驗(yàn)證CI-GAN判別器較傳統(tǒng)模型判別器在裂縫修復(fù)方面更具優(yōu)勢,本實(shí)驗(yàn)通過對比CI-GAN使用普通判別器以及差異判別器對裂縫圖像修復(fù)效果,結(jié)果如圖6所示,由左列至右列分別為結(jié)構(gòu)相似的裂縫圖像原圖、CI-GAN使用傳統(tǒng)判別器的修復(fù)效果、CI-GAN使用差異判別器的修復(fù)效果。同時本文對兩種判別器修復(fù)的裂縫圖進(jìn)行質(zhì)量評估,評估結(jié)果如表2所示。從表中能夠得出,CI-GAN差異判別器在修復(fù)相似的裂縫圖像時,可以得到比傳統(tǒng)判別器更穩(wěn)定的修復(fù)效果。
圖6 判別器修復(fù)效果對比圖
表2 不同判別器的修復(fù)效果對比
為了驗(yàn)證CI-GAN結(jié)構(gòu)較改進(jìn)前DCGAN結(jié)構(gòu)更適用于對裂縫圖像的修復(fù),本實(shí)驗(yàn)又通過對比CI-GAN和DCGAN對裂縫圖像修復(fù)效果,結(jié)果如圖7所示,由左列至右列分別為裂縫原圖像、DCGAN的修復(fù)圖像、CI-GAN的修復(fù)圖像。同時本文對兩種判別器修復(fù)的裂縫圖進(jìn)行質(zhì)量評估,評估結(jié)果如表3所示。從表中能夠得出,CI-GAN的修復(fù)效果更好。
圖7 模型結(jié)構(gòu)修復(fù)效果對比圖
表3 不同模型結(jié)構(gòu)的修復(fù)效果對比
3.2.2不同算法效果對比
本算法與傳統(tǒng)修復(fù)算法基于裂縫圖像數(shù)據(jù)集進(jìn)行對比試驗(yàn),本文提出的CI-GAN在修復(fù)殘缺裂縫圖像時表現(xiàn)更佳。圖8分別對三張裂縫圖像進(jìn)行信息擦除,并使用五種修復(fù)方法進(jìn)行待修復(fù)圖像的修復(fù),由左列至右列分別為實(shí)拍裂縫圖像、信息擦除后的待修復(fù)圖像、TV算法的修復(fù)結(jié)果圖像、CDD算法的修復(fù)結(jié)果圖像、Criminisi算法的修復(fù)結(jié)果圖像、DCGAN的修復(fù)結(jié)果圖像以及CI-GAN的修復(fù)結(jié)果圖像。本文使用模糊系數(shù)、質(zhì)量系數(shù)Q以及峰值信噪比對修復(fù)后的圖片質(zhì)量進(jìn)行蘋果,評估結(jié)果如表4所示,可以看出本文算法從肉眼觀測效果和圖片質(zhì)量對比結(jié)果均優(yōu)于其余四種算法。
圖8 修復(fù)算法修復(fù)效果對比圖
表4 不同修復(fù)算法效果對比
3.2.3不同障礙物裂縫修復(fù)效果圖
針對含有不同類型障礙物的裂縫圖像,本文使用CI-GAN分別對其進(jìn)行修復(fù)。其中CI-GAN對落葉修復(fù)效果如圖9所示,由左列至右列分別為實(shí)拍含落葉遮擋的裂縫圖像、信息擦除后的待修復(fù)圖像、迭代100次的修復(fù)效果圖像、迭代1 000的修復(fù)效果圖以及最終的修復(fù)效果圖像。
圖9 落葉修復(fù)效果圖
CI-GAN對石子修復(fù)效果如圖10所示,由左列至右列分別為實(shí)拍含石子遮擋的裂縫圖像、信息擦除后的待修復(fù)圖像、迭代100次的修復(fù)效果圖像、迭代1 000的修復(fù)效果圖以及最終的修復(fù)效果圖像。
圖10 石子修復(fù)效果圖
CI-GAN對裂縫修復(fù)效果如圖11所示,由左列至右列分別為實(shí)拍裂縫圖像、信息擦除后的待修復(fù)圖像、迭代100次的修復(fù)效果圖像、迭代1 000的修復(fù)效果圖以及最終的修復(fù)效果圖像。
圖11 CI-GAN裂縫修復(fù)過程圖
本文將生成式對抗網(wǎng)絡(luò)突破性地運(yùn)用于裂縫圖像修復(fù)領(lǐng)域,由于裂縫圖像在實(shí)際中含有較多噪聲、干擾以及障礙物,本文設(shè)計生成式對抗網(wǎng)絡(luò)的裂縫修復(fù)模型(CI-GAN),提出距離加權(quán)掩膜,創(chuàng)新性地改進(jìn)生成式對抗網(wǎng)絡(luò)結(jié)構(gòu),將傳統(tǒng)判別器替換為差異程度判別器以更好應(yīng)對含有雜亂遮擋的裂縫圖像。通過實(shí)驗(yàn),本方法徹底去除各類障礙物并得到與多種圖像修復(fù)方法相比更好的修復(fù)效果,提高了裂縫圖像修復(fù)的準(zhǔn)確性與裂縫目標(biāo)的完整性。