胡 敏 李良福
(陜西師范大學計算機科學學院 陜西 西安 710119)
裂縫作為最常見的公路問題,對其的檢測必不可少。訓練一個對裂縫信息敏感的檢測器,需要數量龐大且形態各異的裂縫圖像數據集作為支撐,然而現實生活中采集到的裂縫圖像往往包含許多除了裂縫以外的障礙物,如落葉、石子、電纜等,這些障礙物可能會影響后期檢測器對裂縫的檢測,造成誤檢、漏檢等問題,因此對采集到的裂縫圖像進行修復至關重要。
近年來,隨著計算機的發展,一系列基于數字圖像處理、深度學習的方法被運用于圖像修復[1-2]領域。Bertalmio等[3]提出采用偏微分方程的方法進行圖像修復,但是該算法缺少穩定性,修復結果往往不佳。隨后Chan等在此基礎上提出基于能量最小化原則的統一修復模型[4],但由于該模型受到修復區域大小的限制,且不滿足連續性原則,進而又提出一種基于曲率擴散模型[5]。只是以上算法均只適用于非紋理圖像的修復,當所需修復的圖像是紋理圖像時則沒有辦法完成修復任務。Raymond Yeh等[6]在2016年提出使用深度卷積生成式對抗網絡的方法進行圖像修復,通過訓練有素的深度神經網絡對破損圖像的紋理特征進行修復,降低了噪聲對修復結果的影響,帶來了視覺多樣性。但由于修復網絡中的二進制掩碼的不可變性使得所有的像素點在圖像修復過程中對修復區域貢獻相同,往往導致修復結果不穩定;隨后一系列基于文獻[6]的改進[7-11]被提出,雖然取得了相對較好的輸出效果,但此類方法固定了受損區域的大小以及位置,靈活性較差,并且增加了修復過程的復雜性。
針對以上缺點,本文提出了一種基于生成式對抗網絡的裂縫圖像修復方法CI-GAN(Crack Inpaint Generative Adversarial Network),首先擦除裂縫圖像中的障礙物信息獲得僅含有裂縫信息的待修復圖像,同時使用CI-GAN生成一系列候選向量送入CI-GAN的差異判別器,計算候選向量的感知損失。然后分別為待修復圖像和候選向量覆蓋距離懲罰掩碼,計算待修復圖像與覆蓋距離懲罰掩碼的候選向量之間的語義損失。選取感知損失與語義損失之和最小的候選向量為最優補全圖,并截取最優補全圖中與待修復圖像中信息缺失位置對應的像素塊作為修復塊,將修復塊拼接到待修復位置的殘缺處即獲得修復圖。最后使用CI-GAN的全局判別器計算修復圖的全局損失,進一步對最優補全圖進行優化得到最終的修復圖。實驗表明,本文修復方法得到的裂縫圖像對障礙物去除得更徹底,且修復后的裂縫圖像質量更高。
生成式對抗網絡類似于一個博弈結構,其由生成器和判別器兩個部分組成,如圖1所示。判別器以真實裂縫圖像和生成器構造的虛假裂縫圖像為輸入,通過神經網絡模型對輸入進行特征提取,最終輸出[0,1]區間的概率值,真實裂縫圖像對應的標簽為1,生成器生成的裂縫圖像對應的標簽為0;生成器則以隨機生成高斯白噪聲為網絡的輸入,經過生成器網絡的解碼過程,最終輸出一個與真實裂縫圖像大小相同的向量,然后通過判別器預測的置信值計算與真實類別對應標簽之間的差距,直接將此誤差作為反向傳播的誤差來更新參數以及最初的輸入向量。
生成式對抗網絡采用交叉熵損失函數對參數進行優化,損失函數如下:
Ex~pG(z)[log(1-D(G(z)))]
(1)

