杜康寧,李凱旋,曹 林+
(1.北京信息科技大學(xué) 光電測試技術(shù)及儀器教育部重點實驗室,北京 100101; 2.北京信息科技大學(xué) 信息與通信工程學(xué)院,北京 100101)
目前的素描人臉合成技術(shù)[1-3]主要分為兩類:數(shù)據(jù)驅(qū)動方法[4-6]和模型驅(qū)動方法[7-11]。數(shù)據(jù)驅(qū)動方法通常由圖像分塊、最近鄰選擇、權(quán)重計算和圖像塊拼接4個部分組成,數(shù)據(jù)驅(qū)動方法的主要優(yōu)點是可以很好地合成面部細節(jié)。但是這些方法在相似的圖像塊搜索中通常很耗時,從而限制了這類方法的適用性。模型驅(qū)動方法主要是以離線方式學(xué)習(xí)面部照片-素描圖像間的映射關(guān)系,主要優(yōu)點是測試階段非???,但合成結(jié)果清晰度較低,缺少一些關(guān)鍵細節(jié)特征。
顯然,目前大多數(shù)素描人臉合成技術(shù)都能合成完整且令人印象深刻的結(jié)果,但在合成結(jié)果中會丟失一些關(guān)鍵信息,導(dǎo)致圖像細節(jié)缺失或模糊,而且當(dāng)處理的圖像與訓(xùn)練圖像相差較大時很難取得良好的效果。本文的目標(biāo)是合成高質(zhì)量素描人臉圖像,并解決訓(xùn)練數(shù)據(jù)集不足而導(dǎo)致模型適用性差的問題。
本文提出了一種素描人臉合成方法,該方法是將面部特征提取網(wǎng)絡(luò)、生成網(wǎng)絡(luò)及判別網(wǎng)絡(luò)相結(jié)合的三網(wǎng)絡(luò)對抗學(xué)習(xí)模型。首先,我們設(shè)計了一個通過面部照片來生成素描人臉圖像的生成網(wǎng)絡(luò);然后,采用對抗學(xué)習(xí)的策略,設(shè)計了一個用于提升生成網(wǎng)絡(luò)性能的判別網(wǎng)絡(luò),并對對抗損失增加控制因子,控制訓(xùn)練過程,保證生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò)得到充分訓(xùn)練。為進一步提高生成網(wǎng)絡(luò)合成素描人臉圖像的質(zhì)量,我們又構(gòu)建一個面部特征提取網(wǎng)絡(luò)計算合成素描人臉圖像的細節(jié)誤差。在標(biāo)準(zhǔn)素描人臉數(shù)據(jù)庫中的大量實驗驗證了本文方法的良好性能,其能夠合成高質(zhì)量的素描人臉圖像。
本文的主要貢獻概括如下:
(1)提出了三網(wǎng)絡(luò)對抗學(xué)習(xí)的素描人臉合成方法,該方法能夠合成多種樣式、不同種族的高質(zhì)量素描人臉圖像。
(2)引入一種復(fù)合損失函數(shù),將面部細節(jié)損失與對抗損失相結(jié)合,使模型更適合處理素描人臉圖像合成任務(wù)。
(3)通過對原有的對抗損失函數(shù)增加控制因子,控制對抗損失對全局損失的貢獻程度,使生成網(wǎng)絡(luò)能夠得到充分訓(xùn)練,提高生成網(wǎng)絡(luò)的性能。
Goodfellow等提出生成對抗網(wǎng)絡(luò)(generative adversarial networks,GAN)模型[12],引出對抗訓(xùn)練學(xué)習(xí)的思想。該模型由生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)兩個相互競爭的網(wǎng)絡(luò)組成,如圖1所示。生成網(wǎng)絡(luò)通過一組隨機噪聲來生成樣本,判別網(wǎng)絡(luò)用于區(qū)分生產(chǎn)樣本是否為真實樣本。生成網(wǎng)絡(luò)G與判別網(wǎng)絡(luò)D之間的博弈是一種最小極大博弈過程,其目標(biāo)函數(shù)如下
圖1 GAN模型結(jié)構(gòu)
(1)
式中:x代表真實數(shù)據(jù),z代表輸入的噪聲分布樣本,P(x)代表數(shù)據(jù)分布,P(z)代表模型分布。
GAN對圖像特征有出色的感知能力,但在訓(xùn)練過程中會存在模式崩潰和梯度消失等問題。GAN模型在優(yōu)化過程中,最小化目標(biāo)函數(shù)等價于最小化真實分布與生成分布之間的JS(Jensen-Shannon)散度。Arjovsky等[13]討論了GAN模型在訓(xùn)練過程中由JS散度所引起的問題,并提出使用Earth-Mover(又稱為Wasserstein-1)距離W(Pr,Pf)替代標(biāo)準(zhǔn)GAN模型中的JS散度,損失函數(shù)如下所示
(2)
式中:Pr表示真實數(shù)據(jù)的分布,Pf表示生成數(shù)據(jù)的分布。
W(Pr,Pf)近似為真實數(shù)據(jù)分布和生成數(shù)據(jù)分布的Wasserstein距離,m=1-Lipschitz。為了保證判別網(wǎng)絡(luò)滿足1-Lipschitz的限制,Gulrajani等[14]在目標(biāo)函數(shù)中增加一個梯度懲罰項。梯度懲罰項如下所示
(3)
這種方法可以提高GAN在訓(xùn)練過程中的穩(wěn)定性,使生成網(wǎng)絡(luò)的選擇更加靈活,允許使用更加輕量級的卷積神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)。
圖2 素描人臉合成框架
在訓(xùn)練過程中,生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò)同時訓(xùn)練。訓(xùn)練生成網(wǎng)絡(luò)生成盡可能真實的素描人臉圖像去“欺騙”判別網(wǎng)絡(luò),判別網(wǎng)絡(luò)盡可能地區(qū)分偽素描圖像和真實素描圖像。生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)相互競爭,共同提高自身的能力。
1.3.1 生成網(wǎng)絡(luò)結(jié)構(gòu)
生成過程需保持圖像信息在網(wǎng)絡(luò)層逐漸增多的情況下,不損失位置信息與細節(jié)特征信息。傳統(tǒng)的深層卷積神經(jīng)網(wǎng)絡(luò)無法有效擴充圖像高度與寬度,并且池化層取平均池化或最大池化均會造成一定區(qū)域內(nèi)的位置信息損失。因此,本文方法采用帶有步長的卷積層來實現(xiàn)上采樣過程中圖像高度與寬度的有效擴充,且確保下采樣過程中圖像位置信息不丟失。
生成網(wǎng)絡(luò)由兩個帶步長的卷積模塊、9個殘差單元以及兩個反卷積模塊組成,如圖3所示。殘差單元的結(jié)構(gòu)主要通過前向神經(jīng)網(wǎng)絡(luò)和shortcut連接實現(xiàn),由1個卷積層、1個Batch Norm層和1個ReLU激活函數(shù)組成。殘差單元的shortcut跨層連接結(jié)構(gòu),使生成網(wǎng)絡(luò)對合成的結(jié)果更加敏感,有利于捕捉人臉圖像的細節(jié)特征信息,生成逼真、清晰度高的素描人臉圖像。
圖3 生成網(wǎng)絡(luò)結(jié)構(gòu)
1.3.2 判別網(wǎng)絡(luò)結(jié)構(gòu)
判別網(wǎng)絡(luò)采用了與Patch-GAN[15]相同的結(jié)構(gòu),如圖4(X3表示3組同類型的網(wǎng)絡(luò)層)所示,此判別網(wǎng)絡(luò)結(jié)構(gòu)是在局部圖像塊級別上進行驗證,避免了直接對兩張完整圖像進行驗證所造成的信息損失。相比判別網(wǎng)絡(luò)每次對整張圖像進行真?zhèn)闻袛?,本文判別網(wǎng)絡(luò)一次只判斷一個N×N的圖像塊是否為真,關(guān)注圖像的局部結(jié)構(gòu),而不需要對整張圖像的像素信息進行判斷。判別網(wǎng)絡(luò)只需要學(xué)習(xí)圖像的高頻信息,從而在一定程度上減少了訓(xùn)練過程中的參數(shù)量,加快運行速度,且生成的圖像細節(jié)更加完整。
圖4 判別網(wǎng)絡(luò)結(jié)構(gòu)
1.3.3 面部特征提取網(wǎng)絡(luò)
本文中面部特征提取網(wǎng)絡(luò)用于對合成的素描人臉圖像與真實素描人臉圖像進行面部特征提取。面部特征提取網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計遵循VGGNet-16的架構(gòu),該架構(gòu)相對簡潔,僅通過反復(fù)堆疊3×3的卷積核和2×2的最大池化層來構(gòu)建深層卷積神經(jīng)網(wǎng)絡(luò)。此外,該架構(gòu)通過卷積核的串聯(lián)極大地減少了網(wǎng)絡(luò)參數(shù)量,并且相比使用單一卷積核構(gòu)建的網(wǎng)絡(luò)層擁有更多的非線性變換,更適合圖像面部特征提取。
由于現(xiàn)有標(biāo)準(zhǔn)的素描人臉圖像數(shù)據(jù)集相對較小,使用小數(shù)據(jù)集單獨訓(xùn)練面部特征提取網(wǎng)絡(luò)很難產(chǎn)生良好的性能,容易出現(xiàn)過擬合、梯度彌散等問題。因此,本文采用遷移學(xué)習(xí)的思想,使用在ImageNet數(shù)據(jù)庫中預(yù)訓(xùn)練的模型參數(shù)作為本文方法中面部特征提取網(wǎng)絡(luò)的模型參數(shù)。
假設(shè)fr(s)和fg(p)分別表示真實圖像與生成圖像的分布,判別網(wǎng)絡(luò)的優(yōu)化目標(biāo)函數(shù)如下
(4)
式中:D(s)表示判別網(wǎng)絡(luò)對輸入真實素描人臉圖像Si得到的概率值,G(p)表示生成網(wǎng)絡(luò)生成的光學(xué)面部圖像Pi對應(yīng)的素描人臉圖像,D(G(p))表示判別網(wǎng)絡(luò)對輸入生成圖像G(p)得到的概率值。
式(4)判別網(wǎng)絡(luò)優(yōu)化目標(biāo)函數(shù)可轉(zhuǎn)化為求下式最優(yōu)解
(5)
將式(5)中積分項的函數(shù)fr(s)logD(s)+fg(s)log(1-D(s))對D(s)求導(dǎo)并令其值等于0,則最優(yōu)判別網(wǎng)絡(luò)表達式如下
(6)
對于含有N幅光學(xué)面部照片與素描人臉圖像的訓(xùn)練集M={(Pi,Si),i=1,2,3,…,N},θG可通過優(yōu)化損失函數(shù)L得到,即
(7)
訓(xùn)練時,先在固定θD的條件下利用式(7)求解θG,然后在θG固定的條件下,用式(6)優(yōu)化θD,依次類推,直至θD和θG都已收斂。
損失函數(shù)L的確定對于生成網(wǎng)絡(luò)G的效果非常重要,為了確保最后有一個高質(zhì)量的素描人臉圖像效果,包括量化效果(在量化指標(biāo)方面)和視覺效果(在人眼感官方面),本文所提出的復(fù)合損失函數(shù)定義如下
Ltotal=αLD+βLdetail
(8)
式中:LD為對抗損失、Ldetail為面部細節(jié)損失,α、β分別為對應(yīng)損失的預(yù)定義權(quán)重。
1.4.1 面部細節(jié)損失
傳統(tǒng)L1損失函數(shù)是在簡單的像素空間上進行誤差計算,若直接通過L1損失函數(shù)對真實素描人臉圖像與偽素描人臉圖像進行誤差計算,則很難獲取素描人臉圖像的面部細節(jié)與紋理特征。傳統(tǒng)L1損失函數(shù)如式(9)所示
(9)
在本文中面部細節(jié)損失函數(shù)是計算圖像特征空間上的差異,從合成的素描人臉圖像中提取特征,并與真實素描人臉圖像中的特征進行對比。但圖像的特征并不是通過尺度不變特征變換(scale invariant feature transform,SIFT)、ORB(oriented fast and rotated brief)等傳統(tǒng)特征計算方式得到,而是將圖像輸入到本文設(shè)置的面部特征提取網(wǎng)絡(luò)中得到。面部特征提取網(wǎng)絡(luò)提取的圖像特征是高層特征,忽略了圖像像素級別的低層特征,符合人類視覺感知。面部細節(jié)損失函數(shù)定義如下
(10)
式中:w和h表示特征圖的維度,s為真實素描人臉圖像,G(p)為生成的偽素描人臉圖像,φ(s)與φ(G(p))表示圖像經(jīng)過特征提取網(wǎng)絡(luò)輸出的特征矩陣。
式(10)中φ(s)-φ(G(p))F可由下式得出
(11)
令[φ(s)-φ(G(p))]T·[φ(s)-φ(G(p))]為M
(12)
1.4.2 對抗損失
對抗損失來自判別網(wǎng)絡(luò),是判別輸入為真實素描人臉圖像還是偽素描人臉圖像的損失函數(shù),其目的是為了保證生成網(wǎng)絡(luò)盡可能生成更真實的素描人臉圖像以“欺騙”判別網(wǎng)絡(luò)。傳統(tǒng)的對抗損失存在一個問題,當(dāng)判別網(wǎng)絡(luò)訓(xùn)練越好,生成網(wǎng)絡(luò)的梯度消失越嚴(yán)重。因此,為了在訓(xùn)練時生成網(wǎng)絡(luò)具有更好的梯度表現(xiàn),按照Arjovsky等[13]的建議,通過Wasserstein 距離來度量真實素描人臉圖像與偽素描人臉圖像間的距離,則對抗損失如下式所示
(13)
為解決模型在訓(xùn)練中過早地達到平衡狀態(tài),使生成網(wǎng)絡(luò)與判別網(wǎng)絡(luò)不再優(yōu)化的問題,我們在對抗損失函數(shù)中添加一個控制因子??刂埔蜃涌梢源_保在訓(xùn)練初期,對抗損失的權(quán)重相對較小,隨著訓(xùn)練過程的進行,對整個模型的損失貢獻值逐步增加。這樣可以保證判別網(wǎng)絡(luò)在訓(xùn)練階段充分學(xué)習(xí)偽素描圖像與真實素描圖像之間的差異,提高判別能力,改善生成網(wǎng)絡(luò)合成結(jié)果的質(zhì)量。
對抗損失具體定義如下
(14)
式中:ω為衰減系數(shù),其值固定為0.99,n為當(dāng)前迭代次數(shù),N為總的迭代次數(shù)。
本文采用香港中文大學(xué)CUFS素描人臉基準(zhǔn)數(shù)據(jù)庫進行實驗,驗證本文方法合成素描人臉圖像的有效性。CUFS素描人臉數(shù)據(jù)庫中包含CUHK學(xué)生人臉數(shù)據(jù)庫[5](188對光學(xué)面部照片-素描人臉圖像)、AR數(shù)據(jù)庫(123對光學(xué)面部照片-素描人臉圖像)及XM2VTS數(shù)據(jù)庫(295對光學(xué)面部照片-素描人臉圖像),圖5展示了部分素描人臉數(shù)據(jù)庫中的數(shù)據(jù)(圖5(a)、圖5(b)為CUHK學(xué)生人臉數(shù)集圖像,圖5(c)、圖5(d)為AR數(shù)據(jù)集圖像,圖5(e)、圖5(f)為XM2VTS數(shù)據(jù)集圖像),表1展示了不同數(shù)據(jù)庫的數(shù)據(jù)劃分。
表1 數(shù)據(jù)集劃分
圖5 各數(shù)據(jù)庫部分?jǐn)?shù)據(jù)
訓(xùn)練過程中,輸入圖像尺寸為256×256像素,輸出圖像尺寸為256×256像素,批處理(batch-size)大小設(shè)置為1,模型迭代訓(xùn)練500輪。本文模型選取批標(biāo)準(zhǔn)化(batch normalization)對數(shù)據(jù)進行處理,采用Adam算法對網(wǎng)絡(luò)進行優(yōu)化。網(wǎng)絡(luò)的學(xué)習(xí)率設(shè)置為0.0002,Adam第一動量的值設(shè)為0.9,第二動量的值設(shè)為0.999,模糊因子為1*10-8??倱p失函數(shù)中α的值設(shè)置為1,β的值設(shè)置為100。
模型的優(yōu)化目標(biāo):使生成的偽素描人臉圖像與真實素描人臉圖像之間的差異盡可能小。模型的優(yōu)化步驟如下:首先,分批次加載光學(xué)面部照片與素描人臉圖像數(shù)據(jù),并隨機排序。然后,在每一個epoch的過程中先選取batch-size個訓(xùn)練數(shù)據(jù)對判別網(wǎng)絡(luò)進行5次梯度下降優(yōu)化。最后,停止判別網(wǎng)絡(luò)的參數(shù)更新,開始訓(xùn)練生成網(wǎng)絡(luò)。依次交替,直至訓(xùn)練結(jié)束。
為驗證本文方法改進之處的有效性,在該節(jié)中進行消融實驗研究,分別消除網(wǎng)絡(luò)架構(gòu)中的不同成分進行實驗,實驗對比結(jié)果如圖6所示。其中,圖6(a)為光學(xué)面部照片,圖6(b)為真實素描人臉圖像,圖6(c)為刪除面部特征提取網(wǎng)絡(luò)合成結(jié)果,圖6(d)為僅使用面部細節(jié)損失函數(shù)合成結(jié)果,圖6(e)為本文方法合成結(jié)果。
圖6 消融實驗對比結(jié)果
圖6顯示了消除本文方法中的不同成分,以及變更一些損失函數(shù)后的實驗結(jié)果。從圖中可以看出當(dāng)對本文方法中部分結(jié)構(gòu)進行消除或者替換時,合成素描人臉圖像的質(zhì)量大大降低,合成結(jié)果出現(xiàn)模糊、面部扭曲等問題。因此,本文方法所增加的特征提取網(wǎng)絡(luò)以及損失函數(shù)在合成素描人臉圖像的過程中起到至關(guān)重要的作用,該部分能夠極大改善合成素描人臉圖像的質(zhì)量,并具備良好的性能。
本文方法在香港中文大學(xué)CUFS素描人臉基準(zhǔn)數(shù)據(jù)庫中的合成結(jié)果如圖7~圖9所示,并與傳統(tǒng)素描人臉方法中局部線性嵌入(locally linear embedding,LLE)方法[4]、馬爾可夫隨機場(Markov random field,MRF)方法[5]、馬爾可夫加權(quán)場(Markov weight field,MWF)方法[6]和深度學(xué)習(xí)領(lǐng)域中的全卷積神經(jīng)網(wǎng)絡(luò)(fully convolutional network,F(xiàn)CN)[8]、生成對抗網(wǎng)絡(luò)(generative adversarial networks,GAN)[12]模型進行了對比。
圖7 在CUHK人臉數(shù)據(jù)集上不同方法的素描人臉合成結(jié)果
圖8 在AR人臉數(shù)據(jù)集上不同方法的素描人臉合成結(jié)果
圖9 在XM2VTS人臉數(shù)據(jù)集上不同方法的素描人臉合成結(jié)果
從圖7~圖9合成結(jié)果中可以看出,LLE方法合成的素描人臉圖像能夠基本呈現(xiàn)面部五官特征,但圖像整體過于平滑,頭發(fā)等區(qū)域有偽影出現(xiàn)。MRF方法合成的素描人臉圖像丟失一些細節(jié)特征,且面部輪廓不完整。MWF方法的合成結(jié)果擁有完整的面部輪廓,但整體清晰度較低,部分面部區(qū)域出現(xiàn)扭曲。以上傳統(tǒng)方法僅考慮像素級別的圖像相似度,因而無法很好地描述面部特征,導(dǎo)致合成結(jié)果出現(xiàn)模糊、面部缺失等問題。FCN方法雖然能夠合成一些面部關(guān)鍵特征(如:眼鏡等),但分辨率較低,圖像出現(xiàn)斑駁現(xiàn)象。GAN模型合成的結(jié)果相較其它方法擁有豐富的素描紋理,面部細節(jié)更完整,但缺乏一些圖像關(guān)鍵特征(如:發(fā)卡等),且圖像面部出現(xiàn)變形和噪音。本文方法合成的圖像質(zhì)量最好,不僅保持了原有圖像的面部五官特征,而且對圖像面部配飾(眼鏡等)也有很好的預(yù)測,圖像清晰度更高、更符合素描圖像的風(fēng)格特征。
相比CUHK與AR數(shù)據(jù)集的合成結(jié)果,在XM2VTS數(shù)據(jù)集上的合成結(jié)果更能說明本文方法合成素描人臉圖像的優(yōu)越性。其它方法應(yīng)用在XM2VTS數(shù)據(jù)集中的性能較差,合成素描人臉圖像出現(xiàn)面部缺失、模糊、變形等問題。這是因為CUHK與AR數(shù)據(jù)集中的人群具有基本相同的年齡和種族,風(fēng)格變化較小,而XM2VTS數(shù)據(jù)集中的人群跨越各個年齡段,擁有不同的種族,存在明顯的外觀變化。本文方法擁有良好的魯棒性,在3個數(shù)據(jù)集中都產(chǎn)生了出色的合成結(jié)果。
在本節(jié)中,我們對實驗結(jié)果進行定量分析。由于缺少素描人臉圖像的專業(yè)客觀評價指標(biāo),故本文采用傳統(tǒng)的圖像質(zhì)量評估方法對合成的素描人臉圖像進行質(zhì)量評估。通過計算合成素描人臉圖像的峰值信噪比PSNR(peak signal-to-noise ratio)值、結(jié)構(gòu)相似度SSIM(structural similarity index)值和特征相似度FSIM(feature simi-larity index)值來綜合評判本文方法合成的素描人臉圖像的質(zhì)量。在本節(jié)實驗中,參考圖像為原始素描人臉圖像,畸變圖像為合成的素描人臉圖像。表2總結(jié)了在不同數(shù)據(jù)庫中不同方法合成素描人臉圖像的質(zhì)量評估指標(biāo),為了進行比較,將每個評價指標(biāo)的最大值標(biāo)記加粗。實驗結(jié)果表明,本文方法具有很好的競爭力。本文方法在3個數(shù)據(jù)集中的各項評估指標(biāo)基本高于其它方法,僅有少數(shù)指標(biāo)不是最高值,可以在一定程度上說明本文方法合成的素描人臉圖像更加接近于真實素描人臉圖像,合成素描人臉圖像的能力更強。
表2 不同方法素描人臉圖像的質(zhì)量評估指標(biāo)
本文提出了一種三網(wǎng)對抗學(xué)習(xí)框架來合成高質(zhì)量素描人臉圖像。在生成對抗網(wǎng)絡(luò)的基礎(chǔ)上,我們添加一個面部特征提取網(wǎng)絡(luò)來提取合成素描人臉圖像與真實素描人臉圖像的特征,并引入面部細節(jié)損失來計算深層圖像特征之間的差異。為了控制訓(xùn)練過程并確保生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)得到充分訓(xùn)練,我們在對抗損失中添加一個控制因子。通過與其它素描人臉合成方法進行實驗比較,不論從視覺上的主觀評價,還是定量的客觀評價,都說明了本文方法的優(yōu)越性。在未來的工作中,我們將探索更加復(fù)雜環(huán)境下的素描人臉合成模型,提高素描人臉合成方法的魯棒性。