999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于神經(jīng)網(wǎng)絡(luò)的三維人臉重建

2019-06-04 02:37:34查道安江志君
關(guān)鍵詞:模型

查道安,江志君

(銅陵學(xué)院 電氣工程學(xué)院,安徽 銅陵 244000)

1 問題概述及相關(guān)研究

1.1 問題概述

在模型訓(xùn)練過程中,輸入是一個(gè)視頻流或者多幀圖片數(shù)據(jù)。假設(shè)人臉正對(duì)相機(jī)且沒有其他干擾場景。雖然在數(shù)據(jù)采集過程中這一點(diǎn)很難保證,但是在數(shù)據(jù)預(yù)處理時(shí)會(huì)通過為人臉設(shè)置一個(gè)最大允許的偏轉(zhuǎn)角度來過濾掉有問題的幀。另外要求相機(jī)的位置固定,光線和背景都假設(shè)穩(wěn)定。

模型輸出是每一幀生成一個(gè)三維的網(wǎng)格,網(wǎng)格的數(shù)據(jù)點(diǎn)數(shù)目設(shè)置為5 453。三維點(diǎn)云的數(shù)目本身可以通過調(diào)整網(wǎng)絡(luò)參數(shù)來調(diào)節(jié),根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)和其他因素設(shè)置此數(shù)目。一般來說,數(shù)據(jù)點(diǎn)太少不足以展示細(xì)節(jié)特征,數(shù)據(jù)點(diǎn)太多又會(huì)導(dǎo)致參數(shù)過多從而增加難度。

1.2 相關(guān)研究

目前,通過多張人臉圖片進(jìn)行3D人臉重建[1],可以生成高精確度的3D人臉模型,但是需要大量的圖片。而基于單張圖片[2-3](Single View)進(jìn)行3D人臉重建更加困難,大致可以分為以下幾類[4-5]:

統(tǒng)計(jì)形狀表示(Statistical Shape Representations),如廣泛采用的3DMM方法,采用許多對(duì)齊的3D人臉形狀來進(jìn)行3D人臉重建。這類方法不能生成具有個(gè)體特征的人臉,而且只能在特定的條件下用于人臉識(shí)別。近期的方法中,有采用CNN的方法來調(diào)節(jié)3DMM人臉參數(shù)[6]。但是,研究發(fā)現(xiàn)缺乏足夠的訓(xùn)練數(shù)據(jù)是人臉識(shí)別中的一大問題。基于3DMM人臉模型的采樣來生成訓(xùn)練人臉圖片,生成的人臉圖片容易產(chǎn)生過擬合問題。因此,只能訓(xùn)練一個(gè)淺層殘差網(wǎng)絡(luò)。

場景假設(shè)方法[7](Scene Assumption Methods),為了獲取正確的人臉重建模型,一類研究對(duì)輸入圖片的場景和角度進(jìn)行估計(jì)。一些方法采用光源、臉部反射、臉部對(duì)稱性等信息來進(jìn)行估計(jì)。但是,這類估計(jì)在現(xiàn)實(shí)中并不適用。

基于實(shí)例的方法(Example Based Methods),按照輸入圖片來調(diào)整模板3D人臉。這類方法可以用于人臉識(shí)別中生成看不見的一面。

標(biāo)點(diǎn)擬合方法[8](Landmark Fitting Methods),這類重建方法首先檢測面部識(shí)別點(diǎn),然后將識(shí)別點(diǎn)比對(duì)到3D模型上面。

2 數(shù)據(jù)預(yù)處理

2.1 數(shù)據(jù)采集

本次實(shí)驗(yàn)的所有數(shù)據(jù)均采集于RealSense,人臉面對(duì)攝像頭做出多種不同的表情,由攝像頭采集出視頻信息,所得到的數(shù)據(jù)以oni文件格式存儲(chǔ),oni格式文件是OpenNI導(dǎo)出的格式數(shù)據(jù)。然后需要將原始文件轉(zhuǎn)化成幀圖片數(shù)據(jù),這個(gè)可以使用OpenNI2的SDK讀取并轉(zhuǎn)化出來。

2.2 真實(shí)值獲取

