劉韻婷,靳佳暉,陳亮,張景異
(沈陽理工大學自動化與電氣工程學院 沈陽 110159)
人臉表情生成技術是人工智能研究領域的熱點之一,由于不同人種之間臉部輪廓和不同年齡段人群皮膚紋理存在差異等問題,給生成真實感的人臉表情任務帶來很大的挑戰。面部角度、光線、復雜的背景環境都會給生成效果帶來影響。
傳統的表情生成方法有多種,表情漸變技術使用幾何或參數插值方式在同一個人兩幅不同表情之間進行控制面部表情[1-2],插值的幀間形變函數根據表情任務的復雜度確定,線性插值由于簡單而被廣泛使用。然而,在實際應用中,通常會存在不同人之間表情轉換的需求,表情映射法可實現任意人物不同表情的合成,一般的表情映射需要兩個人物的中性表情,獲取同一個人的中性表情和目標表情的特征差值作用到特定的中性人臉表情上[3],該方法僅解決了新表情的生成,忽略了表情轉化引起皮膚的紋理變化,使生成的圖像缺少真實感。二維網格法綜合考慮了這兩個方面,頭部的幾何信息抽象出由三角形組成的網格結構,并用參數化模型表示,改變表情肌肉群對應的三角頂點位置參數合成新的表情。同時,為了完成皮膚細節的變化,對改變后的圖像像素進行重新分配[4]。
隨著計算機硬件條件的提高,使用大規模參數運算的深度學習變為流行,2014 年文獻[5-6]提出了生成對抗網絡(generative adversarial networks,GAN),使生成對抗網絡在深度學習領域掀起了熱潮,圖像域間的轉換、臉部外觀改變等高質量圖像的生成技術出現。與只考慮特定外觀修飾的面部屬性編輯相比,面部表情編輯是一項更具挑戰性的任務,因為它通常涉及較大的幾何變化,需要同時修改多個面部成分。
目前生成離散的面部表情模型居多,這些網絡基本可完成面部屬性變化的任務[7-9]。IcGAN 利用兩個Encoder 網絡分別對輸入圖像提取頭部基本特征向量和屬性特征[10],將頭部屬性特征向量對應位置的特征值進行0-1 轉換,使其轉換為目標向量。再與基本特征向量串聯輸入到生成網絡IcGAN。在生成離散表情領域里,StarGAN 是最成功的框架,可生成多屬性的高清人臉圖像。該網絡把表情作為其中一個目標屬性域,使用單個生成器學習多領域圖像之間映射關系[11]。由于StarGAN 在屬性標簽的基礎上完成圖像生成,生成的目標表情受數據集表情標簽限制,在數據集注釋粒度定義的離散屬性中改變面部一個特定的部分,在表情方面只能渲染離散的情緒類別。
在實際的應用中,希望模型可合成任意表情,然而表情幅度可控的高質量圖像生成研究較少[12-14],ExprGAN 是第一個基于GAN 模型且將允許連續地控制表情強度,該模型能夠分離地學習身份特征和表情表示,但每種表情僅允許5 個固定強度變化[15]。G2-GAN 使用面部幾何(基準點)作為可控制條件來指導具有特定表情的面部紋理合成,一對生成性對抗性子網絡被聯合訓練做相反的任務:表情移除和表情合成。成對的網絡在無表情人臉和表情人臉之間之間形成一個映射循環,能很好地捕捉表情變化引起的面部紋理的變化,合成不同強度的表情[16]。GANimation 算法能夠在一個連續的區域內生成具有解剖學意義的更廣泛的表情,無需預先計算輸入圖像中面部標志點的位置[17],通過編碼臉部肌肉運動單元AU(action unit),調節臉部某些區域肌肉運動強度,從而實現復雜的面部表情合成。但是,該模型容易在表情密集區域產生偽影和模糊,提取的特征還原不到位,表情操控能力相對較弱,存在生成圖像達不到目標表情要求的問題。
為了解決這些問題,對GANimation 生成器的網絡結構進行改進,在生成器的Decoder 中加入一層上采樣,保持數據維度一致,且在生成器的Encoder 和Decoder 特征層之間以長跳躍連接的方式引入4 個多尺度特征融合模塊(multi dimension feature fusion,MFF),每個模塊融合來自當前層的編碼特征和添加在下一層融合模塊的融合特征,提高圖像質量和表情編輯性能。
近年來,生成對抗網絡已經在面部表情合成任務中取得了重大的進展,改進后的網絡使用符合人類解剖學的面部動作編碼系統(facial action coding system for human anatomy,FACS),以肌肉動作單元AU 向量來描述面部表情[18]。如圖1 的表情,由以下AU 激活產生:眉毛內側向上拉起(AU1)、眉毛外側向上拉起(AU2)、上眼瞼提升(AU5)、嘴角向下拉肌肉(AU25)、AU26(下頜下垂)[19]。AU 輸入到網絡模型,通過控制其強度值實現連續面部表情的生成。

