曾遠強,蔡堅勇,2,3,4,章小曼,盧依宏
1(福建師范大學 光電與信息工程學院,福州 350007)
2(福建師范大學 醫學光電科學與技術教育部重點實驗室,福州 350007)
3(福建師范大學 福建省光子技術重點實驗室,福州 350007)
4(福建師范大學 福建省光電傳感應用工程技術研究中心,福州 350007)
人臉對齊和三維人臉重建是計算機視覺領域中兩個相關聯且具有挑戰性的課題,在信息安全,智慧城市,影視娛樂等領域有著廣泛的應用.其中信息安全領域對人臉重建模型的計算速度和質量都有較高的要求.例如在人臉識別的應用中,二維人臉識別在大姿態人臉的條件下識別效果較差,而三維人臉因為包含更豐富的人臉信息,可以較好的克服人臉姿態的影響.三維人臉識別系統一般需要經過人臉對齊的步驟,然后利用三維人臉重建模型從二維人臉圖片中重建出三維人臉用于人臉識別,其中的人臉對齊和人臉重建是其中兩個重要的步驟.人臉對齊的精度,人臉重建的質量和模型的運行速度是其中的關鍵因素,本文將在已有研究的基礎上創新改進三維人臉重建模型,提高模型的性能.
二維人臉對齊的研究工作主要是為了實現人臉關鍵點的定位,并用于人臉識別或者輔助人臉重建等任務.早期比較具有代表性的工作如主觀形狀模型(ASM)[1],作者首先用人臉樣本構建出一個平均人臉,然后用68個已標定的人臉關鍵點描述模型對齊的人臉,通過迭代搜索對應特征點,不斷優化參數,直至搜索的特征點和對應標定的特征點最為接近.該方法實現的人臉對齊效果精度較低,且容易受到圖像噪聲影響.一些工作[2,3]基于主觀形狀模型進行優化,得到了改進,但是精確度仍然較差.隨著深度學習的發展,目前通過二維人臉圖片進行人臉對齊取得較好效果的是基于卷積神經網絡(CNN)的方法[4],但是這類方法只能描述圖片中人臉的可見區域,其性能會在面部遮擋、頭部姿態等外界因素的干擾下受到影響.與二維人臉相比,三維人臉在空間中保留了更多的信息,不受人臉姿態等因素的影響.一些研究在Blanz 等人[5]提出的三維人臉形變模型3DMM的基礎上,通過擬合3DMM參數去實現三維人臉對齊,在精準性和魯棒性方面都有所提升.如Zhu 等人[6]提出的3DDFA,作者將PNCC和PAF 做為輸入特征,設計了一個級聯卷積神經網絡作為回歸因子計算模型參數,將3DMM 擬合到二維圖像,實現了人臉關鍵點定位和人臉密集對齊,性能優于基于二維人臉圖片的對齊方式.通過擬合3DMM 參數實現人臉對齊的方法由于人臉模型中間參數的影響,模型性能受到限制.近來,Yao 等人[7]提出的PRN,采用UV 位置圖表示三維人臉,以端到端的訓練方式克服了中間參數的影響,使模型在運行速度和人臉對齊效果上都得到了提升.但是受其網絡架構的影響,其模型冗余度和對齊的精確度仍然有待改進.
在人臉重建方面,傳統的三維人臉重建方法主要基于3DMM 模型實現,早期的方法[8,9]通過建立二維圖像與3DMM 模型的特征點之間的對應關系,求解優化函數回歸3DMM 參數,這類方法受初始特征點檢測精度的影響較大,且重建過程復雜.在卷積神經網絡發展的影響下,一些方法[10,11]使用CNN 直接學習3DMM的參數,相比于傳統算法在重建質量和速度上都有所提升.然而,基于固有模型重建的方法因為受到模型幾何空間的限制,所實現的重建效果也不理想.
為了克服上述研究的缺陷,近來有一些研究提出采用端到端的方式實現三維人臉齊重建,擺脫了固有參數模型的空間限制,實現了較好的人臉重建效果.VRN[12]采用體素表示三維人臉,設計了由多個沙漏模塊構成的卷積神經網絡進行回歸訓練,相比上述方法取得了更好的效果,但是文中采用了體素的表示方式表示三維人臉,丟棄了點的語義信息,為了從單張二維人臉圖片重建出完整的三維人臉形狀,需要復雜的網絡對整個體積進行回歸,增加了計算的復雜度.PRN[7]采用了UV 位置圖的方式表示三維人臉,有效保留了點的語義信息.并設計一個由殘差模塊和轉置卷積模塊構成的編解碼網絡,結合文中所提的權重損失函數進行訓練,取得了更好的性能.其中編碼網絡主要采用如圖1所示的殘差模塊[13]構成,方框中的參數為卷積核的大小,設輸入的特征圖為x,則殘差模塊的輸出H(x)可表示為式(1).殘差模塊通過跳接的方法,克服深層網絡中的梯度消失問題,加強了模型的特征提取能力.但是由于PRN 構建的編碼網絡層數較深,參數數量達到9.43×105個,模型的冗余度仍有待進一步優化,另一方面在其損失函數限制下,其模型的對齊和重建質量也有待提升.

