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

?

基于最小二乘生成對(duì)抗網(wǎng)絡(luò)的人臉圖像修復(fù)研究

2020-08-14 09:13謝卓然寸怡鵬姜德航
科技視界 2020年22期
關(guān)鍵詞:人臉損失函數(shù)

謝卓然 寸怡鵬 姜德航 王 菲

0 引言

隨著計(jì)算機(jī)硬件的飛速發(fā)展,深度學(xué)習(xí)的出現(xiàn)使得計(jì)算機(jī)視覺課題中的許多難題迎刃而解。但即便在這種情形下,要想讓計(jì)算機(jī)學(xué)習(xí)并擁有修復(fù)一張圖片中的缺失部分的能力依然是一件很有挑戰(zhàn)性的事。而本文討論的圖像修復(fù)方法正是結(jié)合深度學(xué)習(xí)中的生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Network,后稱GAN),并以最小二乘作為GAN 損失函數(shù)的一種圖像修復(fù)方法。我們稱這種網(wǎng)絡(luò)結(jié)構(gòu)為:最小二乘生成對(duì)抗網(wǎng)絡(luò)(LeatSquare GenerativeAdversarial Network,后稱 LSGAN)。

1 現(xiàn)存圖像修復(fù)方法及問題

1.1 Criminisi 修復(fù)

Criminis 算法[1]的本質(zhì)是將圖像本身的紋理“復(fù)制粘貼”到破損區(qū)進(jìn)行修復(fù)。

圖 1 Criminisi 修復(fù)算法原理

如圖1 所示為Criminis 算法修復(fù)殘缺圖片的過程:Ω是圖像中待修補(bǔ)的部分,則可以用?Ω 表示其邊界;Φ 為圖像剩余區(qū)域;算法在邊界先選一以p 點(diǎn)為中心的區(qū)域Ψp 作為當(dāng)前修復(fù)目標(biāo) ,再到已知的Φ 中搜索一與其紋理最為相似的Ψq,如圖1(b)所示。最后復(fù)制粘貼到破損部分進(jìn)行修復(fù)形成圖1(c)的結(jié)果,以此類推。

1.2 數(shù)據(jù)驅(qū)動(dòng)修復(fù)

數(shù)據(jù)驅(qū)動(dòng)修復(fù)圖像[2]的方法不將圖像修補(bǔ)的素材局限在破損圖像本身,而是利用互聯(lián)網(wǎng)上豐富的圖片來解決Criminisi 算法中,不能在剩余圖像中找到與待修復(fù)區(qū)相匹配的紋理的問題。

該方法首先從互聯(lián)網(wǎng)中挑選數(shù)百個(gè)與待修復(fù)圖像最為相似的圖片,并用Oliva A 等人[3]計(jì)算圖像匹配特征向量。接著根據(jù)上下文的匹配誤差,選擇最佳的補(bǔ)全位置。最后返回20 個(gè)最佳補(bǔ)全結(jié)果供用戶挑選。

這種方法拋棄了Criminisi 算法中修補(bǔ)材料只能來源于破損圖片的局限性,為如何修復(fù)圖像提出了新思路。

1.3 Context-Encoder 修復(fù)圖像

繼數(shù)據(jù)驅(qū)動(dòng)修復(fù)之后,Pathak D 等人[4]在2017 年CVPR(IEEE Conference on Computer Vision and Pattern Recognition,IEEE 國際計(jì)算機(jī)視覺與模式識(shí)別會(huì)議)上提出,利用卷積神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)圖像中的高級(jí)特征,再用這些特征來指導(dǎo)圖像破損區(qū)域的重新生成。其網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。

圖2 Pathak.D 等人提出的用修補(bǔ)圖像網(wǎng)絡(luò)

Context-Encoder(后稱 CE)將 Encoder-Decoder 網(wǎng)絡(luò)和GAN(生成式對(duì)抗網(wǎng)絡(luò))相結(jié)合:兩個(gè)網(wǎng)絡(luò)各司其職:Encoder-Decoder 負(fù)責(zé)實(shí)現(xiàn)同時(shí)學(xué)習(xí)圖像特征以及生成修補(bǔ)素材的兩大功能,而GAN 部分則用來判斷修復(fù)結(jié)果的真實(shí)性。當(dāng)Encoder-Decoder 生成的素材與破損圖像無縫銜接,且GAN 也判斷不出圖像是否為人工合成時(shí),認(rèn)為該方法達(dá)到最佳效果。