圖1 表情對應的臉部肌肉區域
改進后的連續表情生成網絡模型結構由生成器G 和判別器D 組成,如圖2 所示。2 個G 網絡分別提取目標表情AU 向量yg的操縱特征以合成目標表情圖像和使用原表情AU 向量y0對生成表情進行還原重構。判別器D 判別圖像的真偽以及回歸目標表情向量和。該算法采用無監督的學習方式,即不需要同一個人不同表情的圖像對比,也不需要目標圖像的已知。

圖2 改進后連續表情生成模型結構
生成器的Encoder 部分通過下采樣獲得表情動作單元操縱的高級抽象,但是下采樣不可逆地降低空間分辨率和特征圖的細節,這些細節無法通過反卷積完全恢復,導致生成的面部缺失模糊,表情強度不夠。為了提高編輯結果的圖像質量,本文構建了多尺度特征融合模塊MFF[20],在生成器的編碼與解碼網絡之間以跳躍連接的形式引入,用在不同的空間分辨率下增強圖像的修改特征。圖3 給出了一個多尺度特征融合模塊MFF 的輸入輸出,當前層的編碼特征是指所加MFF 模塊對應位置的編碼特征,輸出在不同空間大小下學習的融合特征。

圖3 多尺度特征融合模塊的輸入輸出
圖4 給出了多尺度特征融合模塊MFF 的內部結構。在不失一般性的前提下,以第i層的MFF 模塊為例,fi和fi+1分別表示來自編碼器第i層的圖像編碼特征和第i+1 層的MFF 模塊輸出的融合特征,兩個輸入并行計算,輸出融合后的特征為fi′。該模塊內部操作有上采樣(trans conv)、下采樣(strided conv)和卷積單元(conv unit),其中,下采樣層和上采樣層卷積核大小都為4×4,其余卷積層核大小為5×5。應用卷積單元和上下采樣獲取不同空間大小的特征,下采樣特征與來自第i+1 層的MFF 模塊的高級特征連接,以多尺度的方式協作學習和轉換圖像特征。
生成器的特征層通道數在結構上保持對稱,圖片編碼和解碼的信息內容保持一致。改進后的生成網絡通過包含上下采樣的生成器生成目標表情圖像,下采樣在解碼時對重要圖像特征進行選擇,可以增加對輸入圖像一些小擾動的魯棒性,比如圖像平移、旋轉等,降低過擬合的風險,減少運算量和增加感受的大小,上采樣把抽象的特征還原解碼到原圖的尺寸。當在原網絡添加MFF 模塊時,第一個殘差模塊的卷積編碼特征與下一階段的融合特征通過MFF 模塊在輸出通道為64 的逆卷積進行還原,在生成網絡Decoder 中增加一層輸出通道為256 的逆卷積(inverse convolution),其卷積核大小為3×3,stride=1,padding=1。詳細的添加位置如圖4 中用虛線框標出,其中,殘差模塊包含:2 次Conv2d,2 次InstanceNorm,1 次ReLU 函數激活,這樣也使得其特征層通道數在結構上保持對稱,圖片編碼和解碼的信息內容保持一致。

圖4 多尺度特征融合模塊MFF
在生成器Encoder-Decoder 的結構中,加入4 個多尺度特征融合模塊MFF。作為跳躍單元,每個模塊融合了來自高分辨率和低分辨率的特征。其生成器總結構如圖5 所示,圖中的數字64、128、256 等表示的是輸出特征層的維度。在生成器中嵌入了注意力機制,輸出的注意力掩碼特征為:

圖5 生成器網絡結構

注意力掩碼A定義了每個像素的強度,指定擴展源圖像的每個像素對最終渲染圖像的影響,其中較暗區域顯示了圖像中與每個目標AU 相關的區域,較亮的區域從原始圖像中保留下來。顏色掩碼特征定義為:

