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

?

基于生成對抗網(wǎng)絡(luò)的圖像修復(fù)算法

2020-08-31 06:13王可新
智能計算機與應(yīng)用 2020年4期
關(guān)鍵詞:編碼器卷積損失

王可新, 王 力

(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院, 貴陽550000)

0 引 言

隨著人工智能技術(shù)的快速發(fā)展,圖像作為攜帶信息的主要載體之一,其作用不言而喻。 然而現(xiàn)實生活中,時常會出現(xiàn)圖像不完整的現(xiàn)象,比如年代久遠(yuǎn)造成文物破損、圖像傳遞過程中隱藏內(nèi)容等,都會導(dǎo)致一定程度的圖像中所攜帶的信息丟失,因此如何對這些受損進(jìn)行圖像修復(fù)成為計算機視覺中的一個重要問題。

在計算機的圖形學(xué)中,圖像的修復(fù)有3 種方法:一種是傳統(tǒng)的基于結(jié)構(gòu)的方法,這種方法可以合成比較合理的靜態(tài)紋理特征,但僅適用于受損區(qū)域較小的圖像;第二種是基于紋理合成的圖像修復(fù),此方法可以從圖像中其他完整區(qū)域選擇與缺失區(qū)域紋理相同的樣本塊。 但當(dāng)涉及語義圖像損失時,此方法在缺失區(qū)域的細(xì)節(jié)方面恢復(fù)的很差,因此需要1 個額外的部件提供合理的想象力,比如來自機器的幻覺,即第三種方法,基于深度學(xué)習(xí)的圖像修復(fù)。

本文提出的圖像修復(fù)算法則是基于深度學(xué)習(xí)生成對抗網(wǎng)絡(luò)[1]。 與以往圖像修復(fù)算法不同,該算法包含2 個判別器網(wǎng)絡(luò)模型,即全局判別器和局部判別器。 模型的網(wǎng)絡(luò)結(jié)構(gòu)都是采用卷積神經(jīng)網(wǎng)絡(luò)來實現(xiàn)。

1 相關(guān)工作

以前已經(jīng)提出過多種用于圖像修復(fù)的方法,傳統(tǒng)的基于結(jié)構(gòu)的圖像修復(fù)方法采用擴散原理,將可見區(qū)域的信息傳播到缺失區(qū)域。 其主要采用高階偏微分方程模型算法(PDE 算法)。 PDE 算法又命名為BSCB 修補模型,模型原理是沿著等照度線方向擴散到待修復(fù)區(qū)域,但未顧及圖像的細(xì)節(jié)部分,修復(fù)效果較差[2]。 隨后出現(xiàn)了全變分模型(TV 模型),然而只對填充小的破損區(qū)域或者去除雜散的噪聲是有用的。

與基于結(jié)構(gòu)的方法相比,紋理合成的方法可以修 復(fù) 大 一 些 的 破 損 區(qū) 域[4-6]。 比 如 典 型 的PatchMatch 方法,此方法在圖像的可用部分搜索類似的紋理結(jié)構(gòu),其高質(zhì)量和高效率迅速成為當(dāng)時最成功的修復(fù)方法[7]。 但是這種方法假設(shè)可以在其他地方找到修復(fù)區(qū)域的紋理,這種假設(shè)并不是一直會成立,如果缺失區(qū)域很大,則很難修復(fù)。

用來進(jìn)行圖像修復(fù)的第一種深度學(xué)習(xí)方法Context Encoder,使用編碼器-解碼器結(jié)構(gòu)[8]。 編碼器將缺失區(qū)域的圖像映射到低維度特征空間,解碼器用它來構(gòu)造輸出圖像。 但是該方法存在修復(fù)邊緣處不連續(xù)的問題,修補痕跡明顯,視覺效果較差。 上述方法采用監(jiān)督學(xué)習(xí)的方式,2014 年GAN 由Ian Goodfellow 首次提出,GAN 采用的是一種無監(jiān)督的學(xué)習(xí)方式訓(xùn)練。 針對Context Encoder 的問題,Iizuka等人使用兩個判別器使得缺失區(qū)域和整張圖像在視覺上合理化,本文則是基于Iizuka 等人的基礎(chǔ)上采用感知損失和MSE 損失函數(shù)相結(jié)合的方法訓(xùn)練生成對抗網(wǎng)絡(luò)。

