李凱旋 曹 林 杜康寧
(北京信息科技大學通信工程系 北京 100101)
隨著計算機視覺技術的快速發(fā)展,素描人臉合成在刑偵領域與數(shù)字娛樂領域發(fā)揮著至關重要的作用[1]。就刑偵領域而言,犯罪嫌疑人的光學面部照片一般難以直接獲得,只能由法醫(yī)素描專家通過錄制的監(jiān)控視頻或目擊者的描述來繪制簡單的素描圖像,從而對嫌疑人的身份進行辨識。但由于素描人臉和照片屬于異構圖像,兩者模態(tài)間存在差異,很難直接進行匹配識別。為解決這個問題,可先用素描人臉合成將光學面部照片轉(zhuǎn)換為素描人臉圖像,再與犯罪嫌疑人的素描人臉圖像進行匹配識別[2]。
目前,素描人臉合成方法主要分為模型驅(qū)動和數(shù)據(jù)驅(qū)動兩類。數(shù)據(jù)驅(qū)動方法認為光學面部照片與素描人臉圖像數(shù)據(jù)是一一對應的。如果兩張光學面部照片中某個照片塊相似則其對應的素描圖像塊也應該相似。通常先將訓練集中的“照片-素描”圖像對分塊,然后進行近鄰選擇、計算權重、選擇最優(yōu)圖像塊,最后進行拼接合成整幅素描人臉圖像。這種方法需要遍歷訓練集中的所有圖像數(shù)據(jù),為訓練集中的每個圖像數(shù)據(jù)選擇其對應的最近鄰圖像塊。主要代表方法有:局部線性嵌入(Locally Linear Embedding,LLE)方法[3]和馬爾可夫隨機場(Markov Random Field,MRF)方法[4]等。模型驅(qū)動方法主要是以離線的方式學習訓練集中光學面部照片到素描人臉圖像的映射關系。當輸入一張光學面部照片時,通過訓練得到的映射函數(shù)將輸入的光學面部照片轉(zhuǎn)換為素描人臉圖像。主要代表方法有:基于貝葉斯學習[5]的方法和基于貪婪搜索稀疏表示[6]的方法等。這些方法都取得了不錯的結果,但合成的素描人臉圖像面部細節(jié)清晰度較低,而且需要對光學面部照片與素描人臉圖像進行復雜繁瑣的分塊訓練。此外,當對選出的最優(yōu)圖像塊進行拼接時,容易出現(xiàn)相鄰塊連接處不平滑的現(xiàn)象,導致最終合成的圖像質(zhì)量不是十分理想。并且,在處理光學面部照片中一些配飾等非人臉的特征時,這些方法也不具備很好的魯棒性。
近年來,深度學習得到快速發(fā)展,基于生成對抗網(wǎng)絡(Generative Adversarial Networks, GANs)[7]的深度學習模型在計算機視覺研究領域掀起一片浪潮,引起廣大研究者的濃厚興趣,成為該領域熱點研究方向之一。經(jīng)典的生成對抗網(wǎng)絡及其不同變體[8-10]在圖像風格轉(zhuǎn)化、圖像生成等應用中取得了突破性的進展。DiscoGAN[11]是一種基于生成對抗網(wǎng)絡的學習模型,用來尋找跨域之間的關系。其克服了傳統(tǒng)GANs難收斂、模式易崩潰的問題,并能夠使圖像在不同域轉(zhuǎn)化時保留圖像的關鍵屬性。
光學面部照片與素描人臉圖像屬于兩種不同的模態(tài),從光學面部照片合成素描人臉圖像屬于跨模態(tài)圖像合成,且光學面部照片合成素描人臉圖像可以看成類似機器翻譯的問題。為提高合成素描人臉圖像的清晰度、完整性以及整體合成效果,本文采用生成對抗網(wǎng)絡對抗訓練的策略,結合機器翻譯中對偶學習[12]的思想,在DiscoGAN框架的基礎上進行改進,提出一種雙層生成對抗網(wǎng)絡的素描人臉合成方法。該方法無需使用傳統(tǒng)方法中繁冗的分塊步驟,從而避免了圖像塊拼接過程造成的柵格現(xiàn)象與拼接邊緣不平滑現(xiàn)象。并且該方法在處理光學面部照片中一些配飾等非人臉特征時也有很好的魯棒性。
傳統(tǒng)的生成對抗網(wǎng)絡包含一個生成模型和一個判別模型,其結構如圖1所示。生成模型與判別模型通常由深層神經(jīng)網(wǎng)絡構成。生成器用來構建滿足一定分布的隨機噪聲和真實數(shù)據(jù)分布的映射關系。判別器則用于判別輸入的數(shù)據(jù)是否為真實數(shù)據(jù)并提供給生成器一個反饋信息。生成器用可微函數(shù)G(z;θ(g))表示,z為輸入數(shù)據(jù),θ(g)為生成器G待訓練參數(shù)集合。判別器用可微函數(shù)D(x;θ(d))表示,x為輸入數(shù)據(jù),θ(d)為判別器D待訓練參數(shù)集合。訓練過程中,交替迭代訓練生成模型和判別模型,不斷更新參數(shù)θ(g)與θ(d),使得θ(g)為生成器損失函數(shù)的最小值點,同時θ(d)為判別器損失函數(shù)的最小值點,最終達到納什均衡,使判別器無法判別生成模型生成數(shù)據(jù)的真?zhèn)?。GANs的目標函數(shù)定義為:
圖1 生成對抗網(wǎng)絡結構圖
(1)
式中:第一項表示判別網(wǎng)絡輸入真實數(shù)據(jù)時的目標函數(shù)值;第二項為輸入生成數(shù)據(jù)時的目標函數(shù)值。x代表真實數(shù)據(jù),G(z)代表生成的數(shù)據(jù);D(x)為判別網(wǎng)絡判斷真實數(shù)據(jù)是否真實的概率;D(G(z))為判別網(wǎng)絡判斷生成網(wǎng)絡生成的數(shù)據(jù)是否真實的概率。優(yōu)化過程:在給定G的情況下最大化V(D,G)得到D,然后固定D最小化V(D,G),得到G。
從理論上講,GANs可以生成與目標域相同分布的映射,雖然在圖像到圖像轉(zhuǎn)換的問題中GANs產(chǎn)生的結果已獲得普遍的認同,但它們往往生成的圖像會產(chǎn)生不同程度的模糊。這些細節(jié)模糊部分對面部識別性能會產(chǎn)生不利影響。因此,生成清晰完整的圖像至關重要。
本文提出的方法由兩個GANs網(wǎng)絡組成,生成器與判別器采用深度卷積神經(jīng)網(wǎng)絡,并在生成器中添加跳躍連接來提升生成圖像的質(zhì)量。通過對抗損失對生成器與判別器進行訓練,對抗損失相比L1與L2范數(shù)可以克服生成器生成圖片模糊的問題。網(wǎng)絡中添加兩個重建損失,計算生成器輸出圖片與真實圖片之間的差異,用以約束生成器生成圖像的質(zhì)量,提高生成器的合成能力。
假設數(shù)據(jù)集為光學面部照片和素描人臉圖像數(shù)據(jù)集,Mp表示光學面部照片域中的數(shù)據(jù)i到素描人臉圖像域中的映射網(wǎng)絡,Ms表示素描人臉圖像域中的數(shù)據(jù)j到光學面部照片域中的映射網(wǎng)絡。為了找到光學面部照片與素描人臉圖像的對應關系,通過雙層網(wǎng)絡將網(wǎng)絡的映射限制為一對一映射,避免出現(xiàn)合成素描人臉圖像缺乏多樣性的問題。網(wǎng)絡在訓練的過程中同時學習Mp和Ms兩個映射,達到P(Gps(Gsp(i))≈i以及S(Gsp(Gps(j))≈j。
素描人臉合成框架如圖2所示,整個框架中有四個生成模型,兩個判別模型。兩個Gsp為相同的生成器,兩個Gps為相同的生成器,各自分別共享參數(shù);判別器用以區(qū)分光學面部照片域和素描人臉圖像域的真假圖像,判別器Ds用于判別Gps合成的素描人臉圖像的真實性,判別器Dp用于判別Gsp合成光學面部照片的真實性。
圖2 素描人臉合成框架
根據(jù)素描人臉圖像合成中面部屬性及細節(jié)特征清晰度的重要性,本文采用L1范數(shù)作為重建損失函數(shù),來描述經(jīng)過兩個生成器之后的圖像重建效果與原始真實圖像的差距。L1損失函數(shù)相比其他函數(shù)能更好地約束模型合成清晰、高質(zhì)量的圖像,更容易滿足素描人臉圖像合成中面部細節(jié)特征高清晰度的要求,重建損失函數(shù)定義如下:
LREC(i,j) =Εi~S[‖Gsp(Gps(i))-i‖1]
(2)
本文中生成模型G的損失函數(shù)采用最小二乘損失函數(shù):
(3)
式中:n為常數(shù),表示生成模型為了讓判別器談判生成的數(shù)據(jù)是真實數(shù)據(jù)而設定的值。
GANs的生成損失函數(shù)以S形交叉熵作為損失,當判別器達到最優(yōu)的情況下,生成損失函數(shù)等價為最小化真實分布與生成分布之間的JS散度,而JS散度并不能拉近真實分布和生成分布之間的距離,會使得在訓練過程中生成器不再優(yōu)化那些被判別器識別為真實圖像的生成圖像,即使這些生成圖像距離判別器的決策邊界還很遠,這就會導致最終生成器生成的圖像質(zhì)量不高。而最小二乘損失函數(shù)在混淆判別器的前提下還可以保證讓生成器把距離決策邊界比較遠的生成圖像拉向決策邊界,這樣就可以使生成模型繼續(xù)優(yōu)化,不斷提高生成圖像的質(zhì)量。同樣,判別模型D的損失函數(shù)也采用最小二乘損失函數(shù):
(4)
式中:k、m為常數(shù),分別表示真實數(shù)據(jù)和生成數(shù)據(jù)的標記。
本文方法的全局目標函數(shù)為總生成網(wǎng)絡損失與總判別網(wǎng)絡損失之和:
LSFS_GAN=LSum_GAN(D)+LSum_GAN(G)
(5)
總生成網(wǎng)絡損失為:
LSum_GAN(G)=LREC(i,j)+LREC(j,i)+
LGAN(Gps)+LGAN(Gsp)
(6)
總判別網(wǎng)絡損失為:
LSum_GAN(D)=LGAN(Dp)+LGAN(Ds)
(7)
首先,對比重建光學面部照片域的數(shù)據(jù)分布與真實光學面部照片的數(shù)據(jù)分布,當二者分布一致時,合成的素描人臉圖像域數(shù)據(jù)為預期結果。要使重建光學面部照片域的數(shù)據(jù)與真實光學面部照片的數(shù)據(jù)達到一致分布,需要嚴格的約束,而這種約束在訓練過程中很難優(yōu)化。在本文中,兩個生成模型采用最小化重建損失來滿足這種近似的分布一致。其次,對兩個網(wǎng)絡采用生成對抗損失進行約束,通過生成對抗網(wǎng)絡“零和博弈”的訓練過程不斷優(yōu)化網(wǎng)絡參數(shù),使最終合成的素描人臉圖像在視覺上更真實,更符合素描圖像的紋理風格。
生成模型采用傳統(tǒng)的卷積神經(jīng)網(wǎng)絡可以達到降低模型參數(shù)的功能。在本文提出的方法中,生成模型加入了跳躍連接,區(qū)別于傳統(tǒng)的編碼器-解碼器結構,如圖3所示。跳躍連接將經(jīng)過卷積層后的特征映射和反卷積層后對應相同尺寸的特征映射按通道連接在一起,充分利用了卷積層中的位置結構特征信息,更好地提升了合成圖像的效果。
圖3 生成模型結構圖
判別模型采用傳統(tǒng)的卷積神經(jīng)網(wǎng)絡,用以區(qū)分輸入的圖像是否為真實圖像。通過對抗訓練不斷強化自身的判別能力以及優(yōu)化生成模型的輸出,保證生成模型合成的圖像更真實,更清晰。
生成模型由14層卷積神經(jīng)網(wǎng)絡組成,并在部分卷積層與反卷積層之間采用了跳躍連接。在本文方法中,為了提高模型的執(zhí)行效率,設置了7層步長為2的卷積層與7層步長為1的反卷積層來替代傳統(tǒng)卷積神經(jīng)網(wǎng)絡中的池化層。每層網(wǎng)絡都進行了Padding(補零)操作,用于保持邊界信息,防止圖像邊緣像素點信息遺失,并保持輸出圖片與輸入圖片尺寸一致。卷積層中的激活函數(shù)設置為Leaky ReLU函數(shù),反卷積層中的激活函數(shù)設置為ReLU函數(shù),判別模型由五層卷積神經(jīng)網(wǎng)絡組成,激活函數(shù)設置為Leaky ReLU函數(shù)。生成模型與判別模型中卷積核尺寸大小為4×4,具體參數(shù)設計如表1、表2所示。
表1 生成模型參數(shù)設計
表2 判別模型參數(shù)設計
為驗證本文方法合成素描人臉圖像的有效性,采用香港中文大學CUHK學生人臉數(shù)據(jù)庫[13]進行實驗。將CUHK學生人臉數(shù)據(jù)庫中的150對光學面部照片-素描人臉圖像作為訓練集,38對光學面部照片-素描人臉圖像作為測試集。
實驗過程中,輸入圖像的大小為200×250像素,輸出圖像的大小為128×128像素。本文素描人臉合成方法中的兩個網(wǎng)絡同時開始訓練,采用對抗訓練的策略,交替迭代訓練生成模型和判別模型。生成模型與判別模型相互對抗,不斷“博弈”,最終使全局目標函數(shù)與模型參數(shù)達到最優(yōu)。整個網(wǎng)絡采用Adam算法進行優(yōu)化,網(wǎng)絡的學習率設置為0.000 2,式(3)中參數(shù)設置為n=1,式(4)中參數(shù)設置為m=1、k=0。本文選擇批處理大小(batch-size)為1,并保存迭代30、40、50和60個epoch的合成結果,模型的損失變化如圖4所示,合成結果如圖5所示。
圖4 模型各損失函數(shù)變化圖
圖4、圖5的結果表明隨著迭代次數(shù)的增加,模型逐步優(yōu)化,損失值呈現(xiàn)穩(wěn)定下降,合成的圖像質(zhì)量不斷提高。當?shù)降?0個epoch時,損失函數(shù)已經(jīng)基本收斂,合成的素描人臉圖像不僅面部細節(jié)更完整、圖像清晰度更高而且風格特征與真實素描圖像更相近。因此,在本文方法的對比實驗中選擇60個epoch的模型參數(shù)進行實驗。
圖5 不同迭代epoch結果圖
本文方法在香港中文大學CUHK學生人臉數(shù)據(jù)庫中合成素描人臉圖像的結果如圖6所示,并分別與LLE方法[3]、MRF方法[4]、馬爾可夫權重場(Markov Weight Field,MWF)方法[14]、DiscoGAN方法[11]進行了對比。
由圖6可以看出其他方法合成的素描人臉圖像清晰度低,細節(jié)不夠完整。本文方法合成的素描人臉圖像面部特征與原圖像更相近,風格特征更符合原素描圖像,而且清晰度更高,細節(jié)更完整。
圖6 CUHK數(shù)據(jù)庫上合成素描人臉圖像的效果
為了進一步驗證本文方法的合成效果,利用AR人臉數(shù)據(jù)庫對本文方法進行測試驗證,合成結果如圖7所示。
由圖7可以看出,本文方法在AR人臉數(shù)據(jù)庫中的合成效果也優(yōu)于其他素描人臉合成方法。從合成結果來看,傳統(tǒng)方法合成的素描人臉圖像出現(xiàn)了面部失真以及面部特征(如:眼鏡、胡須等)不同程度的缺失。而本文方法的合成結果則未出現(xiàn)面部失真、特征缺失等問題,面部輪廓更加完整,對眼鏡、胡須等面部特征的合成效果更優(yōu)。
圖7 AR數(shù)據(jù)庫上合成素描人臉圖像的效果
通過與不同方法在不同人臉數(shù)據(jù)庫中的合成效果比較分析。傳統(tǒng)方法在訓練過程中對照片-素描對進行分塊處理,然后采用局部搜索或者全局搜索來尋找最優(yōu)圖像塊集合。但在局部搜索過程中會限制圖像塊的范圍使得最優(yōu)圖像塊在全局范圍內(nèi)可能不是最優(yōu)的,全局搜索過程雖然可以增大尋找最優(yōu)圖像塊的范圍卻缺乏了對最優(yōu)圖像塊局部信息的約束,導致了最終合成的素描人臉圖像模糊,細節(jié)不完整。DiscoGAN方法采用S形交叉熵作為對抗訓練的損失函數(shù),訓練過程中很難使生成模型達到最優(yōu),生成的圖像清晰度低。同時,生成模型與判別模型的設計中采用卷積層與反卷積層直接相連,不能充分提取卷積層中圖像的位置特征信息。而本文方法通過深度卷積神經(jīng)網(wǎng)絡學習輸入光學面部照片-素描人臉圖像對的特征,合成對應的素描人臉圖像。采用最小二乘損失作為對抗訓練的損失函數(shù)及L1范數(shù)作為重建損失函數(shù),在對抗訓練過程中可以有效提高判別模型的判別能力,以及生成模型的合成能力即合成素描人臉圖像的清晰度與視覺真實性。因此本文方法的合成結果不僅面部細節(jié)更加完整,而且發(fā)飾等非人臉部分也得到清晰的呈現(xiàn)。
為了對本文方法合成的素描人臉圖像進行定量分析,采用結構相似度SSIM(Structural Similarity Index)[15]值和特征相似度FSIM(Feature Similarity Index)[16]值來綜合評判本文方法合成的素描人臉圖像的質(zhì)量。
本文對不同方法合成的素描人臉圖像與其對應的原始素描圖像進行計算,得到的SSIM值與FSIM值越大,則證明合成的素描人臉圖像與原始素描人臉圖像更相似,合成的素描人臉圖像質(zhì)量更優(yōu)。在不同數(shù)據(jù)庫中不同方法合成素描人臉圖像的SSIM值與FSIM值如表3、表4所示。
表3 CUHK數(shù)據(jù)庫中SSIM值與FSIM值
通過表3、表4可以看出本文方法合成素描人臉圖像的SSIM值與FSIM值明顯高于其他方法,說明本文方法的合成結果與原始素描圖像更相似,合成效果更好。
表4 AR數(shù)據(jù)庫中SSIM值與FSIM值
為了對本文方法合成素描人臉圖像的可適用性進行分析,采用主成分分析的方法,計算合成素描人臉圖像在原素描人臉圖像數(shù)據(jù)庫中的識別率。本文方法與其他方法在不同數(shù)據(jù)庫中合成素描人臉圖像的識別率如圖8、圖9所示。
圖8 在CUHK人臉庫上的識別率
通過圖8、圖9識別率曲線可以看出,在CUHK人臉數(shù)據(jù)庫與AR人臉數(shù)據(jù)庫中本文方法合成的素描人臉圖像識別率高于其他方法。當Rank值為4時,本文方法合成的素描人臉圖像識別率已經(jīng)達到100%。這是因為本文方法采用深度卷積神經(jīng)網(wǎng)絡,能夠更好地、更深層次地提取圖像特征信息。而且在生成模型的設計中,卷積層與反卷積層之間采用了跳躍連接,利用了卷積層中的位置結構特征信息,并將此作為部分結構特征增加到對應的反卷積層。這樣保留了不同尺寸特征映射下圖像的細節(jié)信息,強化了整個生成模型對合成圖像的預測能力,從而能夠保證圖像細節(jié)信息的完整性。
圖9 在AR人臉庫上的識別率
通過視覺感知以及不同實驗的數(shù)據(jù)分析,可以證明本文方法的合成能力更強,合成的素描人臉圖像質(zhì)量更高,可適用性更廣。
本文提出了一種基于雙層生成對抗網(wǎng)絡的素描人臉合成方法。利用深度神經(jīng)網(wǎng)絡來設計生成模型與判別模型,并在生成模型中加入了跳躍連接,以此提升整個網(wǎng)絡合成圖像的效果。在訓練過程中采用對抗訓練的思想,通過兩個生成對抗網(wǎng)絡中的生成模型與判別模型的對抗訓練,不斷“博弈”,使整個模型達到最優(yōu),最終合成一幅面部細節(jié)更完整、清晰度更高的素描人臉圖像。實驗過程中,利用不同的人臉數(shù)據(jù)庫,分別與不同的素描人臉合成方法進行對比。綜合定性分析與定量分析,說明了本文方法可以合成整體結構性更強、清晰度更高、質(zhì)量更好的素描人臉圖像,解決了傳統(tǒng)方法合成素描人臉圖像清晰度低、細節(jié)缺失等問題。在今后的研究中希望可以進一步優(yōu)化模型,使其在面對復雜的圖像處理問題時有更好的魯棒性。