国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

生成式對抗網(wǎng)絡在圖像補全中的應用*

2019-08-12 02:11:24郭小明李芹芹張露月
計算機與生活 2019年8期
關(guān)鍵詞:損失卷積函數(shù)

時 澄,潘 斌,郭小明,李芹芹,張露月,鐘 凡

1.遼寧石油化工大學 計算機與通信工程學院,遼寧 撫順 113001

2.遼寧石油化工大學 理學院,遼寧 撫順 113001

3.山東大學 計算機科學與技術(shù)學院,山東 青島 266237

1 引言

圖像補全是一種在圖像缺失區(qū)域中填充替代內(nèi)容的技術(shù)。使用該技術(shù),可以為圖像中的缺失區(qū)域根據(jù)某種規(guī)則進行補全,使補全后的圖像達到以假亂真的效果。目前,已有多種方法應用于圖像補全領(lǐng)域,但是由于對補全效果的高要求,圖像補全仍然是一個具有挑戰(zhàn)性的研究方向[1-2]。

對圖像進行補全不僅要考慮圖像紋理細節(jié)的合理性,也要考慮圖像整體結(jié)構(gòu)的統(tǒng)一性,生成式對抗網(wǎng)絡(generative adversarial networks,GAN)為圖像補全提供了新的思路。

本文提出了一種基于GAN的圖像補全方法。GAN模型由生成器模型和判別器模型兩部分組成。生成器模型和判別器模型均采用卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)實現(xiàn)。首先,通過生成器模型進行圖像補全;然后,利用判別器模型對圖像的補全效果進行判別。其中,判別器模型又分為整體圖像判別器模型和局部圖像判別器模型,整體圖像判別器模型將整幅的補全圖像作為輸入,從整體上判別圖像場景是否具有一致性,而局部圖像判別器模型只判別以補全區(qū)域為中心的局部區(qū)域的紋理細節(jié)信息。

通過對GAN模型進行迭代訓練,得到穩(wěn)定的網(wǎng)絡模型。在每一次的迭代訓練過程中,首先更新判別器模型,以便正確區(qū)分輸入的圖像是真實的圖像還是補全的圖像;然后更新生成器模型,使圖像的缺失區(qū)域有更好的補全效果。

2 相關(guān)工作

圖像補全是數(shù)字圖像處理領(lǐng)域的重要研究方向,在老照片的修復、圖像冗余場景的去除以及圖片場景的合理化延伸等方面有著廣闊的應用前景。

基于擴散的圖像補全方法,是一種較為傳統(tǒng)的圖像補全手段。該方法使用缺失區(qū)域周圍的信息來補全圖像,例如Ballester等[3]提出的基于等照度線進行傳播的方法。但是,基于擴散的方法只能填充面積小的或者狹窄的缺失區(qū)域,對于面積較大的區(qū)域補全效果并不理想。

相較于基于擴散的圖像補全方法,基于樣本塊的方法可以用來填充圖像中較大的缺失區(qū)域?;跇颖緣K的圖像補全方法由Efros等[4-5]在紋理合成理論中首次被提出,該方法從圖像的完好區(qū)域中截取與缺失區(qū)域周圍紋理相同的樣本塊,填充到缺失區(qū)域中來完成圖像的補全。后來,基于樣本塊的圖像補全方法進一步發(fā)展,例如Criminisi等[6]提出的優(yōu)化樣本塊搜索的方法,Wexler等[7]和Simakov等[8]提出的基于圖像整體的樣本塊填充方法,該類方法可以從圖像中可獲得的部分搜索與缺失塊相似的區(qū)域來填充缺失區(qū)域,取得了較好的補全。但是此方法太依賴于圖像的已知部分,如果已知部分不存在這樣的相似塊,那么將不能較好地補全缺失區(qū)域。Hays等[9]提出了一種使用大型圖像數(shù)據(jù)庫的圖像補全方法。該方法首先在數(shù)據(jù)庫中搜索與待補全圖像最為相似的圖像,然后截取相似圖像中與缺失區(qū)域相對應的片段,最后將截取的片段填充到缺失區(qū)域完成圖像的補全。但是,該方法是以數(shù)據(jù)庫中包含與待補全圖像相似的圖像為前提的,極大地限制了方法的適用性。