2 網(wǎng)絡(luò)結(jié)構(gòu)

2.1 生成對抗網(wǎng)絡(luò)

網(wǎng)絡(luò)主體采用生成對抗網(wǎng)絡(luò)(GAN),GAN 的產(chǎn)生其中心思想為“二人零和博弈”[9],與其他普通網(wǎng)絡(luò)不同,生成對抗網(wǎng)絡(luò)由兩個模型組成,一個是用來生成數(shù)據(jù)的生成模型G,另一個是用來判別生成樣本真假性的判別模型D。 如圖1 所示生成模型G 以1 個隨機噪聲作為輸入,將其生成1 張偽造的樣本,判別器模型D 以真實樣本或者偽造樣本作為輸入,預(yù)測該樣本是真實的還是偽造的。 生成網(wǎng)絡(luò)的目的是能夠欺騙判別器網(wǎng)絡(luò),因此隨著逐步的迭代訓(xùn)練,生成網(wǎng)絡(luò)生成越來越逼真的樣本像,甚至可以達(dá)到以假亂真的效果,以至于判別器無法判斷其真?zhèn)涡?;在這個過程中,判別器也在不斷的提高自己辨別真?zhèn)蔚哪芰?,使得生成器能夠生成更加真實的樣本?/p>

圖1 GAN 模型Fig.1 GANmodel

2.2 生成器

生成器采用Iizuka 等提出的網(wǎng)絡(luò)結(jié)構(gòu)模型,網(wǎng)絡(luò)模型采用典型的編碼器-解碼器結(jié)構(gòu)。 編碼器采用帶掩碼的圖像作為輸入,通過下采樣進(jìn)行圖像的特征提取,解碼器通過這些特征恢復(fù)為原始的分辨率,生成圖像中掩碼部分的內(nèi)容[10]。 在圖像修復(fù)任務(wù)中,通常想要了解更多的圖像中潛在的特征,因此網(wǎng)絡(luò)模型中間采用了擴張卷積,擴張卷積在基礎(chǔ)的卷積核上加入間隔,在不損失特征圖尺寸的情況下增大了感受野,從而獲取圖像中更多的信息。 總的來說,生成器包括六次下采樣的編碼器,接著是三次擴張卷積和將圖像上采樣到原始尺寸的解碼器。 生成器的整體組成如圖2 所示。 應(yīng)當(dāng)注意的是,網(wǎng)絡(luò)結(jié)構(gòu)中并未使用池化層,而是將卷積步幅設(shè)置為2,將待修復(fù)圖像的大小縮小為原來的一半,生成器網(wǎng)絡(luò)模型僅僅降低了兩次分辨率,使用大小為原始大小四分之一的卷積,其目的是為了降低最終圖像的紋理模糊程度。 此外,隨著卷積網(wǎng)絡(luò)層數(shù)的加深,數(shù)據(jù)的波動浮動較大,會大大的降低網(wǎng)絡(luò)訓(xùn)練的速度。因此,本文除了網(wǎng)絡(luò)的最后一層不使用批量歸一化處理,其余所有層都使用批量歸一化處理[11];同時除最后一層卷積使用Tanh 函數(shù)外,其余所有層都使用Relu 激活函數(shù)。

圖2 生成器模型Fig.2 Generator model

2.3 判別器

通過對生成器使用損失函數(shù)訓(xùn)練后,生成器對缺失區(qū)域進(jìn)行補全。 但是補全的效果并不能保證與真實圖像保持一致。 為了圖像生成的更加真實合理,在本文中引入全局判別器和局部判別器來鑒定圖像是真實圖像還是生成器修復(fù)的圖像。 判別器的主要作用是通過與生成器不斷的對抗訓(xùn)練,最終能夠更準(zhǔn)確的識別真假圖像。 同樣地,判別器也由一系列卷積層組成,如圖3 所示。

圖3 判別器模型Fig.3 Discriminator model

