陳軍波,劉 蓉,劉 明,馮 楊
(華中師范大學 a.物理科學與技術學院; b.計算機學院,武漢 430079)
情感是人類社會交流中一種復雜而又穩定的態度體驗。其中,面部表情作為最常見的情感行為,是人類交流時信息傳遞的重要媒介。文獻[1]研究表明,當人們在進行面對面交流時,面部表情能傳遞多達55%的信息,使人們面對面交流更生動形象。近年來,隨著智能人機交互技術的快速發展,人們嘗試在藝術和娛樂等領域進行有關面部表情的研究,試圖重現逼真、自然的面部表情,因此,面部表情遷移成為計算機視覺領域的研究熱點。
傳統的面部表情遷移方法在構建人臉模型的基礎上進行插值、圖像變形、模擬、合成等操作生成面部表情。文獻[2]構建的肌肉模型模擬面部表情的生成過程,生成逼真的人臉表情,文獻[3]采用有限元方法建立一種結構復雜的表情生成模型來生成面部表情,文獻[4]則提出靜態峰值表情合成方法。近年來,國內的很多研究人員也都著眼于面部表情遷移的研究,且取得了一定成果。文獻[5]提出STNB變形和單視角圖片的人臉表情合成技術,文獻[6]提出一種針對人臉表情生成的網格劃分技術用于劃分人臉主要器官,生成各種特定的表情,文獻[7]則建立了基于AAM-Candide結合的快速表情動畫合成模型。
隨著深度學習概念的提出和發展,人們嘗試設計條件對抗網絡進行面部表情遷移研究。文獻[8]提出圖像到圖像轉換的有條件對抗網絡,在成對表情示例的條件下,輸入指定表情類別以生成帶表情樣本。文獻[9]提出用于圖像編輯的可逆條件對抗網絡IcGAN,對任意屬性上的面部條件映射的真實圖像進行重構和修改,實現表情風格遷移,但不能保持圖像身份特征。為解決成對數據集難以獲取、圖像身份特征難以保持等問題,文獻[10]提出循環連續對抗網絡CycleGAN,文獻[11]提出跨域生成式對抗網絡DiscoGAN,在沒有配對示例的情況下,利用循環損失、保持輸入、輸出圖像的身份特征,實現面部表情遷移。對比傳統方法,循環連續對抗網絡和跨域生成對抗網絡具有循環學習、輸入可為任意圖例等優點,但要實現多表情的遷移需要訓練多個生成網絡,由此導致模型復雜和訓練時間長的問題。
針對現有生成式模型配對面部表情示例不易獲取、難以保持身份特征以及需要訓練多個生成網絡等問題,本文提出基于條件生成式對抗網絡的面部表情遷移模型。通過為生成模型指定表情域,使單個生成器學習多個表情域之間的映射,同時引入域分類損失函數確保生成表情的真實性。
在日常生活中,情緒扮演著極其重要的角色,情緒的表現和傳遞可通過多種行為方式實現,如語言內容、肢體手勢、面部表情等。其中,面部表情被認為是最常見的情感行為信號。最初人類對面部表情的研究主要集中在社會學和心理學領域[1,12],社會學家和心理學家主要關注面部表情在情緒中的表現形式、面部表情的統一性以及面部表情在日常交流中的作用等問題。
達爾文對面部表情進行了研究,指出人類天生就可以表現出一些基本的表情,隨后掀起了人們對面部表情研究的浪潮。文獻[12]研究表明,表情在不同種族和文化背景之間具有普遍的一致性。20世紀70年代,美國心理學家EKMAN和FRIESEN通過大量實驗,定義了人類6種基本表情[13]:憤怒,厭惡,恐懼,悲傷,高興和驚奇,并系統地建立了包含上千幅不同人臉表情的圖像庫。此后,研究者在此基礎上構建了不同分類的表情庫:文獻[14]公開JAFFE庫,在6類表情的基礎上增加了第7類表情——中性表情,并將其廣泛應用于表情分類、表情識別等領域;文獻[15]發布了擴展Cohn-Kanade數據庫(CK+),該庫中的表情除了6種基本表情外又增加了蔑視和中性2種表情。上述研究者認為表情是和種族文化相獨立的,是具有全人類性的。隨著表情分類研究的深入,人臉表情被分為7類[14],即憤怒(anger)、厭惡(disgust)、恐懼(fear)、微笑(happy)、中性(neutral)、悲傷(sad)和驚訝(surprise),為面部表情應用到表情識別、分類和遷移等領域提供了重要的依據。
面部表情遷移是指將一個攜帶表情的人臉圖像,經過遷移變換等操作,遷移到另一個中性表情的人臉中。面部表情遷移被應用于人機交互、數字娛樂、虛擬現實等領域。在人機交互中,通過機器實時生成豐富多樣的表情,使機器與人交流溝通過程中更加真實和自然,智能機器更擬人化;在虛擬現實中,在歐洲誕生的首個虛擬播音員安娜、虛擬導購等虛擬人物,也都使用了面部表情遷移技術。在數字娛樂領域,利用面部表情遷移技術可為游戲和動漫角色生成各式各樣的表情,讓電腦游戲、動漫視頻的場景以及人物變得越來越真實,給用戶一種身臨其境的感覺。面部表情遷移作為一個跨學科的研究方向[16],涉及計算機視覺、模式識別、圖像處理、人機交互和計算機圖形學等多個領域可促進和推動其她領域和學科的發展。
近年來,研究者針對面部表情遷移提出多種有效的方法與模型。傳統面部表情遷移方法通過模擬面部表情、提取靜態峰值、表情合成等方法生成面部表情。文獻[17]提出一種基于三方博弈和信息對稱的可控人臉生成算法FaceID-GAN。文獻[18]提出基于解剖結構的面部表情生成算法GANimation,在解決無配對表情數據集、無監督面部表情遷移、面部身份特征一致等問題的基礎上進行面部表情遷移。然而,現有模型和方法普遍存在難以同時生成多表情、模型復雜、訓練時間長等問題。因此,本文建立基于條件對抗網絡的面部表情遷移模型,開展針對7種面部表情遷移的研究。
生成式對抗網絡[19]包含2個模型:捕獲數據分布的生成模型G和判別模型D。基于先驗隨機噪聲向量z,通過2個模型相互對抗學習,可生成近似服從真實數據分布的圖像。在對抗訓練中,判別模型作為一個二分類器,用于區分真實圖像和生成圖像,而生成模型通過隨機噪聲z學習數據分布,生成逼真的圖像,試圖“欺騙”判別器,在整個過程中尋求全局最優解。但為了更好地控制生成結果類別,在生成模型和判別模型中輸入某些額外條件信息例如類別標簽,可擴展到條件生成對抗網絡[20],通過指定類別標簽信息,實現控制網絡輸出的目的。條件生成式對抗網絡的結構如圖1所示。