圖1 殘差模塊示意圖

本文所提的方法是在PRN 工作基礎上的創新改進,有效提高了三維人臉對齊和重建的質量,本文主要工作如下:
(1)設計了一個全新的由密集卷積模塊和轉置卷積模塊構成的編解碼網絡,經過實際運算得出,相比PRN 網絡的參數數量減少了1.76×105個,有效降低了模型的冗余度,提高模型運算速度.
(2)在損失函數中引入圖像結構相似度,借鑒PRN的權重損失函數思想,提高了三維人臉對齊和重建質量.
(3)在AFLW2000-3D 數據集[6]上驗證效果并與其他方法作出對比,實驗表明本文的方法在人臉重建和人臉對齊方面都取得了較好的效果.
這個部分將論述網絡架構的實現和損失函數的設計.本文所提出的網絡架構包括兩部分:
(1)基于密集卷積模塊構成的編碼網絡;
(2)基于轉置卷積模塊構成的解碼網絡.
本文采用密集卷積模塊的架構去設計編碼網絡.密集卷積模塊來源于[14]提出的密集卷積網絡(DenseNet),如圖2所示,其中方框表示卷積層,作者用前反饋的方式將網絡中的每一層拼接到之后的每一層網絡中,不同于PRN 用殘差模塊的跳接求和方式,密集卷積模塊將前面所有層的特征圖拼接用作當前層的輸入,即第l層可以接收到前l–1 層的所有特征圖作為輸入,如圖2的連接狀態可表示為式(1),其中[x0,x1,x2,x3]表示前面各層特征圖的拼接,H函數表示當前層的權重運算.DenseNet 架構通過密集連接和特征復用,可以緩解梯度消失問題,并減少參數的數量,性能優于殘差卷積網絡.

圖2 密集卷積模塊示意圖

本文的編碼網絡主要由6個密集卷積模塊構成.首先第一層是3×3的卷積層用于提取輸入圖片的特征,接下去則是密集卷積模塊和過渡層組成的網絡.每個密集卷積模塊包含批量歸一化層BN (Batch Normalization),1×1 卷積層和3×3 卷積層共3個小模塊.過渡層由一個批量歸一化層連接一個1×1的卷積層和2×2的平均池化層組成.1×1的卷積層的設定是為了控制輸入特征圖的通道數量,提高網絡的運算效率,使用平均池化層則是因為其在保留圖片的局部信息相對其他池化方式有優勢,適合我們的人臉重建任務.網絡架構示意圖如圖3,網絡各層參數及特征圖維度變換如表1所示.本文將圖片的維度表示為H×W×B,其中H和W分別表示圖片的高和寬,B表示圖片的通道數.該編碼網絡可以將維度為256×256×3的輸入圖片轉換為8×8×512的特征圖.