由于此次研究中要使用有監(jiān)督學(xué)習(xí),所以需要預(yù)先獲得每張圖片的真實(shí)值三維模型,在這里依靠動(dòng)態(tài)表情模型,在基礎(chǔ)模型上做變換得到匹配圖片中人臉表情的模型。項(xiàng)目中需要剔除背景,因此需要完成人臉識(shí)別,然后截取圖片。圖片中人臉的識(shí)別直接使用OpenCV中成熟的庫函數(shù)即可實(shí)現(xiàn)。所建立的模型是為了作為神經(jīng)網(wǎng)絡(luò)的真實(shí)值,所以目標(biāo)是準(zhǔn)確性,對(duì)它的處理速度沒有硬性要求。建模方法是通過估計(jì)一系列表情系數(shù),作用到表情向量上得到一個(gè)針對(duì)圖片中人臉表情的三維模型。使用3D混合模型來提供適用于實(shí)時(shí)跟蹤的緊致表示,從初始的粗糙估計(jì)開始,隨著追蹤過程的進(jìn)行逐步優(yōu)化動(dòng)態(tài)表情模型。

動(dòng)態(tài)表情模型[9]就是一個(gè)模型向量B=[b0,b1,…,bn],每個(gè)模型對(duì)應(yīng)一個(gè)表情,第一個(gè)表情b0就是中性表情,一個(gè)新的表情就可表示為:

F(x)=b0+ΔBx,ΔB=[b1-b0,b2-b0,…,bn-b0],x=[x1,x2,…,xn],

為了捕捉不同人臉的幾何特征,在一個(gè)很大幾何的人臉模型基礎(chǔ)上,使用PCA的降維表示來提取主要特征。同時(shí)為了更好得從模板表情到特定人臉表情的遷移,還需要一項(xiàng)空間系數(shù)。最終中性表情可以表示為b0=m+Py+Ez0,其中m+Py是PCA項(xiàng),Ez0是空間系數(shù)項(xiàng)。可以認(rèn)為模板模型中從中性表情到其他表情的變換與動(dòng)態(tài)模型中的變換是一致的,最終可以表示動(dòng)態(tài)模型中的任一表情:

Bi=Ti*b0+Ezi=Ti*(m+Py+Ez0)+Ezi,

算法最終能夠優(yōu)化出相機(jī)參數(shù)R和t,模型系數(shù)x,PCA參數(shù)y以及變形系數(shù)z,然后存儲(chǔ)在Parameter.txt文件中。Parameter文件中存儲(chǔ)的就是人臉系數(shù)和表情系數(shù),已有的Core Face Ware House中以矩陣形式存儲(chǔ)了50個(gè)人臉以及47個(gè)表情(含中性表情),一共存儲(chǔ)了11 510個(gè)三維點(diǎn)的信息,只要讀入Parameter文件,將矩陣乘以Parameter的第一行的人系數(shù)參數(shù)可得到特定的人,再乘以Parameter第二行的表情系數(shù)就能得到特定的表情。

兩組原始數(shù)據(jù)和重建的真實(shí)值如圖1、圖2所示。可將上面一行看做輸入,下面一行是神經(jīng)網(wǎng)絡(luò)的真實(shí)值。

圖1 modeling 1圖2 modeling 2

2.3 圖片預(yù)處理

采集得到的數(shù)據(jù)圖片都是同時(shí)具有彩色和深度信息的,再加上相機(jī)采集的時(shí)候背景信息無法保持空白,所以需要對(duì)圖片做一些預(yù)處理,以獲得更有效地輸入,這些操作包括:

截取圖片中人臉的部分以去除不必要的背景,這一點(diǎn)由于在之前得到模型的算法中已經(jīng)對(duì)人臉進(jìn)行了識(shí)別,很容易完成;將截取后的圖片都統(tǒng)一采樣到240*320的分辨率上,作為網(wǎng)絡(luò)的統(tǒng)一輸入大小;將所有圖片變成黑白,減少無謂的信息量,因?yàn)檫@里的關(guān)注點(diǎn)在于人臉的結(jié)構(gòu)特征,而這一點(diǎn)彩色圖片并不比灰度圖片更有優(yōu)勢;做數(shù)據(jù)增強(qiáng),包括旋轉(zhuǎn)、平移等簡單變換以及亮度、對(duì)比度的改變,本次項(xiàng)目里針對(duì)不同的初始數(shù)據(jù)量(2 500和5 000)做了不同數(shù)目的數(shù)據(jù)增強(qiáng),只要最終保證總的數(shù)據(jù)量大約有20 000張圖片即可。

2.4 點(diǎn)云預(yù)處理

