陳 剛,廖永為,楊振國,劉文印,2*
(1.廣東工業(yè)大學(xué) 計(jì)算機(jī)學(xué)院,廣州 510006;2.鵬城實(shí)驗(yàn)室 網(wǎng)絡(luò)空間安全研究中心,廣東 深圳 518005)
隨著深度學(xué)習(xí)的快速發(fā)展,深度學(xué)習(xí)在圖像修復(fù)與圖像生成領(lǐng)域取得令人矚目的成績。圖像的修復(fù)分為大塊缺失修復(fù)和小塊缺失修復(fù),本文主要討論深度學(xué)習(xí)在大塊圖像缺失的修復(fù)問題。圖像修復(fù)是結(jié)構(gòu)相似、紋理一致,并且結(jié)構(gòu)優(yōu)先的原則,將缺失區(qū)域的圖像恢復(fù)到原始圖像的過程,如圖1 所示。
圖1 圖像修復(fù)過程Fig.1 Image inpainting process
近幾年伴隨著生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)技術(shù)的發(fā)展,圖像修復(fù)領(lǐng)域迎來了巨大的發(fā)展機(jī)遇,出現(xiàn)了許多的應(yīng)用場景[1-3],如:公安刑偵面部修復(fù)[4]、文物修復(fù)[5]、醫(yī)學(xué)圖像重建[6]、遙感高分辨率圖像的修復(fù)[7]等。
目前,國內(nèi)外學(xué)者在該領(lǐng)域做了大量的工作。圖像修復(fù)算法分為兩大類,即傳統(tǒng)的圖像修復(fù)算法和深度學(xué)習(xí)的圖像算法。傳統(tǒng)的圖像修復(fù)算法又可以分為三小類,即基于圖像結(jié)構(gòu)的修復(fù)算法、基于圖像紋理的修復(fù)算法和基于稀疏表示的圖像修復(fù)算法。其中,傳統(tǒng)的圖像修復(fù)算法,如Bertalmio等[8]提出的基于三階偏微分方程的圖像修復(fù)算法BSCB(Bertalmio Sapiro Caselles Ballester),該算法基于偏微分方程,沿著等照線方向?qū)⑷笔^(qū)域邊緣信息擴(kuò)散到缺失區(qū)域;但沒有考慮圖像的整體性及細(xì)節(jié)性,修復(fù)效果欠佳。Criminisi 等[9]提出了基于樣本塊的紋理合成算法,在圖像缺失區(qū)域的邊緣隨機(jī)選取一個(gè)像素點(diǎn),以該像素點(diǎn)的中心選取合適大小的圖像塊,然后以該圖像為模板在圖像完好區(qū)域搜索最合適的圖像塊進(jìn)行匹配,最后在匹配塊中尋找缺失內(nèi)容對(duì)缺失區(qū)域進(jìn)行填充,從而完成修復(fù)。Bobin 等[10]提出了基于稀疏表示理論,提出了形態(tài)成分分析(Morphological Component Analysis,MCA)法,該算法的前提是圖像都能表示為不同形態(tài)成分的線性組合,然后用不同的字典對(duì)各個(gè)形態(tài)進(jìn)行稀疏表示,最后通過迭代可以將圖像分解為不同的成分完成圖像重建。因此,傳統(tǒng)算法在處理小塊缺失或者紋理修復(fù)方面有一定的優(yōu)勢,但在處理大塊圖像缺失時(shí),修復(fù)效果不佳。以深度學(xué)習(xí)為基礎(chǔ)的圖像修復(fù)算法是通過神經(jīng)網(wǎng)絡(luò)能夠更好地獲得捕獲圖像的高級(jí)特征,在圖像的修復(fù)和圖像生成方面表現(xiàn)出突出效果。Pathak 等[11]提出了上下文編碼器(Context Encoder,CE),首次完成深度學(xué)習(xí)的圖像修復(fù),該算法利用編碼器結(jié)構(gòu)捕獲圖像的基本特征并學(xué)習(xí)缺失區(qū)域的圖像特征,然后通過解碼器重構(gòu)圖像;但該算法修復(fù)的圖像比較模糊且全局一致性較差。針對(duì)這一問題,Iizuka等[12]提出了一個(gè)“Globally and locally”的概念,該算法修復(fù)的圖像局部與全局的結(jié)構(gòu)一致性有所提高;但生成圖像還是比較模糊,細(xì)節(jié)性和紋理特征較弱。Wang 等[13]提出圖像到圖像轉(zhuǎn)換的感知對(duì)抗網(wǎng)絡(luò),該算法是判別器訓(xùn)練時(shí)引入了感知損失函數(shù)來提升網(wǎng)絡(luò)鑒別能力;但圖像的紋理不夠清晰。Sagong 等[14]提出了一種新的并行網(wǎng)絡(luò)PEPSI(Fast Image Inpainting with Parallel Decoding Network),通過一個(gè)共享的編碼網(wǎng)絡(luò)和一個(gè)具有粗路徑和細(xì)化路徑的并行解碼網(wǎng)絡(luò)來實(shí)現(xiàn)圖像的修復(fù);但是修復(fù)圖像的結(jié)構(gòu)性和細(xì)節(jié)性都不強(qiáng)。Zheng 等[15]提出了一種具有長短注意力機(jī)制的并行變量自動(dòng)編碼器的生成對(duì)抗圖像修復(fù)算法PICNet(Pluralistic Image Completion),該算法利用長短注意力機(jī)制實(shí)現(xiàn)了多樣式圖像修復(fù);但修復(fù)的圖像結(jié)構(gòu)一致性差,且紋理等細(xì)節(jié)特征較弱。
針對(duì)上述算法的不足,本文提出了一種基于多特征融合的多尺度生成對(duì)抗網(wǎng)絡(luò)的圖像修復(fù)算法(Image Inpainting algorithm of multi-scale generative adversarial networks based on Multi-Feature Fusion,MMFII),在多尺度生成式對(duì)抗網(wǎng)絡(luò)圖像修復(fù)算法(Multi-scale Generative Adversarial Networks Image Inpainting algorithm,MGANII)[16]的基礎(chǔ)上,本文做了3點(diǎn)工作:
1)在傳統(tǒng)的生成器中引入一個(gè)多特征融合模塊(Multi-Feature Fusion Module,MFFM),融合了不同擴(kuò)張卷積率的特征,同時(shí)在生成器中引入了基于感知的特征重構(gòu)損失函數(shù),便于網(wǎng)絡(luò)提取更豐富的特征。
2)在局部判別器訓(xùn)練時(shí),引入基于特征方差的歐拉距離作為感知特征匹配損失函數(shù),便于圖像邊緣信息的提取,增強(qiáng)了修復(fù)圖像的結(jié)構(gòu)一致性。
3)將對(duì)抗損失函數(shù)中引入風(fēng)險(xiǎn)懲罰項(xiàng)來滿足利普希茨連續(xù)條件,使得網(wǎng)絡(luò)訓(xùn)練時(shí)能快速穩(wěn)定地收斂。
最后,實(shí)驗(yàn)結(jié)果表明,本文算法的圖像修復(fù)效果在定量和定性指標(biāo)上都優(yōu)于基線算法。
傳統(tǒng)的圖像修復(fù)分為三類,分別為基于結(jié)構(gòu)的紋理修復(fù)、基于紋理的圖像修復(fù)和基于稀疏表示的圖像修復(fù)?;诮Y(jié)構(gòu)非紋理的圖像修復(fù)主要是采用偏微分方程的信息擴(kuò)散原理實(shí)現(xiàn)圖像修復(fù),Bertalmio 等[8]在2000 年首先提出了基于偏微分方程的數(shù)字圖像修復(fù)算法,該算法的主要思想是沿著圖像中像素的等照度線的方向?qū)⑿迯?fù)區(qū)域周圍的邊緣信息迭代到待修復(fù)區(qū)域,直到殘缺圖像填充完成,達(dá)到補(bǔ)全圖像的目的。但是,這種算法的不足在于只能實(shí)現(xiàn)低維特征迭代,修復(fù)圖像不夠清晰,同時(shí)無法實(shí)現(xiàn)大塊圖像修復(fù)?;诩y理的圖像修復(fù)主要是基于樣本塊的紋理合成算法[17],該算法將等照度線方向與破損邊緣切線方向結(jié)合起來作為決定修復(fù)順序的條件,然后根據(jù)紋理從整幅圖像中搜索選擇出最佳的圖像塊來對(duì)待修復(fù)區(qū)域進(jìn)行填補(bǔ),但該算法在搜索匹配塊會(huì)消耗大量的時(shí)間,并且修復(fù)的圖像結(jié)構(gòu)一致性差。Xiang 等[18]提出了Scriminisi 算法的改進(jìn)算法,該算法在傳統(tǒng)紋理合成算法基礎(chǔ)上應(yīng)用差分法計(jì)算梯度算子,同時(shí)采用了一種矩陣相似度的匹配策略,實(shí)驗(yàn)結(jié)果表明該算法在視覺一致性上有所改善;但該算法會(huì)隨著匹配和迭代次數(shù)增加,置信度下降?;谙∈璞硎镜膱D像修復(fù)算法主要通過計(jì)算圖像的過完備字典的稀疏編碼,實(shí)現(xiàn)稀疏重構(gòu)從而達(dá)到圖像修復(fù)的目的。Aharon 等[19]提出了一種K-奇異值分析(K-means Singular Value Decomposition,K-SVD)算法,通過字典原子與字典對(duì)應(yīng)的稀疏系數(shù)同時(shí)更新的方式穩(wěn)定快速地訓(xùn)練過完備字典;但該算法也只能在缺失區(qū)域較小時(shí)才有效果。傳統(tǒng)的圖像修復(fù)技術(shù)只能在缺失面積小、紋理結(jié)構(gòu)簡單等情況下才能實(shí)現(xiàn)完美修復(fù),對(duì)于大塊缺失和復(fù)雜的紋理時(shí),傳統(tǒng)的修復(fù)算法已經(jīng)沒有優(yōu)勢,人們把目光投向深度學(xué)習(xí)的算法。
深度學(xué)習(xí)圖像修復(fù)算法相較于傳統(tǒng)的圖像修復(fù)算法具有更強(qiáng)大的特征表示和學(xué)習(xí)能力,能夠挖掘圖像更深層的信息,近幾年在圖像處理的各個(gè)領(lǐng)域取得非常巨大的成功[20-22]。Xie 等[23]提出了一種基于深度學(xué)習(xí)去噪的自編碼器網(wǎng)絡(luò)(Denoising Auto-Encoder Network,DAEN)圖像修復(fù)算法,該算法類似于生成對(duì)抗網(wǎng)絡(luò)的自編碼器,自動(dòng)實(shí)現(xiàn)對(duì)特征的提取和匹配,從而實(shí)現(xiàn)圖像修復(fù);但是該算法無法預(yù)測像素的具體位置,同時(shí)對(duì)大塊缺失區(qū)域修復(fù)效果較差。Pathak 等[11]提出了利用重構(gòu)殘差來修復(fù)圖像的算法,該算法利用已知圖像的信息來推斷缺失區(qū)域的未知的信息而實(shí)現(xiàn)圖像的修復(fù);但是該算法無法從缺失區(qū)域附近獲得足夠的特征,因此,修復(fù)的圖像與整體圖像的結(jié)構(gòu)一致性差,同時(shí)局部紋理特征不明顯。針對(duì)修復(fù)圖像結(jié)構(gòu)一致性差的問題,Iizuka 等[12]在文獻(xiàn)[11]的基礎(chǔ)上增加了一個(gè)全局判別器來監(jiān)督圖像修復(fù),使得生成局部圖像與全局圖像在語義上保持一致;但修復(fù)圖像的細(xì)節(jié)及紋理等局部特征不明顯。Wang等[24]提出了基于生成型多列卷積神經(jīng)網(wǎng)絡(luò)的圖像修復(fù)算法,該算法在文獻(xiàn)[12]的基礎(chǔ)上對(duì)生成器進(jìn)行改進(jìn),應(yīng)用3個(gè)并行的編碼器和一個(gè)公用的解碼器,其目的是提取豐富的圖像特征;但是實(shí)驗(yàn)結(jié)果表明這種算法修復(fù)圖像的結(jié)構(gòu)一致性較差。Zeng 等[25]使用U-Net 網(wǎng)絡(luò)為主干結(jié)構(gòu)搭建網(wǎng)絡(luò),該算法的核心思想是將高層特征圖的語義信息通過注意力機(jī)制計(jì)算缺失區(qū)域與邊緣區(qū)域的相關(guān)度,從而指導(dǎo)下一層低層的特征補(bǔ)全;但是事實(shí)證明該金字塔上下文編碼器并沒有有效提升修復(fù)圖像的結(jié)構(gòu)一致性。李克文等[16]提出了一種多尺度生成式對(duì)抗網(wǎng)絡(luò)圖像修復(fù)算法(MGANII),該算法是在文獻(xiàn)[12]基礎(chǔ)上了增加了兩個(gè)多尺度判別器來加強(qiáng)圖像的整體結(jié)構(gòu)的一致性,但是修復(fù)圖像的紋理和細(xì)節(jié)較差,生成器提取不到足夠豐富的紋理特征和細(xì)節(jié)特征。
本節(jié)主要介紹基于多特征融合的多尺度生成對(duì)抗網(wǎng)絡(luò)修復(fù)算法框架,主要包括一個(gè)具有感知損失的多特征融合塊的生成器(Generator with multi-feature fusion block,Gmf),一個(gè)包括帶有感知損失的局部判別器(Local discriminator,Dl)、下采樣2 倍多尺度判別器(Multiscale discriminator m1,Dm1)和下采樣4 倍多尺度判別器(Multiscale discriminator m2,Dm2)和一個(gè)全局判別器(Global discriminator,Dg)。具體框架如圖2所示。
圖2 基于多特征融合的多尺度生成對(duì)抗網(wǎng)絡(luò)修復(fù)算法框架Fig.2 Framework of multi-scale generative adversarial network inpainting algorithm based on multi-feature fusion
從圖2 可以看出,生成器是一個(gè)修復(fù)網(wǎng)絡(luò),該網(wǎng)絡(luò)由5 層的編碼器和5 層解碼器構(gòu)成:編碼器結(jié)構(gòu)采用具有缺失區(qū)域的圖像作為輸入,通過卷積操作生成該圖像的潛在特征表
傳統(tǒng)的生成器采用一個(gè)卷積自編碼器作為生成器模型,本文的生成器模型和傳統(tǒng)的生成器模型類似,也是由編碼和解碼構(gòu)成。傳統(tǒng)的生成器提取特征的能力有限,主要是通過擴(kuò)大卷積核或者采用擴(kuò)張卷積的方式進(jìn)行,但是這兩種都會(huì)示,同時(shí),通過MFFM 融合不同的特征;解碼器結(jié)構(gòu)利用這種潛在特征表示通過轉(zhuǎn)置卷積操作恢復(fù)原始分辨率,產(chǎn)生缺失區(qū)域的圖像內(nèi)容。
產(chǎn)生一些問題:首先擴(kuò)張卷積的核是稀疏的,這樣就跳過了許多用于計(jì)算的像素;而大卷積核使用引入了大量模型參數(shù),從而導(dǎo)致消耗大量的計(jì)算資源。因此本文在傳統(tǒng)的生成器的基礎(chǔ)上,借鑒于Zheng等[26]提出Hierarchical Feature Fusion Block(HFFB)模塊的思想,提出了具有多特征融合模塊(MFFM)的生成器(Gmf)組建了本文多特征融合模塊(MFFM),它能擴(kuò)大卷積的視野同時(shí)保持卷積核的稠密度,如圖3 所示,其中X表示整個(gè)MFFM輸入,O表示MFFM的輸出。
從圖3 可以看出,多特征融合模塊(MFFM)左側(cè)是一個(gè)輸入256 通道的特征圖,通過第一次卷積輸出為64 通道的特征圖,分別輸出到不同的擴(kuò)張卷率(Rate)(i=1,2,3,4)的分支上進(jìn)行處理,從而實(shí)現(xiàn)不同擴(kuò)張因子的擴(kuò)張卷積特征圖的融合,融合公式如下:
圖3 多特征融合模塊Fig.3 Multi-feature fusion module
其中:Ri是一個(gè)3×3 的卷積,xi表示分支輸入,oi表示分支輸出。
從式(1)和圖3 可以看出,這個(gè)多特征融合塊增強(qiáng)了一般的擴(kuò)張卷積,與大核的內(nèi)核相比,計(jì)算參數(shù)更少、效率更好、運(yùn)行速度更快。
為方便地展示MFFM 的工作過程,本文將具有256 通道的MFFM 的輸入和輸出以及MFFM 融合的特征圖映射為3 通道圖像進(jìn)行可視化。如圖4 所示,該圖示大致地展示了從原圖到MFFM 融合輸出的MFFM 的整個(gè)工作過程。
圖4 MFFM工作過程部分可視化Fig.4 Visualization of partial MFFM working process
可以看出,MFFM 輸入其實(shí)是中心遮擋部分的特征圖如圖4(b),而融合的特征是一個(gè)256 通道的特征圖如圖4(c),其單獨(dú)展示的語義較弱,但它與原輸入融合到MFFM 的輸出如圖4(d)就能顯示與原圖有著極為相似的語義特征。
由于通過具有MFFM 的多特征融合的生成器(Gmf),生成的圖像比較模糊,為了使得生成的圖像更加逼真,必須通過對(duì)抗訓(xùn)練才能得到符合目標(biāo)的圖像。因此在實(shí)驗(yàn)中必須引入鑒別圖像真假的網(wǎng)絡(luò)——判別器來監(jiān)督和指導(dǎo)圖像的生成。本文的判別器由4 個(gè)判別器組成,分別為全局判別器(Dg)、具有感知損失的局部判別器(Dl)、下采樣2 倍的多尺度判別器(Dm1)和下采樣4 倍的多尺度判別器(Dm2)。全局判別器(Dg)的輸入是偽造的生成圖像的整體與真實(shí)圖像的整體,主要從全局鑒別生成圖像與真實(shí)圖像是否一致,有利于提高修復(fù)圖像的全局結(jié)構(gòu)一致性。全局判別器是一個(gè)卷積核為5 的6 層的卷積網(wǎng)絡(luò),如圖2 所示。局部判別器(Dl)是由一個(gè)核為3 的4 層卷積網(wǎng)絡(luò)加1 層核為5 的卷積網(wǎng)絡(luò)組成,它主要鑒別缺失區(qū)域填充內(nèi)容和對(duì)應(yīng)的真實(shí)內(nèi)容是否一致。受文獻(xiàn)[13]的啟發(fā),本文在局部判別器引入特征匹配的感知損失函數(shù)LDlmf。為了提升判別器的結(jié)構(gòu)感知能力,首先,在Iizuka等[12]提出兩個(gè)判別器的基礎(chǔ)上,參考文獻(xiàn)[16]算法,增加了2 個(gè)多尺度判別器來約束修復(fù)圖像結(jié)構(gòu)特征,它們分別為一個(gè)卷積核為5 的5 層卷積網(wǎng)絡(luò)Dm1和一個(gè)卷積核為5 的4 層卷積網(wǎng)絡(luò)Dm2,至此,Dm1和Dm2與全局分判別器Dg一起構(gòu)成了一個(gè)三層的多尺度判別器。其次,在局部判別器Dl中引入了特征匹配的感知損失函數(shù)LDlmf,兩者協(xié)同加強(qiáng)缺失區(qū)域的修復(fù)圖像的全局結(jié)構(gòu)一致性。
本文模型的訓(xùn)練總共分為3 個(gè)步驟:第1 步訓(xùn)練生成器。第2 步訓(xùn)練判別器。第3 步生成器和判別器進(jìn)行對(duì)抗訓(xùn)練。主要涉及的損失函數(shù)包括重構(gòu)損失Lr,負(fù)責(zé)計(jì)算缺失圖像區(qū)域與真實(shí)圖像之間距離;同時(shí)還包括生成器的特征感知重構(gòu)損失函數(shù)LGmf,它主要判斷生成缺失區(qū)域的圖像與真實(shí)圖像對(duì)應(yīng)部分的VGG 模型中間層的激活圖(如圖5)的距離;以及包括判別器特征匹配損失函數(shù)LDlmf,它負(fù)責(zé)鑒定缺失區(qū)域的生成圖像和真實(shí)圖像的對(duì)應(yīng)的特征圖是否一致;最后是應(yīng)用于傳統(tǒng)的對(duì)抗訓(xùn)練的對(duì)抗總損失LDadv。
圖5 修復(fù)圖像與原始圖像對(duì)應(yīng)p層的特征圖Fig.5 Feature maps corresponding to p-layers of inpainted image and original image
2.4.1 重構(gòu)損失
重構(gòu)損失Lr選擇歐拉距離L2 作為損失函數(shù)的度量,而不選擇曼哈頓距離L1 距離主要是由于L2 能避免過度擬合,并且L2 有一個(gè)穩(wěn)定的預(yù)測值。同時(shí)L2 計(jì)算比較方便,而L1在特別是非稀疏向量上的計(jì)算效率較低。因此本文重構(gòu)損失采用歐氏距離L2 進(jìn)行計(jì)算,重構(gòu)損失函數(shù)如式(2)所示:
其中:x表示真實(shí)圖像;G表示生成器;M表示二進(jìn)制掩碼,當(dāng)遮擋區(qū)域像素丟失時(shí)值為1,否則為0;⊙表示點(diǎn)乘。以本實(shí)驗(yàn)數(shù)據(jù)為基礎(chǔ),表1 給出了Lr部分訓(xùn)練的數(shù)值列表,顯示了從迭代輪次從0 開始到訓(xùn)練結(jié)束的部分修復(fù)圖像與原始圖像的歐拉距離L2 的值,該數(shù)值以損失函數(shù)Lr的形式展示,Lr最后收斂情況如圖6 所示。從30 萬~60 萬次數(shù)值基本沒有發(fā)現(xiàn)變化,原因在于此時(shí)凍結(jié)了生成器在訓(xùn)練判別器。
表1 重構(gòu)損失Lr的部分?jǐn)?shù)值Tab.1 Partial values of reconstruction loss Lr
2.4.2 特征重構(gòu)損失
為了提高網(wǎng)絡(luò)的特征提取能力,在生成器中引入特征重構(gòu)損失函數(shù),該函數(shù)使用的特征圖來源于文獻(xiàn)模型[27]中VGG 網(wǎng)絡(luò)的激活圖,受文獻(xiàn)[28]感知損失的啟發(fā),可以得到本文生成器的特征重構(gòu)損失函數(shù),如式(3)所示:
其中:是給定原始輸入I*(*表示output 或real)的relup_1 層的激活圖;表示的元素?cái)?shù)量;p表示激活特征圖所在的層數(shù);wp是來源于參考文獻(xiàn)[29]權(quán)重其中n為分類數(shù)量,為特征圖通道大小,I表述輸入。同樣根據(jù)文獻(xiàn)[13]中的思想,本文在局部判別器中也引入特征匹配損失函數(shù)LDlmf,其作用是監(jiān)督圖像的生成,加強(qiáng)局部判別器對(duì)缺失區(qū)域的生成圖像與原圖像對(duì)應(yīng)部分的一致性的檢驗(yàn)。如式(4)所示:
其中:表示給定輸入Ioutput(Ireal)的局部判別器Dl的第p個(gè)選定層的激活,而output 和real 分別表示生成圖和原圖如圖5(a),其特征圖如圖5(b)~(f)所示。從圖5(b)~(f)可以看出,修復(fù)圖像的p層的特征圖與原圖對(duì)應(yīng)的特征圖極度相似。同時(shí)從圖5 可以看出經(jīng)過預(yù)訓(xùn)練的網(wǎng)絡(luò)提取的深層特征包含了更高層次的語義信息,而較低層次網(wǎng)絡(luò)提取的特征更專注紋理或結(jié)構(gòu)細(xì)節(jié)。
2.4.3 對(duì)抗損失
由于重構(gòu)損失生成的圖像是模糊的,因此第三階段引入了對(duì)抗損失,傳統(tǒng)的生成對(duì)抗網(wǎng)絡(luò)應(yīng)用KL(Kullback-Leibler)散度或者JS(Jensen-Shannon)散度來衡量分布距離,JS 散度和KL 散度在用作loss 損失函數(shù)時(shí),會(huì)朝著一個(gè)特定方向訓(xùn)練,或者很容易陷入局部最優(yōu),因此使得生成對(duì)抗網(wǎng)絡(luò)很容易崩塌或者梯度爆炸。為了避免該問題,本文將風(fēng)險(xiǎn)懲罰項(xiàng)引入對(duì)抗損失函數(shù)來滿足利普希茨連續(xù)條件[30],生成器和判別器的損失函數(shù)分別為:
式(6)中:f 表示偽造,r 表示真實(shí);而采樣真實(shí)數(shù)據(jù)xr~Pr,Pr為真實(shí)數(shù)據(jù)分布;采樣噪聲數(shù)據(jù)xf~Pf,Pf為生成數(shù)據(jù)分布;為真實(shí)采樣數(shù)據(jù)與生成采樣數(shù)據(jù)的中間的隨機(jī)數(shù),表示為:
其中:ε 為(0,1)的一個(gè)隨機(jī)數(shù),表示為數(shù)據(jù)的真實(shí)分布Pr和生成分布Pf之間的一個(gè)隨機(jī)采樣系數(shù);式(6)帶有λ的項(xiàng),表示懲罰系數(shù)。參考圖2 的網(wǎng)絡(luò)的全局圖和式(6),可以得到4個(gè)分支判別器Dg、Dl、Dm1、Dm2的對(duì)抗損失函數(shù)分別為LDgadv、LDladv、LDm1adv、LDm2adv。其中LDladv為局部判別器對(duì)抗損失函數(shù),L表示損失函數(shù),D表示判別器,g 表示全局,l 表示局部,m1、m2 分別是下采樣2 倍和4 倍的多尺度判別器,adv 表示生成對(duì)抗。如式(8)所示:
該損失函數(shù)主要作用是協(xié)助判別器Dl完成對(duì)抗訓(xùn)練,從而實(shí)現(xiàn)判別器Dl對(duì)偽造的局部缺失圖像和真實(shí)圖像對(duì)應(yīng)部分的鑒別。
LDgadv為全局判別器Dg的對(duì)抗損失函數(shù),如式(9)所示:
該損失作用是協(xié)助全局判別器的完成對(duì)抗訓(xùn)練,從而實(shí)現(xiàn)全局判別器完成Dg對(duì)生成的全局圖像和真實(shí)的全局圖像的鑒別。
LDm1adv為多尺度判別器Dm1的對(duì)抗損失函數(shù),如式(10)所示:
該函數(shù)是作用是協(xié)助下采樣2 倍,即分辨率為128×128的多尺度判別器Dm1完成對(duì)抗訓(xùn)練,判別器Dm1鑒別的是生成的全局與真實(shí)全局的下采樣2 倍的圖像是否一致。LDm2adv為多尺度判別器Dm2的損失函數(shù),如式(11)所示:
其作用和LDm1adv類似,并且LDm2adv是協(xié)助Dm2完成對(duì)抗訓(xùn)練。因此對(duì)抗總損失函數(shù)如式(12)所示:
其中:λ1、λ2、λ3、λ4分別為不同對(duì)抗損失權(quán)重。
2.4.4 總目標(biāo)損失
參照圖2,結(jié)合式(2)~(12),可以得出本模型的總目標(biāo)函數(shù)為Lall,如式(13)所示:
其中:α、γ、δ為目標(biāo)函數(shù)的權(quán)重因子。
本文在進(jìn)行實(shí)例化、規(guī)范化處理時(shí),在生成器訓(xùn)練時(shí)采用Batch Normalization(BN)進(jìn)行批量歸一化處理,在判別器訓(xùn)練時(shí)使用Instance Normalization(IN)進(jìn)行實(shí)例化處理,為了詳細(xì)描述算法執(zhí)行過程,給出本文算法(MMFII)的偽代碼如下。
算法1 MMFII 訓(xùn)練過程。
初始化 網(wǎng)絡(luò)Gmf,Dl,Dg,Dm1和Dm2;當(dāng)前時(shí)間t=0第一階段訓(xùn)練時(shí)間T1,第二階段訓(xùn)練時(shí)間T2和第三階段訓(xùn)練時(shí)間T3。
為了便于評(píng)估,本文使用CelebA 數(shù)據(jù)集[31],其中包括10 177 位名人的202 599 張臉部圖像,每個(gè)圖像都用特征標(biāo)記,包括邊界和5 個(gè)臉部特征點(diǎn)坐標(biāo)和40 個(gè)屬性坐標(biāo)。本文從CelebA 數(shù)據(jù)集[31]中抽取了6.2 萬張人臉照片進(jìn)行實(shí)驗(yàn),其中5 萬張照片用于訓(xùn)練,1.2 萬張照片用于測試。
評(píng)估指標(biāo)包括峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)、結(jié)構(gòu)相似性(Structural SIMilarity,SSIM)以及Frechet Inception 距離得分(Frechet Inception Distance score,F(xiàn)ID)。峰值信噪比是基于原始圖像和修復(fù)圖像之間的恢復(fù)誤差。公式定義如下:
其中:xr和xf分別表示原始圖像和修復(fù)圖像,n是表示像素的位數(shù)。SSIM 測量兩幅圖像的結(jié)構(gòu)相似性,定義如下:
式(16)中:Tr 表示主對(duì)角線的元素總和(矩陣的跡),μ表示均值,A表示協(xié)方差矩陣,xr表示真實(shí)圖像,xf表示偽造或者生成圖像。
本文選擇經(jīng)典的具有代表性的深度學(xué)習(xí)的圖像修復(fù)算法作為基線算法,包括上下文編碼器(CE)[11]、基于生成型多列卷積神經(jīng)網(wǎng)絡(luò)的圖像修復(fù)GMCNN(Generative Multicolumn Convolutional Neural Network)[24]、用于高質(zhì)量圖像修復(fù)的學(xué)習(xí)金字塔上下文編碼器網(wǎng)絡(luò)PENNet[25],以及多尺度生成式對(duì)抗網(wǎng)絡(luò)圖像修復(fù)算法(MGANII)[16]。CE[11]采用自編碼器(DAEN)和生成對(duì)抗網(wǎng)絡(luò);GMCNN[24]是采用了三個(gè)編碼器和一個(gè)公共解碼器的生成器;PENNet[25]的核心思想是將高層特征圖的語義信息通過注意力機(jī)制計(jì)算缺失區(qū)域與邊緣區(qū)域的相關(guān)度來指導(dǎo)低層的圖像修復(fù);PICNet[15]是在并行自編碼器基礎(chǔ)上添加了長短注意力機(jī)制模型;MGANII[16]是在CE[11]框架的基礎(chǔ)上添加3 個(gè)多尺度鑒別器,它們分別是全局判別器Dg、多尺度判別器Dm1和多尺度判別器Dm2。
本實(shí)驗(yàn)的實(shí)驗(yàn)平臺(tái)為Ubuntu18.0 系統(tǒng),學(xué)習(xí)框架為PyTorch 1.7,對(duì)應(yīng)的CUDA 為11.3,cuDNN 為8.0,GPU 為GeForce RTX? 3090,受文獻(xiàn)[16,28]的啟發(fā),對(duì)抗損失權(quán)重λ1=0.01,λ2=λ3=λ4=0.02,總目標(biāo)損失權(quán)重α=25,γ=5,δ=0.3,batchsize 的值為16,步長為0.000 2。實(shí)驗(yàn)過程分為3 個(gè)階段,第1 階段的迭代次數(shù)為30 萬次,第2 階段的迭代次數(shù)為30 萬次,第3 階段的迭代時(shí)間為60 萬次。其中原始圖像調(diào)整為分別率為256×256 的原始全局圖像,遮擋圖像是從原始全局圖像的正中心裁剪去分辨率128×128 的區(qū)域作為修復(fù)圖像的輸入,同時(shí)下采樣2 倍和4 倍的圖像大小的分辨率分別為128×128 和64×64??偟牡螖?shù)120 萬次左右,從圖6 可以看出,重構(gòu)損失函數(shù)Lr負(fù)責(zé)計(jì)算缺失圖像區(qū)域與真實(shí)圖像之間距離,該函數(shù)收斂在0~0.01。
圖6 重構(gòu)損失函數(shù)的收斂曲線Fig.6 Convergence curve of reconstruction loss function
從圖7 可以看出,特征重構(gòu)損失LGmf表示的是生成缺失區(qū)域的圖像與真實(shí)圖像對(duì)應(yīng)部分的VGG 模型中間層的激活圖的距離收斂在0.5 附近,表明模型收斂時(shí),生成圖像的特征與原圖像的特征從歐拉距離來看相近。此時(shí)重構(gòu)損失函數(shù)Lr亦收斂在0~0.01,表示生成圖像與原始圖像像素的歐拉距離更短,同理,以像素歐氏距離倒數(shù)表示的PSNR 的值非常大,說明修復(fù)效果較好,為生成圖像與原始圖像相似性提供了一種驗(yàn)證。
圖7 特征重構(gòu)損失函數(shù)的收斂曲線Fig.7 Convergence curve of feature reconstruction loss function
圖8表示特征匹配損失LDlmf的loss收斂曲線,其收斂在0~1。圖9 顯示了對(duì)抗總損失LDadv收斂在0.5 附近,表明具有偽造能力的生成器與具有真假鑒別能力的判別器此時(shí)達(dá)到平衡。
圖8 特征匹配損失函數(shù)的收斂曲線Fig.8 Convergence curve of feature matching loss function
圖9 對(duì)抗損失函數(shù)的收斂曲線Fig.9 Convergence curve of adversarial loss function
從表2 可以看出,本文算法(MMFII)的三個(gè)定量指標(biāo)均優(yōu)于對(duì)比算法(基線),所修復(fù)圖像的PSNR、SSIM 比基線分別提高了0.45%~8.67%和0.88%~8.06%,而FID 比基線降低了36.01%~46.97%。表2 中的MGANII 和MMFII 兩個(gè)算法PSNR 和SSIM 比其他基線算法較優(yōu),主要是在MGANII 和MMFII 中都引入了多尺度的判別器,改善了修復(fù)圖像的結(jié)構(gòu)一致性,提高了相應(yīng)算法的峰值信噪比(PSNR)和結(jié)構(gòu)相似性(SSIM)值。由此可見,多尺度判別器對(duì)提高修復(fù)圖像的結(jié)構(gòu)一致性有一定作用;PICNet[15]的PSNR 和SSIM 均高于CE[11]、GMCNN[24]、PENNet[26]的值,主要是由于PICNet[15]中引入了長短注意力機(jī)制,從而有效地提高了圖像的視覺一致性;但是這種改進(jìn)弱于多層次判別器對(duì)圖像結(jié)構(gòu)一致性的影響,因 此MGANII 的PSNR 及SSIM 優(yōu) 于PICNet[15]等。然 而,MMFII 的PSNR、SSIM 優(yōu)于MGANII,是由于在MMFII 在局部判別器中引入了一個(gè)感知特征匹配損失函數(shù)LDlmf,該損失函數(shù)提高了判別器網(wǎng)絡(luò)的結(jié)構(gòu)感知能力。
表2 不同算法的修復(fù)效果比較Tab.2 Comparison of inpainting effects of different algorithms
從表2 可以看出,本文算法的FID 比基線顯著降低了36.01%~46.97%,說明網(wǎng)絡(luò)的特征提取能力得到強(qiáng)化,原因在于本文在網(wǎng)絡(luò)的生成器中引入了多特征融合塊(MFFM),同時(shí),在生成器訓(xùn)練時(shí)引入特征重構(gòu)損失函數(shù)LGmf來強(qiáng)化擴(kuò)展卷積網(wǎng)絡(luò)的特征提取能力以及在局部判別器訓(xùn)練時(shí)引入了特征匹配損失函數(shù)LDlmf來提高判別器的結(jié)構(gòu)感知能力,這些改進(jìn)協(xié)同地提高了網(wǎng)絡(luò)的修復(fù)性能,使得網(wǎng)絡(luò)能夠提取更加豐富的圖像特征,網(wǎng)絡(luò)收斂時(shí)生成特征與原始圖對(duì)應(yīng)特征的距離更短,因此,以特征距離表示的FID 值更小。
為了直觀地研究MMFII 的修復(fù)效果,本文將MMFII 與基線算法運(yùn)行于CelebA 數(shù)據(jù)集,實(shí)驗(yàn)結(jié)果部分展示如圖10。
圖10 CelebA數(shù)據(jù)集上不同算法修復(fù)的圖像(面部)示例Fig.10 Examples of images(face)inpainted by different algorithms on CelebA dataset
直觀 地,從圖10 可以看出,應(yīng)用CE[11]算法修復(fù)的圖10(b)留有一些陰影,并且局部特征不明顯;而使用GMCNN[24]修復(fù)的圖10(c)的人臉,鼻子融合在一起,且與原圖的結(jié)構(gòu)一致性較差;采用PENNet[25]修復(fù)圖10(d)的人臉,牙齒和眼睛、鼻子與原圖10(h)相比細(xì)節(jié)不夠清晰;采用MGNAII[16]修復(fù)的圖10(e)也細(xì)節(jié)特征不明顯;采用PICNet[15]修復(fù)的圖10(f)與原圖10(h)雖然看上去相似,但是眼睛、鼻子等細(xì)節(jié)特征不明顯。相比之下,本文提出的MMFII 修復(fù)的圖10(g)優(yōu)于其他算法CE[11]、GMCNN[24]PENNet[25]、PICNet[15]以 及MGNAII[16]修復(fù)的圖10(b)~(f)。因此,本文算法修復(fù)的圖像10(g)與原始圖像10(h)視覺結(jié)構(gòu)一致性更強(qiáng),細(xì)節(jié)、紋理特征更明顯。
為了研究網(wǎng)絡(luò)的泛化能力,討論是MMFII 對(duì)圖像不同破損程度的修復(fù)情況,為了研究方便,本文在256×256 的圖像中心分別掩膜64×64、96×96、128×128、156×156,占比整個(gè)圖像分別為6.25%、14.06%、25%以及37.13%,圖像的掩膜和修復(fù)情況如圖11(a)~(i)所示。
從圖11 可以看出,圖11(c)的修復(fù)效果最好,不僅保留了原圖的結(jié)構(gòu)特征,還保留了原圖的局部特征;圖11(e)依舊保留了原圖的結(jié)構(gòu)特征,但是局部特征在減弱;圖11(g)依舊可以看出修復(fù)效果不錯(cuò),但是原圖結(jié)構(gòu)特征和細(xì)節(jié)特征都減弱;圖11(i)依舊可以看出和原圖有很大的相似性,但是不可否認(rèn),與原圖相比它們結(jié)構(gòu)特征和局部的細(xì)節(jié)特征都發(fā)生較大變化。主要原因在于隨著遮擋率不斷增加,網(wǎng)絡(luò)在訓(xùn)練時(shí)提取的特征越來越少,網(wǎng)絡(luò)的修復(fù)能力越來越弱。另一方面也反映了神經(jīng)網(wǎng)絡(luò)模型對(duì)數(shù)據(jù)集和特征數(shù)量有很強(qiáng)的依賴關(guān)系。
圖11 不同破損程度的面部圖像的修復(fù)效果Fig.11 Inpainting effect of face images with different damage degrees
本文提出了一種基于多特征融合的多尺度生成對(duì)抗的圖像修復(fù)算法,該算法是在傳統(tǒng)的多尺度生成對(duì)抗網(wǎng)絡(luò)的生成器引入了一個(gè)多特征融合模塊MFFM 和基于感知的特征重構(gòu)損失函數(shù),從而提高了網(wǎng)絡(luò)的特征提取能力,使得修復(fù)圖像紋理、細(xì)節(jié)特征更清晰;同時(shí)在局部判別器中引入了一個(gè)基于感知的特征匹配損失函數(shù),加強(qiáng)的局部判別器與原圖的全局的結(jié)構(gòu)特征和局部細(xì)節(jié)的鑒別能力,使得局部修復(fù)圖像與全局圖像結(jié)構(gòu)一致性更強(qiáng),局部細(xì)節(jié)更清晰。最后,將本文算法應(yīng)用在CelebA 數(shù)據(jù)集上,結(jié)果顯示MMFII 修復(fù)的圖像結(jié)果都優(yōu)于其他基線,證明該算法有效。