Ex~pG(z)[log(1-D(G(z)))]
(2)
此時默認生成器是固定不變的,判別器優化即為一個二分類判別模型,輸入的真實裂縫圖片對應標簽為1,生成器生成的裂縫圖片對應標簽為0。對生成器進行優化時,此時判別器僅充當判別輸入裂縫圖像真偽的分類器,因此僅計算下式給出的損失即可:
(3)
裂縫具有細長,分布無規律的特性,當裂縫圖像中出現水漬、陰影、電線、石頭等障礙物時,裂縫誤檢或檢測不出來的情況很容易發生。在對裂縫圖像進行修復時,首先將裂縫圖像中障礙物所在位置的像素置零,擦除障礙物所在位置的信息,同時使用訓練好的生成器生成一系列候選向量,將生成的候選向量輸入到已經訓練好的判別器中,得到感知損失:
Lp=log(1-D(G(z)))
(4)
式中:Lp為感知損失,為了提取待修復的裂縫圖像的缺失部分位置信息,同時生成與用于待修復的裂縫圖像補全的修復塊,文獻[6]給出一種二進制掩膜:
(5)
在該掩膜中,待修復的裂縫圖像的受損區域對應值為1,未受損區域對應值為0,Mij表示圖像第i行第j列對應位置的掩碼值,σ表示圖像中的信息缺失區域。分別為待修復的裂縫圖像和候選向量覆蓋二進制掩膜,并計算差異:
(6)
式中:Ls表示語義損失,M⊙(G(z)-x)表示生成圖像和待修復圖像加入掩膜后的像素差異,其中Ls越小,表示生成的裂縫圖像和待修復的裂縫圖像在非受損區域像素分布越接近,尋找語義損失和感知損失最小的候選向量作為最優裂縫補全圖,提取其與待修復的裂縫圖像的受損區域對應位置的像素塊作為修復塊,將修復塊與待修復的裂縫圖像拼接得到補全圖。該方法在對裂縫圖像進行修復時,忽略了不同像素貢獻的信息重要程度不同的問題,此外修復后的裂縫圖像沒有進行語義上的再判斷,使補全圖在視覺上看缺乏真實性,無法直接在裂縫檢測任務中使用。
傳統的生成式對抗網絡進行圖像修復時使用的修復掩膜為二進制掩膜,其默認在待修復區域內,所有的像素點對修復時所作的貢獻是相同的。這樣做會導致生成器只注意到距離修復區域邊緣遠的像素信息, 而忽略臨近修復區域邊緣的像素信息,從而造成修復邊緣不連貫問題。

(7)
(8)
式中:i表示圖像矩陣對應行,j表示圖像矩陣對應列,點p表示待修復區域的中心點位置,xij為當前像素點位置,M為標記矩陣,Mij為標記矩陣內位置為(i,j)的對應點,MD為距離修復掩膜,此時的語義損失變為:
(9)

傳統的生成式對抗網絡中,判別器用來鑒別輸入的是真實裂縫圖像還是生成器生成的裂縫圖像。真實裂縫圖像對應標簽為1,生成器生成的裂縫圖像對應標簽為0。在此過程中真實裂縫圖像和生成器生成的裂縫圖像之間互不干擾,兩者的潛在關系僅通過判別器逐個計算損失并把梯度信息回傳給生成器,生成器根據判別器傳遞的梯度信息調整模型的參數以及隨機噪聲的分布。
為了更好地挖掘真實裂縫圖像分布與生成的裂縫圖像分布之間的潛在相關性,引導生成網絡生成的裂縫圖像可以更完美地擬合真實裂縫圖像,本文對判別器結構作了如下改變。考慮到真實的裂縫圖像與生成器生成的裂縫圖像之間具有一定的相關性,并且真實的裂縫圖像對應的真實程度和生成器生成的裂縫圖像對應的虛假程度都是相對于判別器學習到的兩者間的相對差異而言的,所以它們之間的差異可以表示為:
dis(x,G(z))=|F(x)-E(F(G(z)))|L1
(10)
傳統的判別器輸出經激活函數D=σ(F(·))映射到[0,1]區間的概率值,其中F表示判別網絡特征提取過程,σ表示激活函數。因此,式(10)中F(x)表示真實高分辨率裂縫圖像經過判別網絡后提取到的特征,F(G(z))表示生成的超分辨率裂縫圖像經過判別網絡后提取到的特征,E(x)表示均值。對于真實的裂縫圖像判別器輸出為D(dis(x,G(z))),對應生成的裂縫圖像判別器輸出為D(dis(G(z),x)),經過激活函數映射,此時的判別器輸出仍為[0,1]的概率值,與傳統的判別器一樣,真實的裂縫圖像相對生成裂縫的圖像的真實程度對應標簽為1,生成器生成的裂縫圖像相對真實的裂縫圖像的虛假程度對應標簽為0。此時生成式對抗網絡的損失具有如下定義:
Ladv=Ex~Pdata(x)[log(D(dis(x,G(z))))]+
Ex~PG(z)[log(1-D(dis(G(z),x)))]
(11)
式中:Ladv表示對抗損失。在訓練判別器時,損失函數為:
Ex~PG(z)[log(1-D(dis(G(z),x)))]
(12)
訓練生成器時,損失函數為:
(13)
本方法不僅引入距離加權修復掩膜和差異度量判別器,還從對抗網絡整體結構、判別器結構、生成器結構三方面設計改進,針對裂縫圖像提出裂縫修復生成式對抗網絡CI-GAN(Crack Inpaint Generative Adversarial Network),近一步提升裂縫圖像的修復效果。模型的整體結構如圖2所示,本文判別器與傳統判別器不同,不但可以判別生成器生成的裂縫圖像和真實的裂縫圖像的差異,同時還能夠判別修復后的裂縫圖像與真實的裂縫圖像之間的差異。在CI-GAN模型的訓練階段,模型的輸入由真實的裂縫圖像和生成器生成的裂縫圖像兩部分構成,判別器執行生成判別器功能,輸出輸入圖像的真實程度或者虛假程度;在CI-GAN模型的修復階段,模型的輸入為修復圖像,判別器執行全局判別功能,輸出輸入圖像整體的虛假程度。