表1 編碼網絡輸出特征圖大小各層參數

圖3 編碼網絡架構示意圖
我們在編碼網絡中將特征圖的維度縮小后,需要用轉置卷積構成的解碼網絡進行上采樣,預測出維度為256×256×3的位置圖.該編碼網絡采用兩種轉置卷積,一種用于上采樣,卷積核的大小為4×4,步長為2.零填充padding為1,一種用于維持形狀,對特征圖進行整理,其卷積核大小為3×3,步長為1,零填充padding為1.
設反卷積輸入的特征圖維度為i,輸出的特征圖維度為o,卷積核大小為k,步長為s,零填充個數為p,轉置卷積對特征圖的維度轉換公式如式(3)所示:

圖4中第1 層卷積的輸出圖片的維度應為o=1×(i?1)+3?2=i,即特征圖維度不變.第2 層轉置卷積的維度為o=2×(i?1)+4?2=2i,實現了對特征圖的上采樣.第3 層轉置卷積同第1 層.
解碼網絡的每一個模塊由如圖4所示3個小模塊構成.最后我們設計了一個由5個該模塊構成的解碼網絡,將編碼網絡輸出的維度8×8×512的特征圖上采樣為256×256×3,輸出預測的結果.

圖4 轉置卷積模塊示意圖
在PRN中作者提出了權重損失函數的方法,通過設置權重矩陣,將訓練的重點集中在人臉關鍵的區域,忽略臉部以外部分,提高了訓練的效率.該權重矩陣W設置的比例為:(人臉68個關鍵點):(眼嘴鼻):(人臉其他區域):(人臉以外區域)=16:4:3:0,其各區域劃分可參考圖5.本文借鑒權重損失函數這一方法,考慮真實圖片與預測后圖片的結構相在損失函數中引入圖像結構相似度SSIM[15]創建了一個新的損失函數.SSIM可結合亮度,對比度和結構3 方面因素比較兩張圖片,假設輸入的兩張圖像分別為x和y,定義SSIM為式(4).

圖5 人臉權重矩陣各區域劃分示意圖

其中,l(x,y)表示亮度比較函數,c(x,y)表示對比度比較函數,s(x,y) 表示結構比較函數.設x的平均值標準差為y的平均值μy和標準差 σy計算同x.圖像x和y的協方差表示為
l(x,y),c(x,y)和s(x,y)分別定義如下:

其中,C1、C2、C3為常數,避免分母接近于0 時造成運算的不穩定.這里取C3=α=β=γ=1,則SSIM可表示如下:

結合人臉權重W,定義損失函數Loss為:

這部分內容將介紹具體的訓練過程,并進行實驗結果分析.因為本文的模型能實現人臉對齊和人臉重建兩部分的任務,所以在我們的論述中將分別對這兩項任務的實驗數據與其他方法做出對比,并通過效果圖展示模型的效果.
3.1.1 訓練集
本文的目標是通過神經網絡從單張二維人臉圖片中回歸出人臉對齊信息和三維人臉幾何信息,所以使用的訓練集既要能讓網絡直接回歸預測,還應包含人臉對齊和三維人臉信息.針對以上問題,我們采用Yao等人在PRN[7]中提出的將三維人臉轉換為UV 位置圖的方式創建訓練集.UV 位置圖是一種能在UV 空間記錄三維信息的二維圖像[16],Yao 等人使用UV 空間存儲三維人臉模型中點的位置,并在直角坐標系中將三維人臉模型的投影與相應的二維人臉圖像對齊.位置圖Pos可以表示為:

