何 妍, 何 嘉
(成都信息工程大學(xué)計(jì)算機(jī)學(xué)院,四川 成都 610225)
油畫材料的特殊性、存儲方式不當(dāng)?shù)仍蚩赡軐?dǎo)致圖像畫質(zhì)出現(xiàn)破損。例如存放環(huán)境的溫度、濕度的變化可能導(dǎo)致油畫掉色,出現(xiàn)破損區(qū)域,就會降低油畫的價(jià)值。通過對油畫圖像的修復(fù),可以修復(fù)其藝術(shù)性。然而,油畫修復(fù)是一個(gè)非常耗時(shí)的精細(xì)工作,隨著深度學(xué)習(xí)圖像修復(fù)技術(shù)[1]的出現(xiàn),可以高效地對油畫藝術(shù)品進(jìn)行圖像修復(fù)。
圖像修復(fù)(image inpainting)最早由Bertalmio等[2]在2000年提出,是一種基于偏微分方程的圖像修復(fù)方法。主要思想是將待修復(fù)破損區(qū)域的周圍信息沿著等照度線方向由外向內(nèi)傳播,此方法利用了物理學(xué)中熱擴(kuò)散方程的方法。雖然,之前的圖像修復(fù)方法[3-5]在整體結(jié)構(gòu)上能夠修復(fù)完整的畫面,但對圖像的修復(fù)效果處理不太令人滿意。
因此,提出一種基于Non-local注意力機(jī)制生成對抗網(wǎng)絡(luò)修復(fù)方法,修復(fù)破損的油畫圖像。該方法主要在3方面進(jìn)行了改進(jìn):(1)使用門控卷積替換生成網(wǎng)絡(luò)的普通卷積層,該結(jié)構(gòu)有助于網(wǎng)絡(luò)進(jìn)行特征篩選;(2)網(wǎng)絡(luò)生成器分為第一、第二階段,通過雙階段設(shè)計(jì)提升圖像細(xì)節(jié)的修復(fù)效果。在第一階段,使用擴(kuò)張卷積,以增大圖像的感受野,有助于捕捉到更多的圖像特征信息;在第二階段,引入Non-local注意力機(jī)制,該機(jī)制使用的是全局特征信息,讓網(wǎng)絡(luò)感受野的范圍進(jìn)一步擴(kuò)大,修復(fù)圖像的效果更好;(3)判別模型采用光譜歸一化馬爾可夫判別器,用來解決圖像邊緣不和諧的問題。在損失函數(shù)上,采用感知損失、GAN損失和L1重建損失的結(jié)合,使訓(xùn)練更加穩(wěn)定、生成的圖像效果也更好。實(shí)驗(yàn)證明,文中提出的對不規(guī)則的破損油畫圖像進(jìn)行修復(fù)的方法,與其他修復(fù)方法[6-8]相比,具有更好的修復(fù)效果。
近年來隨著深度學(xué)習(xí)技術(shù)[9]的快速發(fā)展,圖像修復(fù)成了計(jì)算機(jī)視覺的熱門領(lǐng)域。Satoshi等[6]提出了基于雙判別器的圖像修復(fù)方法Global&Local,通過雙判別器來提升網(wǎng)絡(luò)對全局信息和局部信息的融合利用,使網(wǎng)絡(luò)在完整區(qū)域中尋找最相似紋理塊,進(jìn)行圖像復(fù)原。Guilin等[7]在ECCV上首次利用部分卷積網(wǎng)絡(luò)PartialConvGAN來實(shí)現(xiàn)圖像修復(fù)。網(wǎng)絡(luò)主體由生成器和判別器組成,生成器用來修復(fù)破損圖像,判別器用來判斷輸入的圖片是原始圖片還是生成器生成的圖片,并將結(jié)果反饋給生成器讓其進(jìn)行不斷的優(yōu)化,形成一種博弈狀態(tài),使圖像修復(fù)的效果更真實(shí)。最近,Yu等[8]提出DeepFillv2網(wǎng)絡(luò),它們采用雙階段生成網(wǎng)絡(luò)結(jié)構(gòu)。首先,在生成器第一階段,提取圖像中的語義信息;其次,在生成器第二階段將粗生成網(wǎng)絡(luò)的結(jié)果作為輸入,使得生成紋理結(jié)構(gòu)更合理。
文中提出的油畫圖像修復(fù)算法的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,該算法以生成對抗網(wǎng)絡(luò)為基本的模型架構(gòu),由生成器和判別器組成。卷積單元下面數(shù)字48、96、192代表卷積后輸出通道數(shù)的大小,4和3分別是輸入和輸出通道數(shù)大小。