圖1 條件生成式對抗網絡結構
在條件生成器中,先驗隨機噪聲z和額外條件信息y以聯合隱藏表示的形式組合作為生成器的輸入,而將真實樣本和條件信息y作為判別器的輸入。在訓練中對兩者進行極大極小博弈,可表示為如下目標函數:
Ez~pz(z)[loga(1-D(G(z|y)))]
(1)
其中,pdata(x)表示真實數據分布,pz(z)表示先驗隨機噪聲分布,x表示真實樣本數據,y表示額外條件信息,Ex~pdata(x)[D(x|y)]表示將真實樣本x判別為條件信息y的概率,Ez~pz(z)[ (1-D(G(x|y)))]表示生成樣成樣本G(x|y)為真實樣本的概率。
2.2.1 網絡模型結構
本文構建基于條件生成式對抗網絡的面部表情遷移模型,主要用于解決以下問題:
1)在給定目標表情域標簽下,使生成器學習一個映射G,該映射將輸入圖像x和表情域標簽y映射為相應表情域的圖像G(x,y)。
2)采用重構損失函數,通過計算生成網絡的重構圖像與真實原始圖像之間的距離,優化生成網絡參數,確保生成網絡在面部表情遷移中能保持面部身份特征的一致性。
3)在判別器D和生成器G上分別引入域分類損失,即真實圖像的域分類損失函數和判別器D,通過最小化該損失,正確地將真實圖像分類到相應原始表情域。
對于偽圖像的域分類損失函數,生成器G試圖最小化此損失以生成可被正確分類為目標表情域的圖像,并且同時實現7種面部表情遷移。
為實現此目標,本文設計了使用圖2所示結構的面部表情遷移模型。