雖然采集的數(shù)據(jù)量是2 500張或者5 000張,但是其中會(huì)有一些異常值,這些錯(cuò)誤數(shù)據(jù)體現(xiàn)在人臉上的偏角過大,與算法的要求不符,會(huì)對(duì)網(wǎng)絡(luò)模型產(chǎn)生錯(cuò)誤影響。所以需要過濾掉人臉偏角過大的圖片和點(diǎn)云模型,根據(jù)之前的預(yù)處理算法,還得到了每張圖片的Pose.txt文件,可將所有數(shù)據(jù)掃描一遍,根據(jù)它們的y方向和z方向的偏角來決定人臉是否足夠正,如果偏角過大,則舍棄。

另外預(yù)處理所得到的三維模型是完整的頭部模型,但是這里輸入輸出只針對(duì)正臉,所以三維點(diǎn)云中有大部分?jǐn)?shù)據(jù)都可以去掉。通過軟件Open Flipper對(duì)基礎(chǔ)模型進(jìn)行切割,把有用的正面部分切割出來,將切割線信息保存到Selection.ini文件中。模板模型如圖3、圖4所示。圖4模型中的劃線為切割線,劃線是手動(dòng)描繪出的,考慮到圖片中的人臉也只是出現(xiàn)了正面的一部分,比如耳朵、頭頂均是未知的,所以截取的范圍比較小。圖3展示了原始的完整三維模型,圖4中的手繪線就是所做的Selection操作。

圖3 template.obj 圖4 selection

再使用openmesh操作每一個(gè)網(wǎng)格文件,應(yīng)用selection.ini取出正面部分,舍棄背面部分。這里實(shí)現(xiàn)的方法是為每一個(gè)頂點(diǎn)賦予一個(gè)新的屬性,名為cut。selection.ini文件中記錄的點(diǎn)的cut屬性值為0,從某個(gè)非劃分點(diǎn)出發(fā),運(yùn)用DFS算法逐步擴(kuò)張,終止條件就是碰到劃分點(diǎn),所有能遇到的點(diǎn)的cut屬性值均設(shè)為1,而所有不能遇到的點(diǎn)的cut屬性值均設(shè)為-1。然后按照cut屬性值讀出網(wǎng)格,就可以得到正面和背面的網(wǎng)格數(shù)據(jù)。

切割完成之后只要在obj文件的尾部添加上face的信息即可獲得完整模型。圖片與三維模型的預(yù)處理結(jié)果如圖5所示。圖5中第一列為原始三維模型,第二列為selection出來的正面點(diǎn)云,第三列為加上face信息后的正面三維模型,可以將其作為神經(jīng)網(wǎng)絡(luò)的輸入進(jìn)行訓(xùn)練。

圖5 圖片與三維模型的預(yù)處理結(jié)果

3 神經(jīng)網(wǎng)絡(luò)模型

算法思想、標(biāo)準(zhǔn)化的圖片可以輸入到神經(jīng)網(wǎng)絡(luò)中,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如表1所示。

網(wǎng)絡(luò)的前半部分是一系列的卷積(conv)以及池化(pool)操作,負(fù)責(zé)提取人臉圖片中的結(jié)構(gòu)化信息,越靠后的卷積層能提取出更加高級(jí)的信息。這一部分的網(wǎng)絡(luò)參數(shù)的初始化使用了PReLU技術(shù)[10],在普通的ReLU的基礎(chǔ)上添加一個(gè)參數(shù)乘子,而這個(gè)乘子的大小與當(dāng)前l(fā)ayer的參數(shù)數(shù)目有關(guān)。

表1 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

后半部分中第一個(gè)全連接層通過計(jì)算原始數(shù)據(jù)的一個(gè)200維的PCA來初始化三維點(diǎn)云,然后在此基礎(chǔ)上進(jìn)行深度微調(diào)以求達(dá)到較為理想的效果。此神經(jīng)網(wǎng)絡(luò)的核心就在于從圖片中提取一個(gè)200維的特征向量,然后作用到PCA矩陣上,得到16 539維的一維向量,即三維點(diǎn)坐標(biāo)。

PCA的維度對(duì)最終結(jié)果會(huì)產(chǎn)生很大影響,若維度太小,那么會(huì)導(dǎo)致模型主要結(jié)構(gòu)特征缺失,無法有效地重建;如果維度太大,那么PCA本身就已經(jīng)能很好地表達(dá)特征信息,那么神經(jīng)網(wǎng)絡(luò)的改進(jìn)作用將被削弱。目標(biāo)是前期會(huì)通過一定量的預(yù)計(jì)算過程,但是直接的網(wǎng)絡(luò)上的運(yùn)算會(huì)很快而且效果明顯,可以達(dá)到實(shí)時(shí)的效果。

