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