與數(shù)據(jù)驅(qū)動(dòng)法相比,這種方法不需要連接圖片庫,當(dāng)網(wǎng)絡(luò)訓(xùn)練好以后,它可以省去大量用于圖片搜索的時(shí)間。

1.4 現(xiàn)存修復(fù)方法中存在的問題

Criminisi 的算法只能很好的修復(fù)含大量重復(fù)性紋理的圖像,算法效率較低,且對(duì)其他大部分圖片都不適用。

數(shù)據(jù)驅(qū)動(dòng)算法允許引入更多的外部內(nèi)容對(duì)圖像進(jìn)行修復(fù),但在修復(fù)過程中使用的特征仍然是較低級(jí)的特征,在測試場景與數(shù)據(jù)庫映像有顯著差異時(shí)很容易失敗。

CE 算法利用深度卷積神經(jīng)網(wǎng)絡(luò),克服了前兩種算法中存在的問題。但由于其訓(xùn)練網(wǎng)絡(luò)時(shí),直接將含有固定破損形狀的圖像作為神經(jīng)網(wǎng)絡(luò)的輸入,導(dǎo)致其只能很好的修復(fù)某特定類型的破損圖片。當(dāng)圖像破損部分與用來訓(xùn)練網(wǎng)絡(luò)的圖片的破損形狀不一致時(shí),修復(fù)出的結(jié)果就很難令人滿意了。

相比之下,本文所使用的方法在這一方面具有顯著優(yōu)勢:它與CE 同樣用到了GAN 網(wǎng)絡(luò)作為模型核心,但它在訓(xùn)練網(wǎng)絡(luò)時(shí)不需要加入帶掩碼的圖片,因此對(duì)于任意形狀的破損區(qū)域,也能獲得較好的修復(fù)結(jié)果。

2 本文方法

2.1 GAN 工作原理

生成式對(duì)抗網(wǎng)絡(luò)的理念起初是在 Ian Goodfellow 等人的開創(chuàng)性論文“Generative Adversarial Nets”[5]中提出的。GAN 網(wǎng)絡(luò)原理結(jié)構(gòu)如圖3 所示。其中,G 是圖像生成網(wǎng)絡(luò),向他輸入一單位隨機(jī)向量z 以生成圖片G(z)。D 是判別網(wǎng)絡(luò),用于判斷圖片來源的真實(shí)性。其輸?shù)膱D像x 可以來源于現(xiàn)實(shí)環(huán)境或生成器G 偽造而成,最終輸出一結(jié)果D(x)表示圖像來源為真實(shí)圖像的概率。

圖 3 GANs 結(jié)構(gòu)模型

在訓(xùn)練過程中,D 和G 網(wǎng)絡(luò)之間形成動(dòng)態(tài)博弈。生成網(wǎng)絡(luò)在一次次訓(xùn)練中逐漸增加偽造圖像在判別網(wǎng)絡(luò)處的得分。而判別網(wǎng)絡(luò)則希望將生成網(wǎng)絡(luò)合成的圖片和真實(shí)的自然圖像準(zhǔn)確區(qū)分開。我們將上述過程循環(huán)執(zhí)行足夠多的次數(shù),D(G(z))的值將趨近于50%,此時(shí)生成網(wǎng)絡(luò)合成的圖像已經(jīng)足夠自然,網(wǎng)絡(luò)訓(xùn)練完成。

2.2 構(gòu)造LSGAN 修復(fù)網(wǎng)絡(luò)

