陳 娜
(蘭州工業(yè)學院計算機與人工智能學院,甘肅 蘭州 730050)
基于單張人臉圖片的3D人臉重構,無論是在計算機圖形[1]還是光學成像[2]領域均是一個極具挑戰(zhàn)性的研究方向。由于人臉豐富的差異特征,能夠在性別、身份以及當前興起的識別、支付等領域廣泛運用[3]。但隨著科技的不斷發(fā)展,二維人臉圖片的局限性越發(fā)明顯,而3D人臉具有更為全面的信息、更強的魯棒性,得到國內外學者更為廣泛的關注[4]。
目前,關于基于單張人臉圖片的3D人臉重構研究主要可以分為三類:基于統(tǒng)計模型的3D人臉重構、基于單一模板的3D人臉重構以及基于深度學習的3D人臉重構。其中,基于統(tǒng)計模型的3D人臉重構主要是依賴訓練數(shù)據(jù)的統(tǒng)計分析,進而運用主成分分析等方法生成3D人臉模型[5-7]。該方法雖然可以有效地生成3D人臉模型,但對人臉五官及面部表情的描述有限?;趩我荒0宓?D人臉重構是使用輸入圖像作為指導,根據(jù)初始反射率和參考模型表面的幾何形狀找到陰影的初始估計位置,迭代計算位置區(qū)域的投影位置及深度信息,之后使用所獲得的陰影特征信息構建3D人臉模型[8-9]。該方法并不能有效地將人臉模板變換到期望的形態(tài),或多或少存在與真實人臉有信息差異的問題?;谏疃葘W習的3D人臉重構則是收到近年深度學習對圖像特征信息自主學習的啟發(fā),通過神經(jīng)網(wǎng)絡自主訓練圖像與參數(shù)、幾何關系之間的映射關系,從而利用有限的2D人臉圖像信息自主訓練生成3D人臉模型的方法[10-12]。
國內近年也有許多學者致力于這方面研究,例如文獻[13]首先對2D人臉圖像標準化,使用光照信息和對稱紋理重構人臉自遮擋區(qū)域的紋理;然后依據(jù)2D-3D點對應關系從標準化的2D人臉圖像獲取相應的3D人臉紋理,結合人臉形狀重構和紋理信息,最終得到最終的3D人臉重構結果。文獻[1]通過重新渲染合成的方法將參數(shù)化模型擬合到輸入的多視角圖片,然后在紋理域上求解一個光流問題來獲取不同視角之間的對應關系;通過對應關系可以恢復出人臉的點云,并利用基于明暗恢復幾何的方法來恢復人臉細節(jié);從而提出了一種多階段優(yōu)化的方法來解決基于多視角圖片在未知姿態(tài)、表情以及光照條件下的高精度三維人臉重構問題。文獻[14]針對人的臉部特征復雜、細節(jié)紋理豐富,獲取高精度人臉3D模型成本高、工作量大的問題,利用球形燈光裝置建立6種不同的光照模式,并利用偏振光特性對鏡面反射光和漫反射光進行分離;利用單向梯度光圖像,并基于雙向反射分布函數(shù)(BRDF)得到反射光方向與法線方向的關系,通過計算獲取鏡面反射和漫反射法線圖,從而提出了一種基于梯度光圖像的高精度3D人臉重構算法。
然而,這類3D人臉重構算法由于優(yōu)化復雜度高,且存在局部最優(yōu)解和初始化不良等問題,通常模型復雜度較高、運算量較大。鑒于卷積神經(jīng)網(wǎng)絡在圖像重構方面的強大潛力,本文通過使用深度卷積神經(jīng)網(wǎng)絡直接學習2D人臉圖像從像素到3D坐標的映射,從而提出了一種基于深度卷積神經(jīng)網(wǎng)絡的單張圖片向3D人臉自動重構算法。
本文首先基于3D轉換模型(3D Morphable Model,3DMM)來提取2D人臉圖像的密集信息[15]:
(1)
圖1 基于3 DMM的圖像信息提取
(2)
為了使3D人臉模型能夠以單張2D人臉圖像為基礎進行重構,本文將其中人臉圖像的基準點信息由一個稀疏集合表示,并用矩陣U表示這些二維信息的x和y坐標:
(3)
從而,3D形狀矩陣A與二維信息U之間的關系可以用弱透視投影(Weak Perspective Projection)來描述,即:
U=sRΑ(∶,d)+t
(4)
式中,s是標度參數(shù);R是由三個旋轉角度信息α,β和γ所控制的3×3旋轉矩陣的前兩行;d是一個N-dim索引向量,表示與二維信息對應的有語義意義的3D頂點的索引;t是一個由tx和ty組成的轉換參數(shù)。
通過收集所有參數(shù)相關投影,將形成投影向量m=(s,α,β,γ,tx,ty)T。由此,可以將任何2D人臉圖像看作是3D人臉模型的平面投影。
鑒于目前深度學習在計算機視覺以及圖像處理中的長足發(fā)展,如圖2所示,本文構建深度卷積神經(jīng)網(wǎng)絡(DCNN),從輸入2D人臉圖像中學習非線性映射函數(shù)f(Θ)從而對應的投影參數(shù)m和形狀參數(shù)p,然后再利用估計的參數(shù)來構造密集的3D人臉模型。
圖2 基于DCNN架構的3D人臉重構
如圖3所示,為本文所構建的基于深度卷積神經(jīng)網(wǎng)絡的單張圖片向3D人臉重構架構。圖中,兩個分支共享前三個卷積模塊。在第三個模塊之后,使用兩個相互獨立的卷積網(wǎng)絡模塊來提取特定任務的特征信息,再接入兩個完全連接層神經(jīng)層來將特征轉移到最終輸出。其中,每個卷積網(wǎng)絡模塊的結構顯示在左下角區(qū)域中。每個卷積網(wǎng)絡模塊由兩個卷積層和一個最大池化層組成,后面是一個批處理歸一化層和一個激勵層。
圖3 基于深度卷積神經(jīng)網(wǎng)絡的單張圖片向3D人臉重構架構
為了改進卷積神經(jīng)網(wǎng)絡的訓練效果,本文使用了一個包含多個制約條件的損失函數(shù)[17-20]:參數(shù)制約條件Gpr使估計參數(shù)與真實值參數(shù)之間的差異最??;運用地標擬合制約條件Glm降低2D人臉圖像的對準誤差;運用輪廓擬合制約條件Gc強制將估計的3D人臉模型的輪廓與輸入圖像的輪廓像素進行匹配;運用SIFT配對制約條件Gs以鼓勵兩張人臉圖像的SIFT特征點對對應相同的3D頂點。
由此,構建總體損失函數(shù):
(5)
式中,λlm,λc,λs為權重系數(shù)。
本文3D人臉模型構建是通過深度卷積神經(jīng)網(wǎng)絡(DCNN)實現(xiàn)的。網(wǎng)絡訓練過程中,將初始全局學習率設為e-3,并在訓練誤差趨于平穩(wěn)時將學習率降低10倍。將每批訓練數(shù)據(jù)大小設為32,網(wǎng)絡衰減系數(shù)為0.005,激勵函數(shù)衰減因子設為0.01。通過多次訓練,總體損失函數(shù)的權重系數(shù)λlm定為5、λc定為1、λs定為1。
其中,參數(shù)制約條件Gpr由下式定義為:
(6)
3D形狀矩陣A(∶,ilm)投影到2D平面上,將地標擬合制約條件Glm定義為:
(7)
式中,F為下標,表示Frobenius范數(shù);L為預定義地標的數(shù)量。
由于輪廓擬合制約條件Gc的描述相對比較復雜,為此專設一小節(jié)進行闡述。
輪廓擬合制約條件的目的是使所要重構的3D人臉模型的投影外邊界(即輪廓)與輸入的2D人臉圖像中相應的輪廓像素之間的誤差最小。在將2D平面渲染到3D空間上時,可以將其外輪廓看作是背景與三維面之間的邊界。
在利用人臉輪廓信息構建制約條件束過程中,需要遵循以下三個步驟:(1)檢測2D人臉圖像中的真實輪廓;(2)描述估計的3D形狀矩陣A(∶,ilm)上的輪廓頂點;(3)確定真實輪廓與估計輪廓的對應關系,并以擬合誤差作為反饋。具體步驟如下所述。
在第三步中,通過點對點的通信來評估Ulm和A(∶,ilm)之間的約束。由于二維圖像中只能檢測出部分輪廓像素,而三維形狀輪廓則通常是完整的,因此需要將二維圖像上的輪廓像素與三維形狀輪廓上的最近點進行匹配,從而計算出最小距離。由此,將這所有最小距離的總和定義為輪廓擬合制約條件Gc:
(8)
為了使輪廓擬合制約條件可微,對式(8)進行改寫,計算圖像中最近輪廓投影點的頂點指數(shù),即k0=argmink∈ilm‖A(∶,ilm)-Ulm(∶,j)‖2。
Ulm(∶,j)‖2
(9)
運用尺度不變特征變換(SIFT)配對制約條件(SPC)對密集形狀進行預測,使其能夠預先定義的標志(如邊緣、皺紋和痣等)以外的重要面部點上保持一致。
尺度不變特征變換(SIFT)描述是一種經(jīng)典的局部表示方法,它對圖像尺度、噪聲和光照都是不變的,被廣泛應用于許多基于回歸的人臉對齊方法中以提取局部信息。
(10)
(11)
對于本文提出的算法,在訓練過程中將DCNN的學習率設為恒定的0.0001,各神經(jīng)網(wǎng)絡模塊參數(shù)如圖4所示。
圖4 算法神經(jīng)網(wǎng)絡參數(shù)設置
考慮到人臉重構算法的重點是對2D人臉圖像的輪廓對齊的訓練,因此算法訓練中選擇了兩個公開可用的人臉圖像數(shù)據(jù)集。
AFLW數(shù)據(jù)集[24]是一個25K 2D人臉圖像數(shù)據(jù)集,每個圖像都事前有多達21處標記,每個標記都有一個可見性標簽。例如文獻[24]選擇了一個偏航角均衡分布的AFLW子集,包括3,901張用于訓練的圖像和1,299張用于測試的圖像。因此,本文也使用相同的子集對算法進行訓練和測試。
AFW數(shù)據(jù)集[25]包含205張圖像,每個人臉圖像都被事前標記6處標記,每個地標都有一個可見性標簽。對于每個人臉圖像,提供檢測到的包圍框。由于圖像數(shù)量相對較少,本文僅使用該數(shù)據(jù)集進行測試。
根據(jù)表1所示,為檢驗本文算法的對比優(yōu)勢,選擇了最新的人臉對準算法(PIFA[26]、RCPR[27])與本文算法進行仿真對比,仿真效果如圖5所示。
表1 算法設定
圖5 算法比對仿真效果
如圖6所示,展示了三種算法每次迭代的測試誤差。仿真結果表明,三種算法雖然都能經(jīng)過訓練直到收斂,但相比較RCPR不能很好地模擬擬合誤差,且收斂于一個不令人滿意的結果。PIFA算法雖優(yōu)于RCPR算法,但病理曲率問題[27]使其只關注一小組參數(shù),限制了性能。本文算法能夠明確地對2D人臉圖像的每個參數(shù)的優(yōu)先級進行重構,得到了更好的結果。
圖6 算法測試誤差對比
為了進一步檢驗本文算法在不同人臉方位和數(shù)據(jù)集中的性能,分別計算了三種算法在第一階段訓練后在AFLW和AFW數(shù)據(jù)集上不同人臉姿態(tài)的測試NME值,比較結果分別如表2和表3所示。NME值雖能夠對比不同算法的精度,但用于3D人臉重構的評價卻可能因為圖像標記信息較多而第一階段神經(jīng)網(wǎng)絡訓練不充分,存在邊緣模糊現(xiàn)象。由此,在AFLW數(shù)據(jù)測試中,本文算法相較而言對于[0°,30°)和[30°,60°)存在NME值較高的現(xiàn)象。而對于AFW數(shù)據(jù)集,由于其較少的圖像標記,本文算法僅僅通過第一階段的訓練就能獲得較其他兩種算法更低的NME值。通過繼續(xù)仿真發(fā)現(xiàn),隨著神經(jīng)網(wǎng)絡訓練的深入,本文算法能夠不斷修正邊緣模糊現(xiàn)象,并最終獲得比另外兩種算法更低的NME值。通過對比仿真可以看出,本文算法在AFLW和AFW數(shù)據(jù)集中總體取得了較低的NME值,從而驗證了本文算法在單張二維圖像向3D人臉重構運用中的有效性。
表2 不同算法在AFLW數(shù)據(jù)集上的測試結果
表3 不同算法在AFW數(shù)據(jù)集上的測試結果
圖7 單張圖片向3D人臉重構
對于3D人臉模型重構可以分別在人臉區(qū)域和外部區(qū)域進行,但對精度的要求不同。對于如圖7(a)所示的單張2D人臉圖像,在3D人臉區(qū)域,通過第1節(jié)提出的DCNN架構來進行擬合,如圖7(b)所示。在外部區(qū)域,僅采用三角剖分(Delaunay triangulation)[28],標記出人臉區(qū)域之外的一些錨點,用2D人臉原圖替換,然后疊加3D模型從而構成完整的3D人臉模型,如圖7(c)所示。
當深度信息被估計后,所重構的3D人臉模型可以在三維空間中旋轉,以生成更大姿態(tài)的外觀,如圖8所示。可見,外部人臉區(qū)域對于真實的輪廓圖像是必要的。在此仿真實驗中,將3D人臉模型空間旋轉范圍由30°的放大到90°,由此不僅可以獲得大姿態(tài)下的3D人臉模型,而且還可以對數(shù)據(jù)集進行擴充,這意味著即使給定一個視角有限的2D人臉圖像,DCNN網(wǎng)絡也可以得到很好的訓練。
圖8 3D人臉模型空間旋轉效果
針對目前算法復雜度較高、運算量較大且存在局部最優(yōu)解和初始化不良等問題,本文首先基于3D轉換模型來提取2D人臉圖像的密集信息,然后構建深度卷積神經(jīng)網(wǎng)絡架構、設計總體損失函數(shù),提出了一種基于深度卷積神經(jīng)網(wǎng)絡的單張圖片向3D人臉自動重構算法。從算法比對和仿真實驗結果來看,本文算法具有更低誤差的比較優(yōu)勢,3D人臉模型還原度高,面部表情保留完好,支持多角度三維旋轉,沒有盲區(qū),在各類場景中將具備較高的應用優(yōu)勢。