周華強,曹 林,杜康寧
1.北京信息科技大學 光電測試技術及儀器教育部重點實驗室,北京100101
2.北京信息科技大學 信息與通信工程學院,北京100101
素描人臉合成是指在給定訓練光學人臉圖像集和素描人臉圖像集的情況下,根據一張光學人臉圖像合成出一張素描人臉圖像。隨著合成技術的發(fā)展,素描人臉合成在數字娛樂產業(yè)和刑偵領域中發(fā)揮著重要的作用[1]。就刑偵領域而言,可能存在以下狀況:在視頻監(jiān)控中提取到的人物面部照片分辨率較低,或受到姿勢、光線的影響沒有獲取到清晰圖像,不能為身份識別提供證據,此時需要由法醫(yī)從被記錄的視頻或目擊者的描述中繪制出素描圖像來進行匹配。但是素描人臉圖像和光學人臉圖像屬于異質圖像,二者很難取得良好的識別效果,此時素描人臉合成對犯罪嫌疑人的識別起到替代作用[2]。在數字娛樂領域,素描圖像被用作個人資料頭像越來越受智能手機和社交網絡用戶的歡迎,光學人臉圖片轉換為素描風格圖片在社交美圖軟件市場也得到了廣泛應用。
目前已知的素描人臉合成方法主要有模型驅動和數據驅動兩類。基于數據驅動的代表方法有Wang 和Tang[3]提出的基于概率圖形的馬爾可夫隨機場模型以及基于子空間學習的局部線性嵌入[4]合成方法?;谀P万寗拥闹饕椒ㄓ卸嘧兞枯敵龌貧w方法[5]以及基于貝葉斯學習[6]的方法等。上述方法得到的合成圖像素描效果和藝術家手繪的素描人臉圖像相比,沒有很好地捕捉個人細節(jié),導致合成出來的素描人像與光學人像相似度不夠;合成的素描缺乏藝術性,在對比過程中發(fā)現有些方法由于過度平滑丟失了素描的風格。
近年來,生成對抗網絡(Generative Adversarial Network,GAN)[7]由于其強大的生成能力在計算機視覺領域取得巨大的成功。特別是傳統(tǒng)GAN及其變體在圖像生成[8]、圖像編輯[9]、表示學習[10]、運動模糊圖像復原[11]等方面取得了令人矚目的成績,彌補了傳統(tǒng)方法的不足。Guérin 等人提出使用CGAN 進行地表模型繪制[12]應用于電影和游戲領域中,Isola等[13]提出基于像素的生成對抗網絡考慮使用成對數據集進行圖像風格轉換,Zhu等人[14]提出了CycleGAN使用無監(jiān)督學習進行圖像風格轉換。王孝順等人[15]提出了LSTGAN 與單領域判別訓練法進行遷移學習。
圖1 MDC-GAN結構圖
針對素描人臉合成問題,本文提出一種多判別器循環(huán)生成對抗網絡(Multi-Discriminator Cyclic Generative Adversarial Network,MDC-GAN)。該方法在傳統(tǒng)CycleGAN 的基礎上,引入了多判別器網絡結構與重構誤差損失,避免了傳統(tǒng)方法中繁冗的計算步驟,克服了傳統(tǒng)GAN 模式易崩潰問題,優(yōu)化CycleGAN 網絡結構,提高合成素描圖像質量。在判別網絡中采用多判別器提供多通道特征融合方法提取圖像特征,通過添加產生一維輸出的卷積層使提取的特征能夠表示更多圖像信息。新增加的重構誤差損失能夠實現網絡整體的反向傳遞優(yōu)化,并且重構誤差損失在訓練過程中定義為正則化,對損失函數進行限制,有效避免訓練過擬合,提高訓練時網絡的穩(wěn)定性。并且本文方法在處理光學面部圖像中的非人臉特征(如眼鏡、圍巾等)時,也表現出很好的魯棒性和準確性。
傳統(tǒng)GAN網絡由一個生成模型和一個判別模型構成,在訓練過程中二者構成一個動態(tài)的“博弈”過程[16]。但是傳統(tǒng)GAN 的網絡結構是單向生成,采用單一生成對抗損失優(yōu)化網絡參數,在訓練過程中會導致多個樣本映射到同一個分布,從而容易導致網絡的模式崩潰。所以本文采用雙層循環(huán)對抗網絡[14]的方式,有效避免了傳統(tǒng)網絡的缺點。該方法新增的多判別器網絡(圖1中紅色箭頭所示)可以有效克服生成的素描圖像細節(jié)特征不明顯、缺乏真實感的問題;重構誤差損失(圖1中橙色箭頭所示)計算生成圖像和目標圖像之間的L1距離,實現生成結果對整個網路的反向傳遞,增強原有網絡穩(wěn)定性。
1.1.1 素描人臉合成模型
假設給定一個數據集U由光學人臉圖像-素描人臉圖像對組成,本文方法中素描人臉合成的目標是學習兩個功能:B′=fps(A)代表光學人臉圖像A 生成素描人臉圖像B′;A′=fsp(B)代表素描人臉圖像B 生成光學人臉圖像A′。
本文方法包含四個生成模型,四個判別模型,MDCGAN 素描人臉合成框架如圖1 所示。其中兩個Gps為相同的生成器模型,共享相同參數,兩個Gsp生成器模型同理。生成器Gps采用真實的光學人臉圖像RA作為輸入,并輸出合成的素描人臉圖像FB;Gsp的目標是將素描人臉圖像轉換為光學人臉圖像,它將FB轉換回輸入的圖像本身,這里本文將其表示為RecA。因此,一般過程可以表示為:
同樣,素描到照片轉換可以表示為:
如圖1所示,MDC-GAN的生成器模型Gps和Gsp分別在不同分辨率級別生成和輸出圖像,四個判別器模型分別為用以鑒別生成圖像的真實性。由于GAN網絡在生成不同分辨率層級圖像的過程中,會隨著像素空間維數的增加,出現由像素空間不均勻覆蓋而導致的偽影。針對GAN網絡在偽影問題的局限性,本文選用多個獨立的判別子網絡對不同分辨率層級的圖像進行監(jiān)督,并向生成器提供對抗性反饋,形成隱式迭代的細化特征映射,從而生成高質量圖像。本文結構采用四個結構相對簡單的判別子網絡,只在訓練階段約束網絡,減少測試階段網絡的參數量和計算量。
1.1.2 生成網絡
傳統(tǒng)GAN 的生成網絡由簡單的卷積層和反卷積層組成,提取出的圖像特征所傳遞的信息質量不高,容易丟失圖像的細節(jié)特征,導致生成圖像模糊。而本文選用深度神經網絡提取圖像信息,利用生成器子網絡中隱藏存在的不同分辨率的特征圖映射,在低分辨率階段捕捉圖像細節(jié)特征,建立淺層信息與深層信息的傳遞通道,改變原有的單一線性結構。對于深度神經網絡,加深網絡層次是提高精度的有效手段,但是持續(xù)加深網絡深度會出現梯度彌散的問題。其原因在于反向傳播中誤差不斷積累,導致網絡最初幾層梯度值接近為0,從而無法收斂。測試發(fā)現,當深層網絡層數達到20層以上,會隨層數增加,收斂效果越來越差,出現深層網絡退化問題。
針對上述問題,本文生成器借鑒深度殘差網絡(Residual Network,ResNet)[17]的網絡結構,共包含3 個部分:前部是3 個卷積層,中部是9 個殘差塊,后部是2個轉置卷積和1個卷積層,共15層。卷積層結構如圖2所示,其中第一層和最后一層的卷積核尺寸為7×7,其余層卷積核尺寸均為3×3。在每次進行卷積操作前對特征圖進行邊緣補零(Zero-Padding)處理,用于防止圖像邊緣信息點丟失,并保持輸入與輸出維度相同。卷積結束后對特征圖進行實例歸一化(Instance Normalization)處理,目的在于歸一化當前層輸入,減小特征圖中不同通道的均值和方差對圖像風格的影響,并且加速模型收斂,提升網絡穩(wěn)定性。最后卷積激活層中采用帶泄露修正線性單元(Leaky Rectified Linear Unit,LeakyReLU)作為激活函數,轉置卷積激活層中將修正線性單元(Rectified Linear Unit,ReLU)設置為激活函數。轉置卷積層依次對不同分辨率的特征圖進行上采樣。每個轉置卷積層的特征圖譜通過3×3卷積層進行轉發(fā),生成不同分辨率的輸出圖像。
圖2 生成器網絡圖
1.1.3 判別網絡
GAN網絡中判別器模型的目的是學習生成圖像與真實圖像之間的差異,通過與生成器形成對抗學習的方式,提升識別出真假樣本的準確率以及優(yōu)化生成模型參數,聯合生成器下降梯度,提高生成圖像的質量。
傳統(tǒng)GAN 網絡判別器采用單層特征表達圖像信息,在識別過程中容易造成圖像細節(jié)丟失。本文使用70×70PatchGAN[13]構建判別器模型,與全圖像輸入的判別器相比其維度降低,所需參數更少,可以處理任意大小的圖像。而且PatchGAN判別模型中圖像間像素距離僅存在于每一個Patch,而不是整張圖像。這樣在素描人臉合成過程中,可以有效捕捉人臉中的一些高頻細節(jié)特征,例如面部紋理風格;而全局和低頻特征則由對偶聯合損失捕捉,從而合成的人臉圖像細節(jié)更豐富,更具素描風格。
本文提出的多判別器均采用全卷積網絡,多個通道最大程度提取圖像高頻特征信息,判別器網絡中將輸入圖像映射為70×70 的矩陣(Patch)X,對每個圖像局部分塊來進行判別。其中Xij的值代表輸入圖像中一個感受野,為每一個圖像局部分塊是否為真實樣本的概率,最后取輸出矩陣中Xij的均值作為PatchGAN判別器的輸出。本文方法中加入的判別器將不同分辨率級別的圖像轉化成多個圖像局部分塊,對每個塊單獨判別。判別器網絡結構如圖3 所示,由五層卷積操作組成,均使用4×4 大小的卷積核,輸入為不同分辨率的三通道圖像,前四層卷積核數分別為[64,128,256,512],且步長(Stride)為2。在卷積結束后連接批量歸一化(Batch Normalization)進行處理,激活層設置LeakyReLU 作為激活函數,第五層的卷積核數為1,步長為1。最后,將特征向量輸入至Sigmoid 激活函數[14],判別生成樣本是否符合真實樣本的分布。
圖3 判別器網絡圖
本文方法聯合生成對抗損失、重構誤差和對偶聯合損失共同訓練網絡,有效避免了傳統(tǒng)GAN 網絡中存在的模式易崩潰等問題。為了縮小生成樣本與決策邊界距離,MDC-GAN中聯合使用最小二乘損失和重構誤差損失改進CycleGAN中原有的生成對抗損失,并使用對偶聯合損失減少多余映射,提高生成圖像質量。
1.2.1 生成對抗損失和重構誤差
原始CycleGAN 網絡中交叉熵的損失函數如式(3)所示:
生成器使用交叉熵損失不會進一步優(yōu)化遠離決策邊界但被判別器鑒別為真的生成圖像,這樣會降低生成網絡生成圖像質量。對比交叉熵損失函數,本文選用的最小二乘損失函數會在判別器判決為真的前提下,把遠離決策邊界的生成圖像重新置于決策邊界附近,降低飽和梯度。通過使距決策邊界不同的距離度量構建出一個收斂快、魯棒性高的對抗網絡。
式中,Ai~pdata(Ai)是樣本A空間的服從的概率分布,Bi~pdata(Bi) 是樣本B空間的服從的概率分布,和表示各自樣本中的期望值。由式(4)可以得生成網絡與判別器的損失函數目標如式(5)所示:
為了使生成器的生成圖像盡可能接近目標圖像,本文采用最小化重構誤差LRec。其中重構誤差LRe c定義為合成圖像與目標圖像的L1范數,計算生成圖像與目標圖像之間的距離。本文使用L1范數能夠有效避免訓練中多張人臉圖像用一個單峰的高斯分布進行擬合,防止生成圖像過于平滑;而且L1范數魯棒性較好,能夠更好處理數據中的異常值,忽略生成圖像與目標圖像之間微小誤差,而去處理過大的誤差。網絡使用L1范數損失使其不會因對單一樣本誤差值,而影響其他正常的樣本,在一定程度上提升訓練網絡的穩(wěn)定性。LRec在兩個分辨率級別上都被最小化,其函數定義如式(7)所示:
1.2.2 對偶聯合損失
從理論上講,使用生成對抗損失可以學習到輸入域和目標域的映射關系,但是由于網絡容量大,訓練中單獨依靠對抗損失可能會出現多余映射的問題,導致生成器任意隨機排列輸入域到目標域的集合映射,圖像轉換過程中有效特征信息無法準確映射。因此,本文網絡通過在不同分辨率階段使用對偶聯合損失對前后一致性進行了正則化約束,從而減少輸入域到目標域可能存在的映射路徑;并能夠促使網絡增加采用更簡路徑的趨勢做映射以保持圖像輪廓結構,一定程度提升網絡映射性能,有效避免交叉映射。其函數定義式如式(8)所示:
綜上所述,完整的損失函數為生成對抗損失、重構誤差和對偶聯合損失之和,如式(9)所示:
其中αi,βi參數用于調整重構誤差損失和對偶聯合損失的權重。
在本章進行模型簡化實驗(Ablation Studies),以驗證所提出的方法的有效性。并給出了本文方法與現有方法在CUHK(The Chinese University of Hong Kong)[3]和AR(Aleix Martinez and Robert Benavente)[18]兩個常用數據集上的定性和定量結果比較。
(1)數據集:本文方法選用香港中文大學人臉素描庫(CUHK)中的188 張學生人臉進行實驗,其中每一張光學人臉圖像都有對應的素描人臉圖像,由藝術家根據一張在正常光照條件下正面拍攝的中性表情照片繪制出。其中選擇100 對光學人臉圖像-素描人臉圖像用作訓練集,28 對用作驗證集,60 對用作測試集。AR 人臉數據庫由阿聯酋計算機視覺中心工作人員創(chuàng)建,其中包括123 人超過4 000 張彩色圖像,每個人都挑選一張富有表情的正面光學人臉圖像和一張藝術家觀看照片時繪制的形態(tài)夸張的素描人臉圖像。AR數據集中光學圖像是在不同光照下拍攝,沒有限制人物的穿著、化妝品、發(fā)型等,而且與光學圖像相比素描樣本形態(tài)夸張,更接近刑偵場景,訓練時將123對光學人臉圖像-素描人臉圖像中100對用作訓練集,23對用作測試集。這兩個數據庫都包含面部特征點坐標,應用最新的人臉對齊算法進行對齊。
(2)實驗過程:在訓練模型過程中,網絡輸入圖像的大小為256×256,前100 個周期生成網絡與判別網絡初始學習率η為0.000 2,后100個周期學習率線性衰減為0。其中αi=1,βi=0.7,采用動量為0.5 的Adam 優(yōu)化器進行訓練,利用梯度一階矩估計(First Moment Estimation)和二階矩估計(Second Moment Estimation)動態(tài)調整每個參數的學習率在確定范圍內,在經過修正一階矩估計和二階矩估計的偏差后,經過多次迭代訓練使網絡模型逐漸收斂,并保存網絡參數,網絡中批處理大?。˙atch-size)為1。本文中所有模型均在PyTorch中實現,GPU 為英偉達公司NVIDIA Titan X(Pascal),其中CUHK 人臉數據集和AR 人臉數據集分別迭代200 次,均用時4 h,且本文改進網絡參數規(guī)模為30.68×106。其中圖像大小為256×256,測試階段合成單張圖片平均耗時約0.140 s,滿足實時性要求。
2.2.1 模型有效性實驗
本文在CycleGAN的基礎上,利用生成器子網絡中隱藏在不同級別分辨率的特征圖映射關系,提出多判別器循環(huán)生成對抗網絡的素描人臉合成方法。該方法在生成對抗損失中使用最小二乘損失替換原始網絡中的交叉熵損失,使用L1范數描述重構誤差損失和對偶聯合損失損失。
為了驗證本文提出的多判別器網絡結構在素描人臉合成的有效性,將本文方法與CycleGAN在CUHK人臉數據庫進行驗證。CycleGAN與本文方法保持完全相同的數據集和參數進行訓練。在CUHK 學生人臉數據庫中的生成圖像的效果如圖4 所示。其中第一行至第四行分別為輸入圖像、真實圖像,以及CycleGAN、本文方法生成的素描人臉圖像。
圖4 改進方法對比
通過圖4所示可以看到,與原始CycleGAN相比,本文方法生成的素描面部圖像具有更清晰的輪廓,細節(jié)更完整。在面部特征上與原圖更相近,尤其是對五官的表現更加準確與銳利;在風格方面,本文方法生成的樣本更具有素描風格。表1比較了CycleGAN與本文方法在CUHK 數據集上的結構相似度(Structural Similarity Index,SSIM)[19]和特征相似度(Feature Similarity Index,FSIM)[20]數值,其中度量標準SSIM 和FSIM 的值越大,代表生成的素描圖像與輸入的真實樣本結構越相似,質量越高。由表1可見,本文方法計算出的生成圖像與真實圖像的SSIM 和FSIM 結果均優(yōu)于CycleGAN 計算結果,驗證本文方法網絡結構的有效性。
表1 模型對比實驗在CUHK數據庫中SSIM值與FSIM值
為了進一步驗證本文損失函數在訓練模型中的有效性,在實驗中分別設計了四組實驗,并在CUHK 數據集進行驗證,其中基礎網絡的網絡結構與本文方法相同,損失函數中包含生成對抗損失和對偶聯合損失,其中使用交叉熵損失函數描述生成對抗損失。對不同損失函數的生成素描圖像的效果如圖5 所示。其中第一行至第六行分別為輸入圖像、真實圖像、基礎網絡、基礎網絡+LLSGAN(基礎網絡中最小二乘損失替換交叉熵的損失),基礎網絡+LRec(基礎網絡中增加重構誤差)、基礎網絡+LLSGAN+LRec(網絡只采用生成對抗損失和重構誤差),以及本文方法生成的素描人臉圖像,在CUHK 數據庫中SSIM 值與FSIM 值的損失對比實驗如表2所示。
圖5 損失函數對比
表2 損失對比實驗在CUHK數據庫中SSIM值與FSIM值
由圖5 中可以看出基礎網絡使用交叉熵損失函數時生成的素描圖像的面部細節(jié)相對較差,第三行中人物的五官,如嘴唇等,都出現了明顯的模糊效果;而第四行使用最小二乘函數作為生成對抗損失后,生成的素描面部圖像細節(jié)更加清晰,克服了模糊效應。但是由于重構誤差的缺失,導致部分發(fā)型特征缺失(紅色標記);第五行使用重構誤差的生成圖像中面部特征未出現較大誤差,面部清晰度較低;第六行網絡損失函數中不包含對偶聯合損失,生成的素描圖像中第一張樣本人物發(fā)型輪廓模糊,第二張面部五官輪廓模糊,第三張圖像與真實圖像形態(tài)差異較大(紅色標記);本文方法中的素描圖像均未出現面部失真、特征缺失等問題。通過對比不同改進方法的生成圖像來看,本文方法的生成圖像特征完整,細節(jié)清晰,更具素描風格,并由表2 可見,本文方法的SSIM 和FSIM 值均優(yōu)于其余損失對比組,驗證本文方法損失函數的有效性。
2.2.2 方法對比實驗
本文方法與現有不同類型的素描人臉合成方法進行了對比實驗,并且和有效性實驗一樣,使用結構相似度(SSIM)和特征相似度(FSIM)進行量化對比,度量結果如表3所示。在CUHK的合成效果如圖6所示。其中第一行為輸入光學圖像,第二行為真實素描圖像,第三行至第七行分別為馬爾可夫權重場(Markov Weight Field,MWF)[21]、Pix2Pix[13]、CycleGAN、DiscoGAN[22]、本文方法生成的素描人臉圖像。
表3 CUHK數據庫中SSIM值與FSIM值
圖6 不同合成方法在CUHK上的對比
由圖6 可以看出,傳統(tǒng)方法中MWF 的合成效果比較模糊,而CycleGAN、DiscoGAN、Pix2Pix 等方法由于在生成高分辨率圖像時網絡的不穩(wěn)定性,往往會在生成圖像中產生小塊的偽影。相比之下,本文方法(MDCMAN)能夠對隱藏層進行監(jiān)督,最大程度保留圖像高頻特征,最小化素描圖像的偽影,并且本文方法的生成樣本更接近素描風格。此外,由于在訓練模型時可能出現參數丟失,使得DiscoGAN 的合成樣本出現顏色失真,缺乏素描風格。因此,本文使用目標和合成圖像之間的重構誤差約束網絡,增強網絡穩(wěn)定性。由表3 可見,本文方法在CUHK數據集下SSIM值和FSIM值分別優(yōu)于其他方法的計算值,說明MDC-GAN生成的素描圖像質量更高,與原圖結構更相似。
為了進一步驗證本文方法的合成效果,與現有不同類型的素描人臉合成方法在AR人臉數據庫的對比驗證如圖7所示。其中第一行為輸入光學圖像,第二行為真實素描圖像,第三行至第七行分別為LLE[23]、MWF、Pix2Pix、DiscoGAN、本文方法生成的素描人臉圖像,同時也對生成圖像進行了定量值比較,如表4所示。
使用AR人臉數據庫進行素描人臉合成更具有挑戰(zhàn)性,因為原始圖像中人物面部細節(jié)更多,并加入了人物飾物。從圖7可以看出,傳統(tǒng)方法合成的素描人臉圖像中,由于LLE方法可能在尋找最優(yōu)圖像塊集合過程中丟失較多高頻信息,導致生成的圖像出現了部分偽影(第三行紅色標記),并且出現圖像輪廓模糊;MWF 方法生成的圖像面部失真嚴重;Pix2Pix、DiscoGAN 方法生成的圖像偽影較傳統(tǒng)方法減少,但仍然存在(第三、四行紅色標記)。并且DiscoGAN 訓練階段采用S 形交叉熵作為對抗損失,很難使生成模型達到最優(yōu),導致面部清晰度較低。而本文方法的合成效果明顯優(yōu)于其他方法,并且面部輪廓清晰,同時保留高頻細節(jié)和最小化偽影。并且在眼睛、胡須、發(fā)型等面部特征方面,即使在拍攝時人物環(huán)境出現干擾因素,例如眼鏡出現反光等,仍具有較好魯棒性。所以本文方法生成的圖像質量較現有方法相比取得了更好的結果,與真實素描圖像重合度更高。并且由表4 定量分析可以看出,面對復雜的AR 人臉數據庫,本文方法較其他方法仍表現出優(yōu)異性。
圖7 不同合成方法在AR上的對比
表4 AR數據庫中SSIM值與FSIM值
通過模型簡化實驗,與現有方法比較,并且對生成的素描圖像進行定性與定量的實驗分析表明,本文提出的多判別器循環(huán)生成對抗網絡(MDC-GAN)的素描人臉合成方法,能夠生成更真實的素描圖像,并且在多種質量標準(SSIM和FSIM)比較方面,本文方法均能取得顯著的改進,輸出高質量圖像。
本文提出了一種基于多判別器循環(huán)生成對抗網絡的素描人臉合成方法。該方法提出對判別器子網絡隱藏層進行對抗性監(jiān)督的網絡結構,通過多判別網絡對生成網絡的反饋傳遞優(yōu)化完善生成圖像中高頻特征細節(jié),并且使用最小二乘損失描述生成對抗損失,結合重構誤差損失和對偶聯合損失,生成高質量圖像。實驗結果表明,本文方法較其他方法在主觀視覺和客觀量化等方面都取得了更好的評價,能夠獲得細節(jié)完整、輪廓清晰的高質量素描面部圖像,能夠充分應對復雜情況下的生成素描圖像任務并具有良好的魯棒性。