圖2 CI-GAN結構圖
2.3.1判別器結構
判別模型與生成裂縫圖像的真實程度相關。本文判別器在不同的場景下,實現的功能也不相同。當輸入為生成的裂縫圖像時,執行生成判別器功能,當輸入為修復后的裂縫圖像時執行全局判別器功能。其中生成判別器功能是鑒別輸入圖像是真實裂縫圖像的真實程度還是生成裂縫圖像的虛假程度,全局判別器則是從圖像語義分布方向鑒別修復圖像整體的虛假程度,并對應輸出全局損失,其公式如下:
(14)

L=Ls+λLp+μLg
(15)
式中:L為聯合損失函數,λ為感知參數,μ為全局參數,Ls為加權語義損失,Lp為感知損失,Lg為全局損失。
在設計判別模型結構時,若判別模型過于簡單,導致網絡對輸入圖像的特征學習不到位,容易產生欠擬合問題,使得生成的裂縫圖像呈明顯的網格化分布;若判別模型過于復雜,網絡訓練難度大大增加,會產生模型不收斂等問題。文獻[6]中的模型的判別器由五個卷積塊構成,其中每個卷積塊由卷積層(Conv)、激活層(Leaky Relu)、歸一化層(Batch Normalization)按序排列構成。此結構的判別器使用在修復圖像中雖然可以達到相對較好的效果,但是由于模型層數淺,特征學習不到位,網絡生成的裂縫圖像含有較為明顯的網格型噪聲,視覺效果差,無法直接應用于裂縫檢測。
針對上述問題,本文在保證不丟失特征、不改變輸入輸出尺寸的前提下,對判別器模型進行了改進,增加了卷積核大小為3×3,步長為1的卷積層,同時為了進一步篩選無效特征加入激活層,并且為了加速模型收斂防止過擬合加入歸一化層。CI-GAN判別器的具體結構如圖3所示,其中模型輸入包含兩個部分,G(z)表示生成器生成的裂縫圖像,X表示真實的裂縫圖像,模型的輸出為[0,1]區間的概率,表示輸入圖像的真實程度或者虛假程度。判別器將輸出的概率值回傳給生成器,為生成器的更新提供梯度信息。

圖3 判別器結構
2.3.2生成器結構
生成器使用接收到的梯度信息更新模型參數和生成向量的分布。生成器作為生成裂縫圖像的單元,不僅決定了生成的裂縫圖像的質量,還影響著網絡的修復性能。本方法生成器由反卷積層(Deconv)、激活層(Relu)、歸一化層(Batch Normalization)構成??紤]到模型的學習能力隨結構加深而增強,本文加入了反卷積塊(Deconv Block)結構,其由四個小塊順序拼接組成。每個小塊包含一層卷積核大小為3×3,步長為2的反卷積層,一層激活層和一層歸一化層。為了增加模型的深度,本文在第一小塊和第三小塊中增加了一層卷積核大小為3×3,步長為1的卷積層。同時為了近一步過濾掉無用特征并且加速模型收斂,在每個卷積層后面都加入了激活層和歸一化層,CI-GAN中生成模型的具體結構如圖4所示,左邊為生成模型的結構簡圖,右邊對應反卷積塊的結構圖。