圖1 網(wǎng)絡(luò)結(jié)構(gòu)
生成器輸入是RGB破損圖和掩膜灰度圖組成的四通道圖像,輸出為修復(fù)圖像。生成器是由兩個(gè)編碼器-解碼器組成,分為第一和第二階段,先得到粗略的修復(fù)結(jié)果,然后再進(jìn)行精細(xì)化修復(fù),兩者組成完整修復(fù)流程。
門控卷積是一種具有特征篩選卷積層,因此,使用門控卷積替換普通卷積。在生成器的第一階段,引入擴(kuò)張卷積層[10],在空間維度上增大感受野,讓網(wǎng)絡(luò)獲得更多的特征信息,幫助圖像修復(fù)。在生成器的第二階段,引入Non-local[11]注意力機(jī)制,利用它建立局部特征信息和全局特征信息的聯(lián)系,讓網(wǎng)絡(luò)的修復(fù)可以依賴于圖像的整體結(jié)構(gòu),提升圖像的修復(fù)效果。
2.1.1 Gated Convolution門控卷積
門控卷積[12]最早出現(xiàn)在NLP的任務(wù)中,取得了良好的結(jié)果,Yu等[8]將其引入圖像修復(fù)任務(wù)。門控卷積的計(jì)算分3個(gè)步驟:首先,將特征圖分別輸入獨(dú)立的卷積層,獲得經(jīng)過處理的特征圖和通道權(quán)重圖;然后,使用Sigmoid函數(shù)激活通道權(quán)重圖,將值調(diào)整到0~1;再將處理過的特征圖和通道權(quán)重圖進(jìn)行點(diǎn)乘操作;最后使用ELU激活函數(shù)進(jìn)行特征激活,得到最終輸出結(jié)果。
2.1.2 Dilated Convolution擴(kuò)張卷積
Dilated convolution擴(kuò)張卷積,由Google團(tuán)隊(duì)[13]在2014年提出,其思路是在普通卷積核中通過0填充的方式,在不增加參數(shù)的同時(shí),增大圖像的感受野,從而獲取更多的特征信息。普通的卷積操作,相當(dāng)于擴(kuò)張率為1的擴(kuò)張卷積。
圖2是擴(kuò)張率為2,卷積核大小為3×3的擴(kuò)張卷積[12],它通過0填充的方式,使卷積核的感受野大小變成5×5。相比標(biāo)準(zhǔn)的卷積操作,擴(kuò)張卷積多了一個(gè)參數(shù)擴(kuò)張率,代表擴(kuò)張的大小。

圖2 擴(kuò)張卷積結(jié)構(gòu)
將擴(kuò)張卷積應(yīng)用到圖像修復(fù)中,在生成器第一階段結(jié)構(gòu)的中間部分加入4層擴(kuò)張卷積,隨著層數(shù)的加深,擴(kuò)張卷積層的擴(kuò)張率不斷變大,四層擴(kuò)張率分別為2、4、8和16。通過疊加擴(kuò)張率不斷變大的擴(kuò)張卷積層,來實(shí)現(xiàn)不斷增大圖像感受野,增強(qiáng)網(wǎng)絡(luò)對圖像整體特征信息的提取能力和使用能力。
2.1.3 Non-local Attention注意力機(jī)制
Non-local[11]注意力機(jī)制通過計(jì)算特征圖任意兩個(gè)位置之間的交互信息,建立特征值遠(yuǎn)距離依賴,不同于傳統(tǒng)卷積只能局限于相鄰特征點(diǎn),它相當(dāng)于構(gòu)造一個(gè)和特征圖尺寸一樣大的卷積核,獲得更多特征信息。Non-local注意力機(jī)制通過引入全局特征信息,增大圖像的感受野,為圖像的補(bǔ)全獲取更多豐富的特征信息。該機(jī)制在深度學(xué)習(xí)領(lǐng)域得到廣泛應(yīng)用[11]:語義分割、目標(biāo)檢測、圖像超分辨率、圖像去噪和文本檢測。因此,文中引入Non-local注意力機(jī)制,以提升網(wǎng)絡(luò)的圖像修復(fù)效果。
Non-local[11]如式(1)所示