為了解決待補全圖像中缺失大量結(jié)構(gòu)化場景的問題,提出了一些基于結(jié)構(gòu)特點的圖像補全方法,例如Drori等[10]提出的根據(jù)感興趣區(qū)域進行補全的方法,Sun等[11]提出的根據(jù)圖像中線條的變化進行補全的方法以及Pavi?等[12]提出的根據(jù)圖像的透視變換進行補全的方法。這些方法通過保留重要的結(jié)構(gòu)特征來提高圖像補全的質(zhì)量,但是這些方法僅限于特定的結(jié)構(gòu),不具有普遍性。

近年來,隨著深度學習的迅速發(fā)展,基于機器學習的圖像補全方法被提出[13-14]。Zhao等[13]提出的Context Encoder的圖像補全方法,利用對抗損失來補全圖像缺失區(qū)域。但是,該方法存在缺失區(qū)域與非缺失區(qū)域不連續(xù)的問題,有明顯的修補痕跡,在視覺效果上較粗糙;Yang等[14]提出的基于GAN的優(yōu)化方法,須對每幅圖像進行優(yōu)化,這大大增加了計算時間和空間的消耗。

本文提出了一種基于GAN的圖像補全方法。相較于之前的方法,本文的生成器模型采用馬爾科夫隨機場(Markov random field,MRF)與均方誤差(mean square error,MSE)相結(jié)合的損失函數(shù)進行訓練,以提高生成器模型的精度和對圖像紋理細節(jié)的處理能力。

3 圖像補全

3.1 生成式對抗網(wǎng)絡的基本工作原理

GAN的提出,最初是受到博弈論中二元零和博弈的啟發(fā)。通常,GAN中包含了一對相互對抗的模型:生成器模型和判別器模型。

生成器模型的作用是使補全的圖像盡可能地逼近真實的圖像;判別器模型的作用是正確區(qū)分真實的圖像和補全的圖像。兩個模型相互博弈,二者需要不斷提高各自的生成能力和判別能力,從而使補全的圖像得到最佳的效果。GAN的基本工作原理如圖1所示。

Fig.1 Schematic diagram of basic working principle of generative adversarial networks圖1 生成式對抗網(wǎng)絡基本工作原理示意圖

3.2 卷積神經(jīng)網(wǎng)絡

CNN作為一種深度神經(jīng)網(wǎng)絡,其在圖像處理方面具有突出的優(yōu)勢。CNN的基本功能分為兩部分:特征提取層和分類器。特征提取層主要用于逐層提取圖像特征,而分類器的主要工作是將提取到的圖像特征進行歸納和分類。在本文中,特征提取層由卷積層和擴張卷積層構(gòu)成,分類器由全連接層構(gòu)成。

3.2.1 卷積層

卷積層是卷積神經(jīng)網(wǎng)絡的重要組成部分,是進行圖像特征提取的重要手段。卷積層的局部連接性和權(quán)值共享性,可以很好地幫助卷積神經(jīng)網(wǎng)絡處理大尺寸圖像。卷積層的計算公式可以表示為:

其中,(i,j)表示像素在圖像上的位置,h(k,l)表示卷積核的大小。卷積的操作過程如圖2所示。

Fig.2 Schematic diagram of convolution operation圖2 卷積操作示意圖

3.2.2 擴張卷積層

擴張卷積層是卷積層的一種變形[15],這種卷積層在權(quán)值數(shù)目不變的情況下,增大了特征圖的輸入面積,同時又保證了輸出特征圖的大小保持不變。擴張卷積的計算公式可以表示為:

其中,Xp,q表示輸入層的像素分量,Yp,q表示輸出層的像素分量,Wi,j表示卷積核的大小,B表示偏置項,×表示卷積操作,η表示擴張系數(shù),f()表示激活函數(shù)。當擴張系數(shù)η不同時,擴張卷積層可讀入的特征圖的面積不同。特征圖在不同擴張系數(shù)下的輸入面積如圖3所示。

Fig.3 Schematic diagram of input area of feature map圖3 特征圖的輸入面積示意圖