圖4 生成網絡結構對比圖
本文實拍的10 350張128×128大小的RGB彩色裂縫圖像作為原始裂縫數據集。通過隨機旋轉、左右翻轉對原始裂縫數據集進行增強,最終得到31 050張裂縫圖像,其中31 000張作為CI-GAN的訓練數據集。為測試本文算法的準確性和有效性,另增加50張包含落葉遮擋的裂縫圖像、50張包含石子覆蓋的裂縫圖像,將增加含有障礙物的圖像與剩余的50張裂縫圖像整合,共150張圖像作為本實驗測試集。
本文使用adam梯度下降方式尋求最優解,初始學習率為0.000 5,學習率衰減為0.1,衰減步長為50 000,批尺寸為128,動量項取值0.5,迭代100 000次后將訓練結果保存。
3.2.1CI-GAN修復效果對比
通過實驗,改進后模型對擦除障礙物的待修復裂縫圖像的修復效果得到了明顯的改善。改進效果對比如圖5所示,由左列至右列分別為原始圖片、障礙物擦除后待修復圖片、CI-GAN結合二進制掩膜修復圖片以及CI-GAN結合距離加權掩膜修復圖片。改進前后模型的修復效果使用模糊系數(KBlur)、峰值信噪比(PSNR)、結構相似度(SSIM)、均方誤差(MSE)對修復結果進行評估,對比如表1所示??梢钥闯霰舅惴◤膶嶋H觀測效果和圖片度量指標對比結果均優于改進前模型。

圖5 掩膜修復效果對比圖

表1 不同掩膜修復效果對比
為了驗證CI-GAN判別器較傳統模型判別器在裂縫修復方面更具優勢,本實驗通過對比CI-GAN使用普通判別器以及差異判別器對裂縫圖像修復效果,結果如圖6所示,由左列至右列分別為結構相似的裂縫圖像原圖、CI-GAN使用傳統判別器的修復效果、CI-GAN使用差異判別器的修復效果。同時本文對兩種判別器修復的裂縫圖進行質量評估,評估結果如表2所示。從表中能夠得出,CI-GAN差異判別器在修復相似的裂縫圖像時,可以得到比傳統判別器更穩定的修復效果。

圖6 判別器修復效果對比圖

表2 不同判別器的修復效果對比
為了驗證CI-GAN結構較改進前DCGAN結構更適用于對裂縫圖像的修復,本實驗又通過對比CI-GAN和DCGAN對裂縫圖像修復效果,結果如圖7所示,由左列至右列分別為裂縫原圖像、DCGAN的修復圖像、CI-GAN的修復圖像。同時本文對兩種判別器修復的裂縫圖進行質量評估,評估結果如表3所示。從表中能夠得出,CI-GAN的修復效果更好。

圖7 模型結構修復效果對比圖

表3 不同模型結構的修復效果對比
3.2.2不同算法效果對比
本算法與傳統修復算法基于裂縫圖像數據集進行對比試驗,本文提出的CI-GAN在修復殘缺裂縫圖像時表現更佳。圖8分別對三張裂縫圖像進行信息擦除,并使用五種修復方法進行待修復圖像的修復,由左列至右列分別為實拍裂縫圖像、信息擦除后的待修復圖像、TV算法的修復結果圖像、CDD算法的修復結果圖像、Criminisi算法的修復結果圖像、DCGAN的修復結果圖像以及CI-GAN的修復結果圖像。本文使用模糊系數、質量系數Q以及峰值信噪比對修復后的圖片質量進行蘋果,評估結果如表4所示,可以看出本文算法從肉眼觀測效果和圖片質量對比結果均優于其余四種算法。

圖8 修復算法修復效果對比圖

表4 不同修復算法效果對比
3.2.3不同障礙物裂縫修復效果圖
針對含有不同類型障礙物的裂縫圖像,本文使用CI-GAN分別對其進行修復。其中CI-GAN對落葉修復效果如圖9所示,由左列至右列分別為實拍含落葉遮擋的裂縫圖像、信息擦除后的待修復圖像、迭代100次的修復效果圖像、迭代1 000的修復效果圖以及最終的修復效果圖像。

圖9 落葉修復效果圖
CI-GAN對石子修復效果如圖10所示,由左列至右列分別為實拍含石子遮擋的裂縫圖像、信息擦除后的待修復圖像、迭代100次的修復效果圖像、迭代1 000的修復效果圖以及最終的修復效果圖像。

圖10 石子修復效果圖
CI-GAN對裂縫修復效果如圖11所示,由左列至右列分別為實拍裂縫圖像、信息擦除后的待修復圖像、迭代100次的修復效果圖像、迭代1 000的修復效果圖以及最終的修復效果圖像。

圖11 CI-GAN裂縫修復過程圖
本文將生成式對抗網絡突破性地運用于裂縫圖像修復領域,由于裂縫圖像在實際中含有較多噪聲、干擾以及障礙物,本文設計生成式對抗網絡的裂縫修復模型(CI-GAN),提出距離加權掩膜,創新性地改進生成式對抗網絡結構,將傳統判別器替換為差異程度判別器以更好應對含有雜亂遮擋的裂縫圖像。通過實驗,本方法徹底去除各類障礙物并得到與多種圖像修復方法相比更好的修復效果,提高了裂縫圖像修復的準確性與裂縫目標的完整性。