圖2 基于條件生成式對抗網絡的面部表情遷移模型結構
圖2中左邊為生成模型,參考了文獻[21]提出的多域圖像到圖像轉換的統一生成對抗網絡StarGAN,由輸入層、下采樣層、殘差塊、上采樣層以及輸出層組成,其中輸入層和輸出層僅包含一個卷積層,下采樣層和上采樣層均有2個卷積層,殘差塊包含6個深度、大小都相同的卷積層。右邊為判別模型,分為3個部分,即輸入層、隱藏層和輸出層,除輸出層外,其余層卷積深度均為前一層的2倍,最后輸出層包含2個卷積輸出,分別用于判別輸入圖像真假和表情域。
參考條件生成式對抗網絡的網絡模型,根據面部表情遷移的特點,本文構建的網絡模型具有如下特點:
1)在生成模型中使用步長為2的微步幅卷積或反卷積代替池化層,在判別器中除輸出層使用步長為1的微步幅卷積外,其余層均使用步長為2的微步幅卷積。
2)生成模型每個卷積層后都添加InstanceNorm層,除輸出層使用Tanh激活函數外,其余層均使用Relu激活函數。
3)判別模型除輸出層外,其余層均使用LeakyRelu激活函數。
2.2.2 生成模型
生成模型用于學習多表情域映射,其將輸入圖像和目標表情域標簽映射為相應表情域的圖像,包含輸入層、下采樣層、殘差塊、上采樣層以及輸出層。為在輸入圖片上提取面部表情特征,輸入層中輸入大小為128像素×128像素的彩色圖像和目標表情域標簽,采用步幅為1的微步幅卷積,輸出128像素×128像素大小的特征圖。下采樣層利用步幅為2的微步幅卷積,將輸入特征圖壓縮一半,輸出特征圖大小為32像素×32像素,確保生成網絡在遷移學習中能獲得提取面部表情特征的能力。同時,為解決傳統卷積層在信息傳遞時存在的信息丟失和損耗等問題,模型中引入殘差塊,保持輸出特征圖不變,即32像素×32像素。而為了讓生成圖像具有和輸入圖像相同的尺寸,上采樣層使用步幅為2的反卷積,每個反卷積層輸出圖像為輸入圖像的2倍,輸出128像素×128像素大小的特征圖。最后,輸出層通過步幅為1的反卷積重構逼真、自然的面部表情圖像,生成圖像與原始圖像大小保持不變。為加速生成模型的收斂,保持每個圖像樣本之間的獨立,在生成器的輸出層之前均添加實例規范化處理層[22]。生成模型結構參數如表1所示。

表1 生成模型參數
2.2.3 判別模型
本文設計的判別模型作為一個二分類器,有2個作用:1)判別輸入圖像為真實圖像的概率;2)判定輸入圖像所屬表情域。判別模型由輸入層、隱藏層和輸出層構成。其中,輸入層輸入為128像素×128像素的彩色圖像,先采用64個步幅為2的卷積核,提取輸入圖像表情特征,輸出64像素×64像素的特征圖。為提取穩定可靠的表情特征,設計包含5個卷積的隱藏層,其卷積核的個數分別為128、256、512、1 024、2 048。輸出層對應2個輸出:Dimg和Dclas。Dimg輸入為隱藏層第4層的輸出,利用深度為1步幅也為1的卷積核做卷積運算,輸出2×2×1的張量數據,表示輸入為真實圖像的概率;Dclas將隱藏層最后一層輸出作為輸入,采用ny(ny為遷移表情的個數)個步幅為1的卷積核,輸出一個1×1×ny的張量數據,表示輸入圖像所屬表情域的概率。判別模型結構參數如表2所示。

表2 判別模型參數
本文模型訓練針對3個目標:1)使判別器無法區分生成圖像與真實圖像;2)判別輸入圖像所在表情域;3)重構原始圖像。因此,采用3種不同損失函數:計算輸入圖像與輸出圖像之間差距的對抗損失函數,用于優化生成模型G或判別模型D的域分類損失函數,以及為保留身份特征引入的重構損失函數。損失函數用于估計模型中的預測值與真實值的不一致程度,其為非負實值函數,損失函數越小,模型的魯棒性就越好。
2.3.1 對抗損失函數
本文網絡模型的目標是利用單個生成器G學習多個表情域之間的映射,將標準圖像x和表情域標簽y映射為樣本分布G(x,y),并在判別器中引入輔助分類器[23],允許單個判別器在原始表情域與目標表情域標簽上產生概率分布:D:x→{Dimg(x),Dclas(x)}(Dimg(x)為輸入圖像x為真的概率,Dclas(x)為輸入圖像x被正確分類為表情域的概率)。為使判別器無法區分生成圖像與真實圖像,采用如下對抗性損失函數:
Ladv(G,D)=Ex[logaDimg(x)]+
Ex,y[loga(1-Dimg(G(x,y)))]
(2)
其中,G(x,y)表示輸入圖像x和表情域標簽y的映射,Dimg(x)表示x為真實圖像的概率,Dimg(G(x,y))表示生成器生成圖像為假的概率。生成器G試圖使該損失最小化,而鑒別器D試圖使其最大化。
2.3.2 域分類損失函數