式中x、y為輸入和輸出,i代表特征值當(dāng)前位置的響應(yīng),j代表的是全局位置的響應(yīng)。g(xj)=Wgxj,Wg為權(quán)重,f(xi,xj)如式(2)所示,C(x)如式(3)所示。
式中f(xi,xj)是 Non-local的核心計(jì)算所在。其中,θ(xi)=Wθxi,φ(xj)=Wφxj,Wθ和 Wφ是權(quán)重。 θ(xi)和φ(xj)的計(jì)算細(xì)節(jié)如表1所示。T是對矩陣進(jìn)行轉(zhuǎn)置,xi和xj分別是當(dāng)前位置特征值和全局位置的特征值。f(xi,xj)通過矩陣相乘的計(jì)算方式,來建立局部特征信息和全局特征信息的聯(lián)系。

表1 θ(xi)和 φ(xj)結(jié)構(gòu)表

式中的C(x)是歸一化因子,以實(shí)現(xiàn)特征的softmax歸一化,它使特征值分布趨于中心化,避免極值的出現(xiàn)(極值會導(dǎo)致全黑或全白的修復(fù)結(jié)果)。
Non-local的結(jié)構(gòu)如圖3所示,它涉及四次卷積、兩次矩陣相乘和一次矩陣拼接計(jì)算。其中,B(Batch Size)代表批處理大小,H(height)和W(width)代表特征圖的長和寬,192和96是特征圖的通道數(shù)量,1×1×1代表卷積核的大小以及卷積步長。?表示矩陣相乘,8表示把兩個(gè)特征圖的特征通道拼接到一起。

圖3 Non-local attention結(jié)構(gòu)
表1和表 2是對圖 3中 θ(xi)、φ(xj)、g(xi)、Conv.1×1×1結(jié)構(gòu)的解釋。其中,第一行是函數(shù)的名稱;第二行Input Size和第四行Conv.Output Size分別是特征圖的輸入和輸出尺寸,4個(gè)值分別為批大小、高度、寬度和通道數(shù);第三行Conv.Kernel Size是卷積核尺寸,4個(gè)值分別為輸入通道數(shù)、卷積核大小、卷積步長和輸出通道數(shù);第四行Reshape Output Size是對卷積輸出變形后的特征圖大小,2個(gè)值分別為批大小乘以高度乘以寬度、通道數(shù)。

表2 g(xi)和 Conv.1×1×1結(jié)構(gòu)表
采用光譜歸一化馬爾可夫判別器(SN-Discriminator)作為模型判別器,網(wǎng)絡(luò)通過判別器來進(jìn)行對抗訓(xùn)練,進(jìn)而提升生成器的生成效果。判別器結(jié)構(gòu)如圖4所示,圖中的H、W代表圖像的高度和寬度。

圖4 判別器結(jié)構(gòu)
判別器的輸入是修復(fù)圖片和掩膜灰度圖組成的4通道圖片,輸出是判別結(jié)果。判別器的第一層采用的卷積核為7×7,大卷積核具有大的感受野,能獲取更多的特征信息;后五層采用卷積核大小4×4。表3是對SN-Discriminator判別器結(jié)構(gòu)的詳細(xì)解釋。表中第一列是卷積層的名字;第二列和第四列是輸入和輸出特征圖的大小,4個(gè)參數(shù)分別為批大小、高度、寬度、通道數(shù);第三列是卷積核的大小,4個(gè)參數(shù)分別為輸入通道數(shù)、卷積核大小、卷積步長、輸出通道數(shù)。

表3 SN-Discriminator判別器結(jié)構(gòu)表


選取L1作為重建損失函數(shù),如式(5)所示H代表圖像的高度,W代表圖像的寬度,I代表原圖,II代表破損的油畫圖像。
感知損失為

i和j是像素的坐標(biāo)值,I是無損原圖,II是破損圖,G(II)代表的是經(jīng)過修復(fù)后的油畫圖片。
GAN損失計(jì)算的是均值誤差為