使用caffe來實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)搭建。輸入圖片為240*320,batch size為50;輸出的標(biāo)量數(shù)為16 359,即5 453個(gè)三維點(diǎn);PCA的維度為200;初始的learning rate為1e-12;為了簡便,使用的優(yōu)化方法是隨機(jī)梯度下降;神經(jīng)網(wǎng)絡(luò)的loss函數(shù)定義為運(yùn)算值與真實(shí)值之間的差的平方和,即

Loss(x)=Σ(groundtruth-y(x))2,

caffe訓(xùn)練的epoch數(shù)目為50,但是從后面的結(jié)果來看,程序在第20個(gè)epoch左右就已經(jīng)收斂了,再進(jìn)行迭代運(yùn)算并不能使結(jié)果變得更好。

4 實(shí)驗(yàn)結(jié)果與分析

實(shí)驗(yàn)結(jié)果的截圖如圖6所示。左邊為人臉圖片,右邊為重建出來的三維模型。從實(shí)驗(yàn)結(jié)果可以看出該算法可以較為準(zhǔn)確地重建出人臉的三維模型。結(jié)果可能不是特別光滑,但是對(duì)于人臉的細(xì)節(jié)特征表現(xiàn)得很好,原有的ground truth效果更加光滑,但是卻缺失一些細(xì)節(jié)。下面是測試時(shí)的時(shí)間記錄,共有6個(gè)測試用例,每個(gè)測試用例用三行來描述。第一行是文件名,第二行是文件大小,第三行表示運(yùn)行時(shí)間和結(jié)果的loss,最后是平均運(yùn)行時(shí)間。

圖6 實(shí)驗(yàn)結(jié)果截圖

1074C_gray_image.jpg

shape:(240,320)

time:0.003533 s loss:29138.6015625

1075C_gray_image.jpg

shape:(240,320)

time:0.00353 s loss:23904.109375

1076D_gray_image.jpg

shape:(240,320)

time:0.003308 s loss:21336.0703125

1077G_gray_image.jpg

shape:(240,320)

time:0.003291 s loss:26257.6171875

1080D_gray_image.jpg

shape:(240,320)

time:0.003395 s loss:284726.640625

1083_gray_image.jpg

shape:(240,320)

time:0.003375 s loss:24022.21875

average test time:0.00339262 s

loss隨迭代次數(shù)增加的變化如圖7所示。這里的數(shù)據(jù)并沒有做歸一化,所以loss數(shù)值很大,但是均攤到每個(gè)點(diǎn)上其實(shí)很小。圖7中橫坐標(biāo)是caffe中的epoch,縱坐標(biāo)是loss值的大小,每一種顏色值代表在當(dāng)前epoch中迭代到特定的次數(shù)。

每一個(gè)epoch中隨著迭代次數(shù)的增加,loss的變化規(guī)律如圖8所示。

圖7 loss隨迭代次數(shù)增加的變化 圖8 loss的變化規(guī)律

5 結(jié)論

從表1中可以看出,隨著epoch的增加,所有l(wèi)oss都在下降,SGD優(yōu)化算法雖然簡單,卻也是實(shí)用的算法。但是考慮在某一個(gè)特定的epoch中,loss并不是簡單隨著迭代次數(shù)的增加而增加,很多時(shí)候loss都會(huì)產(chǎn)生波動(dòng),或者維持穩(wěn)定沒有很大改善。這里如果使用更為復(fù)雜的優(yōu)化算法比如ADAM,可能會(huì)更快更有效地收斂。

另外,由于PCA可以提取主要特征,只要前期可以把不同人臉的數(shù)據(jù)都作為輸入,并計(jì)算出一個(gè)混合的PCA值,它就可以容納不同的人臉的區(qū)別,從而通過這一網(wǎng)絡(luò)實(shí)現(xiàn)不同的人臉重建任務(wù)。