其中,(ui,vi)表示UV 空間中的第i個點,與3 維空間中的第i個點 (xi,yi,zi) 對應,(xi,yi)為對應二維圖像的第i個點,zi表示該點的深度.(ui,vi)和(xi,yi)表示相同的位置,因此能夠保留對齊的信息.
本文使用300W-LP 數據集[6]的部分數據作為訓練集,300W-LP 包含各種無約束的二維人臉圖片及其對應的三維人臉信息,其中標注的信息包含人臉姿態參數,68個人臉關鍵點等.我們選取300W-LP中的AFW,HELEN 及其對應的翻轉圖片,并對其中部分圖片進行平移旋轉,總共得到12 萬組數據作為訓練集,然后采用PRN[7]所提方法在已有標注數據的基礎上將其中的三維人臉信息轉換到UV 空間得到UV 位置圖,構建出完整的訓練集.
3.1.2 實驗參數及環境
網絡架構如第2 節論述.訓練中設置批量大小為16,使用Adam 優化器,根據訓練的效果,依次調整初始學習率為1 ×10?4,1 ×10?6,1 ×10?8,其他參數不變,每個周期迭代7529 次,總共訓練80個周期.使用編程語言Python 3.6,深度學習框架PyTorch 1.1.0,在NVIDIA 1080ti GPU 上完成訓練,每個完整的訓練需3 天時間.
3.2.1 人臉對齊實驗結果分析
首先是人臉對齊結果的分析.我們使用的測試集是AFLW-3D 數據集,該數據集包含各種姿態的人臉參數以及68個人臉關鍵點參數,被廣泛用于人臉對齊的測試評估中.經過訓練得出模型,對各種姿態的人臉對齊效果如圖6所示,第1 行為各種姿態的人臉圖片,第2 行為對齊的效果圖.

圖6 人臉對齊效果圖
根據AFLW-3D中偏航角(yaw)參數,分類出[0,30),[30,60),[60,90]三種不同頭部姿態的部分圖片進行對比實驗.采用歸一化平均誤差NME(Normalized Mean Error)[4]作為評價指標,NME評價指標被廣泛用于人臉對齊和重建中,采用該評價指標有利于與NME的值越小表明效果越好,如式(4)所示,yg和yp分別為真實的人臉標記點和對應的預測點,歸一化因子d=其中W和H分別為包圍真實人臉圖片的方框的寬和長.

結果如表2所示,3DDFA 方法在固有模型的限制下,對各類姿態人臉的對齊效果會比PRN 基于位置圖回歸的方式得出的模型效果差,而本文的方法使用密集卷積模塊構建網絡,在編碼網絡實現特征重用,并構建新優化損失函數,使得評價指標相對PRN 略有優化.其他方法的數據來源于各自所屬論文.

表2 多姿態人臉對齊歸一化平均誤差(%)
3.2.2 人臉重建實驗結果分析
人臉重建的測試集同樣使用AFLW-3D 數據集,部分效果圖如圖7所示,其中第1 列為各種姿態的人臉原圖,第2 列和第3 列為對應重建三維人臉模型在不同視角下的效果圖.為了對重建效果進行評估,首先使用迭代最近點算法(ICP)[17]對真實的三維人臉點云和模型輸出的三維人臉點云進行配準,然后用人臉外眼間距離作為歸一化因子計算歸一化平均誤差.我們對比了3DDFA,DeFA[18]和PRN的歸一化平均誤差指標,結果如表3所示,相關對照數據來源于文獻[7],可見本文的方法有較好的效果.

表3 人臉重建歸一化平均誤差(%)

圖7 人臉重建效果圖
本文提出了一種基于編解碼方式的卷積神經網絡,實現了在不同人臉姿態條件下的人臉對齊和從單張二維人臉圖片重建出三維人臉.在網絡架構部分使用密集卷積模塊和轉置卷積模塊構建網絡,有效降低了模型的冗余度,并結合圖像結構相似度評價和特定面部權重作為損失函數,提高了人臉對齊的精確度的和人臉重建的質量.在測試數據集AFLW-3D 上進行實驗表明,本文所提的網絡模型優于之前的方法.在今后的工作中,本研究將繼續在優化重建過程和提高重建精度上做出改進.