基于圖像的人臉三維重建在人臉?lè)治雠c娛樂(lè)領(lǐng)域里有巨大的應(yīng)用場(chǎng)景,同時(shí)它也可以用于提升人臉關(guān)鍵點(diǎn)檢測(cè),人臉識(shí)別,人臉編輯等很多任務(wù)。本文重點(diǎn)介紹其中基于3DMM模型的核心技術(shù)及其研究進(jìn)展。
1. 什么是人臉三維重建
人臉三維重建就是建立人臉的三維模型,它相對(duì)于二維人臉圖像多了一個(gè)維度,在電影,游戲等領(lǐng)域應(yīng)用廣泛。目前獲取人臉三維模型的方法主要包括三種,軟件建模,儀器采集與基于圖像的建模。
(1) 軟件建模作為最早的三維建模手段,現(xiàn)在仍然是最廣泛地在電影,動(dòng)漫行業(yè)中應(yīng)用。頂頂大名的3DMax就是典型代表,作品如下圖。
(2) 由于手工建模耗費(fèi)大量的人力,三維成像儀器也得到了長(zhǎng)期的研究和發(fā)展。基于結(jié)構(gòu)光和激光儀器的三維成像儀是其中的典型代表,我們熟知的iphoneX中的人臉識(shí)別就是基于結(jié)構(gòu)光進(jìn)行三維人臉重建,正因如此才有iphonex中的三維人臉表情包。這些基于儀器采集的三維模型,精度可達(dá)毫米級(jí),是物體的真實(shí)三維數(shù)據(jù),也正好用來(lái)為基于圖像的建模方法提供評(píng)價(jià)數(shù)據(jù)庫(kù)。不過(guò)由于儀器的成本太高,一般的用戶是用不上了。
(3) 基于圖像的建模技術(shù)(image based modeling),顧名思義,是指通過(guò)若干幅二維圖像,來(lái)恢復(fù)圖像或場(chǎng)景的三維結(jié)構(gòu),這些年得到了廣泛的研究。
我們這里說(shuō)的人臉三維重建,就特指基于圖像的人臉三維重建方法。人臉三維重建的研究已經(jīng)有幾十年的歷史,但是基于圖像的快速高精度三維人臉重建還沒(méi)有工業(yè)落地,需要研究人員繼續(xù)努力。
2. 什么是3DMM模型
基于人臉圖像的三維重建方法非常多,常見(jiàn)的包括立體匹配,Structure From Motion(簡(jiǎn)稱SfM),Shape from Shading(簡(jiǎn)稱sfs),三維可變形人臉模型(3DMM),本文就重點(diǎn)講述3D Morphable models(簡(jiǎn)稱3DMM),其相關(guān)的傳統(tǒng)方法和深度學(xué)習(xí)方法都有較多的研究。
2.1 基本思想
3DMM,即三維可變形人臉模型,是一個(gè)通用的三維人臉模型,用固定的點(diǎn)數(shù)來(lái)表示人臉。它的核心思想就是人臉可以在三維空間中進(jìn)行一一匹配,并且可以由其他許多幅人臉正交基加權(quán)線性相加而來(lái)。我們所處的三維空間,每一點(diǎn)(x,y,z),實(shí)際上都是由三維空間三個(gè)方向的基量,(1,0,0),(0,1,0),(0,0,1)加權(quán)相加所得,只是權(quán)重分別為x,y,z。
轉(zhuǎn)換到三維空間,道理也一樣。每一個(gè)三維的人臉,可以由一個(gè)數(shù)據(jù)庫(kù)中的所有人臉組成的基向量空間中進(jìn)行表示,而求解任意三維人臉的模型,實(shí)際上等價(jià)于求解各個(gè)基向量的系數(shù)的問(wèn)題。
人臉的基本屬性包括形狀和紋理,每一張人臉可以表示為形狀向量和紋理向量的線性疊加。
形狀向量Shape Vector:S=(X1,Y1,Z1,X2,Y2,Z2,。..,Yn,Zn):
紋理向量Texture Vector:T=(R1,G1,B1,R2,G2,B2,。..,Rn,Bn):
任意的人臉模型可以由數(shù)據(jù)集中的m個(gè)人臉模型進(jìn)行加權(quán)組合如下:
其中Si,Ti就是數(shù)據(jù)庫(kù)中的第i張人臉的形狀向量和紋理向量。但是我們實(shí)際在構(gòu)建模型的時(shí)候不能使用這里的Si,Ti作為基向量,因?yàn)樗鼈冎g不是正交相關(guān)的,所以接下來(lái)需要使用PCA進(jìn)行降維分解。
(1) 首先計(jì)算形狀和紋理向量的平均值。
(2) 中心化人臉數(shù)據(jù)。
(3) 分別計(jì)算協(xié)方差矩陣。
(4) 求得形狀和紋理協(xié)方差矩陣的特征值α,β和特征向量si,ti。
上式可以轉(zhuǎn)換為下式
其中第一項(xiàng)是形狀和紋理的平均值,而si,ti則都是Si,Ti減去各自平均值后的協(xié)方差矩陣的特征向量,它們對(duì)應(yīng)的特征值按照大小進(jìn)行降序排列。
等式右邊仍然是m項(xiàng),但是累加項(xiàng)降了一維,減少了一項(xiàng)。si,ti都是線性無(wú)關(guān)的,取其前幾個(gè)分量可以對(duì)原始樣本做很好的近似,因此可以大大減少需要估計(jì)的參數(shù)數(shù)目,并不失精度。
基于3DMM的方法,都是在求解這幾個(gè)系數(shù),隨后的很多模型會(huì)在這個(gè)基礎(chǔ)上添加表情,光照等系數(shù),但是原理與之類似。
2.2 3DMM模型求解方法
基于3DMM求解三維人臉需要解決的問(wèn)題就是形狀,紋理等系數(shù)的估計(jì),具體就是如何將2D人臉擬合到3D模型上,被稱為Model Fitting,這是一個(gè)病態(tài)問(wèn)題。經(jīng)典的方法是1999年的文章“A Morphable Model For The Synthesis Of 3D Faces”,其傳統(tǒng)的求解思路被稱為analysis-by-Synthesis;
(a) 初始化一個(gè)3維的模型,需要初始化內(nèi)部參數(shù)α,β,以及外部渲染參數(shù),包括相機(jī)的位置,圖像平面的旋轉(zhuǎn)角度,直射光和環(huán)境光的各個(gè)分量,圖像對(duì)比度等共20多維,有了這些參數(shù)之后就可以唯一確定一個(gè)3D模型到2D圖像的投影。
(b) 在初始參數(shù)的控制下,經(jīng)過(guò)3D至2D的投影,即可由一個(gè)3D模型得到2維圖像,然后計(jì)算與輸入圖像的誤差。再以誤差反向傳播調(diào)整相關(guān)系數(shù),調(diào)整3D模型,不斷進(jìn)行迭代。每次參與計(jì)算的是一個(gè)三角晶格,如果人臉被遮擋,則該部分不參與損失計(jì)算。
(c) 具體迭代時(shí)采用由粗到精的方式,初始的時(shí)候使用低分辨率的圖像,只優(yōu)化第一個(gè)主成分的系數(shù),后面再逐步增加主成分。在后續(xù)一些迭代步驟中固定外部參數(shù),對(duì)人臉的各個(gè)部位分別優(yōu)化。
對(duì)于只需要獲取人臉形狀模型的應(yīng)用來(lái)說(shuō),很多方法都會(huì)使用2D人臉關(guān)鍵點(diǎn)來(lái)估計(jì)出形狀系數(shù),具有更小的計(jì)算量,迭代也更加簡(jiǎn)單,另外還會(huì)增加一個(gè)正則項(xiàng),所以一個(gè)典型的優(yōu)化目標(biāo)是如下:
對(duì)于Model fitting問(wèn)題來(lái)說(shuō),除了模型本身的有效性,還有很多難點(diǎn)。
(1) 該問(wèn)題是一個(gè)病態(tài)問(wèn)題,本身并沒(méi)有全局解,容易陷入不好的局部解。
(2) 人臉的背景干擾以及遮擋會(huì)影響精度,而且誤差函數(shù)本身不連續(xù)。
(3) 對(duì)初始條件敏感,比如基于關(guān)鍵點(diǎn)進(jìn)行優(yōu)化時(shí),如果關(guān)鍵點(diǎn)精度較差,重建的模型精度也會(huì)受到很大影響。
2.3 3DMM模型的發(fā)展
要使用3DMM模型來(lái)完成人臉重建,首先就需要一個(gè)數(shù)據(jù)庫(kù)來(lái)建立人臉基向量空間,Blanz等人在1999年的文章中提出了采集方法,但是沒(méi)有開(kāi)源數(shù)據(jù)集,Pascal Paysan等人在2009年使用激光掃描儀精確采集了200個(gè)人臉數(shù)據(jù)得到了Basel Face Model數(shù)據(jù)集(簡(jiǎn)稱BFM模型),基本信息如下:
(1)采用ABW-3D結(jié)構(gòu)光系統(tǒng)進(jìn)行采集,采集時(shí)間約1s,相比于激光平均15s的采集方案更加具有優(yōu)勢(shì)。整個(gè)數(shù)據(jù)集包含200張三維的人臉,其中100張男性,100張女性,大部分為高加索人臉。年齡分布8~62歲,平均年齡24.97歲,體重40~123千克,平均66.48千克。每一個(gè)人都被采集3次中性表情,并選擇其中最自然的一次。
(2)在對(duì)采集后的點(diǎn)進(jìn)行處理的過(guò)程中,模型的每一個(gè)點(diǎn)的位置都進(jìn)行了精確匹配,也就是說(shuō)每一個(gè)點(diǎn)都有實(shí)際的物理意義,比如屬于右嘴角等。經(jīng)過(guò)處理后,每一個(gè)模型由53490個(gè)點(diǎn)描述。
該數(shù)據(jù)庫(kù)的平均人臉形狀和平均人臉紋理:
Basel Face Model數(shù)據(jù)集只有200個(gè)人,而近期研究者基于此模型采集了9663個(gè)人得到LSFM模型,能夠進(jìn)一步提升表達(dá)能力。
2009年發(fā)布的Basel Face Model版本中沒(méi)有表情系數(shù),而2017年發(fā)布的版本BFM 2017中提供了表情系數(shù),同樣還是一個(gè)線性模型。
當(dāng)然了,在國(guó)內(nèi)也有一個(gè)著名的數(shù)據(jù)集,就是FaceWarehouse,不過(guò)不開(kāi)源,一般研究者拿不到數(shù)據(jù)。
當(dāng)然也有一些商業(yè)號(hào)稱會(huì)開(kāi)源更好的模型,這個(gè)大家可以拭目以待。人臉的三維模型數(shù)據(jù)之所以不公開(kāi),是因?yàn)槭褂酶呔鹊娜S模型可以很容易仿真真實(shí)人臉,容易發(fā)生安全事故。
當(dāng)前基于3DMM的表情模型主要有兩個(gè)思路,分別是加性模型和乘性模型。加性模型就是線性模型了,將表情作為形狀的一個(gè)偏移量,Es,Ee分別表示形狀和表情基,Ws,We分別表示對(duì)應(yīng)的系數(shù)。
但是因?yàn)楸砬橐矔?huì)改變?nèi)四樀男螤?,因此它和形狀并非完全正交的關(guān)系,所以有的研究者提出了乘性模型,如下。
其中de是一個(gè)表情遷移操作集合,第j個(gè)操作即為Tj,δ都是校準(zhǔn)向量。
另一方面,紋理模型也被稱為表觀模型,它相對(duì)于形狀模型來(lái)說(shuō)更加復(fù)雜,受到反射率和光照的影響,不過(guò)大部分的3DMM模型不區(qū)分兩者,所以我們將其視為一個(gè)因素,即反射率。
光照模型通常采用的是球面模型,光照模型比較復(fù)雜,我們這里就不列出具體的表達(dá)式,大家可以自行閱讀相關(guān)論文。
在2009年提出的BFM模型中,紋理模型是一個(gè)線性模型,即由多個(gè)紋理表情基進(jìn)行線性組合。后續(xù)的研究者們?cè)谡麄€(gè)基礎(chǔ)上增加了紋理細(xì)節(jié),用于仿真臉部的皺紋等。
盡管在大多數(shù)情況下,我們使用的都是線性3DMM模型,但是非線性3DMM模型同樣也被研究,由于不是主流,就不展開(kāi)講了。
? ? ? ?責(zé)任編輯:pj
電子發(fā)燒友App

















評(píng)論