冀儉儉,楊 剛
(北京林業(yè)大學(xué)信息學(xué)院,北京 100083)
圖像補(bǔ)全技術(shù)旨在合成圖像中缺失或損壞的區(qū)域,是低級(jí)視覺中的基本問題。由于該技術(shù)具有廣泛的應(yīng)用,因此也是計(jì)算機(jī)視覺和圖形圖像領(lǐng)域的一個(gè)活躍的研究課題。圖像補(bǔ)全技術(shù)可用于補(bǔ)全被遮擋的圖像區(qū)域或修復(fù)受損的照片。此外,還可以用于調(diào)整圖像中對(duì)象的位置或者刪除不期望存在的物體。各種應(yīng)用都需要合成圖像具有精細(xì)的紋理和結(jié)構(gòu)信息,但是由于自然圖像的復(fù)雜性和該問題的固有模糊性,使得圖像補(bǔ)全技術(shù)仍然是一項(xiàng)具有挑戰(zhàn)性的任務(wù)。圖像補(bǔ)全任務(wù)面臨的難題是以視覺上合理的方式填補(bǔ)圖像中的空白。
目前,已經(jīng)有很多方法被提出用于圖像補(bǔ)全,主要包括基于數(shù)字修補(bǔ)[1-2]、基于樣本[3-6]和基于深度學(xué)習(xí)[7-9]的圖像補(bǔ)全3個(gè)方面?;跀U(kuò)散的圖像補(bǔ)全是第一個(gè)數(shù)字修補(bǔ)方法[10],該方法通過將來自于已知區(qū)域的圖像信息擴(kuò)散到像素級(jí)的缺失區(qū)域來填充缺失的像素。基于擴(kuò)散的圖像補(bǔ)全方法基本上都基于變分方法和偏微分方程(partial differential equation,PDE)理論[11-13]。PDE算法是迭代算法,由KR?HENBüHL和KOLTUN等[12]提出,其重要目標(biāo)是將圖像的梯度方向和灰度值都傳播到要填充的區(qū)域內(nèi)部,并解決圖像處理中對(duì)高階偏微分方程的需求。如果缺失區(qū)域很小,PDE算法將產(chǎn)生良好結(jié)果。但是當(dāng)缺失的區(qū)域很大時(shí),該算法則需要很長(zhǎng)時(shí)間,并且不會(huì)產(chǎn)生好的結(jié)果,而是產(chǎn)生一些模糊的區(qū)域,使得填充區(qū)域變得不自然?;跀?shù)字修補(bǔ)的另外一個(gè)較為常見的補(bǔ)全方法是以數(shù)據(jù)驅(qū)動(dòng)的方式進(jìn)行圖像補(bǔ)全[14],該方法假設(shè)圖像中相似的內(nèi)容具有相同的上下文信息,通過從外部數(shù)據(jù)庫(kù)中尋找匹配度較高的圖像塊進(jìn)行圖像補(bǔ)全。其在查找與示例圖像具有足夠的視覺相似性的圖像塊時(shí)非常有效,但當(dāng)外部數(shù)據(jù)庫(kù)中缺乏相關(guān)圖像時(shí),該方法就會(huì)受到很大的限制。此外,這種方法在運(yùn)行時(shí)間和存儲(chǔ)空間上也具有一定的缺陷。
相較于基于數(shù)據(jù)驅(qū)動(dòng)的補(bǔ)全方法,基于樣本的補(bǔ)全方法可以進(jìn)行更復(fù)雜的圖像填充,可以填充自然圖像中較大面積的缺失區(qū)域?;跇颖镜膱D像補(bǔ)全方法最初被用于紋理合成[15-16],其中紋理塊從源圖像中采樣并粘貼到目標(biāo)圖像中,隨后被擴(kuò)展到通過基于能量?jī)?yōu)化的圖形分割和紋理生成[17-18]的圖像拼接[19]中。在圖像補(bǔ)全的應(yīng)用中,該方法得到了一些改進(jìn)[20-21],例如最佳補(bǔ)丁搜索。特別是,WEXLER等[22]和SIMAKOV等[23]提出了一種基于全局優(yōu)化的方法,可以獲得更一致的填充。這些技術(shù)后來經(jīng)過隨機(jī)塊搜索算法(PatchMatch)[24]進(jìn)行加速,并允許對(duì)圖像進(jìn)行實(shí)時(shí)的高級(jí)圖像編輯。但是,基于樣本的補(bǔ)全方法只有在缺失區(qū)域由簡(jiǎn)單的結(jié)構(gòu)和紋理構(gòu)成時(shí)才能很好地工作。
基于數(shù)據(jù)驅(qū)動(dòng)和樣本的補(bǔ)全方法在合成面積較小或具有相似性結(jié)構(gòu)紋理的圖像時(shí)具有較好的結(jié)果,但是圖像具有復(fù)雜的紋理和結(jié)構(gòu)信息時(shí),補(bǔ)全效果很不理想。近幾年,深度學(xué)習(xí)的發(fā)展在圖像修復(fù)方面也展現(xiàn)出了突出的成果。深度學(xué)習(xí)能夠在保留語義和情境細(xì)節(jié)的基礎(chǔ)上填充自然圖像中大量缺失區(qū)域,同時(shí)能夠更加有效地捕獲圖像的高級(jí)特征,從而推進(jìn)了基本的圖像處理任務(wù),如對(duì)象移除等的發(fā)展。PHATAK等[25]結(jié)合L2損失和對(duì)抗損失訓(xùn)練了一個(gè)編碼器-解碼器卷積神經(jīng)網(wǎng)絡(luò)(上下文編碼器),直接預(yù)測(cè)丟失的圖像區(qū)域,能夠預(yù)測(cè)合理的圖像結(jié)構(gòu),并且只需要一次正向傳播,速度非???。雖然結(jié)果令人鼓舞,但該方法的修復(fù)結(jié)果有時(shí)缺乏精細(xì)的紋理細(xì)節(jié),從而在缺失區(qū)域的邊界周圍產(chǎn)生可見的偽影。此外,該方法也不適用于處理高分辨率的圖像,對(duì)抗網(wǎng)絡(luò)需要根據(jù)生成圖像和真實(shí)圖像像素之間的損失反向調(diào)整網(wǎng)絡(luò)參數(shù),網(wǎng)絡(luò)難以收斂。針對(duì)以上方法的不足,文獻(xiàn)[8]提出了用編碼器-解碼器卷積神經(jīng)網(wǎng)絡(luò)作為全局內(nèi)容約束,同時(shí)利用缺失區(qū)域與已知區(qū)域之間的局部神經(jīng)塊的相似性作為紋理約束,兩者結(jié)合進(jìn)行圖像補(bǔ)全。文獻(xiàn)[8]將高分辨率圖像分為若干步進(jìn)行補(bǔ)全,增加了紋理信息的真實(shí)性,但是難以保證補(bǔ)全圖像的全局一致性。IIZUKA等[26]提出了全局和局部一致性圖像補(bǔ)全方法,通過使用經(jīng)過訓(xùn)練的全局和局部上下文判別器來區(qū)分真實(shí)圖像和補(bǔ)全圖像。全局判別器查看整個(gè)圖像以評(píng)估整個(gè)圖像是否一致,而局部判別器僅查看以補(bǔ)全區(qū)域?yàn)橹行牡男^(qū)域,以確保生成的圖像塊的局部一致性。但是當(dāng)缺失區(qū)域面積較大或位于圖像邊緣位置時(shí),由于上下文信息的缺失和生成對(duì)抗網(wǎng)絡(luò)結(jié)構(gòu)的不穩(wěn)定性,補(bǔ)全結(jié)果會(huì)有空白和偽彩色區(qū)域生成。
文獻(xiàn)[26]提出的全局和局部一致性圖像補(bǔ)全方法補(bǔ)全大面積和邊緣缺失區(qū)域的不足問題和 GAN本身難以訓(xùn)練的問題,本文提出了針對(duì)于大面積和邊緣缺失區(qū)域的分級(jí)聯(lián)合圖像補(bǔ)全方法,并對(duì)文獻(xiàn)[26]方法中的網(wǎng)絡(luò)結(jié)構(gòu)做了改進(jìn)。
文獻(xiàn)[26]采用了全局和局部一致性的方法對(duì)圖像進(jìn)行補(bǔ)全,即首先在原圖上隨機(jī)生成缺失區(qū)域,并生成對(duì)應(yīng)的二值圖像(0表示完整區(qū)域,1表示缺失區(qū)域)。將原圖和對(duì)應(yīng)的二值圖像輸入到補(bǔ)全網(wǎng)絡(luò)中,利用原圖中缺失區(qū)域和生成圖像中補(bǔ)全區(qū)域的均方誤差損失(mean-squared loss,MSE Loss)對(duì)補(bǔ)全網(wǎng)絡(luò)進(jìn)行訓(xùn)練;然后固定補(bǔ)全網(wǎng)絡(luò),分別將生成圖像和生成圖像中以補(bǔ)全區(qū)域?yàn)橹行牡膮^(qū)域輸入到全局判別器和局部判別器中,并利用對(duì)抗損失對(duì)2個(gè)網(wǎng)絡(luò)進(jìn)行訓(xùn)練;最后將對(duì)抗損失和均方誤差損失聯(lián)合起來一起訓(xùn)練3個(gè)網(wǎng)絡(luò)。文獻(xiàn)[26]方法較已有的圖像補(bǔ)全方法效果更好,但依然存在問題:①當(dāng)缺失區(qū)域面積較大時(shí),最終的補(bǔ)全結(jié)果較為模糊;②當(dāng)缺失區(qū)域位于邊緣區(qū)域時(shí),由于上下文信息的缺失和補(bǔ)全網(wǎng)絡(luò)與判別器訓(xùn)練速度的不一致性,導(dǎo)致補(bǔ)全的結(jié)果會(huì)出現(xiàn)模糊及色彩失真的問題。本文針對(duì)這2個(gè)問題做出了改進(jìn)。
此外,文獻(xiàn)[26]方法中采用的網(wǎng)絡(luò)結(jié)構(gòu)為原始生成對(duì)抗網(wǎng)絡(luò)(generative adversarial network,GAN)模型。原始 GAN最明顯的一個(gè)不足是訓(xùn)練過程難以收斂且具有很大的不穩(wěn)定性。原因在于:①不同于一般的深度學(xué)習(xí)問題具有明確的目標(biāo)函數(shù),通過梯度下降法進(jìn)行訓(xùn)練,GAN的訓(xùn)練是一個(gè)尋找納什均衡點(diǎn)的過程。生成器和判別器在訓(xùn)練過程中任意一方的誤差的下降可能導(dǎo)致另一方的誤差上升,GAN很難達(dá)到相對(duì)均衡的狀態(tài),總是在生成樣本的各種模式之間振蕩,最常見的是GAN將不同的樣本輸入映射到相同的生成樣本上,即重復(fù)生成相同的數(shù)據(jù),該現(xiàn)象也被稱為模式坍塌(model collapse)。②由于一般判別器的迭代速度高于生成器,兩者的迭代速度不一致問題會(huì)導(dǎo)致GAN模型的不穩(wěn)定性問題,難以得到最優(yōu)模型。③反向傳播過程中容易出現(xiàn)梯度消失等現(xiàn)象,導(dǎo)致模型訓(xùn)練較為困難。針對(duì)于GAN的缺點(diǎn),研究者在GAN基本模型的基礎(chǔ)上衍化出一系列新的模型,如條件生成對(duì)抗網(wǎng)絡(luò)(conditional GAN,cGAN)[27]、深度卷積神經(jīng)網(wǎng)絡(luò)(deep convolutional GAN,DCGAN)[28]、基于散度的生成對(duì)抗網(wǎng)絡(luò)(Wasserstein GAN,WGAN)[29]等。其中,WGAN的主要貢獻(xiàn)是提高了原始GAN網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練的穩(wěn)定性。生成問題可近似理解為回歸問題,原始GAN網(wǎng)絡(luò)結(jié)構(gòu)中判別器的最后一層使用的是sigmoid激活函數(shù),將生成問題近似為0-1二分類問題,容易造成生成器和判別器難以達(dá)到平衡狀態(tài),引起模式坍塌及難以收斂等問題,WGAN通過將判別器的最后一層sigmoid函數(shù)去掉,提高了網(wǎng)絡(luò)訓(xùn)練的穩(wěn)定性。
結(jié)合WGAN的方法,本文在文獻(xiàn)[26]方法的基礎(chǔ)上對(duì)圖像補(bǔ)全方法和網(wǎng)絡(luò)結(jié)構(gòu) 2個(gè)方面做了改進(jìn):①通過將補(bǔ)全區(qū)域的中心區(qū)域作為本文添加的局部判別器 2的輸入,使訓(xùn)練過程在中心區(qū)域和真實(shí)圖像相應(yīng)區(qū)域的損失函數(shù)上反向傳播,合成結(jié)果更加真實(shí);②文獻(xiàn)[26]方法中網(wǎng)絡(luò)結(jié)構(gòu)的訓(xùn)練存在不穩(wěn)定、難以收斂等問題,本文通過“加寬”網(wǎng)絡(luò),即添加了局部判別器 2,并將原始網(wǎng)絡(luò)結(jié)構(gòu)中判別器的最后一層sigmoid激活函數(shù)去掉,將每一個(gè)relu層替換為BN層和leaky_relu層的結(jié)合,避免了梯度消失、模式坍塌及網(wǎng)絡(luò)難以收斂等問題,使得網(wǎng)絡(luò)結(jié)構(gòu)更加穩(wěn)定,從而補(bǔ)全效果更加真實(shí)、清晰。
在文獻(xiàn)[26]方法的基礎(chǔ)上,本文首先在原圖orig上隨機(jī)生成具有任意形狀的空白區(qū)域,作為輸入圖像x,并生成輸入圖像對(duì)應(yīng)的Mask二值圖像(圖1)。訓(xùn)練過程中首先利用補(bǔ)全區(qū)域c與原圖orig中對(duì)應(yīng)區(qū)域之間的均方誤差損失L(orig,Mc)(式(1))訓(xùn)練補(bǔ)全網(wǎng)絡(luò),經(jīng)過反復(fù)迭代之后得到補(bǔ)全網(wǎng)絡(luò)的初步補(bǔ)全圖像;然后從初步補(bǔ)全圖像中裁剪出一個(gè)以補(bǔ)全區(qū)域?yàn)橹行牡膱D像塊d,并將其與生成的整張圖像分別輸入到局部判別器和全局判別器中,以對(duì)抗損失Lodvd(式(2))同時(shí)訓(xùn)練2個(gè)網(wǎng)絡(luò)。初步補(bǔ)全結(jié)果中保留了圖像的結(jié)構(gòu)信息,全局網(wǎng)絡(luò)判別器用以保證圖像的全局一致性,局部網(wǎng)絡(luò)判別器用于保持補(bǔ)全區(qū)域與其他區(qū)域的局部一致性。
其中,Mc為輸入的二進(jìn)制Mask圖像;Md為二進(jìn)制圖像中以缺失區(qū)域?yàn)橹行牡木植繀^(qū)域d。
但是,當(dāng)缺失區(qū)域面積較大或位于圖像邊緣位置時(shí),由于上下文信息的缺失和訓(xùn)練的不穩(wěn)定性,以上3個(gè)網(wǎng)絡(luò)得到的補(bǔ)全結(jié)果會(huì)出現(xiàn)失真、偽彩色等現(xiàn)象。因此,本文還生成了位于補(bǔ)全區(qū)域中心位置的圖像塊d′,如圖1(b)所示。其中,x為輸入圖像;d為輸入圖像中以缺失區(qū)域?yàn)橹行牡膱D像塊;c為缺失區(qū)域;d′為位于缺失區(qū)域中心且大小為缺失區(qū)域面積1/4大小的圖像塊。
圖1 圖像區(qū)域劃分示意圖
通過將d′輸入到局部判別器網(wǎng)絡(luò)2中并計(jì)算其與真實(shí)圖像對(duì)應(yīng)區(qū)域的對(duì)抗損失Ladvd′,與全局判別器和局部判別器一起訓(xùn)練反向調(diào)整網(wǎng)絡(luò)參數(shù),使得最終補(bǔ)全的紋理信息更加具有真實(shí)性,且保持了與周圍區(qū)域的局部一致性,即
最后,以聯(lián)合損失L訓(xùn)練整個(gè)網(wǎng)絡(luò)結(jié)構(gòu),即
其中,α為對(duì)抗損失所占的比重的系數(shù)。
本文基于生成對(duì)抗網(wǎng)絡(luò)的分級(jí)聯(lián)合圖像補(bǔ)全方法流程圖如圖2所示。
圖2 分級(jí)聯(lián)合圖像補(bǔ)全流程圖
本文方法采用的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。包括補(bǔ)全網(wǎng)絡(luò)(completion network)、全局判別器(globally discriminator)、局部判別器(locally discriminator)和局部判別器2(locally discriminator 2)4個(gè)網(wǎng)絡(luò)。其中,補(bǔ)全網(wǎng)絡(luò)用于生成缺失區(qū)域的內(nèi)容,全局判別器查看整個(gè)生成圖像與原圖之間的真實(shí)性,以評(píng)估整個(gè)圖像是否一致;而局部判別器僅查看以補(bǔ)全區(qū)域?yàn)橹行牡男^(qū)域,以確保生成的圖像塊的局部一致性。本文方法添加的局部網(wǎng)絡(luò)判別器2,用于判定缺失區(qū)域的中心區(qū)域的生成圖像與原圖相應(yīng)區(qū)域的圖像內(nèi)容的真實(shí)性,并平衡補(bǔ)全網(wǎng)絡(luò)和判別器的迭代速度,使得生成圖像中補(bǔ)全區(qū)域的邊緣更加真實(shí)自然。
圖3 網(wǎng)絡(luò)結(jié)構(gòu)圖
補(bǔ)全網(wǎng)絡(luò)的輸入是含有缺失區(qū)域的整張圖像和對(duì)應(yīng)的二進(jìn)制通道圖片(0代表完整區(qū)域,1代表缺失區(qū)域),輸出為補(bǔ)全區(qū)域和輸入圖像中的完整區(qū)域組合成的圖像;然后將整張生成圖像輸入到全局判別器中,判斷生成內(nèi)容的真實(shí)性,并保持圖像的全局一致性;局部判別器的輸入為生成圖像中以補(bǔ)全區(qū)域?yàn)橹行牡木植繀^(qū)域,用于保持生成區(qū)域與其他區(qū)域的局部一致性。本文添加的局部判別器2的輸入為生成圖像中補(bǔ)全區(qū)域的中心區(qū)域,用于判定大面積缺失區(qū)域的中心區(qū)域生成內(nèi)容的真實(shí)性和邊緣區(qū)域與其他區(qū)域的局部一致性。
其中,補(bǔ)全網(wǎng)絡(luò)采用的是編碼器-解碼器結(jié)構(gòu),包含 10個(gè)卷積層、4個(gè)空洞卷積層、2個(gè)反卷積層和1個(gè)輸出層。除了第1個(gè)卷積層使用5×5的卷積核之外,其余所有的卷積層和空洞卷積層均使用3×3的卷積核,反卷積層使用4×4的卷積核。文獻(xiàn)[26]方法中補(bǔ)全網(wǎng)絡(luò)中除最后一層外,其余每個(gè)卷積層后面都有一個(gè)relu層。由于relu激活函數(shù)會(huì)忽略掉負(fù)值的作用,將輸入為負(fù)值的神經(jīng)元的梯度置為0,造成“神經(jīng)元死亡”的現(xiàn)象。針對(duì)relu的缺陷,本文將relu層替換為BN層和leaky_relu層的結(jié)合。網(wǎng)絡(luò)反向傳播過程是通過對(duì)網(wǎng)絡(luò)前向傳播過程中得到的實(shí)際輸出與期望輸出之間的誤差求偏導(dǎo),進(jìn)而調(diào)整每一層網(wǎng)絡(luò)的參數(shù)進(jìn)行的。當(dāng)網(wǎng)絡(luò)層數(shù)較深,反向傳播靠近輸入層時(shí),偏導(dǎo)數(shù)趨近于零,容易陷入局部最優(yōu)。批歸一化操作使得網(wǎng)絡(luò)訓(xùn)練過程中每一層的輸入保持相同的分布,避免了以上問題。leaky_relu解決了relu激活函數(shù)中當(dāng)輸入為負(fù)值時(shí),輸出為 0的現(xiàn)象,避免了梯度消失等問題。
本文方法的網(wǎng)絡(luò)結(jié)構(gòu)中包含 3個(gè)上下文判別器:全局判別器、局部判別器和局部判別器2。其中,局部判別器是本文在文獻(xiàn)[26]方法的基礎(chǔ)上增加的網(wǎng)絡(luò)。
原始網(wǎng)絡(luò)結(jié)構(gòu)中判別器的訓(xùn)練速度比生成器快得多,導(dǎo)致判別器可以輕易的分辨出哪張是自然圖像,哪張是生成圖像,但是反向傳播時(shí)傳遞給補(bǔ)全網(wǎng)絡(luò)的梯度只能使其生成奇怪的紋路,由此容易產(chǎn)生色彩失真問題。本文通過“加寬”網(wǎng)絡(luò)結(jié)構(gòu),即多加一個(gè)局部判別器,可以平衡兩者的訓(xùn)練速度,使生成的紋理更加真實(shí),不會(huì)生成偽彩色。此外,文獻(xiàn)[26]方法中判別器的最后一層采用的是sigmoid激活函數(shù),得到一個(gè)在[0,1]區(qū)間內(nèi)的連續(xù)值,以表示圖像來自真實(shí)樣本的概率。由于sigmoid函數(shù)將圖像生成問題近似為一個(gè)二分類問題,容易造成梯度消失、模式坍塌、生成器和判別器難以達(dá)到平衡狀態(tài)等問題,本文借鑒了WGAN的方法思想,將原始網(wǎng)絡(luò)結(jié)構(gòu)中判別器最后一層的sigmoid激活函數(shù)移除,使得網(wǎng)絡(luò)訓(xùn)練更加穩(wěn)定,更加容易收斂,生成器和判別器可以很好地對(duì)抗并且達(dá)到平衡狀態(tài),從而生成結(jié)果更加真實(shí)、清晰。
本文實(shí)驗(yàn)中用到的數(shù)據(jù)集是從百度和谷歌等瀏覽器下載的草地相關(guān)圖片。實(shí)驗(yàn)中將圖片的大小初始化 324×324,將“大面積缺失區(qū)域”定義為長(zhǎng)和寬均為原圖的1/2的空白區(qū)域。此外,為了增加模型的泛化能力,本文在訓(xùn)練過程中,將缺失區(qū)域的大小隨機(jī)設(shè)置為100×100~128×128大小。訓(xùn)練過程中還生成了輸入圖片(帶有缺失區(qū)域的圖片)的二值圖像Mask(0代表完整區(qū)域,1代表要補(bǔ)全的區(qū)域)。本文將數(shù)據(jù)集分為訓(xùn)練集和測(cè)試集2部分,其中訓(xùn)練集1 000張,用于訓(xùn)練模型以得到最優(yōu)的網(wǎng)絡(luò)參數(shù);測(cè)試集120張,用于檢驗(yàn)?zāi)P偷姆夯芰Γ饬磕P偷难a(bǔ)全能力,對(duì)模型性能進(jìn)行評(píng)價(jià)。本文的訓(xùn)練集僅采用了1 000張圖片,數(shù)量并不多,但對(duì)于草地這種具有局部相似性的紋理而言,已可以獲得較好的實(shí)驗(yàn)結(jié)果,能夠體現(xiàn)本文方法的優(yōu)勢(shì)了。
根據(jù)實(shí)驗(yàn)設(shè)備 GPU的性能和輸入圖片的大小,本實(shí)驗(yàn)將batch_size的大小設(shè)為16,以便更加合理地利用訓(xùn)練空間和時(shí)間。訓(xùn)練過程首先將補(bǔ)全網(wǎng)絡(luò)迭代訓(xùn)練Tc次,然后單獨(dú)訓(xùn)練3個(gè)判別器網(wǎng)絡(luò)Td次,最后將整個(gè)網(wǎng)絡(luò)一起迭代訓(xùn)練Ttrain次直至網(wǎng)絡(luò)穩(wěn)定。補(bǔ)全網(wǎng)絡(luò)的輸入是一張 324×324大小的含有缺失區(qū)域的圖片和對(duì)應(yīng)的Mask圖片;全局判別器的輸入為補(bǔ)全網(wǎng)絡(luò)初步生成 256×256大小的圖片,保持了合成結(jié)果的全局一致性;局部判別器的輸入為補(bǔ)全網(wǎng)絡(luò)初步合成結(jié)果中心128×128的區(qū)域,保持了缺失區(qū)域與上下文的局部一致性;局部判別器 2的輸入為初步合成結(jié)果中位于缺失區(qū)域中心的 64×64的區(qū)域;最后將補(bǔ)全網(wǎng)絡(luò)和判別器一起迭代訓(xùn)練。實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)補(bǔ)全網(wǎng)絡(luò)的迭代次數(shù)為 6 000,判別器的迭代次數(shù)為1 500,最后網(wǎng)絡(luò)整體訓(xùn)練次數(shù)達(dá)到20 000次時(shí)網(wǎng)絡(luò)可以較好的收斂,補(bǔ)全效果更加真實(shí)。當(dāng)網(wǎng)絡(luò)的迭代次數(shù)過少時(shí),最終的補(bǔ)全結(jié)果出現(xiàn)失真、模糊和空白現(xiàn)象;當(dāng)網(wǎng)絡(luò)迭代次數(shù)過多時(shí),容易出現(xiàn)過擬合,從而影響補(bǔ)全效果。
實(shí)驗(yàn)參數(shù)見表1。
表1 實(shí)驗(yàn)參數(shù)
實(shí)驗(yàn)環(huán)境見表2。
表2 實(shí)驗(yàn)環(huán)境
為了方便對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比,本文對(duì)文獻(xiàn)[26]方法在同樣的參數(shù)設(shè)置下進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 本文方法與文獻(xiàn)[26]方法結(jié)果對(duì)比
結(jié)果表明,當(dāng)缺失區(qū)域面積很大(本文中長(zhǎng)和寬均超過50%)或位于圖像的邊界時(shí),文獻(xiàn)[26]方法的補(bǔ)全結(jié)果是模糊的,且有偽彩色生成。圖中圖像1~3輸入圖像的大小是256×256像素,其中缺失區(qū)域?yàn)槲挥趫D像中心 128×128大小的區(qū)域,即為輸入圖像的 1/4大小。從圖中可以看到文獻(xiàn)[26]方法的補(bǔ)全結(jié)果會(huì)出現(xiàn)模糊、失真等現(xiàn)象,尤其是缺失區(qū)域邊界差異較為明顯。由于本文采取了分級(jí)聯(lián)合補(bǔ)全的方法,既考慮了合成結(jié)果全局與局部一致性,同時(shí),通過添加初步補(bǔ)全結(jié)果中缺失區(qū)域的中心區(qū)域作為輸入的局部判別器2進(jìn)行對(duì)抗訓(xùn)練,保證了補(bǔ)全結(jié)果紋理信息的真實(shí)性,因此本文的結(jié)果更為清晰、真實(shí);圖中圖像4的輸入圖像包含多個(gè)缺失區(qū)域,其中缺失區(qū)域隨機(jī)分布于圖像的不同位置。由于缺乏上下文信息,文獻(xiàn)[26]方法的補(bǔ)全結(jié)果會(huì)出現(xiàn)很明顯的空白區(qū)域。
當(dāng)缺失區(qū)域面積較大且位于圖像邊緣位置時(shí),如圖4中圖像5~8,文獻(xiàn)[26]方法的補(bǔ)全結(jié)果中除了含有大面積空白外還出現(xiàn)了偽彩色。這是由于生成對(duì)抗網(wǎng)絡(luò)中判別器的迭代速度大于生成器的迭代速度,從而導(dǎo)致了訓(xùn)練的不穩(wěn)定。benwne統(tǒng)計(jì)了文獻(xiàn)[26]方法中判別器和生成器每迭代100次的平均運(yùn)行時(shí)間(圖),其中,Tc_per100為生成器每迭代100次的運(yùn)行時(shí)間(s);Td_per100為判別器每迭代 100次的運(yùn)行時(shí)間(s)。從圖中可以看出判別器每迭代100次的時(shí)間約為0.327 s,生成器每迭代100次平均約為0.645 s,即判別器每次迭代的運(yùn)行時(shí)間約是生成器的 50%,導(dǎo)致判別器可以輕易地分辨出哪張是自然圖像,哪張是生成圖像,但是反向傳播時(shí)傳遞給補(bǔ)全網(wǎng)絡(luò)的梯度只能使其生成奇怪的紋路,由此容易產(chǎn)生色彩失真問題。而本文方法添加了局部判別器2,相當(dāng)于“加寬”了網(wǎng)絡(luò),平衡了生成器和判別器的訓(xùn)練速度。此外,本文還通過將每個(gè)卷積層后面的 relu層替換為BN層和leaky_relu層的結(jié)合,并去掉判別器最后一層的sigmoid激活函數(shù),避免了網(wǎng)絡(luò)訓(xùn)練過程中的梯度消失和模式坍塌等問題,使得網(wǎng)絡(luò)訓(xùn)練更加穩(wěn)定。實(shí)驗(yàn)表明,本文網(wǎng)絡(luò)的運(yùn)行速度和文獻(xiàn)[26]方法網(wǎng)絡(luò)的運(yùn)行速度差別僅為10%。本文的網(wǎng)絡(luò)訓(xùn)練更加容易收斂,克服了文獻(xiàn)[26]方法中生成偽彩色的缺陷,使得結(jié)果更加真實(shí)。在圖的圖像5,7,8中,本文合成結(jié)果雖然較文獻(xiàn)[26]方法更優(yōu),但由于上下文信息缺失面積很大,且處于邊緣位置,仍出現(xiàn)了部分空白區(qū)域。問題尚需進(jìn)一步研究克服。
圖5 生成器和判別器每迭代100次的運(yùn)行時(shí)間圖
除了對(duì)圖像質(zhì)量進(jìn)行主觀視覺評(píng)價(jià)方法以外,本文還使用了 MSE Loss和結(jié)構(gòu)化相似性(structural similarity,SSIM)等客觀評(píng)估方法對(duì)生成結(jié)果和原圖orig之間的相似性進(jìn)行量化評(píng)價(jià)。其中,MSE Loss用來比較圖像之間的絕對(duì)誤差,即圖像像素之間的差距;SSIM用來評(píng)估圖像像素之間的依賴性,即人眼對(duì)圖像的接受程度。MSE Loss越小、SSIM越大,代表2張圖像越相似。表3為文獻(xiàn)[26]方法和本文方法在圖4中測(cè)試圖像的生成結(jié)果與原圖orig的比較結(jié)果。
表3 圖4中本文方法與文獻(xiàn)[26]方法的MSE和SSIM值
當(dāng)缺失面積較大時(shí),文獻(xiàn)[26]方法的MSE Loss值比本文方法高 20%~40%,表明缺失區(qū)域面積較大時(shí),本文方法更能保證圖像紋理信息的真實(shí)性,見表3中的圖像1~3;當(dāng)缺失區(qū)域位于圖像邊緣位置時(shí),文獻(xiàn)[26]方法的補(bǔ)全結(jié)果和原圖之間的MSE Loss值和 SSIM 值均與本文補(bǔ)全結(jié)果有較大的差距,表明本文方法相較于文獻(xiàn)[26]方法在圖像上下文信息和全局、局部一致性方面均與原圖更加相似,見表3中圖像4~8。
圖(a)為文獻(xiàn)[26]方法采用的網(wǎng)絡(luò)結(jié)構(gòu)在訓(xùn)練過程中各個(gè)損失的運(yùn)行圖,即網(wǎng)絡(luò)結(jié)構(gòu)中卷積層采用relu激活函數(shù),判別器的最后一層通過sigmoid激活函數(shù)進(jìn)行二分類判斷;圖6(b)為本文方法采用的網(wǎng)絡(luò)結(jié)構(gòu)在訓(xùn)練過程中各個(gè)損失的運(yùn)行圖。本文方法對(duì)網(wǎng)絡(luò)結(jié)構(gòu)做出的改進(jìn)包括:用 BN層和leak_relu層結(jié)合的方式替代relu層,并且去掉原始判別器結(jié)構(gòu)中最后一層的sigmoid激活函數(shù),以及添加了局部判別器2“加寬”網(wǎng)絡(luò)。
圖6 文獻(xiàn)[26]與本文方法網(wǎng)絡(luò)結(jié)構(gòu)的Loss曲線圖
由圖6可以看出,文獻(xiàn)[26]方法的網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練過程中容易出現(xiàn)梯度消失現(xiàn)象,訓(xùn)練過程很不穩(wěn)定。本文方法采用的網(wǎng)絡(luò)結(jié)構(gòu)訓(xùn)練過程則相對(duì)穩(wěn)定,且生成損失下降時(shí),對(duì)抗損失呈上升趨勢(shì),二者始終保持對(duì)抗?fàn)顟B(tài),直至達(dá)到平衡。
除了針對(duì)具有重復(fù)性紋理的圖像進(jìn)行補(bǔ)全外,本文還對(duì)具有一定結(jié)構(gòu)特征的鐵絲網(wǎng)的照片進(jìn)行了驗(yàn)證,如圖7所示。
此外,為了驗(yàn)證本文方法的泛化能力,從Places2數(shù)據(jù)集中隨機(jī)抽取了15 000張圖片進(jìn)行訓(xùn)練,測(cè)試結(jié)果如圖8所示。
由圖8可以看出,文獻(xiàn)[26]方法生成的圖片的補(bǔ)全區(qū)域很模糊,且邊界區(qū)域較為明顯,不能很好地保持圖像的真實(shí)性和一致性。本文方法由于對(duì)網(wǎng)絡(luò)結(jié)構(gòu)做出了改進(jìn),使得網(wǎng)絡(luò)在訓(xùn)練過程中避免了梯度消失、減小了生成器和判別器迭代速度的不一致性,對(duì)具有較強(qiáng)結(jié)構(gòu)性的圖案也可以具有更好的補(bǔ)全效果。能夠生成更加清晰、真實(shí)的圖片,且保持圖像的全局和局部一致性。
圖7 鐵絲網(wǎng)圖片補(bǔ)全結(jié)果對(duì)比
圖8 Places2數(shù)據(jù)集圖片補(bǔ)全結(jié)果對(duì)比
本文提出一種分級(jí)聯(lián)合圖像補(bǔ)全方法,將圖像分為以缺失區(qū)域?yàn)橹行牡膮^(qū)域和缺失區(qū)域中心的區(qū)域,添加了局部判別器2對(duì)圖像進(jìn)行補(bǔ)全,并對(duì)文獻(xiàn)[26]方法中使用的GAN模型結(jié)構(gòu)進(jìn)行了改進(jìn)。本文的方法克服了文獻(xiàn)[26]方法訓(xùn)練過程中大面積缺失區(qū)域的補(bǔ)全結(jié)果較為模糊、失真的問題,又使得網(wǎng)絡(luò)迭代過程中補(bǔ)全網(wǎng)絡(luò)和判別器的迭代速度更加一致,網(wǎng)絡(luò)訓(xùn)練更加穩(wěn)定,從而避免了偽彩色的生成,使得補(bǔ)全的結(jié)果更加真實(shí)清晰。
但是,本文的方法仍然存在局限性:①當(dāng)大面積缺失區(qū)域位于圖像邊界時(shí),補(bǔ)全結(jié)果仍然具有較小的空白區(qū)域。這是由于缺少上下文信息所致。是否可以在圖像庫(kù)中匹配出合適的上下文信息將是一個(gè)有趣的探討方向;②本文方法主要針對(duì)有重復(fù)性紋理結(jié)構(gòu)的圖形補(bǔ)全,當(dāng)圖像具有非規(guī)則結(jié)構(gòu)時(shí),由于訓(xùn)練過程中難以捕獲紋理的細(xì)節(jié)特征本文方法將無法適用,還有待進(jìn)一步研究解決。
本文方法可應(yīng)用于圖像修復(fù),當(dāng)圖像具有大面積的缺損或磨痕時(shí),可以使得修復(fù)后的圖像更加逼真;此外,當(dāng)用戶希望去除電子圖像中的某目標(biāo)物體時(shí),擦除該目標(biāo)物體后,可以實(shí)現(xiàn)根據(jù)周圍信息對(duì)擦除區(qū)域進(jìn)行補(bǔ)全。由于在具體的應(yīng)用中只需要用到本文網(wǎng)絡(luò)結(jié)構(gòu)中的補(bǔ)全網(wǎng)絡(luò),結(jié)構(gòu)相對(duì)輕型,所以本文方法還可以應(yīng)用于視頻操作等場(chǎng)景中,且克服了已有圖像補(bǔ)全技術(shù)的弊端,具有較好的應(yīng)用前景。