李 蘭,陳明舉*,石浩德,劉婷婷,鄧元實(shí)
(1.四川輕化工大學(xué) 人工智能四川省重點(diǎn)實(shí)驗(yàn)室,四川 宜賓 643000;2.國(guó)網(wǎng)四川省電力公司電力科學(xué)研究院,四川 成都 610072)
圖像修復(fù)利用已知信息實(shí)現(xiàn)對(duì)丟失信息的修補(bǔ),在文物保護(hù)、影視制作、刑事案件的偵破和老照片的修復(fù)等領(lǐng)域發(fā)揮著重要的作用[1-2]。近年來(lái),得益于深度學(xué)習(xí)強(qiáng)大的表征學(xué)習(xí)能力,深度神經(jīng)網(wǎng)絡(luò)技術(shù)已成為圖像修復(fù)模技術(shù)的研究熱點(diǎn)。基于生成對(duì)抗的深度學(xué)習(xí)網(wǎng)絡(luò)(Generative Adversarial Network,GAN)[3]通過(guò)生成器與判別器的相互競(jìng)爭(zhēng),強(qiáng)迫生成器與判別器不斷改進(jìn),能夠同時(shí)利用圖片的淺層紋理信息與深層語(yǔ)義特征,獲得較好的圖像修復(fù)性能[4]。
Pathak等[5]首次提出了基于GAN的上下文編碼器(Context Encoder,CE)圖像修復(fù)方法,該方法采用結(jié)構(gòu)與紋理編解碼器,結(jié)合重建損失,對(duì)低分辨率的圖像進(jìn)行修復(fù),得到了清晰的修復(fù)結(jié)果。為了進(jìn)一步提高生成對(duì)抗網(wǎng)絡(luò)的修復(fù)性能,Yu等[6]將內(nèi)容感知層的前饋生成網(wǎng)絡(luò)(Contextual Attention,CA)引入到生成對(duì)抗網(wǎng)絡(luò)中,從已知的圖像區(qū)域中匹配相似的補(bǔ)丁,來(lái)細(xì)化修復(fù)后的結(jié)果,從而得到更清晰的修復(fù)結(jié)果。文獻(xiàn)[7-8]分別通過(guò)將Partial Convolution與Gated Convolution來(lái)自動(dòng)學(xué)習(xí)掩碼的分布,進(jìn)一步提升了修復(fù)效果。Nazeri等[9]的Edge Connect(EC)采取2階段結(jié)構(gòu)網(wǎng)絡(luò)分別實(shí)現(xiàn)結(jié)構(gòu)邊緣與紋理信息的修復(fù),以增強(qiáng)修復(fù)圖像內(nèi)容的真實(shí)性。然而,由于生成對(duì)抗串聯(lián)耦合框架的不穩(wěn)定性,從破損的圖像中得到合理的結(jié)構(gòu)邊緣信息能力有限,圖像效果有限。為了有效實(shí)現(xiàn)圖像結(jié)構(gòu)與紋理信息的修復(fù),Liu等[10]采用紋理和結(jié)構(gòu)的共享生成器,提出了一種混合了結(jié)構(gòu)和紋理的Mutual Encoder-Decoder(MED)圖像修復(fù)網(wǎng)絡(luò)。Guo等[11]將圖像修復(fù)分成紋理合成和結(jié)構(gòu)重建2個(gè)子任務(wù),提出了一種新的用于圖像修復(fù)的雙流網(wǎng)絡(luò)——Conditional Texture and Structure Dual Generation(CTSDG),以進(jìn)一步提升圖像修復(fù)的性能。
現(xiàn)有的圖像修復(fù)生成對(duì)抗網(wǎng)絡(luò)著重于紋理與結(jié)構(gòu)信息實(shí)現(xiàn)圖像的修復(fù),在信息重構(gòu)過(guò)程中缺乏結(jié)構(gòu)信息與紋理的交互,當(dāng)待修復(fù)區(qū)域較大時(shí),這些方法在語(yǔ)義信息上較容易產(chǎn)生歧義,會(huì)出現(xiàn)簡(jiǎn)單的擴(kuò)展和復(fù)制,生成的圖片細(xì)節(jié)不夠豐富,容易出現(xiàn)混亂和變形,產(chǎn)生主觀效果不理想的修復(fù)結(jié)果。鑒于此,本文在生成對(duì)抗網(wǎng)絡(luò)的基礎(chǔ)上,構(gòu)建一種基于BIFPN多尺度特征融合的雙流圖像修復(fù)網(wǎng)絡(luò),實(shí)現(xiàn)結(jié)構(gòu)與紋理信息的相互交互。同時(shí),為了增強(qiáng)修復(fù)圖像的全局一致性,設(shè)計(jì)了紋理和結(jié)構(gòu)估計(jì)的馬爾可夫判別器與基于語(yǔ)義的聯(lián)合損失函數(shù),并通過(guò)實(shí)驗(yàn)證明其有效性。
本文采用的圖像修復(fù)方法被實(shí)現(xiàn)為一個(gè)生成對(duì)抗網(wǎng)絡(luò),借助于雙流網(wǎng)絡(luò)[11]的思想,采用了2個(gè)編碼器和解碼器實(shí)現(xiàn)圖像紋理和結(jié)構(gòu)信息的生成,構(gòu)建一個(gè)多尺度特征融合網(wǎng)絡(luò)使生成的紋理和結(jié)構(gòu)信息得到細(xì)化,有助于生成更合理的圖像。采用基于語(yǔ)義信息的損失函數(shù),以實(shí)現(xiàn)修復(fù)圖像在視覺上真實(shí)、語(yǔ)義上合理。BIFPN-GAN圖像修復(fù)的結(jié)構(gòu)如圖1所示。
圖1 BIFPN-GAN圖像修復(fù)的結(jié)構(gòu)Fig.1 Structure of BIFPN-GAN image inpainting
本文的生成器以U-Net網(wǎng)絡(luò)為主干網(wǎng)絡(luò),對(duì)圖像的結(jié)構(gòu)與紋理信息分別進(jìn)行編碼(下采樣)和解碼(上采樣),采用的雙流生成器結(jié)構(gòu)細(xì)節(jié)如圖2所示。在編碼階段,將受損圖像及其結(jié)構(gòu)圖像投影到隱變量空間,并通過(guò)跳躍連接[12]將多個(gè)尺度上的特征信息連接起來(lái),通過(guò)低級(jí)和高級(jí)特征來(lái)生成更復(fù)雜的預(yù)測(cè)。其中,左分支關(guān)注紋理特征,右分支關(guān)注目標(biāo)結(jié)構(gòu)特征。在解碼階段,紋理解碼器通過(guò)從結(jié)構(gòu)編碼器借用結(jié)構(gòu)特征來(lái)合成結(jié)構(gòu)約束下的紋理信息,而結(jié)構(gòu)解碼器通過(guò)從紋理編碼器獲取紋理特征來(lái)恢復(fù)紋理引導(dǎo)下的結(jié)構(gòu)信息。紋理編碼器的輸入通道數(shù)為2,包含破損圖和掩碼;結(jié)構(gòu)編碼器的輸入通道數(shù)為3,包含破損邊緣檢測(cè)圖(由邊緣檢測(cè)算法[13]檢測(cè))、破損灰度圖和掩碼。
圖2 雙流結(jié)構(gòu)生成器結(jié)構(gòu)細(xì)節(jié)Fig.2 Detailed structure of the dual-flow structure generator
為了增強(qiáng)修復(fù)圖像的結(jié)構(gòu)和紋理的一致性,將輸出的結(jié)構(gòu)和紋理特征進(jìn)一步融合,如圖3所示,其中Ft為解碼器輸出的紋理特征,F(xiàn)s為結(jié)構(gòu)特征。為了實(shí)現(xiàn)在融合過(guò)程中結(jié)構(gòu)與紋理信息之間的相互約束,減少重建損失、感知損失與風(fēng)格損失,采用改進(jìn)的BIFPN的多尺度特征融合網(wǎng)絡(luò),使融合后的圖像更接近原始真實(shí)圖像。采用跳躍連接來(lái)防止融合過(guò)程中造成語(yǔ)義損壞,將一對(duì)卷積和反卷積無(wú)縫嵌入特征融合結(jié)構(gòu)中以提高計(jì)算效率。通過(guò)對(duì)上下文的學(xué)習(xí),使紋理和結(jié)構(gòu)特征信息的感知與消息交互,增強(qiáng)圖像局部特征之間的相關(guān)性,并保持圖像整體的一致性。
圖3 基于BIFPN的多尺度特征融合網(wǎng)絡(luò)Fig.3 Multi-scale feature fusion network based on BIFPN
處理的具體公式如下:
Pt=σ(g(C(Ft,Fs))),
(1)
式中,C(·)為通道連接;g(·)為由核大小為3的卷積層實(shí)現(xiàn)的映射函數(shù);σ(·)是Sigmoid激活函數(shù)。通過(guò)Pt,可以自適應(yīng)地把Ft和Fs合并,得到完整的特征映射圖Fp。一般地,特征圖可以表示為:
(2)
W=Softmax(GW(Fp)),
(3)
W1,W2,W4,W8=Slice(W),
(4)
(5)
(6)
(7)
采用了深度可分離卷積[14-15]提高效率,并將批歸一化處理和激活函數(shù)ReLU添加到每次的卷積后面。
受全局和局部判決的思想[16-17]的啟發(fā),采用譜歸一化馬爾可夫判別器,通過(guò)估計(jì)紋理和結(jié)構(gòu)的特征來(lái)區(qū)分真實(shí)圖像和生成圖像,在判別器上應(yīng)用了譜歸一化[18],改善了生成對(duì)抗網(wǎng)絡(luò)訓(xùn)練不穩(wěn)定的問(wèn)題。判別器由5層卷積層和1層全連接層構(gòu)成,利用卷積-歸一化層-激活函數(shù)提取圖像高級(jí)特征,具體參數(shù)如表1所示。
表1 判別器參數(shù)Tab.1 Discriminator parameters
損失函數(shù)采用基于語(yǔ)義的聯(lián)合損失函數(shù),包括特征內(nèi)容損失、重建損失、感知損失、風(fēng)格損失和對(duì)抗性損失,以獲得視覺上真實(shí)、語(yǔ)義上合理的修復(fù)網(wǎng)絡(luò)。
1.4.1 特征內(nèi)容損失
邊緣圖像是單通道黑白圖像,因此,針對(duì)彩色圖像的損失函數(shù)并不適用。面對(duì)復(fù)雜的邊緣信息,需要特征匹配來(lái)控制生成器生成紋理細(xì)節(jié)與真實(shí)圖像相似度更高的結(jié)果。因此,設(shè)計(jì)了DenseNet[19]提取特征的特征內(nèi)容損失,公式如下:
(8)
1.4.2 重建損失
將重建損失添加到改進(jìn)的基于BIFPN多尺度特征融合網(wǎng)絡(luò)的目標(biāo)函數(shù)中,有助于指導(dǎo)特征融合網(wǎng)絡(luò)朝著接近實(shí)際數(shù)據(jù)的可能配置進(jìn)行。采用Iout和Igt之間的距離L1作為重建損失,公式如下:
Lrec=‖Iout-Igt‖1。
(9)
1.4.3 感知損失
由于重建損失難以捕捉高層語(yǔ)義,本文引入感知損失Lperc來(lái)評(píng)估圖像的全局結(jié)構(gòu)。感知損失模型為ImageNet[20]上預(yù)訓(xùn)練的VGG-16[21],Igt為原始圖像,Iout為生成器的輸出,L1為特征空間中Iout和Igt之間的距離:
(10)
式中,φi(·)為給定輸入圖像I*通過(guò)VGG-16第i層池化層得到的的激活映射。
1.4.4 風(fēng)格損失
為了確保風(fēng)格一致性,進(jìn)一步設(shè)計(jì)了風(fēng)格損失。風(fēng)格損失計(jì)算特征圖之間的距離Lstyle:
(11)
式中,φi(·)=φi(·)Tφi(·),表示由激活映射φi構(gòu)造的Gram矩陣。
對(duì)抗性損失是為了保證重建圖像的視覺真實(shí)性以及紋理和結(jié)構(gòu)的一致性,其中D為判別器,將對(duì)抗損失引入馬爾可夫判別器中,為網(wǎng)絡(luò)增加了新的正則化,用于判別圖像的真假,定義如下:
EIout,Eoutlog[1-D(Iout,Eout)],
(12)
式中,Egt為原始圖像邊緣映射。
綜上所述,聯(lián)合損失函數(shù)如下:
Ljoint=λfmLfm+λrecLrec+λpercLperc+λstyleLstyle+λadvLadv,
(13)
式中,λfm=10;λrec=10;λperc=0.1;λstyle=250;λadv=0.1。
實(shí)驗(yàn)所使用的硬件環(huán)境為Windows 10,NVIDIA TITAN XP 12 GB。軟件環(huán)境為Python3.6,pytorch。
本文將修復(fù)結(jié)果進(jìn)行主客觀2方面分析。客觀評(píng)價(jià)方面,采用峰值信噪比(Peak Signal to Noise Ratio,PSNR)和結(jié)構(gòu)相似性 (Structural Similarity Index,SSIM)作為評(píng)價(jià)指標(biāo)。其中,PSNR用來(lái)評(píng)估2張圖像中對(duì)應(yīng)的像素點(diǎn)之間的誤差,單位dB,數(shù)值越大表示失真越??;SSIM用來(lái)評(píng)估2張圖像在亮度、結(jié)構(gòu)和對(duì)比度3個(gè)方面的整體相似性,其結(jié)果越接近1表明相似性越高[2]。
本文采用了在研究中廣泛采用的CelebA和Places2數(shù)據(jù)集來(lái)評(píng)估本文的方法,并遵循它們最初的訓(xùn)練。從文獻(xiàn)[22]中獲取不規(guī)則掩碼,首先使用2×10-4的學(xué)習(xí)率進(jìn)行初始訓(xùn)練,批大小處理為16,使用Adam優(yōu)化器進(jìn)行了優(yōu)化,然后以5×10-5的學(xué)習(xí)率對(duì)模型進(jìn)行微調(diào),并且凍結(jié)生成器的BN層,判別器以生成器1/10的學(xué)習(xí)率進(jìn)行訓(xùn)練。
如何使學(xué)生自主學(xué)習(xí),從而使實(shí)驗(yàn)過(guò)程不再因?yàn)橛邢薜恼n堂時(shí)間而流于形式,使學(xué)校有限的的實(shí)驗(yàn)資源能夠得到充分利用,結(jié)合作者在材料實(shí)驗(yàn)教學(xué)過(guò)程中所遇到的問(wèn)題和實(shí)驗(yàn)過(guò)程中學(xué)生的現(xiàn)狀,以及學(xué)校對(duì)實(shí)驗(yàn)有效教學(xué)的重視程度,淺談微課在材料實(shí)驗(yàn)教學(xué)中的幾點(diǎn)應(yīng)用。
為了驗(yàn)證本文方法的圖像修復(fù)性能,將本文方法分別與EC,MED和CTSDG算法進(jìn)行對(duì)比。帶有掩碼的CelebA和Places2數(shù)據(jù)集修復(fù)結(jié)果如圖4所示,前2行為約25%破損區(qū)域,第3行為約10%破損區(qū)域,第4行為約40%破損區(qū)域。
(a) 原圖
(b) 待修復(fù)圖
(c) EC
(d) MED
(e) CTSDG
(f) 本文圖4 不同算法修復(fù)結(jié)果對(duì)比Fig.4 Inpainting results of different algorithms
本文使用2種評(píng)價(jià)圖像的客觀定量評(píng)估標(biāo)準(zhǔn)PSNR和SSIM對(duì)修復(fù)結(jié)果圖像進(jìn)行評(píng)估,從不同破損區(qū)域的修復(fù)結(jié)果中隨機(jī)選取超過(guò)100張修復(fù)結(jié)果圖像進(jìn)行定量分析。不同算法的修復(fù)性能比較如表2所示。由表2可以看出,本文方法具有更高的圖像質(zhì)量結(jié)果,并且本文方法比EC,MED,CTSDG算法所用的修復(fù)時(shí)長(zhǎng)都要少,具有更高效的修復(fù)性能。
表2 不同算法的修復(fù)性能比較Tab.2 Inpainting performance comparison of different algorithms
圖像修復(fù)本質(zhì)是一個(gè)病態(tài)的任務(wù),對(duì)于未知的大區(qū)域破損圖像的修復(fù)區(qū)域結(jié)果往往是不確定的,與原圖一樣的修復(fù)也是非常具有挑戰(zhàn)性的,所以修復(fù)的目標(biāo)一般是以人主觀視覺上是否可以判斷修復(fù)后的圖像是否為修復(fù)圖像為依據(jù),即修復(fù)的目標(biāo)為是否在圖像視覺上能保證其結(jié)構(gòu)的連貫與自然。因此,進(jìn)一步進(jìn)行主觀評(píng)價(jià),從圖4可以看出本文的方法具有更好的修復(fù)效果,如眼睛、房屋的房頂?shù)?,可以更清晰合理地得到人臉和風(fēng)景的細(xì)節(jié)。圖5隨機(jī)展示了2張Places2數(shù)據(jù)集中修復(fù)的邊緣圖及其效果。
(a) 原圖
(b) 破損圖
(c) 破損邊緣圖
(d) 生成的邊緣圖
(e) 修復(fù)結(jié)果圖5 基于BIFPN圖像融合算法的圖像修復(fù)Fig.5 Image inpainting based on BIFPN image fusion algorithm
為了提高重建結(jié)構(gòu)和紋理的一致性,設(shè)計(jì)了基于BIFPN的特征融合網(wǎng)絡(luò),針對(duì)此部分設(shè)計(jì)消融實(shí)驗(yàn)。將生成的紋理和結(jié)構(gòu)特征進(jìn)行簡(jiǎn)單融合,所得到的修復(fù)結(jié)果作為基準(zhǔn)來(lái)與所設(shè)計(jì)的基于BIFPN多尺度融合網(wǎng)絡(luò)進(jìn)行對(duì)比。消融實(shí)驗(yàn)結(jié)果對(duì)比如圖6所示。
(a) 破損圖
(b) 參考圖
(c) 簡(jiǎn)單融合結(jié)果
(d) BIFPN結(jié)果圖6 消融實(shí)驗(yàn)結(jié)果對(duì)比Fig.6 Results comparison of ablation experiment
由圖6可以看出,使用簡(jiǎn)單的融合模塊(通道級(jí)聯(lián)后是卷積層)獲得的結(jié)果可以觀察到模糊的邊緣以及信息的缺失,特別是邊界附件,如門、窗口、床沿等。為了使比較更加具體,表3給出了定量分析結(jié)果,表明BIFPN多尺度融合有助于提高性能。
表3 消融實(shí)驗(yàn)定量分析表Tab.3 Quantitative analysis table of ablation experiment
本文對(duì)數(shù)字圖像修復(fù)進(jìn)行了研究,為了使圖像重建過(guò)程中其結(jié)構(gòu)信息與紋理信息得到充分有效的利用,在改進(jìn)的雙流網(wǎng)絡(luò)結(jié)構(gòu)上構(gòu)建了一種基于BIFPN多尺度圖像融合網(wǎng)絡(luò)的圖像修算法,實(shí)現(xiàn)了修復(fù)性能更好的圖像修復(fù)效果。為了增強(qiáng)修復(fù)圖像的全局一致性,設(shè)計(jì)了紋理和結(jié)構(gòu)估計(jì)的馬爾可夫判別器與基于語(yǔ)義的聯(lián)合損失函數(shù),并通過(guò)實(shí)驗(yàn)證明其有效性。實(shí)驗(yàn)結(jié)果顯示,在CelebA數(shù)據(jù)集和Places2數(shù)據(jù)集中,本文提出的算法修復(fù)的圖像不僅具有更高的客觀評(píng)價(jià)指標(biāo)和更少的修復(fù)的時(shí)間,還可以達(dá)到較好的主觀視覺效果。