3.2.3 全連接層

在使用卷積層提取圖像特征的基礎上,本文采用全連接層將卷積層提取到的圖像特征進行分類。全連接層的輸入是卷積層提取到的二維圖像特征,使用與提取到的二維圖像特征大小一樣的卷積核進行卷積,全連接層的輸出是由一個個節(jié)點組成的一維向量。

3.3 生成器模型

本文將Iizuka等[16]提出的補全網(wǎng)絡加以改進構(gòu)建生成器模型,生成器模型與補全網(wǎng)絡模型相比減少了一個擴張卷積層,在不影響圖像補全效果的前提下,降低了生成器模型的運算消耗。生成器模型由卷積層、擴張卷積層、反卷積層三部分構(gòu)成。生成器模型的結(jié)構(gòu)如圖4所示。

Fig.4 Schematic diagram of generator model圖4 生成器模型結(jié)構(gòu)示意圖

在對圖像進行補全之前,可以使用卷積層來降低待補全圖像的分辨率:一部分卷積層的卷積步幅為2,目的是將輸入的待補全圖像的大小減小為原來的一半,以降低圖像的存儲空間和計算時間。同時,生成器模型中也加入了一部分卷積步幅為1的卷積層,目的是在待補全圖像的一些特征級上提取更多的特征圖。在降低了待補全圖像的分辨率后,可以使用擴張卷積層進行圖像補全,擴張系數(shù)η的不同正是擴張卷積層的優(yōu)勢所在,在不增加計算消耗的同時,成倍地擴大了可以涵蓋的缺失區(qū)域的周圍區(qū)域,而這也正是本文方法可以對高分辨率圖像進行補全的關(guān)鍵所在。在補全工作完成之后,又可以參照Long等[17]提出的理論使用反卷積層將補全好的圖像恢復到原始的分辨率。需要注意的是,由于考慮到圖像整體紋理結(jié)構(gòu)的合理性,這里僅將圖像的分辨率降低到原來的1/4。生成器模型的體系結(jié)構(gòu)如表1所示。

Table 1 Architecture of generator model表1 生成器模型的體系結(jié)構(gòu)

3.4 判別器模型

本文根據(jù)Iizuka等[16]提出的鑒別器網(wǎng)絡設計判別器模型,圖像判別器模型分為兩部分,即整體圖像判別器模型和局部圖像判別器模型。使用這兩個判別器模型,可以判別一幅圖像是原始的圖像還是補全后的圖像。判別器模型是采用CNN實現(xiàn)的,先使用卷積層不斷對圖像進行壓縮,然后再使用全連接層對圖像進行分類,判斷圖像的真實性,生成器模型的結(jié)構(gòu)如圖5所示。

整體圖像判別器由6個卷積層和1個全連接層組成,它將整幅圖像壓縮到256×256作為輸入,輸出為一個1 024維的向量,所有卷積層使用5×5的卷積核,并且使用2×2的步幅來降低圖像的分辨率。整體圖像判別器模型的體系結(jié)構(gòu)如表2所示。

Fig.5 Schematic diagram of discriminator model圖5 判別器模型結(jié)構(gòu)示意圖

Table 2 Architecture of global image discriminator表2 整體圖像判別器模型的體系結(jié)構(gòu)

局部圖像判別器遵循與整體圖像判別器相同的模式,但是局部圖像判別器的輸入是以補全區(qū)域為中心的128×128的圖像塊。由于輸入圖像的分辨率是整體圖像判別器的一半,因此在構(gòu)成結(jié)構(gòu)上,局部圖像判別器可以減少一個卷積層。局部圖像判別器模型的體系結(jié)構(gòu)如表3所示。

Table 3 Architecture of local image discriminator表3 局部圖像判別器模型的體系結(jié)構(gòu)

最后,將整體和部分圖像判別器的輸出連在一起,生成一個2 048維的向量,然后經(jīng)過sigmoid函數(shù)的處理,得到一個0到1范圍內(nèi)的數(shù)值,這個數(shù)值就是該圖像是原始圖像的概率。

3.5 生成式對抗網(wǎng)絡的訓練