式中n是樣本總數(shù),i是樣本序號。
本文算法使用的是Adam優(yōu)化器[14],通過一階求導(dǎo)推導(dǎo)出偏差,得到目標(biāo)函數(shù)的梯度,然后使用梯度值優(yōu)化模型的參數(shù)。Adam優(yōu)化器參數(shù)如下:學(xué)習(xí)率為0.0001,動量參數(shù)belta1和belta2的大小為0.5和0.999。
使用開源Gallerix油畫數(shù)據(jù)集,從中選取完整的油畫圖片來驗(yàn)證網(wǎng)絡(luò)模型的性能,部分?jǐn)?shù)據(jù)集如圖5所示。使用3000張印象主義風(fēng)格的油畫圖像作為本文實(shí)驗(yàn)數(shù)據(jù)集,圖像分辨率為256像素,飽和度為100%,使用其中2700張作為訓(xùn)練集,300張作為測試數(shù)據(jù)集。

圖5 部分?jǐn)?shù)據(jù)集展示
在模型訓(xùn)練時(shí),本文算法通過隨機(jī)生成破損區(qū)域的方式進(jìn)行數(shù)據(jù)增強(qiáng),使用隨機(jī)角度、長度和寬度的線條去模擬破損區(qū)域,生成的破損掩碼區(qū)域?yàn)檎伎偯娣e的10%~25%。每次生成的破損區(qū)域不相同,這豐富了訓(xùn)練數(shù)據(jù),使訓(xùn)練出的網(wǎng)絡(luò)模型能夠適應(yīng)多種破損形態(tài)的油畫。通過隨機(jī)生成破損區(qū)域的方式,進(jìn)行數(shù)據(jù)增強(qiáng),避免模型的數(shù)據(jù)過擬合問題,增強(qiáng)模型的泛化性能。
實(shí)驗(yàn)在一臺深度學(xué)習(xí)服務(wù)器上完成,本文算法通過Python語言編程實(shí)現(xiàn),使用PyTorch深度學(xué)習(xí)框架。服務(wù)器的具體配置如下:CPU型號為英特爾I7-7700,操作系統(tǒng)是Ubantu 18.04 LTS,系統(tǒng)的內(nèi)存大小是128 GB,計(jì)算顯卡使用的是2條11GB顯存的英偉達(dá)GTX 2080Ti深度學(xué)習(xí)圖形顯卡。
本文算法模型訓(xùn)練200個(gè)迭代周期,每個(gè)迭代周期的步長為10000步,BatchSize批處理的大小為8。訓(xùn)練時(shí),使用的掩模都是非連續(xù)隨機(jī)生成,占圖像面積的10% ~25%。在此范圍內(nèi),圖像修復(fù)效果比較理想,能較好地完成油畫修復(fù)的任務(wù)。模型訓(xùn)練的前100個(gè)周期,損失函數(shù)值從15.01,逐漸下降到了6.50。在100~200的周期內(nèi),損失函數(shù)值徘徊在6.0附近,并逐漸趨于穩(wěn)定。損失由最初的15.01,下降到最后的5.62。
使用兩個(gè)圖像質(zhì)量評價(jià)指標(biāo)來定量評估網(wǎng)絡(luò)的性能,分別是峰值信噪比(PSNR)和結(jié)構(gòu)相似性(SSIM),數(shù)值越大,表示失真越小。

式中的MSE是均方誤差,n代表的是每個(gè)采樣值的比特?cái)?shù)。

式中μx和μy分別代表x、y的平均值,σx和σy分別代表x和 y的標(biāo)準(zhǔn)差,σxy代表 x和 y的協(xié)方差,而 C1、C2、C3為常數(shù),避免分母為零導(dǎo)致的計(jì)算錯(cuò)誤。
為驗(yàn)證本文算法圖像修復(fù)的有效性,使用300張測試圖片,在開源Gallerix油畫數(shù)據(jù)集上進(jìn)行測試。與3種經(jīng)典的圖像生成對抗網(wǎng)絡(luò)進(jìn)行比較,3種網(wǎng)絡(luò)分別是:使用雙判別器的圖像修復(fù)網(wǎng)絡(luò)Global&Local[3],使用基于部分卷積的 PartialConv-GAN[4]網(wǎng)絡(luò),以及專門針對自由形式掩碼修復(fù)的Deepfillv2GAN[7]網(wǎng)絡(luò),量化指標(biāo)如表4所示。表4的各列依次是模型名稱、量化指標(biāo)以及處理一張圖片的平均耗時(shí)(ms)。圖6是實(shí)驗(yàn)的效果圖。

