曾遠強,蔡堅勇,2,3,4,章小曼,盧依宏
1(福建師范大學(xué) 光電與信息工程學(xué)院,福州 350007)
2(福建師范大學(xué) 醫(yī)學(xué)光電科學(xué)與技術(shù)教育部重點實驗室,福州 350007)
3(福建師范大學(xué) 福建省光子技術(shù)重點實驗室,福州 350007)
4(福建師范大學(xué) 福建省光電傳感應(yīng)用工程技術(shù)研究中心,福州 350007)
人臉對齊和三維人臉重建是計算機視覺領(lǐng)域中兩個相關(guān)聯(lián)且具有挑戰(zhàn)性的課題,在信息安全,智慧城市,影視娛樂等領(lǐng)域有著廣泛的應(yīng)用.其中信息安全領(lǐng)域?qū)θ四樦亟P偷挠嬎闼俣群唾|(zhì)量都有較高的要求.例如在人臉識別的應(yīng)用中,二維人臉識別在大姿態(tài)人臉的條件下識別效果較差,而三維人臉因為包含更豐富的人臉信息,可以較好的克服人臉姿態(tài)的影響.三維人臉識別系統(tǒng)一般需要經(jīng)過人臉對齊的步驟,然后利用三維人臉重建模型從二維人臉圖片中重建出三維人臉用于人臉識別,其中的人臉對齊和人臉重建是其中兩個重要的步驟.人臉對齊的精度,人臉重建的質(zhì)量和模型的運行速度是其中的關(guān)鍵因素,本文將在已有研究的基礎(chǔ)上創(chuàng)新改進三維人臉重建模型,提高模型的性能.
二維人臉對齊的研究工作主要是為了實現(xiàn)人臉關(guān)鍵點的定位,并用于人臉識別或者輔助人臉重建等任務(wù).早期比較具有代表性的工作如主觀形狀模型(ASM)[1],作者首先用人臉樣本構(gòu)建出一個平均人臉,然后用68個已標(biāo)定的人臉關(guān)鍵點描述模型對齊的人臉,通過迭代搜索對應(yīng)特征點,不斷優(yōu)化參數(shù),直至搜索的特征點和對應(yīng)標(biāo)定的特征點最為接近.該方法實現(xiàn)的人臉對齊效果精度較低,且容易受到圖像噪聲影響.一些工作[2,3]基于主觀形狀模型進行優(yōu)化,得到了改進,但是精確度仍然較差.隨著深度學(xué)習(xí)的發(fā)展,目前通過二維人臉圖片進行人臉對齊取得較好效果的是基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的方法[4],但是這類方法只能描述圖片中人臉的可見區(qū)域,其性能會在面部遮擋、頭部姿態(tài)等外界因素的干擾下受到影響.與二維人臉相比,三維人臉在空間中保留了更多的信息,不受人臉姿態(tài)等因素的影響.一些研究在Blanz 等人[5]提出的三維人臉形變模型3DMM的基礎(chǔ)上,通過擬合3DMM參數(shù)去實現(xiàn)三維人臉對齊,在精準(zhǔn)性和魯棒性方面都有所提升.如Zhu 等人[6]提出的3DDFA,作者將PNCC和PAF 做為輸入特征,設(shè)計了一個級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)作為回歸因子計算模型參數(shù),將3DMM 擬合到二維圖像,實現(xiàn)了人臉關(guān)鍵點定位和人臉密集對齊,性能優(yōu)于基于二維人臉圖片的對齊方式.通過擬合3DMM 參數(shù)實現(xiàn)人臉對齊的方法由于人臉模型中間參數(shù)的影響,模型性能受到限制.近來,Yao 等人[7]提出的PRN,采用UV 位置圖表示三維人臉,以端到端的訓(xùn)練方式克服了中間參數(shù)的影響,使模型在運行速度和人臉對齊效果上都得到了提升.但是受其網(wǎng)絡(luò)架構(gòu)的影響,其模型冗余度和對齊的精確度仍然有待改進.
在人臉重建方面,傳統(tǒng)的三維人臉重建方法主要基于3DMM 模型實現(xiàn),早期的方法[8,9]通過建立二維圖像與3DMM 模型的特征點之間的對應(yīng)關(guān)系,求解優(yōu)化函數(shù)回歸3DMM 參數(shù),這類方法受初始特征點檢測精度的影響較大,且重建過程復(fù)雜.在卷積神經(jīng)網(wǎng)絡(luò)發(fā)展的影響下,一些方法[10,11]使用CNN 直接學(xué)習(xí)3DMM的參數(shù),相比于傳統(tǒng)算法在重建質(zhì)量和速度上都有所提升.然而,基于固有模型重建的方法因為受到模型幾何空間的限制,所實現(xiàn)的重建效果也不理想.
為了克服上述研究的缺陷,近來有一些研究提出采用端到端的方式實現(xiàn)三維人臉齊重建,擺脫了固有參數(shù)模型的空間限制,實現(xiàn)了較好的人臉重建效果.VRN[12]采用體素表示三維人臉,設(shè)計了由多個沙漏模塊構(gòu)成的卷積神經(jīng)網(wǎng)絡(luò)進行回歸訓(xùn)練,相比上述方法取得了更好的效果,但是文中采用了體素的表示方式表示三維人臉,丟棄了點的語義信息,為了從單張二維人臉圖片重建出完整的三維人臉形狀,需要復(fù)雜的網(wǎng)絡(luò)對整個體積進行回歸,增加了計算的復(fù)雜度.PRN[7]采用了UV 位置圖的方式表示三維人臉,有效保留了點的語義信息.并設(shè)計一個由殘差模塊和轉(zhuǎn)置卷積模塊構(gòu)成的編解碼網(wǎng)絡(luò),結(jié)合文中所提的權(quán)重損失函數(shù)進行訓(xùn)練,取得了更好的性能.其中編碼網(wǎng)絡(luò)主要采用如圖1所示的殘差模塊[13]構(gòu)成,方框中的參數(shù)為卷積核的大小,設(shè)輸入的特征圖為x,則殘差模塊的輸出H(x)可表示為式(1).殘差模塊通過跳接的方法,克服深層網(wǎng)絡(luò)中的梯度消失問題,加強了模型的特征提取能力.但是由于PRN 構(gòu)建的編碼網(wǎng)絡(luò)層數(shù)較深,參數(shù)數(shù)量達到9.43×105個,模型的冗余度仍有待進一步優(yōu)化,另一方面在其損失函數(shù)限制下,其模型的對齊和重建質(zhì)量也有待提升.
圖1 殘差模塊示意圖
本文所提的方法是在PRN 工作基礎(chǔ)上的創(chuàng)新改進,有效提高了三維人臉對齊和重建的質(zhì)量,本文主要工作如下:
(1)設(shè)計了一個全新的由密集卷積模塊和轉(zhuǎn)置卷積模塊構(gòu)成的編解碼網(wǎng)絡(luò),經(jīng)過實際運算得出,相比PRN 網(wǎng)絡(luò)的參數(shù)數(shù)量減少了1.76×105個,有效降低了模型的冗余度,提高模型運算速度.
(2)在損失函數(shù)中引入圖像結(jié)構(gòu)相似度,借鑒PRN的權(quán)重損失函數(shù)思想,提高了三維人臉對齊和重建質(zhì)量.
(3)在AFLW2000-3D 數(shù)據(jù)集[6]上驗證效果并與其他方法作出對比,實驗表明本文的方法在人臉重建和人臉對齊方面都取得了較好的效果.
這個部分將論述網(wǎng)絡(luò)架構(gòu)的實現(xiàn)和損失函數(shù)的設(shè)計.本文所提出的網(wǎng)絡(luò)架構(gòu)包括兩部分:
(1)基于密集卷積模塊構(gòu)成的編碼網(wǎng)絡(luò);
(2)基于轉(zhuǎn)置卷積模塊構(gòu)成的解碼網(wǎng)絡(luò).
本文采用密集卷積模塊的架構(gòu)去設(shè)計編碼網(wǎng)絡(luò).密集卷積模塊來源于[14]提出的密集卷積網(wǎng)絡(luò)(DenseNet),如圖2所示,其中方框表示卷積層,作者用前反饋的方式將網(wǎng)絡(luò)中的每一層拼接到之后的每一層網(wǎng)絡(luò)中,不同于PRN 用殘差模塊的跳接求和方式,密集卷積模塊將前面所有層的特征圖拼接用作當(dāng)前層的輸入,即第l層可以接收到前l(fā)–1 層的所有特征圖作為輸入,如圖2的連接狀態(tài)可表示為式(1),其中[x0,x1,x2,x3]表示前面各層特征圖的拼接,H函數(shù)表示當(dāng)前層的權(quán)重運算.DenseNet 架構(gòu)通過密集連接和特征復(fù)用,可以緩解梯度消失問題,并減少參數(shù)的數(shù)量,性能優(yōu)于殘差卷積網(wǎng)絡(luò).
圖2 密集卷積模塊示意圖
本文的編碼網(wǎng)絡(luò)主要由6個密集卷積模塊構(gòu)成.首先第一層是3×3的卷積層用于提取輸入圖片的特征,接下去則是密集卷積模塊和過渡層組成的網(wǎng)絡(luò).每個密集卷積模塊包含批量歸一化層BN (Batch Normalization),1×1 卷積層和3×3 卷積層共3個小模塊.過渡層由一個批量歸一化層連接一個1×1的卷積層和2×2的平均池化層組成.1×1的卷積層的設(shè)定是為了控制輸入特征圖的通道數(shù)量,提高網(wǎng)絡(luò)的運算效率,使用平均池化層則是因為其在保留圖片的局部信息相對其他池化方式有優(yōu)勢,適合我們的人臉重建任務(wù).網(wǎng)絡(luò)架構(gòu)示意圖如圖3,網(wǎng)絡(luò)各層參數(shù)及特征圖維度變換如表1所示.本文將圖片的維度表示為H×W×B,其中H和W分別表示圖片的高和寬,B表示圖片的通道數(shù).該編碼網(wǎng)絡(luò)可以將維度為256×256×3的輸入圖片轉(zhuǎn)換為8×8×512的特征圖.
表1 編碼網(wǎng)絡(luò)輸出特征圖大小各層參數(shù)
圖3 編碼網(wǎng)絡(luò)架構(gòu)示意圖
我們在編碼網(wǎng)絡(luò)中將特征圖的維度縮小后,需要用轉(zhuǎn)置卷積構(gòu)成的解碼網(wǎng)絡(luò)進行上采樣,預(yù)測出維度為256×256×3的位置圖.該編碼網(wǎng)絡(luò)采用兩種轉(zhuǎn)置卷積,一種用于上采樣,卷積核的大小為4×4,步長為2.零填充padding為1,一種用于維持形狀,對特征圖進行整理,其卷積核大小為3×3,步長為1,零填充padding為1.
設(shè)反卷積輸入的特征圖維度為i,輸出的特征圖維度為o,卷積核大小為k,步長為s,零填充個數(shù)為p,轉(zhuǎn)置卷積對特征圖的維度轉(zhuǎn)換公式如式(3)所示:
圖4中第1 層卷積的輸出圖片的維度應(yīng)為o=1×(i?1)+3?2=i,即特征圖維度不變.第2 層轉(zhuǎn)置卷積的維度為o=2×(i?1)+4?2=2i,實現(xiàn)了對特征圖的上采樣.第3 層轉(zhuǎn)置卷積同第1 層.
解碼網(wǎng)絡(luò)的每一個模塊由如圖4所示3個小模塊構(gòu)成.最后我們設(shè)計了一個由5個該模塊構(gòu)成的解碼網(wǎng)絡(luò),將編碼網(wǎng)絡(luò)輸出的維度8×8×512的特征圖上采樣為256×256×3,輸出預(yù)測的結(jié)果.
圖4 轉(zhuǎn)置卷積模塊示意圖
在PRN中作者提出了權(quán)重損失函數(shù)的方法,通過設(shè)置權(quán)重矩陣,將訓(xùn)練的重點集中在人臉關(guān)鍵的區(qū)域,忽略臉部以外部分,提高了訓(xùn)練的效率.該權(quán)重矩陣W設(shè)置的比例為:(人臉68個關(guān)鍵點):(眼嘴鼻):(人臉其他區(qū)域):(人臉以外區(qū)域)=16:4:3:0,其各區(qū)域劃分可參考圖5.本文借鑒權(quán)重損失函數(shù)這一方法,考慮真實圖片與預(yù)測后圖片的結(jié)構(gòu)相在損失函數(shù)中引入圖像結(jié)構(gòu)相似度SSIM[15]創(chuàng)建了一個新的損失函數(shù).SSIM可結(jié)合亮度,對比度和結(jié)構(gòu)3 方面因素比較兩張圖片,假設(shè)輸入的兩張圖像分別為x和y,定義SSIM為式(4).
圖5 人臉權(quán)重矩陣各區(qū)域劃分示意圖
其中,l(x,y)表示亮度比較函數(shù),c(x,y)表示對比度比較函數(shù),s(x,y) 表示結(jié)構(gòu)比較函數(shù).設(shè)x的平均值標(biāo)準(zhǔn)差為y的平均值μy和標(biāo)準(zhǔn)差 σy計算同x.圖像x和y的協(xié)方差表示為
l(x,y),c(x,y)和s(x,y)分別定義如下:
其中,C1、C2、C3為常數(shù),避免分母接近于0 時造成運算的不穩(wěn)定.這里取C3=α=β=γ=1,則SSIM可表示如下:
結(jié)合人臉權(quán)重W,定義損失函數(shù)Loss為:
這部分內(nèi)容將介紹具體的訓(xùn)練過程,并進行實驗結(jié)果分析.因為本文的模型能實現(xiàn)人臉對齊和人臉重建兩部分的任務(wù),所以在我們的論述中將分別對這兩項任務(wù)的實驗數(shù)據(jù)與其他方法做出對比,并通過效果圖展示模型的效果.
3.1.1 訓(xùn)練集
本文的目標(biāo)是通過神經(jīng)網(wǎng)絡(luò)從單張二維人臉圖片中回歸出人臉對齊信息和三維人臉幾何信息,所以使用的訓(xùn)練集既要能讓網(wǎng)絡(luò)直接回歸預(yù)測,還應(yīng)包含人臉對齊和三維人臉信息.針對以上問題,我們采用Yao等人在PRN[7]中提出的將三維人臉轉(zhuǎn)換為UV 位置圖的方式創(chuàng)建訓(xùn)練集.UV 位置圖是一種能在UV 空間記錄三維信息的二維圖像[16],Yao 等人使用UV 空間存儲三維人臉模型中點的位置,并在直角坐標(biāo)系中將三維人臉模型的投影與相應(yīng)的二維人臉圖像對齊.位置圖Pos可以表示為:
其中,(ui,vi)表示UV 空間中的第i個點,與3 維空間中的第i個點 (xi,yi,zi) 對應(yīng),(xi,yi)為對應(yīng)二維圖像的第i個點,zi表示該點的深度.(ui,vi)和(xi,yi)表示相同的位置,因此能夠保留對齊的信息.
本文使用300W-LP 數(shù)據(jù)集[6]的部分數(shù)據(jù)作為訓(xùn)練集,300W-LP 包含各種無約束的二維人臉圖片及其對應(yīng)的三維人臉信息,其中標(biāo)注的信息包含人臉姿態(tài)參數(shù),68個人臉關(guān)鍵點等.我們選取300W-LP中的AFW,HELEN 及其對應(yīng)的翻轉(zhuǎn)圖片,并對其中部分圖片進行平移旋轉(zhuǎn),總共得到12 萬組數(shù)據(jù)作為訓(xùn)練集,然后采用PRN[7]所提方法在已有標(biāo)注數(shù)據(jù)的基礎(chǔ)上將其中的三維人臉信息轉(zhuǎn)換到UV 空間得到UV 位置圖,構(gòu)建出完整的訓(xùn)練集.
3.1.2 實驗參數(shù)及環(huán)境
網(wǎng)絡(luò)架構(gòu)如第2 節(jié)論述.訓(xùn)練中設(shè)置批量大小為16,使用Adam 優(yōu)化器,根據(jù)訓(xùn)練的效果,依次調(diào)整初始學(xué)習(xí)率為1 ×10?4,1 ×10?6,1 ×10?8,其他參數(shù)不變,每個周期迭代7529 次,總共訓(xùn)練80個周期.使用編程語言Python 3.6,深度學(xué)習(xí)框架PyTorch 1.1.0,在NVIDIA 1080ti GPU 上完成訓(xùn)練,每個完整的訓(xùn)練需3 天時間.
3.2.1 人臉對齊實驗結(jié)果分析
首先是人臉對齊結(jié)果的分析.我們使用的測試集是AFLW-3D 數(shù)據(jù)集,該數(shù)據(jù)集包含各種姿態(tài)的人臉參數(shù)以及68個人臉關(guān)鍵點參數(shù),被廣泛用于人臉對齊的測試評估中.經(jīng)過訓(xùn)練得出模型,對各種姿態(tài)的人臉對齊效果如圖6所示,第1 行為各種姿態(tài)的人臉圖片,第2 行為對齊的效果圖.
圖6 人臉對齊效果圖
根據(jù)AFLW-3D中偏航角(yaw)參數(shù),分類出[0,30),[30,60),[60,90]三種不同頭部姿態(tài)的部分圖片進行對比實驗.采用歸一化平均誤差NME(Normalized Mean Error)[4]作為評價指標(biāo),NME評價指標(biāo)被廣泛用于人臉對齊和重建中,采用該評價指標(biāo)有利于與NME的值越小表明效果越好,如式(4)所示,yg和yp分別為真實的人臉標(biāo)記點和對應(yīng)的預(yù)測點,歸一化因子d=其中W和H分別為包圍真實人臉圖片的方框的寬和長.
結(jié)果如表2所示,3DDFA 方法在固有模型的限制下,對各類姿態(tài)人臉的對齊效果會比PRN 基于位置圖回歸的方式得出的模型效果差,而本文的方法使用密集卷積模塊構(gòu)建網(wǎng)絡(luò),在編碼網(wǎng)絡(luò)實現(xiàn)特征重用,并構(gòu)建新優(yōu)化損失函數(shù),使得評價指標(biāo)相對PRN 略有優(yōu)化.其他方法的數(shù)據(jù)來源于各自所屬論文.
表2 多姿態(tài)人臉對齊歸一化平均誤差(%)
3.2.2 人臉重建實驗結(jié)果分析
人臉重建的測試集同樣使用AFLW-3D 數(shù)據(jù)集,部分效果圖如圖7所示,其中第1 列為各種姿態(tài)的人臉原圖,第2 列和第3 列為對應(yīng)重建三維人臉模型在不同視角下的效果圖.為了對重建效果進行評估,首先使用迭代最近點算法(ICP)[17]對真實的三維人臉點云和模型輸出的三維人臉點云進行配準(zhǔn),然后用人臉外眼間距離作為歸一化因子計算歸一化平均誤差.我們對比了3DDFA,DeFA[18]和PRN的歸一化平均誤差指標(biāo),結(jié)果如表3所示,相關(guān)對照數(shù)據(jù)來源于文獻[7],可見本文的方法有較好的效果.
表3 人臉重建歸一化平均誤差(%)
圖7 人臉重建效果圖
本文提出了一種基于編解碼方式的卷積神經(jīng)網(wǎng)絡(luò),實現(xiàn)了在不同人臉姿態(tài)條件下的人臉對齊和從單張二維人臉圖片重建出三維人臉.在網(wǎng)絡(luò)架構(gòu)部分使用密集卷積模塊和轉(zhuǎn)置卷積模塊構(gòu)建網(wǎng)絡(luò),有效降低了模型的冗余度,并結(jié)合圖像結(jié)構(gòu)相似度評價和特定面部權(quán)重作為損失函數(shù),提高了人臉對齊的精確度的和人臉重建的質(zhì)量.在測試數(shù)據(jù)集AFLW-3D 上進行實驗表明,本文所提的網(wǎng)絡(luò)模型優(yōu)于之前的方法.在今后的工作中,本研究將繼續(xù)在優(yōu)化重建過程和提高重建精度上做出改進.