文獻(xiàn)[12-13]指出,原始GAN 訓(xùn)練過程很不穩(wěn)定,這很大程度上是GAN 使用交叉熵函數(shù)(Sigmoid cross entropy)作為判別器損失函數(shù)導(dǎo)致的。這將導(dǎo)致那些仍然遠(yuǎn)離真實(shí)數(shù)據(jù)的、但又在決策邊界被分類為真的假樣本停止繼續(xù)迭代,而這些樣本的梯度是梯度下降的決定方向。于是當(dāng)我們?cè)儆眠@些樣本反過來更新生成器的時(shí)候,訓(xùn)練過程就變得不穩(wěn)定了,容易發(fā)生梯度消失的現(xiàn)象,導(dǎo)致生成器生成的圖片質(zhì)量很差。

Mao Xudong 等人[8]提出,用最小二乘函數(shù)替換交叉熵做判別器損的失函數(shù)可以很好解決這個(gè)問題。因?yàn)槭褂米钚《撕瘮?shù)的LSGAN 會(huì)對(duì)處于判別成真的那些遠(yuǎn)離決策邊界的樣本進(jìn)行懲罰,把遠(yuǎn)離決策邊界的假樣本拖進(jìn)決策邊界,有效避免梯度消失,從而提高生成圖片的質(zhì)量。

圖4 展示了交叉熵和最小二乘損失函數(shù)的區(qū)別,可以看出GAN 采用的交叉熵函數(shù)右側(cè)存在大片梯度為0 的飽和區(qū)域,當(dāng)樣本落入這個(gè)范圍時(shí),對(duì)生成器不再起到任何更新作用。反觀最小二乘函數(shù),只在1 個(gè)點(diǎn)發(fā)生飽和,這使LSGAN 的訓(xùn)練過程可以一直進(jìn)行下去,生成比GAN 更清晰的結(jié)果。

設(shè)原GAN 的目標(biāo)函數(shù)如下:

其中,x~pdata表示圖像來源于真實(shí)數(shù)據(jù),z~pz來表示圖片是偽造生成。對(duì)生成器 G,希望 D(G(z))最大,或(1-D(G(z)))最小。而對(duì)于判別器D,則希望當(dāng)數(shù)據(jù)來源于真實(shí)圖像式 D(x)最大。

改進(jìn)后的損失函數(shù)如下:

對(duì)上式 a,b,c 有:b-c=1 且 b-a=2。本文選取 a=0,b=1,c=1。

與CE 修復(fù)圖像的方法不同,該網(wǎng)絡(luò)并不是直接將破損的圖片直接作為輸入來修復(fù),而是先用生成器生成一人臉圖像,將其對(duì)應(yīng)的破損區(qū)域剪裁下來并粘貼到破損圖上,用泊松編輯[9]做邊界融合,這使得本文的修復(fù)方法將不受到圖像破損形狀的約束,修復(fù)效果優(yōu)于CE。

本文用到的LSGAN 圖像修復(fù)網(wǎng)絡(luò)結(jié)構(gòu)如圖5 所示。生成網(wǎng)絡(luò)G 的輸入是一個(gè)從[-1,1]之間的均勻分布繪制的隨機(jī)100維矢量,經(jīng)過數(shù)次微步幅卷積運(yùn)算,最終生成64*64*3 的圖像。鑒別模型D 與生成模型G 呈現(xiàn)鏡像:輸入層是尺寸為64*64*3的圖像,隨后是一系列卷積運(yùn)算,最后經(jīng)最小二乘函數(shù)輸出一個(gè)0 到1 之間的單值作為概率。

此外,我們還在卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)上做了一些調(diào)整,以提高樣本的質(zhì)量和收斂的速度,包括:

圖4 交叉熵?fù)p失與最小二乘損失對(duì)比

圖5 LSGAN 圖像修復(fù)網(wǎng)絡(luò)結(jié)構(gòu)

(1)將所有池化層都改為帶步長卷積運(yùn)算。這能讓網(wǎng)絡(luò)學(xué)習(xí)到自己去學(xué)習(xí)一種采樣方式。

(2)用全局平均池化(global average pooling)替換全連接層,這雖然會(huì)影響收斂速度但是能增加模型的穩(wěn)定性。

(3)使用批歸一化,使輸入到每一個(gè)節(jié)點(diǎn)的數(shù)據(jù)的平均值都為0,方差都為1,從而穩(wěn)定訓(xùn)練。這個(gè)方法能防止模型只輸出相同的樣本,又稱為Helvetica Scenario 現(xiàn)象,而這個(gè)現(xiàn)象是GAN 在實(shí)際使用中遇到的最大的問題。

