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