為了使補全的圖像更具真實性,在使用GAN損失函數(shù)對模型進行訓練的基礎上,引入MRF與MSE損失相結(jié)合的損失函數(shù)對生成器模型進行訓練。兩種損失函數(shù)的優(yōu)勢相互結(jié)合,可以訓練出更加穩(wěn)定的高性能網(wǎng)絡模型。

將生成器模型用G(z,θg)表示,其中,z是待補全的圖像,θg是生成器中的參數(shù),G(z)是生成器模型的輸出。將判別器模型用D(x,θd)表示,其中,x是生成器模型補全后的圖像,θd是判別器中的參數(shù),D(x)是判別器模型的輸出。

訓練生成器模型的損失函數(shù)包括MRF和MSE損失兩部分,其中MSE損失函數(shù)定義為:

其中,×表示卷積操作,||?||表示歐幾里德范式。

在使用MSE損失函數(shù)訓練生成器模型的基礎上,為了進一步提高補全圖像的能力,把MRF的能量函數(shù)添加到損失函數(shù)中。該能量函數(shù)的加入,將補全區(qū)域中的像素在最大概率上與其周圍像素在圖像特征上保持了連續(xù)性。補全區(qū)域和完好區(qū)域之間圖像特征的連貫性不斷加強,使得損失函數(shù)加速下降,進一步提高了生成器模型的訓練效果。MRF的能量函數(shù)定義為:

其中,xi是補全區(qū)域中的像素點,xj是完好區(qū)域中的像素點,β是使圖像的補全區(qū)域和完好區(qū)域保持一致性的權(quán)重參數(shù)。并將此與MSE損失相結(jié)合,最終,使生成器模型的損失函數(shù)定義為:

判別器模型的訓練是通過GAN損失函數(shù)來完成的。GAN損失函數(shù)作為本文方法的關(guān)鍵部分,其直接將生成器模型和判別器模型的對抗過程轉(zhuǎn)化成一個最小-最大問題,使得在每次對抗的過程中,生成器模型和判別器模型被聯(lián)合更新。對于本文的方法,GAN損失函數(shù)可簡化定義為:

進一步將GAN損失函數(shù)與生成器模型的損失函數(shù)相結(jié)合,可得到:

其中,α是一個權(quán)重參數(shù)。

在模型訓練優(yōu)化的過程中,生成器模型和判別器模型的狀態(tài)在不斷改變,這實際意味著模型中卷積核的參數(shù)在不停地變化,直到模型達到最優(yōu)狀態(tài)。模型的訓練優(yōu)化過程可以分為兩個階段:第一階段,使用GAN損失函數(shù)更新判別器模型;第二階段,使用MRF和MSE相結(jié)合的損失函數(shù)更新生成器模型。模型的訓練優(yōu)化過程如圖6所示。

Fig.6 Model training flow chart圖6 模型訓練流程圖

4 實驗驗證

在實驗階段,本文GAN模型使用Python3.5和Tensorflow1.1.0進行搭建。而模型的訓練,則是從Places2圖像數(shù)據(jù)集[18]和SUN圖像數(shù)據(jù)集[19]中隨機選取的一百萬幅圖像,包含了多種場景的圖像,提高了生成式模型對不同場景圖片的補全效果。在配置為雙NVIDIA GTX TITAN X的Windows平臺上訓練時間為兩周。

本文的圖像補全方法對圖像的補全效果如圖7所示。圖7(a)是原始圖像;圖7(b)是待補全圖像,其中的紅框區(qū)域是待補全的區(qū)域;圖7(c)是補全后的圖像,其中的紅框區(qū)域是完成補全的區(qū)域。從圖7(c)可以看出,補全的區(qū)域與周圍的區(qū)域在紋理結(jié)構(gòu)和整體風格上保持了較高水平的一致性,進一步證明了本文的GAN模型對圖像的補全效果。

Fig.7 Image completion effect chart圖7 圖像補全效果圖