全局判別器的輸入為完整的整幅圖像,網(wǎng)絡(luò)由5 個卷積層和1 個全連接層組成。 全局判別器從整體上判斷生成的圖像是否真實合理,即整幅圖像的上下文信息是否一致。 局部判別器的輸入為整幅圖像的一半,網(wǎng)絡(luò)由4 個卷積層和1 個全連接層組成,局部判別器只檢測以補全區(qū)域為中心的部分,用來判斷局部修復(fù)的紋理特征是否合理。 局部判別器與全局判別器相同,除網(wǎng)絡(luò)最后一層外,所有層都使用批量歸一化處理。 同時,兩個判別器除了最后一層使用sigmoid 激活函數(shù),其余卷積層都是使用relu 激活函數(shù)。 最后,將兩個判別器最后輸出的向量連接到一起,得到1 個2048 維的向量,向量最后使用sigmoid 激活函數(shù),生成0 ~1 之間的數(shù)值,這個數(shù)值的大小決定了輸入圖像為真實圖像的概率。

3 損失函數(shù)

通過縮小修復(fù)圖像與真實圖像之間的距離來達(dá)到修復(fù)缺失圖像的目的,因此本文采用感知損失[12-13]與MSE 損失相結(jié)合的方式來訓(xùn)練生成器模型。 其次,使用GAN 損失聯(lián)合更新判別器和生成器模型,使得生成的圖像更加真實。

GAN 損失采用生成對抗網(wǎng)絡(luò)的對抗訓(xùn)練策略,其本質(zhì)是求最大最小的優(yōu)化問題。 這體現(xiàn)了生成器不斷優(yōu)化自己,生成更加真實的圖像欺騙判別器,判別器也不斷更新優(yōu)化,使得能夠正確的區(qū)分真?zhèn)螆D像。 GAN 損失的表達(dá)式(1):

其中,Pdata(x) 為真實數(shù)據(jù)x 的分布, Pz(z) 為噪聲變量z 的分布,G(z) 為生成器的輸出。

生成器的損失函數(shù)包含兩個部分,MSE 損失函數(shù)表示為(2):

其中,X 為待修復(fù)的圖像M 時輸入的掩碼,×為像素的乘積。

感知損失函數(shù),使用預(yù)訓(xùn)練的VGG19 的relu 激活層輸出的特征圖。 在本文實驗中,特征圖選擇relu1-1,relu2-1,relu3-1 三層的輸出。 感知損失定義為(3):

CjHjWj表示第j 層特征圖的大小,?j是預(yù)訓(xùn)練網(wǎng)絡(luò)第j 層的特征圖。

綜合上述GAN 損失函數(shù)和生成器損失函數(shù)可得(4):

其中,α,β 為訓(xùn)練時的權(quán)重。

4 實驗

4.1 實驗平臺及內(nèi)容

本實驗基于windows 操作系統(tǒng)的tensorflow 框架下運行,python 為編程語言。 實驗設(shè)備CPU:Inter i7-8700,GPU:RTX2070S-8G,內(nèi)存:16G。

實驗的數(shù)據(jù)集為celebA 人臉數(shù)據(jù)集,原始數(shù)據(jù)集大小為178×218,在模型訓(xùn)練時將圖片縮為128×128 的圖像,全局判別器的輸入為128×128,而局部判別器的輸入大小為修復(fù)區(qū)域為中心的64×64。 實驗選取數(shù)據(jù)集的100 000 張圖像,其中80 000 張用來模型的訓(xùn)練,20 000 張用來模型的測試。 在訓(xùn)練過程中,生成器的網(wǎng)絡(luò)迭代20 000 次,判別器網(wǎng)絡(luò)迭代10 000 次,生成器和判別器聯(lián)合迭代70 000 次。

4.2 實驗過程

本文的訓(xùn)練分成3 個階段。 首先,利用感知損失和MSE 對生成器進(jìn)行訓(xùn)練,使之生成大致的修復(fù)圖片;其次,固定生成器,根據(jù)上一階段訓(xùn)練的生成器對判別器進(jìn)行訓(xùn)練,利用GAN 損失對判別器迭代更新;最后,對生成器和判別器一起訓(xùn)練,直至訓(xùn)練結(jié)束。 后續(xù)采用泊松圖像混合對圖像進(jìn)行處理。

4.3 評估標(biāo)準(zhǔn)

實驗結(jié)果的評估標(biāo)準(zhǔn)由定性分析和定量分析兩部分組成,將本文的實驗結(jié)果與自動編碼器、DCGAN以及Context Encoder 這3 種不同的方法進(jìn)行比較。在定性分析中,3 種對比方法中的視覺圖像效果引用文獻(xiàn)[15]中的效果圖。 為了直觀的比較,本文把最后的修復(fù)效果圖裁剪為相同的人臉位置。 各個方法的修復(fù)圖如圖4(從左至右分別為待修復(fù)圖、自動編碼器、DCGAN、Context Encoder、本文、原圖)所示。