(3)
其中,Dclas(y′|x)表示圖像x被分類為表情域y′的概率。判別器D通過最小化此損失,可正確地將真實圖像分類到原始表情域y′。
(4)
其中,Dclas(y|G(x,y))表示生成器生成的偽造圖像被分類為表情域y的概率。生成器G試圖最小化該損失以生成可被正確分類為表情域y的圖像。
2.3.3 重構損失函數
通過最小化對抗損失和域分類損失,生成器G具有生成逼真圖像且將其分類到正確表情域的能力。然而,最小化對抗損失和偽圖像的域分類損失并不能保證輸入圖像的身份特征,而僅能改變輸入中與表情相關的部分。為在面部表情遷移過程中保留面部圖像的身份特征,將循環一致性損失[10]應用于生成器,定義為:
Lcyc(G)=Ex,y,y′[‖x-G(G(x,y),y′)‖1]
(5)
其中,生成器G采用L1規范作為重建損失,將映射得到的圖像G(x,y)和原始域標簽y′作為輸入,嘗試重建原始圖像x。
2.3.4 總損失函數
在本文網絡模型中,生成器G和判別器D分別具有不同的損失函數。生成器G的損失函數主要包括對抗損失、偽圖像域分類損失和重構損失。對抗損失計算生成圖像與真實圖像之間的距離,確保生成器G在學習樣本分布中獲得欺騙判別器的能力。偽圖像域分類損失計算生成的偽圖像域與真實域的誤差,確保生成器G生成逼真、自然、符合真實表情域的面部表情圖像。對抗損失和域分類損失不能保證輸入圖像的身份特征。為解決身份特征不能保持的問題,在模型中引入重構損失,通過計算重構圖像與真實圖像之間的誤差,確保生成器G保留面部圖像的身份特征。生成器G的總損失定義為:
(6)

判別器D作為一個二分類器,達到以下2個目的:1)學習正確區分偽造圖與真實圖;2)確保將偽造圖與真實圖正確分類到對應表情域。判別器總損失函數由對抗損失和真實圖像的域分類損失兩部分組成。對抗損失計算真實圖像與偽造圖像之間的距離,提高判別器辨別真假的能力。通過利用真實圖像的域分類損失增強判別器區分表情域的能力。判別器D的總損失定義為:
(7)

在式(6)、式(7)中,λclas和λcyc分別是控制域分類損失和重建損失相對重要性的超參數。在本文實驗中都使用λclas=1和λcyc=10。
本文實驗在Ubuntu 16.04.2操作系統、雙核Intel 2.2 GHz CPU、Tesla K80 GPU、11 GB內存、1 TB硬盤平臺下進行,并使用基于GPU版本的Tensorflow1.2 深度學習框架。在模型對抗訓練期間,采用參數β1=0.5,β2=0.999的Adam優化器[24]優化更新網絡模型參數。在鑒別器參數更新5次之后更新1次生成器參數。對于所有實驗,批量大小設置為16。
實驗采用2種不同類型的數據集:CelebA[25]和FERG-DB[26]。CelebA是香港中文大學開放數據集,包含10 177個名人的202 599張圖像,并都做了特征標記,每張圖像均包含40個屬性特征,其中僅有一種表情特征:微笑,本文實驗選用此特征進行微笑表情遷移。隨機選取4張帶微笑表情的示例圖像,如圖3所示,其中圖像具有不同微笑尺度、膚色、發色、性別、背景顏色以及人臉角度等特點。

圖3 CelebA數據庫帶微笑表情示例圖像
FERG-DB數據集是面部表情研究組數據庫,是具有帶注釋的面部表情程式化角色的數據庫。該數據庫包含6個風格化人物的面部圖像,分為7種類型表情:憤怒,厭惡,恐懼,微笑,中立,悲傷,驚訝,共55 767張圖像。風格化人物7種表情示例圖像如圖4所示,其中卡通圖像具有高質量的7種表情,且每種表情具有逼真、自然、容易區分等特點,適用于面部表情遷移研究。