(4) 生成模型中除了輸出層的激活函數(shù)使用tanh 以外,其余激活函數(shù)都用ReLU。這能夠讓模型在訓(xùn)練中更快地達(dá)到飽和并且能對(duì)彩色圖片有更好的處理效果。

(5)用Adam 優(yōu)化算法[7]代替梯度下降法。原始的隨機(jī)梯度下降算法在更新參數(shù)的過程中學(xué)習(xí)率始終保持不變,當(dāng)研究非穩(wěn)態(tài)或非線性問題時(shí)性能差。而Adam 算法結(jié)合了AdaGrad 和RMSProp 算法最優(yōu)的性能,能為不同的參數(shù)設(shè)計(jì)獨(dú)立的自適應(yīng)性學(xué)習(xí)率,調(diào)參過程簡單,默認(rèn)參數(shù)就可以處理絕大部分的問題。

2.3 設(shè)置損失函數(shù)

假定現(xiàn)在網(wǎng)絡(luò)生成了一個(gè)G(z)'能與破損圖像完美拼合。設(shè)圖片待修復(fù)區(qū)域?yàn)閥,并用一個(gè)與y 相同大小二進(jìn)制掩碼M來標(biāo)注破損區(qū)域,破損區(qū)域的值均為0,其余部分為1,則我們可以用下列算式來表示修補(bǔ)后的圖像。

為使G(z)'生成的圖像與y 有高度相似性,我們定義兩個(gè)損失函數(shù)Lc與Lp,其中,環(huán)境損失Lc表示破損圖與生成器偽造圖像素材的匹配程度,先驗(yàn)損失Lp表示生成人像的真實(shí)程度,有:

損失越小,G 生成的圖像與殘缺圖像剩余的部分越相似,圖像越真實(shí)。但在實(shí)驗(yàn)過程中,我們發(fā)現(xiàn)公式(5)的設(shè)定并不合理,因?yàn)樗鼘?duì)破損圖像中的所有像素均做等同處理。實(shí)際上我們應(yīng)該使靠近破損區(qū)域的像素獲得更高的權(quán)重。因此,添加參數(shù)W 衡量待修復(fù)人像中像素對(duì)環(huán)境損失的影響大小:

其中N(i)代表的是像素i 周圍的一個(gè)鄰組,它的絕對(duì)值則表示該鄰組的像素基數(shù)。經(jīng)試驗(yàn)發(fā)現(xiàn),范數(shù)1 的效果比范數(shù)2更佳,因此我們重新定義環(huán)境損失為。

現(xiàn)在整個(gè)修復(fù)圖像過程的損失函數(shù)L(z)可以表示。

其中λ 為超參數(shù),當(dāng)λ 值大于1,說明先驗(yàn)損失在圖像修補(bǔ)過程中更受重視;當(dāng)λ 的值小于1 時(shí),則環(huán)境損失更受重視。本文選取λ=0.003。

2.4 準(zhǔn)備工作

實(shí)驗(yàn)環(huán)境為基于Linux 內(nèi)核的Ubuntu 14 操作系統(tǒng),采用python3.5 下的Tensorflow 深度學(xué)習(xí)框架。我們把從CelebA(CelebFaces Attributes Dataset)上下載的202 599 張數(shù)據(jù)集放入一個(gè)單獨(dú)命名好的文件夾中,表明這個(gè)數(shù)據(jù)集是未經(jīng)加工的圖片。利用OpenFace 的排列工具,將所有圖像統(tǒng)一處理成64×64像素的大小。再將這些圖片打包分為訓(xùn)練集、測試集和驗(yàn)證集。用這些素材訓(xùn)練LSGAN 生成人臉以及修復(fù)圖像,運(yùn)行50 個(gè)周期,每個(gè)周期2 000 次,監(jiān)控圖像修復(fù)過程中的參數(shù)變化,并將結(jié)果與現(xiàn)有的深度學(xué)習(xí)修復(fù)方法相比較,分析不同的網(wǎng)絡(luò)的性能差異。