注意力掩碼A和顏色掩碼特征C并行操作,二者的網絡結構在最后一層的操作存在差異,具體為顏色掩膜采用卷積操作和Tanh 函數的激活,卷積核大小k=3×3,步長stride=1,填充 pad=1,輸出維度o=3,注意力掩膜使用Sigmoid 激活函數,在卷積方面的區別是輸出維度是1。利用A和C合成新表情圖像Iyg:

判別器用來評估生成圖像的逼真度和期望表情完成度的網絡,分為DI和Dy并行訓練,DI集成了PatchGan 網絡的組件,將輸入圖像映射到一個特征矩陣YI∈RH/26×W/26,YI[i,j]被用于計算真實圖像斑塊的分布與生成圖像的重疊斑塊i、j之間的EMD,判斷生成圖片Iy f的真實性。此外,Dy回歸估計生成圖像的表情向量AU 編碼值=(,···,)T,向量長度為N,表示臉部N個區域,每個值的范圍從0~5 表示運動強度,與yg比較評估條件表情的完成度。兩個判別器公共部分為1 個對輸入圖像的卷積操作和6 個卷積核大小、k=4、stride=2、padding=1 的連續下采樣層。為了減少模型的參數數量,DI和Dy共享前5 層的權重。
為了讓生成圖的分布趨近于訓練圖像的分布,使用對抗損失LI,包括兩部分,其中第一部分定義如下:

式中,Po為輸入圖像的數據分布,最大化生成圖像通過判別器DI得到的結果,最小化原始圖像通過判別器DI的結果,另外,為解決訓練過程中梯度消失或爆炸問題,在此基礎上給判別器增加一個梯度懲罰項:

式中,PI?是隨機插值分布;λgp是懲罰系數。LI總損失為:

由于模型數據沒有注意力掩碼的參考數值,掩碼A的強度值極易趨于過飽和狀態。因此,對注意力掩碼引入全差分損失L(A):

式中,λTV是掩碼平滑的懲罰系數;Ai,j代表A的第[i,j]項;注意力掩碼特征A如式(1)。
為了避免同一個人在不同表情下成對圖像的訓練需求,使用包含兩個生成網絡的雙向對抗性架構,完成對生成圖像的重構任務,利用循環一致損失Ldit:

該損失與輸入圖像直接比較,保證生成的人臉和原始圖像對應同一個人。
網絡中引入了目標表情約束向量。為了保證生成網絡回歸標簽的信息正確性,對約束條件施加損失Ly,Ly分為由生成網絡生成的假圖片回歸的AU 值編碼和由判別網絡在真實圖片中回歸的AU 值編碼兩個部分,表示如下:

為了生成目標圖像,線性組合上面的損失來建立總損失函數L:

式中,λy、λA、λidt為調節總損失的權重系數。
本文所提算法使用的實驗數據是預處理后的CelebA 數據集[21],根據圖片已有的臉部器官landmark 坐標,使用幾何歸一化方法剪裁臉部圖片,進行人臉對齊,統一r esize調整為128×128。再使用符合FACS 編碼標準的開源面部行為分析工具OpenFace[22],識別標注肌肉表情運動單元AU,與表情相關的AU 共有17 個,自制的數據集需要滿足AU 標簽分布均勻,保證復雜表情的生成精度,經過各AU 統計、特定圖片篩選、AU 填充和剔除操作,整理出158374 張圖片。按照訓練集與測試集9∶1 的比例隨機劃分,143000 張圖片用于訓練,15374 張用于測試。圖6 展示了圖像各AU 的分布情況。各AU 的占比大致均在6%左右,分布較為均勻。有些AU 數量較少,但都大于4%,屬于合理范圍。

圖6 數據集各AU 占比
該模型通過Adam[23]優化器對模型進行訓練,根據改進后的網絡特點和研究者的經驗設置訓練參數,如表1 所示。判別器網絡每執行5 個訓練步驟,生成器執行一次優化步驟。依據GANimation 原網絡損失各權重系數的制定,本文對網絡目標總損失函數的權重分別設置為:λgp=10,λA=0.1,λTV=0.0001,λy=4000,λidt=10。