將本文的補全效果與Barnes等[20-21]提出的Patch-Match方法的補全效果、Huang等[22]提出的基于結(jié)構(gòu)方法的補全效果以及Zhao等[13]提出的Context Encoder方法的補全效果進行比較。各個方法的圖像補全效果如圖8所示。圖8(a)是原始圖像;圖8(b)是待補全的圖像;圖8(c)是PatchMatch方法的圖像補全效果;圖8(d)是基于結(jié)構(gòu)方法的圖像補全效果;圖8(e)是Context Encoder方法的圖像補全效果;圖8(f)是本文方法的圖像補全效果。雖然PatchMatch方法會從圖像的完好區(qū)域提取與缺失區(qū)域相似的片段補全到缺失區(qū)域,但它并不能使補全圖像的整體和部分保持一致性?;诮Y(jié)構(gòu)的方法可以進行缺失區(qū)域的填充,但是補全效果過于模糊,使補全區(qū)域太易于區(qū)分。Context Encoder方法對圖像的缺失區(qū)域的填充較合理,但補全區(qū)域在視覺效果上較粗糙。而使用本文的方法補全出的圖像更加自然,更加貼近于原始圖像。

Fig.8 Comparison chart of image completion effect圖8 圖像補全效果對比圖

本文使用峰值信噪比(peak signal to noise ratio,PSNR)和結(jié)構(gòu)相似性(structural similarity index,SSIM)對圖像的補全效果進行更加全面的評價。其中,PSNR是衡量圖像失真或是噪聲水平的客觀評價標準,補全圖像與原始圖像之間PSNR值越大,則越相似。而SSIM是另一種衡量兩幅圖像相似度的指標,其值可以較好地反映人眼主觀感受,取值范圍在0到1之間,值越大,表示圖像的補全效果越好。不同圖像補全方法的PSNR值和SSIM值如表4和表5所示。表4和表5展示了圖8中使用各種方法補全的室內(nèi)圖和外景圖的PSNR值和SSIM值。從表中可以看出,使用本文方法補全的室內(nèi)圖和外景圖得到了最好的PSNR值和SSIM值。

Table 4 PSNR of different image completion methods表4 不同圖像補全方法的PSNR值 dB

Table 5 SSIM of different image completion methods表5 不同圖像補全方法的SSIM值

5 結(jié)束語

本文提出了一種基于GAN的圖像補全方法,使用MRF與MSE損失相結(jié)合的損失函數(shù)訓練生成器模型,可以生成逼真的補全圖像,而且與基于樣本塊的方法不同,生成的新片段是原圖像中完全不存在的。本文方法可以應用于補全各種各樣的場景圖像,例如風景、建筑、墻面等,即使是很大的缺失區(qū)域,補全的結(jié)果看起來也很自然。

由于生成器模型和判別器模型都是依靠CNN實現(xiàn)其功能,因此GAN模型中會有多個卷積層,進而增加了模型的時間復雜度和空間復雜度。另外,訓練集的選擇對GAN模型的訓練過程也十分重要,使用數(shù)量大、涵蓋范圍廣的訓練集訓練的GAN模型可以生成理想的補全圖像。因此,如何進一步簡化獲取圖像結(jié)構(gòu)特征的過程,是本文下一步的主要研究內(nèi)容。

猜你喜歡
損失卷積函數(shù)
少問一句,損失千金
二次函數(shù)
基于3D-Winograd的快速卷積算法設計及FPGA實現(xiàn)
第3講 “函數(shù)”復習精講
胖胖損失了多少元
二次函數(shù)
函數(shù)備考精講
從濾波器理解卷積
電子制作(2019年11期)2019-07-04 00:34:38
玉米抽穗前倒伏怎么辦?怎么減少損失?
基于傅里葉域卷積表示的目標跟蹤算法
澳门| 获嘉县| 苍山县| 衡阳市| 禹州市| 巴林右旗| 亚东县| 响水县| 拉孜县| 龙江县| 枣庄市| 广南县| 彝良县| 托克逊县| 丰镇市| 大城县| 循化| 南木林县| 广灵县| 韶关市| 武义县| 康保县| 通道| 酉阳| 兴海县| 嘉义县| 星座| 大田县| 游戏| 阳谷县| 白河县| 成安县| 安远县| 井陉县| 滕州市| 吴川市| 迭部县| 财经| 开远市| 库车县| 红原县|