張星星 ,李金龍
(1.中國(guó)科學(xué)技術(shù)大學(xué) 軟件學(xué)院,安徽 合肥 230026;2.中國(guó)科學(xué)技術(shù)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 合肥 230026)
三維人臉重建是指通過一張或多張同一個(gè)人的照片來構(gòu)建該人的三維人臉網(wǎng)格。該課題一直是計(jì)算機(jī)視覺和圖形學(xué)的熱門關(guān)注焦點(diǎn),擁有廣泛的應(yīng)用場(chǎng)景,如人臉身份識(shí)別、醫(yī)學(xué)方案展示、三維人臉動(dòng)畫等。
在三維人臉重建領(lǐng)域,VETTER T 和 BLANTZ V在1999年提出的三維人臉參數(shù)化模型(3DMM)[1]具有重要意義。3DMM 采集了 200 位實(shí)驗(yàn)對(duì)象的臉部激光掃描數(shù)據(jù)集,并對(duì)該數(shù)據(jù)集進(jìn)行主成分分析(PCA)。通過對(duì)PCA 所提取的基向量進(jìn)行線性組合從而構(gòu)成一張新的人臉。
傳統(tǒng)的三維人臉重建基于迭代方法[2],即針對(duì)輸入人臉,利用人臉關(guān)鍵點(diǎn),反復(fù)調(diào)整基向量的參數(shù)使得三維人臉渲染后提取的人臉關(guān)鍵點(diǎn)與二維人臉關(guān)鍵點(diǎn)接近,以此達(dá)到具有輸入人臉特征的三維人臉網(wǎng)格。然而,該方法較為依賴人臉關(guān)鍵點(diǎn)的檢測(cè)結(jié)果,在人臉姿勢(shì)較大或有遮擋物時(shí),效果較差,迭代過程耗時(shí)也較長(zhǎng)。
近年來,隨著深度學(xué)習(xí)的不斷發(fā)展,越來越多的研究開始運(yùn)用基于回歸的方法重建三維人臉。然而,在神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中,一個(gè)亟需解決的問題便是三維人臉訓(xùn)練數(shù)據(jù)稀少。針對(duì)這一問題,部分研究提出利用合成數(shù)據(jù)[3-4],即先隨機(jī)初始化3DMM的參數(shù)作為參照的三維人臉,而后將該三維人臉投影成的二維人臉作為輸入數(shù)據(jù),進(jìn)而擴(kuò)大訓(xùn)練數(shù)據(jù)集。因?yàn)楹铣蓴?shù)據(jù)投影形成的二維圖片不能反映真實(shí)世界的復(fù)雜度,故 GENOVA K[5]提議采用真實(shí)圖片及合成圖片的混合數(shù)據(jù)集進(jìn)行兩步訓(xùn)練。TEWARI A[6]利用編碼解碼器結(jié)構(gòu)直接從單張圖片重建三維人臉,解碼器是基于專業(yè)知識(shí)精心設(shè)計(jì)的,但可擴(kuò)展性較低。TRAN A T[7]等人提議利用迭代方法形成的三維人臉作為神經(jīng)網(wǎng)絡(luò)所需的配對(duì)三維人臉數(shù)據(jù)進(jìn)行訓(xùn)練。
本文基于前人的思想,提出采用GANs 神經(jīng)網(wǎng)絡(luò)回歸3DMM 模型參數(shù)進(jìn)行三維人臉重建任務(wù)。在解決三維人臉數(shù)據(jù)稀少問題上,本文提出兩種并列的監(jiān)督信號(hào):(1)二維監(jiān)督信號(hào):利用三維人臉投影后的二維人臉與輸入的二維人臉身份差異及皮膚顏色差異,來提供二維層面的監(jiān)督信號(hào),使得二者相近;(2)三維監(jiān)督信號(hào):利用重構(gòu)的三維人臉頂點(diǎn)分布與普遍三維人臉頂點(diǎn)分布差異,來提供三維層面的監(jiān)督信號(hào),以使得重構(gòu)后的三維人臉具備真實(shí)感人臉形狀。由于僅依賴二維監(jiān)督信號(hào)可能會(huì)導(dǎo)致一些重構(gòu)后三維人臉頂點(diǎn)離正常人臉頂點(diǎn)偏差較大,雖然投影結(jié)果依舊初具人臉形狀, 仍能被系統(tǒng)識(shí)別,但視覺感受卻與普遍人臉形狀相差較大。其原因在于缺少三維監(jiān)督信號(hào),使得重構(gòu)后的三維人臉頂點(diǎn)分布近似于普遍三維人臉頂點(diǎn)分布。本文擬采用生成對(duì)抗網(wǎng)絡(luò)(GANs)[8]來提供三維監(jiān)督信號(hào),利用生成器及判別器的對(duì)抗生成,指引人臉頂點(diǎn)分布接近于真實(shí)感人臉頂點(diǎn)分布。
本文所采取的網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,共包含四個(gè)部分:(1)生成對(duì)抗網(wǎng)絡(luò)(GANs)[8],利用生成對(duì)抗網(wǎng)絡(luò)產(chǎn)生符合真實(shí)人臉分布的 398 個(gè) 3DMM 模型參數(shù);(2)3DMM[1]模型,通過生成的 3DMM 參數(shù)重新構(gòu)建三維人臉網(wǎng)格;(3)可微分渲染器,將重構(gòu)的三維人臉網(wǎng)格渲染為二維渲染圖片;(4)身份編碼器,利用人臉身份特征識(shí)別網(wǎng)絡(luò)提取輸入及渲染身份特征向量。
1.1.1 生成對(duì)抗網(wǎng)絡(luò)GANs
(1)生成器
假設(shè)輸入圖片 x=(x1,x2,…,xn),xi∈R224×224,生 成器的輸出為其中是預(yù)測(cè)得到的3DMM 模型參數(shù),具體含義詳見1.1.2 節(jié)。
對(duì)于生成器,采用修改過后的Resnet50。Resnet[9]使用的具體殘差塊如圖2 所示, 其中,x 是輸入,F(xiàn)(x)是經(jīng)過兩層卷積層學(xué)習(xí)得到的特征,最后的輸出是F(x)和 x 的疊加結(jié)果。由于梯度可以從兩條支路進(jìn)行傳播,從而解決了隨著網(wǎng)絡(luò)的層數(shù)加深,梯度消失的現(xiàn)象。
圖1 三維人臉重建網(wǎng)絡(luò)結(jié)構(gòu)
圖2 Resnet 殘差塊
采用Resnet50 作為生成器的目的是為了提升深度學(xué)習(xí)的訓(xùn)練效果。為了回歸 3DMM 模型 398 個(gè)參數(shù),將 Resnet50 中最后一層 1 024-D 全連接層改為398-D。
(2)判別器
對(duì)于判別器來說, 輸入共兩類, 均為 398 維向量 y=(y1,y2, … ,yn),其中,yi是從符合真實(shí)人臉 3DMM 參數(shù)分布 p3DMM(y)(詳 見 1.1.2 節(jié) )中 取 樣 而 得 ,而為 生 成 器 回 歸 而得的3DMM 模型參數(shù)。
由于判別器的輸入僅一維,故而采用3 層全連接層對(duì)生成器的回歸結(jié)果是否符合真實(shí)人臉3DMM 參數(shù)分布進(jìn)行判斷。判別器的網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 判別器網(wǎng)絡(luò)結(jié)構(gòu)
1.1.2 3DMM 模型
3DMM[1]人臉參數(shù)化模型是VETTER T 和BLANTZ V基于100 位年輕男性及100 位年輕女性的臉部激光掃描數(shù)據(jù)集而形成的一個(gè)數(shù)理統(tǒng)計(jì)模型。具體來說,首先假設(shè)對(duì)于每一個(gè)臉部激光掃描樣本的頂點(diǎn)均是按一致順序進(jìn)行排列的,提取包含所有點(diǎn)位置信息的位置向量及顏色信息的顏色向量。之后,利用主成分分析(PCA)技術(shù)分別作用于位置向量及顏色向量,形成新的相互正交的位置特征基向量及顏色特征基向量。于是,一張新的人臉就可以由式(1)獲得。
然而, 系數(shù)并非任意數(shù)值皆可。VETTER T 和BLANTZ V 發(fā)現(xiàn),若令 αi、βi服從標(biāo)準(zhǔn)正態(tài)分布,可使得生成三維人臉網(wǎng)格符合真實(shí)人臉形狀。在此背景下,用 p3DMM(y),y=(α,β)來表示符合真實(shí)人臉3DMM 參數(shù)分布,即標(biāo)準(zhǔn)正態(tài)分布。
Vetter 和 Blantz 采集的人臉數(shù)據(jù)庫(kù)于 2009年在Basel Face Model[10]中 公 開 ,稱 為 BFM2009。本 文 所采用的3DMM 模型便是 BFM2009。
1.1.3 可微分渲染器
可微分渲染器是將3DMM 生成的三維人臉網(wǎng)格 渲 染 成 二 維 圖 片由于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程中涉及反向傳播,故本文采納GENOVA K[5]等人的提議使用了一個(gè)基于延遲陰影模型的可微光柵化器。光柵化器在每個(gè)像素處生成包含三角形id 和重心坐標(biāo)的屏幕空間緩沖區(qū)。光柵化過后,使用重心坐標(biāo)和id 在像素處插值每個(gè)頂點(diǎn)的屬性,如顏色和法線。光柵化導(dǎo)數(shù)是根據(jù)重心坐標(biāo)計(jì)算的,而不是三角形id。
因?yàn)榭晌⒎咒秩酒魇褂醚舆t著色,照明是用一組頂點(diǎn)屬性插值后形成的緩沖區(qū)作為圖像,獨(dú)立計(jì)算每個(gè)像素,所以本文采用Phong 反射光照模型進(jìn)行陰影處理,Phong 反射光照模型比漫反射模型更有真實(shí)感,且既有效又可微。
1.1.4 身份編碼器
身份編碼器輸入一共有兩類,均為 160×160 的圖 片 x=(x1,x2, … ,xn),R160×160,其中,xi是將預(yù)處理過的 224×224 人臉 圖 片進(jìn)一步裁剪后的圖片是經(jīng)過可微分渲染器渲染后的人臉圖片。對(duì)應(yīng)于每類輸入,身份編碼器的輸出也是兩類,均為對(duì)人臉圖片提取的128-D 身份特征 向 量R128, 其 中 ,fi是 對(duì) xi提 取 的 身 份 特 征 向 量而 是對(duì)提取的身份特征向量。
本文采用預(yù)訓(xùn)練好的FaceNet[11]作為身份編碼器來提取輸入人臉及渲染人臉的身份特征向量。FaceNet 主要利用DNN,從原始圖片學(xué)習(xí)到歐氏距離空間的映射,故而圖像在歐式空間里的距離與人臉相似度關(guān)聯(lián)。本文通過最小化兩者身份特征向量,以使得生成的三維人臉接近輸入的二維人臉,詳見1.2.2 節(jié)。
為了使得回歸得到的三維人臉網(wǎng)格能夠接近輸入人臉圖像,本文提出了三項(xiàng)損失函數(shù)提供監(jiān)督信號(hào):GANs 損失函數(shù)、id 損失函數(shù)和皮膚顏色損失函數(shù)。
1.2.1 GANs 損失函數(shù)
為了簡(jiǎn)化GANs 的目標(biāo)函數(shù),將生成器的回歸過程表示為 G(x),x=(x1,x2,…,xn),代表生成器根據(jù)輸入的人臉圖片 x 回歸得到的 3DMM 參數(shù)。而判別器的判別學(xué)習(xí)過程被表示為代 表 判 別 器 給 出 的 對(duì) 于 某樣本 Yi的結(jié)果集?的概率來源于真實(shí)人臉 3DMM參數(shù)分布 p3DMM(y)而不是生成器生成。GANs 的目標(biāo)函數(shù)可以由式(2)表示:
其中,x~pdata(x) 表示x 取樣于人臉圖像數(shù)據(jù)分布,而 y~pdata(y) 表示 y 取樣于真實(shí)人臉 3DMM 參數(shù)分布p3DMM(y)。
目標(biāo)在于使得生成器回歸得出的3DMM 參數(shù)服從真 實(shí)人 臉 3DMM 參 數(shù) 分 布p3DMM(y), 即 強(qiáng) 迫該目標(biāo)是由GANs 的min-max 對(duì)抗過程實(shí)現(xiàn)的。GANs 一共包含兩個(gè)交叉訓(xùn)練階段:第一階段固定生成器 G,訓(xùn)練判別器 D,該階段中 D 的目標(biāo)是最大化 LGANs(G,D),如此,D 可以在樣本來源于真實(shí)人臉 3DMM 參數(shù)分布 p3DMM(y)時(shí)給出一個(gè)較大概率,在樣本來源于生成器G 時(shí)給出一個(gè)較小的概率;第二階段固定判別器 D,訓(xùn)練生成器 G,該階段中 G 的目標(biāo)是最小化 LGANs(G,D),以使得當(dāng)樣本來源于生成器G 時(shí)D 能給出一個(gè)較大的概率。
GANs 的損失函數(shù)對(duì)三維人臉重建任務(wù)提供了三維監(jiān)督信號(hào)。基于3DMM 模型本身的假設(shè),利用生成器及判別器的對(duì)抗生成過程,指引生成器回歸的3DMM 參數(shù)接近于真實(shí)人臉3DMM 參數(shù)分布p3DMM(y),進(jìn)而生成的三維人臉網(wǎng)格中人臉的頂點(diǎn)分布能夠接近于真實(shí)人臉頂點(diǎn)分布。
1.2.2 id 損失函數(shù)
在歐式空間中,無論表情、姿勢(shì)或者照明條件如何,F(xiàn)aceNet 對(duì)于同一人的兩張照片提取的身份特征向量之間的距離要比從兩個(gè)不同的人的照片提取的身份特征向量之間的距離更加接近。采用式(3)來衡量?jī)蓮埲四樀南嗨贫龋?/p>
id 損失函數(shù)對(duì)三維人臉重建任務(wù)提供了二維監(jiān)督信號(hào)。由于三維人臉數(shù)據(jù)集稀少的原因,評(píng)判三維人臉重建結(jié)果的好壞便可遷移到二維空間。首先將三維人臉重建網(wǎng)格渲染成二維人臉圖片,再利用FaceNet 對(duì)二維輸入人臉圖片及渲染后的人臉圖片進(jìn)行身份特征向量提取,通過最小化兩個(gè)身份特征向量之間的距離,使得渲染后的人臉身份特征接近輸入圖片的人臉特征,進(jìn)而迫使重建三維人臉網(wǎng)格具有輸入圖片的人臉特征。
1.2.3 皮膚顏色損失函數(shù)
由于FaceNet 可以忽略照明等因素對(duì)人臉特征進(jìn)行身份特征提取, 僅依靠 FaceNet 提供的二維監(jiān)督信號(hào)導(dǎo)致重建的三維人臉皮膚不能很好地反映輸入圖片人臉皮膚顏色。故而采用式(4)來進(jìn)一步衡量?jī)蓮埲四樀钠つw顏色損失。
由于嵌入后背景像素一致,通過對(duì)兩張圖片逐像素求l2損失,可以使得渲染后的人臉皮膚顏色逼近輸入人臉皮膚顏色。因此皮膚顏色損失函數(shù)對(duì)三維人臉重建任務(wù)提供了二維監(jiān)督信號(hào)。
1.2.4 總體損失函數(shù)
綜上,總體損失函數(shù)可由式(5)表示:
其中,wid=5,wtex=0.15 是訓(xùn)練時(shí)控制 id 損失和皮膚顏色損失比例的超參數(shù)。LGANs(G,D)為三維人臉重建任務(wù)提供了三維監(jiān)督信號(hào),使得生成器回歸得到的3DMM 參數(shù)符合3DMM 模型假設(shè)的真實(shí)人臉3DMM 參數(shù)分布p3DMM(y),進(jìn)而迫使重建的三維人臉網(wǎng)格頂點(diǎn)分布接近于真實(shí)人臉頂點(diǎn)分布。而Lid,Ltex為三維人臉重建任務(wù)提供了二維監(jiān)督信號(hào),Lid將三維人臉重建結(jié)果的評(píng)估移到二維空間,其中使得渲染后的二維人臉接近輸入圖片的人臉,進(jìn)而迫使重建三維人臉網(wǎng)格具有輸入圖片的人臉特征,Ltex使得渲染后的皮膚顏色更加接近輸入圖片的人臉皮膚顏色。通過這三項(xiàng)損失函數(shù),可以使得重構(gòu)后的人臉既符合真實(shí)三維人臉網(wǎng)格頂點(diǎn)的分布,又具備輸入圖片人臉的身份特征及皮膚顏色,故而使得人臉重建結(jié)果具有說服力。
本文實(shí)驗(yàn)是在VGGFace2[12]數(shù)據(jù)集上進(jìn)行訓(xùn)練,該數(shù)據(jù)集包含了 9 131 個(gè)人物的 3.31M 張圖片,圖片來源于不同的年齡、種族的人物及各個(gè)人物的不同姿勢(shì)。
由于冗余的背景信息往往對(duì)人臉重構(gòu)任務(wù)無用且降低網(wǎng)絡(luò)收斂速度,因而使用MTCNN[13]對(duì)每張圖片提取 224×224 像素的人臉。
在訓(xùn)練過程中使用了Adam 優(yōu)化算法來有效地更新網(wǎng)絡(luò)權(quán)重,學(xué)習(xí)率設(shè)置為 0.001,batch size 設(shè)置為 5,整個(gè)網(wǎng)絡(luò)共訓(xùn)練了 500k 次 iteration。
因?yàn)槿S人臉重建的重建效果判別較為主觀,故而主要將本文重建的三維人臉網(wǎng)格與文獻(xiàn)[5]~[7]重建結(jié)果進(jìn)行比較。比較結(jié)果如圖4 所示, 其中,輸入圖片來自文獻(xiàn)[6]提供的MoFA 測(cè)試圖像數(shù)據(jù)集,該數(shù)據(jù)集共包含 84 位實(shí)驗(yàn)對(duì)象。
圖4 重建效果比較
從視覺效果上來說,相對(duì)于文獻(xiàn)[6]、文獻(xiàn)[7],本文重建結(jié)果在皮膚及人臉形狀真實(shí)感上更有說服力;相對(duì)于文獻(xiàn)[5],本文重建結(jié)果更能反映輸入人臉的身份特征。這說明,從渲染得到的二維圖片來說,本文重建結(jié)果渲染后更加接近真實(shí)人臉效果并保持輸入人臉的身份特征。
為了衡量重建的三維人臉網(wǎng)格的準(zhǔn)確性,在MICC Florence[14]人臉數(shù)據(jù)庫(kù)中與文獻(xiàn)[5]、文獻(xiàn)[7]方法進(jìn)行比較。
MICC Florence 人臉數(shù)據(jù)庫(kù)一共包含 53 位白種人的無表情人臉掃描,同時(shí),數(shù)據(jù)集還提供了每位實(shí)驗(yàn)對(duì)象的分別在三種條件下的三個(gè)視頻:采集人臉掃描環(huán)境、室內(nèi)環(huán)境、室外環(huán)境,可以看出,環(huán)境復(fù)雜度在依次增加。其中,文獻(xiàn)[7]對(duì)于視屏中每幀圖像的重建三維網(wǎng)格結(jié)果進(jìn)行逐頂點(diǎn)求平均值,文獻(xiàn)[5]及本文對(duì)于視屏中每幀圖像回歸的3DMM 參數(shù)求平均值。
由于MICC Florence 人臉數(shù)據(jù)庫(kù)給出的人臉掃描頂點(diǎn)數(shù)與3DMM 模型的頂點(diǎn)數(shù)不對(duì)應(yīng)且數(shù)目不一致,故首先將回歸得到的三維人臉網(wǎng)格及人臉數(shù)據(jù)庫(kù)提供的人臉掃描均裁剪到以鼻頭為中心,95 mm為半徑的范圍內(nèi),然后采用了各項(xiàng)同性的ICP 算法來將兩個(gè)三維點(diǎn)云進(jìn)行對(duì)齊。實(shí)驗(yàn)結(jié)果將 53 位實(shí)驗(yàn)對(duì)象的point-to-plane 的距離求均方差。最終的準(zhǔn)確性比較結(jié)果如表1 所示??梢钥闯?,本文的重建方法在三種環(huán)境下均優(yōu)于文獻(xiàn)[5]和文獻(xiàn)[7]方法。這得益于三維監(jiān)督信號(hào)使得三維人臉網(wǎng)格更具有真實(shí)人臉頂點(diǎn)分布。
表1 重建結(jié)果準(zhǔn)確性比較比較
本文基于GANs 提出了一種無監(jiān)督回歸輸入圖片對(duì)應(yīng)的三維人臉網(wǎng)格的方法。具體來說,提出了三項(xiàng)并行的損失函數(shù),GANs 損失函數(shù)使得回歸的3DMM 參數(shù)符合真實(shí)人臉參數(shù)分布,重構(gòu)的三維人臉網(wǎng)格頂點(diǎn)符合真實(shí)人臉頂點(diǎn)分布;id 損失函數(shù)使得重構(gòu)的三維人臉具有輸入人臉的身份特征;皮膚顏色損失使得重構(gòu)的三維人臉更能反映輸入人臉的皮膚顏色。在 MoFA 數(shù)據(jù)集及 MICC Florence 數(shù)據(jù)集上的實(shí)驗(yàn)效果表明,重構(gòu)結(jié)果不僅保持了輸入人臉的身份特征,也在頂點(diǎn)位置上具有更小的誤差。