圖4 對比圖Fig.4 Comparison picture

由圖4 可知,自動編碼器方法的效果最差,這是因為自動編碼器只由生成器模型生成,無法將損失降到最小,修復(fù)區(qū)域出現(xiàn)了結(jié)構(gòu)扭曲現(xiàn)象;對比自動編碼器,DCCGAN 方法的圖像修復(fù)效果從內(nèi)容上保持了一致性,但是圖像的局部細(xì)節(jié)修復(fù)的效果較差;Context Encoder 方法在內(nèi)容和局部細(xì)節(jié)上都表現(xiàn)較好,但邊緣連接區(qū)域修復(fù)痕跡明顯,缺乏視覺連通性。 本文方法與Context Encoder 方法相比,修復(fù)效果與原始圖像更加相似,邊緣修復(fù)痕跡也比較淡。

定量分析使用峰值信噪比(PSNR)和結(jié)構(gòu)相似性(SSIM)兩個指標(biāo)來衡量圖像的修復(fù)效果。 PSNR是常用的判斷圖像質(zhì)量的評價指標(biāo),雖然有時會出現(xiàn)數(shù)值結(jié)果與人的主觀感受不一致的情況,但仍然可以作為一個有效的評判標(biāo)準(zhǔn)。 其主要比較圖像對應(yīng)像素之間的差別,PSNR 數(shù)值越大,表明失真越小。 另一個主要的評價標(biāo)準(zhǔn)SSIM,從亮度、對比度和結(jié)構(gòu)3 個方面來衡量,用均值作為亮度的估計,標(biāo)準(zhǔn)差作為對比度的估計,協(xié)方差作為結(jié)構(gòu)相似程度的度量。 得到的數(shù)值大小體現(xiàn)了兩幅圖像的相似程度,數(shù)值越大,代表兩幅圖像差距越小,修復(fù)的效果越好。 計算的結(jié)果如表1、表2 所示。

表1 不同圖像補全方法的PSNR 值Tab.1 The PSNR of different image completion methods dB

表2 不同圖像補全方法的SSIM 值Tab.2 The SSIM of different image completion methods

5 結(jié)束語

基于生成對抗網(wǎng)絡(luò)模型對圖像進(jìn)行修復(fù),生成器采用編碼器-解碼器結(jié)構(gòu),判別器全局判別器和局部判別器,用來保證整體修復(fù)的一致性和局部信息細(xì)節(jié)的合理性。 訓(xùn)練過程使用基于VGG 預(yù)訓(xùn)練特征圖的感知損失與MSE 相結(jié)合訓(xùn)練生成模型,修復(fù)效果與自動編碼器、DCGAN 以及Context Encoder方法進(jìn)行比較。 根據(jù)定量分析和定性分析可知,本文方法實現(xiàn)了較好的修復(fù)效果。 然而模型的修復(fù)效果非常依賴訓(xùn)練集,對于除人臉修復(fù)的其他圖像修復(fù),則需要重新訓(xùn)練數(shù)據(jù)集,對于建筑物及風(fēng)景的修復(fù)則需要進(jìn)一步的研究與訓(xùn)練。

猜你喜歡
編碼器卷積損失
洪澇造成孟加拉損失25.4萬噸大米
基于全卷積神經(jīng)網(wǎng)絡(luò)的豬背膘厚快速準(zhǔn)確測定
基于ResNet18特征編碼器的水稻病蟲害圖像描述生成
WDGP36J / WDGA36J編碼器Wachendorff自動化有限公司
基于圖像處理與卷積神經(jīng)網(wǎng)絡(luò)的零件識別
一種基于卷積神經(jīng)網(wǎng)絡(luò)的地磁基準(zhǔn)圖構(gòu)建方法
基于3D-Winograd的快速卷積算法設(shè)計及FPGA實現(xiàn)
基于Beaglebone Black 的絕對式編碼器接口電路設(shè)計*
兩敗俱傷
基于TMS320F28335的絕對式光電編碼器驅(qū)動設(shè)計