表1 訓練參數
3.3.1 訓練過程
實驗中利用以上參數對改進后的算法進行訓練,并與原網絡進行對比,圖7 展示了訓練過程中判別器對真實圖和生成圖表情向量的損失優化過程。在訓練期間,真實圖通過判別器提取表情向量與自身的真實向量做差比較,得到損失值d_cond,從圖7a 可以得出,改進之后判別器對損失曲線的趨勢沒有較大的影響,但比具有原網絡的生成器收斂速度快,在經過迭代運算后,訓練集L oss值下降到了0.145 左右。g_cond是使用同一判別器提取生成圖的表情向量與輸入目標表情向量做差比較,驗證表情生成的準確性,由圖7b 所示,Loss值下降到了1.0 左右,網絡達到了很好的生成效果,MFF 機制帶來了明確的改進。

圖7 通過判別器的表情向量損失
3.3.2 表情生成質量評估
該算法使用PSNR(peak signal-to-noise ratio)[24]和FID(frechet inception distance)[25]指標分別評估表情生成的準確度和生成的圖像質量。PSNR 是在計算同一身份的合成表情和對應表情之間的均方誤差相對于255^2 的對數值,FID 分數是對預訓練模型InceptionV3 提取真實人臉與合成人臉的特征層面進行距離評價。如表2 所示。改進后的GANimation 在celebA 數據集上測量PSNR和FID,生成質量分別比最新方法提高了1.28 和2.52。

表2 與最先進的算法定量比較
為了進一步定量評估表情變化的準確性,使用皮爾遜相關系數(PCC)計算目標圖像和生成圖像各個AU 對應點的相似度,生成圖像的AU 強度也使用OpenFace 預測。從測試集中隨機抽取含當前要評估某AU 的圖片200 張作為目標表情圖像,其標記的AU 用作網絡的目標標簽,在剩余的測試集中再抽取3 張作為輸入的原圖像,每張圖片都要生成200 張的目標的表情。圖8 顯示了17 個AU 強度之間的PCC,取值范圍為0~1,改進后的網絡與GANimation 和StarGAN 進行比較,StarGAN 僅在AU4 生成的準確度高于GANimation,改進的網絡有87.5%占比的AU 生成準確度高于GANimation。

圖8 表情AU 強度的PCC
3.3.3 表情編輯對比
改進后的網絡是在上面描述的公開可用的面部表情數據集上進行評估。表情編輯對比如圖9 所示,其中每列對應一個表情編輯任務,對GANimation以及改進后的網絡進行比較。GANimation 方法容易模糊眼睛、鼻子和嘴巴周圍區域,產生的偽影不同程度地破壞了面部圖像。而從改進網絡的生成效果來看,除解決掉了這些問題,其生成的圖像表情更銳利和清晰。更好的合成主要歸功于包含了多尺度特征融合模塊,更好地保留與身份相關的特征和細節。

圖9 表情編輯對比
3.3.4 表情向量控制能力對比
圖10 展示了原網絡和改進后網絡注意力掩碼的生成結果,注意力被設計用來引導網絡關注表情相關區域的轉換,反應模型對表情向量的操縱能力。從實驗結果看,原碼的注意力掩碼缺失嚴重,大部分出現在嘴和眼睛的附近,注意力表示的是面部像素的強度,顏色深的區域表示面部動作部位,因此,動作部位像素值不準確或缺少導致面部表情控制能力減弱。圖10 第一行,原網絡注意力掩碼大部分缺失,且沒有明顯的明暗區分,眉間紋理無變化。第二、三行原碼生成的表情沒有變化。

圖10 表情向量控制能力對比
3.3.5 連續表情生成
為了更好地體現編輯連續表情的好處,在不同表情之間的AUs 進行插值,并在圖11 中給出結果。第一列是輸入的原始表情圖像Iy0,最右一列是目標表情Iyg,其余的列是通過對原始表情和目標表情之間進行線性插值來合成圖片。線性插值器根據αIyg+(1?α)Iyr(α∈0~1)計算生成器的結果,顯示了平滑和跨幀一致的轉換,驗證了該模型在動作單元空間的連續性和處理大間隙表情轉換的魯棒性,證明了該模型的泛化性能。

圖11 表情插值效果圖
本文提出了對GANimation 方法的改進,將多尺度融合機制納入基于Encoder-Decoder 的任意面部表情編輯體系結構中。特征融合模塊在很大程度上提高了模型性能,特別是對于動作單元的保持、質量重建和身份保持。作為一種簡單有競爭力的方法,與改進前的GANimation 方法相比,在視覺質量和操縱能力都取得了更好的實驗結果。