芮志超,郭艷艷
(山西大學(xué) 物理電子工程學(xué)院,山西 太原 030006)
由于圖像在傳輸和獲取過程中受到人為或環(huán)境的影響會導(dǎo)致圖像信息丟失,需要對圖像進(jìn)行修復(fù)處理,增強(qiáng)其視覺效果。傳統(tǒng)圖像修復(fù)是根據(jù)圖像樣本相似度、結(jié)構(gòu)紋理一致性等方法,結(jié)合數(shù)學(xué)、物理理論構(gòu)建算法模型修復(fù)破損圖像,主要包括基于擴(kuò)散的方法[1]和基于補(bǔ)丁的方法[2-3]。但是,傳統(tǒng)的修復(fù)算法只能基于已有區(qū)域的信息來填充未知區(qū)域,未出現(xiàn)在已知區(qū)域的內(nèi)容無法預(yù)知填充。
近年來,深度卷積網(wǎng)絡(luò)和生成式對抗網(wǎng)絡(luò)已被大量應(yīng)用到圖像修復(fù)中[4-6]。Pathak D等[7]在2016年提出了上下文編碼器,該算法通過構(gòu)建一個編碼器-解碼器結(jié)構(gòu)完成缺損圖像的編解碼工作,并添加判別損失完成圖像的精細(xì)修復(fù),但該算法只能修復(fù)簡單結(jié)構(gòu)的破損圖像,對于人臉圖像修復(fù)遠(yuǎn)遠(yuǎn)不足;Yu J等[8]在2019年提出利用門控卷積層替代傳統(tǒng)卷積層,解決了傳統(tǒng)卷積層將圖像所有像素視為有效像素的缺點(diǎn),該算法只適用于規(guī)則掩膜,而對于自由掩膜而言,圖像修復(fù)效果差;Nazeri K等[9]在2019年提出一種Edge-Connection模型,通過設(shè)計額外的輔助網(wǎng)絡(luò),利用缺損區(qū)域邊緣信息輔助圖像修復(fù);Guo X等[10]在2021年提出了一種結(jié)構(gòu)約束紋理合成和紋理引導(dǎo)結(jié)構(gòu)重建的耦合網(wǎng)絡(luò)來完成整個修復(fù)過程,并設(shè)計了雙向門控特征融合模塊來實現(xiàn)結(jié)構(gòu)和紋理信息的融合。
綜上所述,現(xiàn)有修復(fù)人臉圖像的算法可以劃分為單階段修復(fù)模型、漸進(jìn)式兩階段模型和基于結(jié)構(gòu)先驗或者語義先驗約束的圖像修復(fù)模型。單階段修復(fù)模型在修復(fù)背景復(fù)雜、紋理精細(xì)的圖像時,容易產(chǎn)生模糊的紋理細(xì)節(jié);漸進(jìn)式兩階段模型雖然能生成紋理細(xì)節(jié),但是圖像整體的結(jié)構(gòu)會發(fā)生扭曲;而基于結(jié)構(gòu)先驗或者語義先驗約束的圖像修復(fù)模型,結(jié)構(gòu)與語義一致性有了保障,但修復(fù)圖像紋理細(xì)節(jié)不貼近真實圖像。
針對上述問題,本文提出了一種基于上下文特征提取的邊緣生成三階段的圖像修復(fù)算法。首先,算法利用破損圖像的上下文特征進(jìn)行初步修復(fù),并對初修復(fù)結(jié)果的邊緣進(jìn)行重建;然后,將重建后的邊緣結(jié)構(gòu)以及初修復(fù)結(jié)果一起作為先驗信息,來約束最后階段的精修復(fù)過程。并且,在邊緣修復(fù)網(wǎng)絡(luò)和精修復(fù)網(wǎng)絡(luò)中加入Res2net模塊[11]和自注意力機(jī)制,提取多尺度特征以提升網(wǎng)絡(luò)的表征能力,自適應(yīng)計算遠(yuǎn)距離特征之間的依賴關(guān)系以解決圖像修復(fù)區(qū)域和未缺失區(qū)域的邊界銜接問題。
如圖1 所示,系統(tǒng)主要采用生成式對抗網(wǎng)絡(luò)框架[12]。該架構(gòu)由生成器和鑒別器組成,生成器部分主要包含3個網(wǎng)絡(luò)結(jié)構(gòu):粗修復(fù)網(wǎng)絡(luò)、邊緣修復(fù)網(wǎng)絡(luò)、精修復(fù)網(wǎng)絡(luò)。鑒別器采用補(bǔ)丁鑒別器[8,13]。
圖1 三階段修復(fù)算法結(jié)構(gòu)圖Fig.1 Structure diagram of three-stage inpainting algorithm
為了能初步重建大面積不規(guī)則的缺失區(qū)域,粗修復(fù)網(wǎng)絡(luò)結(jié)構(gòu)參考文獻(xiàn)[8]中的架構(gòu),由13 個普通卷積層和4 個空洞卷積層組成,其中普通卷積層包含兩層卷積核大小為3,步長為2的下采樣層,兩層步長為1/2 的上采樣層,上采樣通過結(jié)合下采樣中提取的各層信息,還原圖像缺失區(qū)域;而4層空洞卷積層的空洞率大小分別為2,4,8,16,目的是為了擴(kuò)大卷積核的感受野,提升網(wǎng)絡(luò)性能。粗修復(fù)網(wǎng)絡(luò)結(jié)構(gòu)見表1 所示。
表1 粗修復(fù)網(wǎng)絡(luò)結(jié)構(gòu)Tab.1 Coarse inpainting network structure
用Igt代表原始圖像,表示破損圖片,M為隨機(jī)生成的自由掩模(缺失部分為1,背景為0),粗修復(fù)網(wǎng)絡(luò)Gc生成的修復(fù)結(jié)果為
利用canny 算子對粗修復(fù)網(wǎng)絡(luò)Gc輸出的結(jié)果進(jìn)行邊緣提取得到Bcanny,將Bcanny和自由掩模M輸入到邊緣修復(fù)網(wǎng)絡(luò)Ge中。
邊緣修復(fù)網(wǎng)絡(luò)由13個普通卷積層、4個Res2net層和4個自注意力機(jī)制層組成[14],其中普通卷積層的結(jié)構(gòu)與粗修復(fù)網(wǎng)絡(luò)相同。Res2net層[15-16]以分層的方式表示多尺度特征,輸出包含不同感受野大小的組合,該組合結(jié)構(gòu)擴(kuò)大感受野大小的同時,有效解決網(wǎng)格偽影現(xiàn)象;而自注意力機(jī)制通過自適應(yīng)調(diào)節(jié)目標(biāo)特征與周圍特征相關(guān)性權(quán)重的方式加強(qiáng)特征之間的聯(lián)系,以保證前景和背景的一致性。邊緣修復(fù)網(wǎng)絡(luò)結(jié)構(gòu)見表2 所示。
表2 邊緣修復(fù)網(wǎng)絡(luò)結(jié)構(gòu)Tab.2 Edge inpainting network structure
邊緣修復(fù)網(wǎng)絡(luò)Ge輸出邊緣預(yù)測結(jié)果為
精修復(fù)網(wǎng)絡(luò)結(jié)構(gòu)基于U-net 架構(gòu)[17],由13 個普通卷積層、4 個Res2net 層、4 個自注意力機(jī)制層組成,通過跳躍連接將編碼器特征直接傳輸?shù)浇獯a器中。其中普通卷積層與粗修復(fù)網(wǎng)絡(luò)中的結(jié)構(gòu)相同,Res2net層、自注意力機(jī)制層與邊緣修復(fù)網(wǎng)絡(luò)中的結(jié)構(gòu)相同;增加的跳躍連接結(jié)構(gòu)將一些低維特征直接傳遞到后面的卷積層中,減少了特征損失。精修復(fù)網(wǎng)絡(luò)結(jié)構(gòu)見表3 所示。
表3 精修復(fù)網(wǎng)絡(luò)結(jié)構(gòu)Tab.3 Refinement inpainting network structure
將粗修復(fù)結(jié)果ICpre、邊緣修復(fù)結(jié)果Bpre和自由掩模M共同輸入到精修復(fù)網(wǎng)絡(luò)中。精修復(fù)網(wǎng)絡(luò)Gr的輸入分別為
粗修復(fù)網(wǎng)絡(luò)Gc、邊緣修復(fù)網(wǎng)絡(luò)Ge和精修復(fù)網(wǎng)絡(luò)Gr的損失函數(shù)分別為
聯(lián)合損失函數(shù)定義為
鑒別器將生成的圖像以及原圖作為輸入,并判斷輸入的生成圖像是真是假。通過最大化鑒別器對抗損失訓(xùn)練網(wǎng)絡(luò),其中鑒別器D對抗損失定義為
實驗配置為:64 位Windows 10 操作系統(tǒng),Nvidia GeForce RTX 2080Ti,實驗框架采用TensorFlow深度學(xué)習(xí)框架,編程語言使用python3.6。本文采用Celeba-HQ人臉數(shù)據(jù)集進(jìn)行訓(xùn)練和測試,訓(xùn)練集包含20 000張256*256大小的人臉圖像,測試集包含1 000張人臉圖像。在訓(xùn)練階段,本文算法的訓(xùn)練時間為62 h。在測試階段,共耗時30 min 12 s 完成測試,平均每張圖像需耗時1.812 s 完成修復(fù)。
為了驗證本文算法的有效性,將本文算法與PatchMatch 算 法[2]、Deepfill-v1 算 法[8]、Edge-Connect 算法[9]和CTSDG 算法[10]進(jìn)行對比實驗,以主觀視覺對比和客觀指標(biāo)分析兩種評價方法進(jìn)行實驗對比分析。
主觀實驗對比如圖2 所示。其中第1,2行表示破損程度為[10%,20%)的實驗對比圖,第3,4 行表示破損程度為[20%,30%)的實驗對比圖,第5,6 行表示破損程度為[30%,40%)的實驗對比圖,第7,8 行表示破損程度為[40%,50%)的實驗對比圖。
圖2 Celeba-HQ測試集實驗結(jié)果Fig.2 Celeba-HQ test set experimental results
圖2 中從左到右每一列分別表示原始破損圖片,PatchMatch 算法、Deepfill-v1 算法、Edge-Connect 算法、CTSDG 算法,本文算法修復(fù)后的圖片以及原始圖像。
從修復(fù)對比圖中第2 列可以看出,Patch-Match 算法在處理小規(guī)模缺失圖像時,具有良好的性能表現(xiàn),但隨著破損區(qū)域規(guī)模的增大,該算法會產(chǎn)生扭曲的結(jié)構(gòu)和大面積的偽影,原因在于該算法僅能利用周圍已知區(qū)域來填充未知區(qū)域,當(dāng)缺失部分較大時,存在的已知信息不足以修復(fù)完整的圖像。從修復(fù)對比圖中第3 列可以看出,Deepfill-v1 算法修復(fù)區(qū)域出現(xiàn)結(jié)構(gòu)扭曲的現(xiàn)象,原因在于Deepfill-v1 算法只關(guān)注紋理修復(fù),沒有考慮結(jié)構(gòu)的問題。從修復(fù)對比圖中第4 列第3,4 行可以看出,修復(fù)結(jié)果產(chǎn)生了模糊的眼眶結(jié)構(gòu),原因在于Edge-Connect 算法會生成混合的邊緣,通過使用邊緣結(jié)構(gòu)先驗可能會導(dǎo)致錯誤的紋理結(jié)構(gòu)。從修復(fù)對比圖中的第4 列第7,8 行可以看出,CTSDG 算法修復(fù)結(jié)果中臉頰部分明顯存在色彩鮮艷度缺失的問題,原因在于CTSDG 算法未注重缺失部分的色彩修復(fù)。相比于PatchMatch算法、Deepfill-v1 算法、Edge-Connect 算法和CTSDG 算法,本文算法得到了更好的圖像細(xì)節(jié)與邊緣,更接近于真實圖像。
本文使用峰值信噪比(Peak Signal to Noise Ratio,PSNR)和結(jié)構(gòu)相似性(Structural Similarity,SSIM)定量評估5 種模型的修復(fù)結(jié)果。PSNR值越大,代表圖像的失真越少;SSIM 指標(biāo)值越大,代表和原始圖像的差距越小,即修復(fù)結(jié)果圖像質(zhì)量越好。在相同破損程度的情況下,本文提出的修復(fù)算法的性能優(yōu)于其他 4 種圖像修復(fù)算法,如表4 所示。
表4 各算法在Celeba-HQ測試集性能指標(biāo)Tab.4 Celeba-HQ test set indicators of every algorithm
為了說明本文所提網(wǎng)絡(luò)各模塊的有效性和必要性,對其進(jìn)行消融實驗,主要包括有無Res2net模塊對比實驗和有無自注意力機(jī)制對比實驗。隨機(jī)選取Celeba-HQ 數(shù)據(jù)集中的兩幅圖進(jìn)行消融實驗對比,并進(jìn)行主觀與客觀指標(biāo)評價。
圖3 為消融實驗的主觀實驗結(jié)果,如圖3(b)中所示,在缺少Res2net 模塊的情況下,恢復(fù)的人臉圖像紋理、細(xì)節(jié)特征不清晰;由圖3(c)可知,缺少自注意力機(jī)制將導(dǎo)致修復(fù)區(qū)域與已知區(qū)域缺乏一致性,出現(xiàn)前景與背景不融洽的現(xiàn)象。
圖3 消融實現(xiàn)主觀實驗結(jié)果Fig.3 Subjective results of ablation experiments
表5 數(shù)據(jù)表明本文算法在缺少Res2net 模塊情況下,PSNR 指標(biāo)下降2.94%,SSIM 指標(biāo)下降2.45%;在缺少自注意力機(jī)制情況下,PSNR指標(biāo)下降3.32%,SSIM 指標(biāo)下降1.79%。由此證明算法中加入Res2net 模塊和自注意力機(jī)制會使修復(fù)圖像的質(zhì)量更好。
表5 消融實驗客觀指標(biāo)對比表Tab.5 Ablation experiment objective index comparison table
針對人臉圖像的特征復(fù)雜多樣,細(xì)節(jié)和結(jié)構(gòu)特征難以恢復(fù)等問題,提出了一種基于上下文特征提取的邊緣生成三階段的圖像修復(fù)算法。首先,將待修復(fù)圖像輸入到粗修復(fù)網(wǎng)絡(luò)中,對圖像缺損部分進(jìn)行初步修復(fù);然后,將初修復(fù)結(jié)果所提供的邊緣結(jié)構(gòu)作為邊緣修復(fù)網(wǎng)絡(luò)的輸入,完成邊緣結(jié)構(gòu)的細(xì)節(jié)重建;最后,將初修復(fù)結(jié)果和重建的邊緣結(jié)構(gòu)一起輸入到精修復(fù)網(wǎng)絡(luò),共同約束圖像的精修復(fù)過程,并在邊緣修復(fù)網(wǎng)絡(luò)和精修復(fù)網(wǎng)絡(luò)中加入Res2net 模塊、自注意力機(jī)制,增強(qiáng)了網(wǎng)絡(luò)對于有限特征的提取能力,改善了圖像目標(biāo)區(qū)域與周圍區(qū)域邊界不連貫的問題。通過與4 種現(xiàn)有的修復(fù)方法在主觀、客觀方面的實驗對比分析,本文所提算法修復(fù)的人臉圖像,在SSIM 和PSNR 性能指標(biāo)上優(yōu)于現(xiàn)有算法,且在邊緣細(xì)節(jié)的恢復(fù)中有著更好的視覺效果。