圖4 FERG_DB數據庫7種表情示例圖像
在CelebA數據集實驗中,將CelebA數據集按9∶1的比例分為訓練集和測試集,得到182 339張訓練圖像和20 260張測試圖像。將所有圖像裁剪、壓縮變換得到大小為128像素×128像素樣本圖像,作為模型在訓練時的標準輸入。同時,本文構建了包含100張128像素×128像素圖片的驗證集,驗證集的圖像來自于實驗室的碩士研究生圖像和網絡中下載的明星人臉圖像,其中男性圖像50張、女性圖像50張,且每張圖像背景、清晰度等都不同。隨機選取驗證集中4張中性表情的示例圖像,如圖5所示。

圖5 中性表情人臉圖像
為評估本文模型在微笑表情數據集遷移中的性能,首先采用訓練集圖像訓練模型,在對抗訓練中需執行30次迭代,每次迭代訓練10 000步,前15次迭代的學習率設置為0.000 1,后15次迭代將學習率線性衰減為0。然后利用測試集圖像測試模型面部表情遷移效果,優化確定模型參數。最后用驗證集圖像驗證模型,以圖5中4張中性表情圖像為例,采用本文網絡模型和StarGAN網絡模型[21]進行面部表情遷移,生成帶微笑表情圖像結果如圖6所示。對比2種模型微笑表情遷移圖像結果可知,本文模型通過引入重構損失,生成帶微笑表情圖像,具有質量高、自然、逼真的特點,在面部表情遷移過程中能更好地保持面部身份信息和背景信息的一致性,證明了本文模型在微笑表情遷移中的有效性。

圖6 微笑表情遷移圖像
對于FERG-DB數據集,隨機選取其中5個風格化人物圖像作為訓練集和測試集,用同樣的預處理方法,獲得大小為128像素×128像素的標準輸入,按相同比例劃分后,訓練集有40 046張圖像,測試集有4 450張圖像。最后,采用另外一個風格化人物的200張中性圖像作為驗證集。
為證明本文模型可同時遷移7種表情,使用FERG-DB數據集,模型輸入為訓練圖像和表情域條件組合而成的128×128×10數據,訓練迭代20次,一次迭代訓練10 000步,前10次迭代學習率設置為0.000 1,后10次迭代中線性衰減為0,每訓練1 000步,測試輸出生成的表情圖像,以確定最好的模型參數。最后,在FERG-DB驗證集中,通過本文設計網絡模型與StarGAN網絡模型進行7種面部表情遷移,實驗結果如圖7所示。可以看出,2個模型都能同時進行7種面部表情遷移,但本文模型通過設計判別網絡的2個輸出和增加域分類損失,生成面部表情比StarGAN網絡更自然、逼真,具備較好的擬合真實面部表情的能力。實驗結果表明,本文模型可同時生成7種表情圖像,每種表情圖像很好地保持了面部身份特征,且生成表情圖像與真實表情圖像有較高相適性,顯示本文方法在7種面部表情遷移中具有良好的魯棒性。

圖7 FERG-DB驗證集上生成的7種面部表情圖像
圖6和圖7中與StarGAN模型的對比實驗結果表明,本文提出的網絡模型能清晰地生成自然、逼真的面部表情,并且恰當地保持面部身份信息,同時實現7種面部表情的遷移。與文獻[10]中提出的循環卷積對抗網絡,通過單個屬性特征的映射,實現表情風格遷移相比,本文模型訓練更少的生成網絡,實現多種表情風格的遷移;與文獻[9]提出的可逆條件生成對抗網絡,通過改變條件向量保留潛在向量來合成圖像相比,本文模型能更好地保留輸入圖像的身份信息。
本文構建一種基于條件生成式對抗網絡的面部表情遷移模型,通過指定表情域條件,使單個生成器學習多表情域之間的映射,同時引入域分類損失,使判別器將輸入圖像正確分類到相應目標表情域,使生成器獲得更真實的表情偽造能力,最后達到理想條件下的納什均衡,生成逼真、自然的面部表情圖像。本文模型在單個數據集下的實驗效果較好,而在FEGR-DB的卡通表情數據集與帶微笑表情的CelebA數據集之間的遷移質量較差,如何實現較大差異數據集之間的面部表情遷移,將是下一步的研究重點。