圖6 實(shí)驗(yàn)效果圖

表4 實(shí)驗(yàn)結(jié)果量化表
實(shí)驗(yàn)對比模型一:Global&Local網(wǎng)絡(luò)。它是一種使用雙判別器的生成對抗網(wǎng)絡(luò)。雖然它是幾種網(wǎng)絡(luò)中效果較差的,但不可否認(rèn)它是一種結(jié)構(gòu)簡單、性能強(qiáng)大的網(wǎng)絡(luò)模型,在圖像修復(fù)領(lǐng)域有著重要的影響。
實(shí)驗(yàn)對比模型二:PartialConvGAN網(wǎng)絡(luò)。它的誕生就是用于圖像修復(fù),針對圖像中非矩形的破損區(qū)域進(jìn)行修復(fù),通過部件卷積實(shí)現(xiàn)對圖像中有效元素和缺失元素的區(qū)別對待。模型訓(xùn)練時(shí),卷積層僅僅對滿足有效像素條件的元素進(jìn)行卷積和歸一化操作,然后根據(jù)區(qū)域權(quán)重更新規(guī)則實(shí)現(xiàn)對權(quán)重的更新操作。它的修復(fù)效果好于Global&Local網(wǎng)絡(luò)。
實(shí)驗(yàn)對比模型三:Deepfillv2網(wǎng)絡(luò)。它被用于對人臉圖像不規(guī)則破損區(qū)域進(jìn)行修復(fù)的生成對抗網(wǎng)絡(luò),和本文一樣采用雙編碼器和雙解碼器的生成結(jié)構(gòu)。通過注意力機(jī)制來實(shí)現(xiàn)對破損區(qū)域特征信息的修復(fù),這說明了注意力機(jī)制在圖像修復(fù)中的重要性,在實(shí)驗(yàn)效果上,優(yōu)于Global&Local和PartialConvGAN網(wǎng)絡(luò)模型。
本文網(wǎng)絡(luò)在兩項(xiàng)圖像修復(fù)效果量化指標(biāo)峰值信噪比和結(jié)構(gòu)相似度均超過其余3種網(wǎng)絡(luò)。同時(shí),通過觀察圖6的實(shí)驗(yàn)效果,可以發(fā)現(xiàn)本文算法修復(fù)的圖像紋理更加清晰、邊緣細(xì)節(jié)上處理很好,明顯優(yōu)于其余3種網(wǎng)絡(luò)。在表4的圖像處理速度比較中,本文算法處理一張圖像需要花39 ms,與另外3種網(wǎng)絡(luò)相比無明顯差異,這也體現(xiàn)了深度學(xué)習(xí)方法在圖像修復(fù)中處理速度上的優(yōu)勢。
得益于深度學(xué)習(xí)圖像修復(fù)技術(shù)的發(fā)展,提出一種基于Non-local[11]的非局部注意力機(jī)制生成對抗網(wǎng)絡(luò)的油畫修復(fù)方法,盡可能地恢復(fù)油畫圖像的價(jià)值。該網(wǎng)絡(luò)受雙編碼器-解碼器生成結(jié)構(gòu)、Non-local非局部注意力機(jī)制和門控卷積擴(kuò)張卷積結(jié)構(gòu)的啟發(fā),在提升破損區(qū)域修復(fù)效果和色彩的同時(shí),也能對油畫破損邊緣區(qū)域進(jìn)行修復(fù),較好地提升了油畫修復(fù)的效果。實(shí)驗(yàn)結(jié)果表明:本文方法具有對不規(guī)則的油畫破損區(qū)域進(jìn)行有效修復(fù)的能力。
本文網(wǎng)絡(luò)的損失函數(shù)仍有優(yōu)化的空間,在對特征的使用上仍然具有改進(jìn)的潛力,在下一步研究中將考慮加入超圖卷積等結(jié)構(gòu)來優(yōu)化和提升網(wǎng)絡(luò)。