對(duì)于深度學(xué)習(xí)而言,真實(shí)值的效果好壞直接影響到學(xué)習(xí)到的模型的優(yōu)劣,因此如果數(shù)據(jù)開始處理階段生成的模型就有問題的話,那對(duì)學(xué)習(xí)效果的影響非常大。對(duì)于一個(gè)幾分鐘甚至十幾分鐘的視頻流來說,一共要截取幾千幀數(shù)據(jù)并加以處理,很多幀數(shù)據(jù)得到的3D模型的正確性無法得到保證,雖然大部分模型可以與圖片中的人臉相匹配,但仍然有部分模型與圖片不一致,可能是延遲,也可能是其他原因。但按照該算法,一個(gè)模型的錯(cuò)誤并不是只會(huì)影響到它所對(duì)應(yīng)的這一張圖片的結(jié)果。由于在最開始使用了PCA來降維,然后將其作為網(wǎng)絡(luò)中全連接層的初始化,神經(jīng)網(wǎng)絡(luò)的作用是在此初始的粗糙結(jié)果上做微小的調(diào)整,得到精細(xì)的結(jié)果。當(dāng)部分模型不一致的時(shí)候,它會(huì)對(duì)PCA產(chǎn)生影響,從而使某一類圖片上的人臉表情在推導(dǎo)3D模型的時(shí)候往錯(cuò)誤的方向偏移,得到不準(zhǔn)確的結(jié)果。這里所實(shí)現(xiàn)的工作是利用了圖片中的特征信息,拿它去乘PCA矩陣從而得到16 539個(gè)標(biāo)量。雖然現(xiàn)在只能實(shí)現(xiàn)重建模型這一種任務(wù),但是基于這種特征提取+PCA初始化+網(wǎng)絡(luò)優(yōu)化的模式可以去做更多的事情,如果能提取到更多的特征,就能實(shí)現(xiàn)比如特征點(diǎn)檢測、可見性檢測[11]等更多的任務(wù),得到更精確的人臉模型,這是此算法值得思考的地方。

猜你喜歡
模型
一半模型
一種去中心化的域名服務(wù)本地化模型
適用于BDS-3 PPP的隨機(jī)模型
提煉模型 突破難點(diǎn)
函數(shù)模型及應(yīng)用
p150Glued在帕金森病模型中的表達(dá)及分布
函數(shù)模型及應(yīng)用
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: jizz国产视频| 99热这里只有精品免费国产| 日韩免费成人| 在线日韩日本国产亚洲| 亚洲一级无毛片无码在线免费视频 | 精品精品国产高清A毛片| 色综合激情网| 免费激情网站| 午夜国产精品视频| 精品久久高清| 九色综合视频网| 97色婷婷成人综合在线观看| 国产精品乱偷免费视频| 亚洲无码精品在线播放| 国产日韩丝袜一二三区| 久久永久视频| 亚洲永久色| 亚洲无码精品在线播放| 成人精品区| 亚洲AV无码久久精品色欲| 婷婷五月在线| 亚洲欧美精品一中文字幕| 丁香五月激情图片| 国模极品一区二区三区| 精品国产免费观看一区| 99久久精品国产综合婷婷| 久久亚洲国产视频| 久久99国产乱子伦精品免| 国产综合精品一区二区| 亚洲视屏在线观看| 1024你懂的国产精品| 青青草原国产免费av观看| 中文字幕在线欧美| 毛片卡一卡二| 久久精品丝袜高跟鞋| 999精品色在线观看| 久久免费视频6| 999精品色在线观看| 真人免费一级毛片一区二区| 欧美色香蕉| 日韩欧美中文在线| 亚洲天堂日韩av电影| 国产人免费人成免费视频| 亚洲午夜国产精品无卡| 播五月综合| 精品国产黑色丝袜高跟鞋| 67194成是人免费无码| 无码精油按摩潮喷在线播放| 亚洲综合精品香蕉久久网| 福利片91| 欧美亚洲综合免费精品高清在线观看| 久久久久亚洲av成人网人人软件 | 日本午夜影院| 97国产精品视频人人做人人爱| 亚洲综合色婷婷| 日本高清免费不卡视频| 日本一本在线视频| 波多野结衣AV无码久久一区| 热伊人99re久久精品最新地| 国产成人一区免费观看| 亚洲va精品中文字幕| 精品精品国产高清A毛片| 国产精品福利尤物youwu| 宅男噜噜噜66国产在线观看| 亚洲精品动漫在线观看| 91口爆吞精国产对白第三集| 亚洲美女视频一区| 宅男噜噜噜66国产在线观看| 国产区在线看| 92午夜福利影院一区二区三区| 亚洲男人的天堂网| 亚洲天堂网在线观看视频| 亚洲国产日韩欧美在线| 天堂网亚洲系列亚洲系列| 亚洲天堂777| 国产九九精品视频| 亚洲日韩AV无码一区二区三区人 | 青青青伊人色综合久久| 99青青青精品视频在线| 国产成年女人特黄特色大片免费| 成人av专区精品无码国产| 成人韩免费网站|