3 結(jié)果展示

3.1 修復(fù)過程

經(jīng)過5 個(gè)周期后,修復(fù)效果如圖6 所示。

圖6 LSGAN 修復(fù)破損人臉圖像的效果

其生成模型生成人臉的過程,以及對(duì)應(yīng)損失值的變化分別如圖7 和圖8 所示??梢钥闯?,在最初250 次損失下降最快,200 個(gè)周期以內(nèi)損失值降為最初損失的一半(紅色虛線標(biāo)記)。1 個(gè)周期之后,損失就已經(jīng)足夠小了。

3.2 質(zhì)量分析

表1 質(zhì)量評(píng)價(jià)表

將本文對(duì)中心區(qū)域破損圖像的修復(fù)效果與同樣運(yùn)用了GAN 結(jié)構(gòu)的DCGAN 和CE 方法相比,結(jié)果如圖9 所示。表1 展示了每1 000 次修復(fù)結(jié)果中的平均峰值信噪比PSNR[10]和結(jié)構(gòu)相似性SSIM[11]來定量評(píng)價(jià)各模型的修復(fù)效果。PSNR 是最普遍和使用最為廣泛的一種圖像客觀評(píng)價(jià)指標(biāo),然而它是基于對(duì)應(yīng)像素點(diǎn)間的誤差,即基于誤差敏感的圖像質(zhì)量評(píng)價(jià)。SSIM 可以分別從亮度、對(duì)比度、結(jié)構(gòu)三方面度量圖像相似性。這兩種指標(biāo)的數(shù)值越大,表示效果越好。

為保證結(jié)果客觀,除中心區(qū)域破損的圖像修復(fù)外,我們也展示了LSGAN 模型對(duì)一些特殊圖像的修復(fù),包括戴眼鏡的人像,黑白人像,半張人臉圖像,以及局部破損人像等,并在圖10中展示了一些較理想的修復(fù)結(jié)果??梢钥闯鲈趹?yīng)對(duì)不同類型的修復(fù)任務(wù)時(shí),本文方法也能提供讓人滿意的效果。

4 結(jié)論與展望

本文提出了一種基于最小二乘生成對(duì)抗網(wǎng)絡(luò)的圖像修補(bǔ)方法。與傳統(tǒng)的基于紋理的修復(fù)方法相比,這種方法彌補(bǔ)了大面積缺失的圖像的復(fù)原中找不到匹配紋理的問題;與數(shù)據(jù)驅(qū)動(dòng)的方法相比,該方法不需要儲(chǔ)存數(shù)據(jù)庫,且運(yùn)算速度快;與同樣結(jié)合生成對(duì)抗網(wǎng)絡(luò)的CE 算法和DCGAN 相比,由于采用最小二乘損失,這種方法的訓(xùn)練過程穩(wěn)定,判別器分類更加嚴(yán)格,因此生成的圖片質(zhì)量更好。本文在訓(xùn)練生成網(wǎng)絡(luò)時(shí),無需連同遮擋圖像的掩碼一起訓(xùn)練,能夠很好的解決任意破損區(qū)域的修復(fù),這是CE 做不到的。從對(duì)中心區(qū)域破損的人臉修復(fù)實(shí)驗(yàn)的結(jié)果來看,本文方法具有更高的峰值信噪比和結(jié)構(gòu)相似度,修復(fù)效果更自然。

圖7 LSGAN 生成圖像的過程

圖8 損失值變化曲線(左右分別對(duì)應(yīng)圖6 女性人臉和男性人臉)

圖9 不同模型修復(fù)效果比較

圖10 圖片類型或破損區(qū)域不同的圖像修復(fù)結(jié)果

猜你喜歡
人臉損失函數(shù)
二次函數(shù)
有特點(diǎn)的人臉
胖胖損失了多少元
二次函數(shù)
函數(shù)備考精講
玉米抽穗前倒伏怎么辦?怎么減少損失?
三國漫——人臉解鎖
一般自由碰撞的最大動(dòng)能損失
損失
馬面部與人臉相似度驚人