本發(fā)明涉及一種基于單張照片的三維人臉重建方法,特別是一種將主成分回歸算法與稀疏形變模型相結(jié)合的人臉重建方法,屬于計(jì)算機(jī)圖形學(xué)與計(jì)算機(jī)視覺(jué)技術(shù)領(lǐng)域。
背景技術(shù):
隨著多媒體技術(shù)的高速發(fā)展,三維模型已經(jīng)廣泛應(yīng)用于影視動(dòng)畫、人機(jī)交互、通訊、醫(yī)療等諸多領(lǐng)域。人臉建模作為三維建模的分支方向已經(jīng)成為越來(lái)越多研究人員關(guān)注的課題。但是,由于人臉具有復(fù)雜的幾何結(jié)構(gòu)與生理結(jié)構(gòu),以及其光照特性的多樣性。因此,依靠單張照片重建人臉模型極具挑戰(zhàn)性。
基于單幅圖像的3D人臉建模就是由一張二維人臉照片來(lái)實(shí)現(xiàn)人臉的深度數(shù)據(jù)的恢復(fù),很多學(xué)者在這個(gè)方向進(jìn)行了廣泛深入的研究。Romdhani在“Estimating 3D Shape and Texture Using Pixel Intensity,Edges,Specular Highlights,Texture Constraints and a Prior”(Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition.San Diego,CA,USA,2005:986-993.)一文中針對(duì)形變模型中的模型匹配環(huán)節(jié)做了深入的研究,將不同的參數(shù)分開(kāi)處理,優(yōu)化不同參數(shù)時(shí)相應(yīng)的其它參數(shù)變?yōu)楣潭▍?shù),減少了單次優(yōu)化參數(shù)的數(shù)量,使得優(yōu)化速度得到提高。同時(shí),Romdhani也針對(duì)模型匹配的代價(jià)函數(shù)進(jìn)行調(diào)整,通過(guò)增加匹配特征以及對(duì)紋理的取值范圍做相應(yīng)的約束,使匹配過(guò)程快速收斂。西安交通大學(xué)的龔勛在“基于特征點(diǎn)的三維人臉形變模型”(軟件學(xué)報(bào),2009,20(3):724-733.)一文中將人臉重建分兩步進(jìn)行操作,首先,根據(jù)實(shí)驗(yàn)所需人臉特征點(diǎn)對(duì)人臉庫(kù)進(jìn)行建立,運(yùn)用建立的稀疏人臉庫(kù)對(duì)輸入圖像特征點(diǎn)的深度坐標(biāo)進(jìn)行恢復(fù),這樣就得到了由特征點(diǎn)構(gòu)成的3D人臉,然后將特征點(diǎn)類三維坐標(biāo)傳送給形變算法,從而進(jìn)行整個(gè)形狀的重建。中國(guó)科學(xué)技術(shù)大學(xué)的汪增福和鄭穎等在“一種基于校正誤差的立體相機(jī)標(biāo)定算法”(小型微型計(jì)算機(jī)系統(tǒng),2012,33(4):869-872.)一文中對(duì)人臉建模技術(shù)進(jìn)行了廣泛研究。其中鄭穎將明暗恢復(fù)形狀的方法與插值方法進(jìn)行結(jié)合,從而快速重建3D人臉。另外,她還利用虛擬圖像來(lái)改進(jìn)立體視覺(jué)的建模方法,將不同角度的人臉圖像配準(zhǔn)進(jìn)行合理的轉(zhuǎn)化,使模型建立變得簡(jiǎn)單易行,最終獲得立體視覺(jué)點(diǎn)云數(shù)據(jù)的形變模型表示,使得最終重建的三維人臉模型逼真、平滑。上海交通大學(xué)的署光在“基于稀疏形變模型的三維卡通人臉生成”(電子學(xué)報(bào),2010,38(8):1798-1802.)一文中提出了一種使用結(jié)合稀疏形變模型和修改一般模型的重建三維人臉的改進(jìn)方法,對(duì)于人臉的紋理貼圖,提出了基于膚色模型的紋理映射技術(shù),改善了側(cè)面人臉的視覺(jué)效果,大大提高了真實(shí)感。并在三維人臉表情合成、人臉卡通化和人臉識(shí)別應(yīng)用方面展開(kāi)了研究。
技術(shù)實(shí)現(xiàn)要素:
為了加快重建速度,提升重建精度,本發(fā)明提出了一種融合稀疏形變模型與主成分回歸算法的顏面照片三維重建方法。通過(guò)將人臉全景圖進(jìn)行柱面展開(kāi),采用網(wǎng)格細(xì)分技術(shù)建立人臉紋理庫(kù),采用改進(jìn)的粒子群優(yōu)化算法進(jìn)行紋理參數(shù)優(yōu)化,對(duì)人臉紋理進(jìn)行重構(gòu),并將重構(gòu)紋理映射到形狀模型,得到最終的建模結(jié)果。
本發(fā)明的目的是通過(guò)下述技術(shù)方案實(shí)現(xiàn),一種融合稀疏形變模型與主成分回歸算法的顏面照片三維重建方法,包括以下步驟:
1)建立稀疏的三維人臉庫(kù)和與之相對(duì)應(yīng)的二維人臉庫(kù);
2)通過(guò)改進(jìn)的主成分回歸算法進(jìn)行初始建模,得到初始的稀疏三維人臉形狀模型;
3)采用改進(jìn)的粒子群優(yōu)化算法進(jìn)行紋理重構(gòu),并將重構(gòu)紋理映射到三維模型,得到完整的重構(gòu)模型。
優(yōu)選的,所述的步驟1中的建立稀疏的三維人臉庫(kù)和與之相對(duì)應(yīng)的二維人臉庫(kù)包括如下過(guò)程:
首先把三維人臉數(shù)據(jù)庫(kù)里的每張人臉表示為:
S=(X1,Y1,Z1,…,Xn,Yn,Zn)T∈R3n (1)
其中Xi,Yi,Zi是每張人臉中點(diǎn)的坐標(biāo),n表示人臉點(diǎn)的數(shù)目;
假設(shè)三維人臉數(shù)據(jù)庫(kù)中m張人臉,那么每張人臉可以描述為Si,由迭代稠密對(duì)齊算法,把每張Si人臉對(duì)齊;由于每張人臉在整體上是相似的,只存在微小的變化,所以,對(duì)該數(shù)據(jù)庫(kù)空間用主成分分析算法進(jìn)行降維,選取前面的d個(gè)較大的特征值的主成分量,共同構(gòu)成投影矩陣P,所以新的人臉就表示為:
其中,人臉庫(kù)中的平均人臉,α是主成分量的系數(shù);
為了建立二維圖像與三維人臉間的關(guān)系和創(chuàng)建三維人臉的稀疏統(tǒng)計(jì)形變模型,分別在圖像和三維人臉上標(biāo)定相互對(duì)應(yīng)k個(gè)特征點(diǎn),稀疏模型就表示在原來(lái)模型上,抽取與之對(duì)應(yīng)的分量,故新的稀疏人臉表示為:
表示抽取對(duì)應(yīng)分量之后的人臉庫(kù)平均人臉;
然后,通過(guò)對(duì)整個(gè)人臉庫(kù)的數(shù)據(jù)進(jìn)行特征點(diǎn)提取得到新的稀疏的三維人臉庫(kù),同時(shí)將稀 疏的三維人臉庫(kù)中的樣本進(jìn)行正面投影得到相應(yīng)的二維人臉樣本。
優(yōu)選的,所述的步驟2中的通過(guò)改進(jìn)的主成分回歸算法進(jìn)行初始建模,得到初始的稀疏三維人臉形狀模型包括如下過(guò)程:
(1)獲得初始變量建立數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)獲取,數(shù)據(jù)源即是所建立的人臉數(shù)據(jù)庫(kù)中的模型數(shù)據(jù),由每個(gè)模型的數(shù)據(jù)構(gòu)成初始變量;
(2)計(jì)算平均偏差為了能保證主成分分析有效進(jìn)行,則需要將每一維數(shù)據(jù)與相應(yīng)均值做差;
(3)求協(xié)方差矩陣根據(jù)定義協(xié)方差矩陣為包含各個(gè)向量元素之間協(xié)方差的矩陣,對(duì)于任意兩個(gè)元素的協(xié)方差計(jì)算如式(4):
對(duì)于3維數(shù)據(jù)而言,可以用X,Y,Z表示,要想求其協(xié)方差矩陣,則需要分別計(jì)算每?jī)蓚€(gè)維度數(shù)據(jù)的協(xié)方差cov(X,Y),cov(X,Z),cov(Y,Z),然后計(jì)算每個(gè)維度數(shù)據(jù)各自的方差組成協(xié)方差矩陣如式(5):
協(xié)方差是用來(lái)描述兩個(gè)維度數(shù)據(jù)的關(guān)系的,通過(guò)判斷兩個(gè)維度之間協(xié)方差值的正負(fù),可以判斷其正負(fù)相關(guān)性;若兩個(gè)維度數(shù)據(jù)的協(xié)方差值為零,則說(shuō)明數(shù)據(jù)是相互獨(dú)立的;
(4)計(jì)算協(xié)方差矩陣的特征值和特征向量協(xié)方差矩陣為n階方陣,在計(jì)算方陣的特征向量時(shí),需要對(duì)特征向量進(jìn)行歸一化,這是因?yàn)樘卣飨蛄堪幢壤龜U(kuò)大縮小后仍是特征向量,所以特征向量的意義并不在于它的長(zhǎng)度而在于它表示的方向;n階的協(xié)方差矩陣具有n個(gè)正交的特征向量,正因?yàn)橛羞@個(gè)性質(zhì),正交向量代替原來(lái)的數(shù)據(jù)軸來(lái)表示數(shù)據(jù);由于每求出一個(gè)特征向量就會(huì)有相應(yīng)的特征值,所以建立起特征值與特征向量的對(duì)應(yīng)關(guān)系,為下一步進(jìn)行特征基的組成提供了選擇依據(jù);
(5)選取特征向量構(gòu)成特征基由于特征值的大小不同,則特征向量在特征基中占有的比重也就有所差別,特征值大的特征向量相應(yīng)的在重構(gòu)時(shí)的貢獻(xiàn)也就越大,基于這樣的原理舍去特征值較小的特征向量從而對(duì)數(shù)據(jù)進(jìn)行降維;對(duì)人臉數(shù)據(jù)而言,通常選擇m個(gè)最大的特征值對(duì)應(yīng)的特征向量組成主成分進(jìn)行人臉恢復(fù),這是因?yàn)檩^小的特征值對(duì)應(yīng)的特征向量包含的數(shù)據(jù)信息量小,在不影響總體形狀的情況下可以忽略不計(jì);利用人臉庫(kù)建立稀疏的三維人臉數(shù)據(jù)庫(kù)以及對(duì)應(yīng)的稀疏的二維人臉數(shù)據(jù)庫(kù),根據(jù)主成分分析原理,將重建的三維人臉Snew3D以及新的 二維人臉Snew2D分別用公式(6)和(7)表示:
式中和分別表示三維與二維人臉庫(kù)中的平均人臉數(shù)據(jù),Ps3D和Ps2D分別表示各自數(shù)據(jù)的主元特征組,bs3D和bs2D分別為三維和二維形狀向量的合成系數(shù);
主成分回歸算法就是利用相關(guān)模型的獨(dú)立與非獨(dú)立數(shù)據(jù)的關(guān)系來(lái)完成建模,最基本的要點(diǎn)就是將二維模型與三維模型分解到一個(gè)低維空間里,用主成分分析系數(shù)bs2D,i和bs3D,i來(lái)表示真實(shí)二維模型xi與三維模型Xi,然后我們用標(biāo)準(zhǔn)的線性回歸來(lái)聯(lián)系xi與Xi;
輸入提取的人臉特征點(diǎn)xinp,關(guān)于尺度因子與位移因子可在對(duì)數(shù)據(jù)的預(yù)處理中求得,這里輸入的人臉特征點(diǎn)即為與人臉庫(kù)對(duì)應(yīng)尺度的數(shù)據(jù);對(duì)稀疏三維人臉數(shù)據(jù)庫(kù)進(jìn)行主成分分析得到S3D,對(duì)相應(yīng)的二維人臉數(shù)據(jù)庫(kù)進(jìn)行主成分分析得到S2D,分別用各自的系數(shù)表示三維形狀樣本(X1,X2,…Xn)和二維形狀樣本(x1,x2,…xn),如式(8)和(9):
式中bs3D,i和bs2D,i分別為三維和二維人臉庫(kù)中能表示第i個(gè)人臉的形狀合成系數(shù);然后令T=[bs2D,1,bs2D,2,…bs2D,m-1],U=[bs3D,1,bs3D,2,…bs3D,m-1],根據(jù)主成分回歸模型可得式(10):
CR=(TTT)-1TTU (10)
將人臉特征點(diǎn)xinp輸入,通過(guò)(11)和(12)求得形狀系數(shù)
式中bs2D,inp為根據(jù)輸入特征點(diǎn)求取的二維形狀合乘系數(shù),然后通過(guò)式(12)求得三維形狀合乘系數(shù)
最后利用得到的三維形狀合乘系數(shù)通過(guò)式(13)計(jì)算恢復(fù)三維稀疏人臉模型:
式中xr為恢復(fù)的稀疏人臉模型的形狀向量。
優(yōu)選的,所述的步驟3中的采用改進(jìn)的粒子群優(yōu)化算法進(jìn)行紋理重構(gòu),并將重構(gòu)紋理映射到三維模型,得到完整的重構(gòu)模型,包括如下過(guò)程:
采用改進(jìn)的粒子群優(yōu)化算法進(jìn)行紋理重構(gòu),并將重構(gòu)紋理映射到三維模型,得到完整的重構(gòu)模型;粒子群優(yōu)化算法將目標(biāo)函數(shù)的解視為粒子,由大量粒子組成初始種群,然后讓粒子在解空間中運(yùn)動(dòng),粒子的運(yùn)動(dòng)方向和距離由速度因子決定,通過(guò)計(jì)算適應(yīng)值來(lái)判斷粒子的優(yōu)劣,將每個(gè)粒子的個(gè)體最優(yōu)適應(yīng)值進(jìn)行比較可以得到整個(gè)群體的最優(yōu)適應(yīng)值,然后根據(jù)個(gè)體最優(yōu)和群體最優(yōu)調(diào)整粒子的速度,這樣不斷的優(yōu)化更新就可以收斂到優(yōu)解;假設(shè)目標(biāo)函數(shù)的解向量為D維,粒子群優(yōu)化算法初始化N個(gè)粒子,則某一粒子i在D維空間中的位置為Xi=(xi1,xi2,…xiD)T,粒子曾經(jīng)到過(guò)的歷史最優(yōu)位置表示為Pi=(pi1,pi2,…piD)T表示,整個(gè)種群的歷史最優(yōu)位置為Pg=(pg1,pg2,…pgD)T,初始的飛行速度為Vi=(vi1,vi2,…viD)T,每一代粒子根據(jù)個(gè)體最優(yōu)和種群最優(yōu)位置來(lái)更新自己的速度與位置;(14)和(15)分別為速度更新公式和位置更新公式:
Vi[t+1]=ωVi[t]+c1r1(Pi-Xi)+c2r2(Pg-Xi) (14)
Xi[t+1]=Xi[t]+Vi[t+1] (15)
其中r1和r2是[0,1]內(nèi)的隨機(jī)數(shù),ω為慣性權(quán)重,c1和c2為加速常數(shù);公式(14)的后兩項(xiàng)分別為認(rèn)知部分和社會(huì)部分;認(rèn)知部分表示粒子根據(jù)自身經(jīng)驗(yàn)向最好點(diǎn)飛行,而社會(huì)部分則表示粒子之間信息共享和協(xié)同合作;為了保證粒子的運(yùn)動(dòng)在允許的范圍之內(nèi),需要設(shè)置一個(gè)粒子的最大運(yùn)動(dòng)速度Vmax則當(dāng)速度Vi>Vmax時(shí),令Vi=Vmax,當(dāng)Vi≤-Vmax時(shí),令Vi=Vmax;
人臉庫(kù)中的紋理數(shù)據(jù)統(tǒng)一用紋理向量來(lái)表示,第i個(gè)人臉的紋理向量表示為:
Ti=(Ri1,Gi1,Bi1,…Rin,Gin,Bin)T∈R3n (16)
式中:N表示人臉庫(kù)的中的樣本總數(shù);n是每個(gè)樣本的頂點(diǎn)數(shù);
紋理模型匹配就是通過(guò)對(duì)紋理系數(shù)的調(diào)節(jié)使輸入的人臉與重構(gòu)的人臉紋理圖像最為相近;匹配誤差可以用三維模型的投影圖像與輸入的人臉圖像之間的強(qiáng)度差的平方和來(lái)表示,由此可以得到目標(biāo)函數(shù)E;在上一節(jié)得到三維形狀模型之后,能夠利用這些參數(shù)將三維模型投影到二維平面,這樣得到的二維圖像同輸入圖像上的點(diǎn)都是對(duì)應(yīng)的,因此可以利用對(duì)應(yīng)像素點(diǎn)的差值進(jìn)行優(yōu)化;在進(jìn)行每一步優(yōu)化時(shí)隨機(jī)選取三維模型上的若干頂點(diǎn),并在給定圖像上找到與之相對(duì)應(yīng)的像素點(diǎn),然后采用優(yōu)化理論方法對(duì)紋理系數(shù)進(jìn)行優(yōu)化;
匹配誤差函數(shù)E用輸入的圖像Iinput與三維模型投影的圖像Imod灰度差的平方和來(lái)表示,如式(17)所示,得到目標(biāo)函數(shù)E,采用Phong光照模型,E是關(guān)于顏色偏移參數(shù)t、光照參數(shù)I、紋理合成系數(shù)β的函數(shù)
采用在單一光源照射下的Phong光照模型時(shí),從視點(diǎn)觀察到物體表面上任意一點(diǎn)的亮度I應(yīng)為鏡面反射光強(qiáng)、漫反射光強(qiáng)和環(huán)境反射光強(qiáng)的總和,如式(18)所示:
式中,I表示物體表面在被照射點(diǎn)P處的光亮度;Ia表示入射的環(huán)境光的強(qiáng)度;ka表示物體表面對(duì)環(huán)境光的漫反射系數(shù),通常ka的取值范圍為0到1;f為光源強(qiáng)度衰減因子;Il為點(diǎn)光源所發(fā)出的入射光亮度,kd為景物表面漫反射率;為景物表面在被照射點(diǎn)P處的單位法向量;為p到點(diǎn)光源的單位向量;為鏡面反射方向的單位向量;視線方向的單位向量為n稱為鏡面高光指數(shù),用來(lái)模擬鏡面反射光在空間的匯聚程度,與物體表面光滑程度有關(guān),物體表面越光滑,光的匯聚越高,n也就越大,反之物體表面越粗糙,鏡子面反射光呈發(fā)散狀態(tài),n取值越小。
本發(fā)明的有益效果是:依據(jù)單張正面圖像的三維人臉重建技術(shù)及應(yīng)用進(jìn)行了深入的研究,建立了較為精確的人臉稀疏模型,在紋理恢復(fù)方面也提高了時(shí)間效率,在一定程度上解決了重建過(guò)程中的關(guān)鍵問(wèn)題。
附圖說(shuō)明
圖1是一種融合稀疏形變模型與主成分回歸算法的顏面照片三維重建方法的流程圖。
具體實(shí)施方式
下面結(jié)合附圖和一種融合稀疏形變模型與主成分回歸算法的顏面照片三維重建方法,對(duì)本發(fā)明的具體實(shí)施作進(jìn)一步描述。
本發(fā)明包括下述步驟:
1)建立稀疏的三維人臉庫(kù)和與之相對(duì)應(yīng)的二維人臉庫(kù)。我們把數(shù)據(jù)庫(kù)里的每張人臉表示為:
S=(X1,Y1,Z1,…,Xn,Yn,Zn)T∈R3n (1)
其中Xi,Yi,Zi是每張人臉中點(diǎn)的坐標(biāo),n表示人臉點(diǎn)的數(shù)目。
假設(shè)數(shù)據(jù)庫(kù)中m張人臉,那么每張人臉可以描述為Si,由迭代稠密對(duì)齊算法,可以把每張Si人臉對(duì)齊。由于每張人臉在整體上是相似的,只存在微小的變化。所以,我們對(duì)該數(shù)據(jù)庫(kù)空間用主成分分析算法進(jìn)行降維。選取前面的d個(gè)較大的特征值的主成分量,共同構(gòu)成投影矩陣P,所以新的人臉就可以表示為:
其中,人臉庫(kù)中的平均人臉,α是主成分量的系數(shù)。
為了建立二維圖像與三維人臉間的關(guān)系和創(chuàng)建三維人臉的稀疏統(tǒng)計(jì)形變模型,分別在圖像和三維人臉上標(biāo)定相互對(duì)應(yīng)k個(gè)特征點(diǎn),稀疏模型就可以表示在原來(lái)模型上,抽取與之對(duì)應(yīng)的分量,故新的稀疏人臉可以表示為:
然后,通過(guò)對(duì)整個(gè)人臉庫(kù)的數(shù)據(jù)進(jìn)行特征點(diǎn)提取得到新的稀疏的三維人臉庫(kù)。同時(shí)將稀疏的三維人臉庫(kù)中的樣本進(jìn)行正面投影得到相應(yīng)的二維人臉樣本,由這些二維人臉樣本組成與三位稀疏人臉庫(kù)相對(duì)應(yīng)的二維人臉庫(kù),為下一步進(jìn)行三維人臉形狀重建做準(zhǔn)備。
2)通過(guò)改進(jìn)的主成分回歸算法進(jìn)行初始建模,得到初始的稀疏三維人臉形狀模型。本發(fā)明采用主成分回歸算法,即主成分分析算法與線性回歸相結(jié)合的方法,具體是指對(duì)各個(gè)變量之間的關(guān)系進(jìn)行研究,根據(jù)變量之間存在的相關(guān)關(guān)系,使用少數(shù)互不相關(guān)的新變量進(jìn)行重新表示,并且盡可能保證信息的完整性。然后采用線性回歸算法聯(lián)系二維與三維的形狀系數(shù),實(shí)現(xiàn)建模。主成分分析算法它在人臉識(shí)別等相關(guān)領(lǐng)域中都廣泛采納,可以很好地達(dá)到數(shù)據(jù)降維的目的,具體由以下幾步完成。
(1)獲得初始變量一般應(yīng)用于某一數(shù)據(jù)庫(kù),這樣就必須為建立數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)獲取,本發(fā)明的數(shù)據(jù)源即是所建立的人臉數(shù)據(jù)庫(kù)中的模型數(shù)據(jù),由每個(gè)模型的數(shù)據(jù)構(gòu)成初始變量。
(2)計(jì)算平均偏差為了能保證主成分分析有效進(jìn)行,則需要將每一維數(shù)據(jù)與相應(yīng)均值做差。
(3)求協(xié)方差矩陣根據(jù)定義協(xié)方差矩陣為包含各個(gè)向量元素之間協(xié)方差的矩陣,對(duì)于任意兩個(gè)元素的協(xié)方差計(jì)算如式(4)。
對(duì)于3維數(shù)據(jù)而言,可以用X,Y,Z表示,要想求其協(xié)方差矩陣,則需要分別計(jì)算每?jī)蓚€(gè)維度數(shù)據(jù)的協(xié)方差cov(X,Y),cov(X,Z),cov(Y,Z),然后計(jì)算每個(gè)維度數(shù)據(jù)各自的方差組成協(xié)方差矩陣如式(5)。
協(xié)方差是用來(lái)描述兩個(gè)維度數(shù)據(jù)的關(guān)系的,通過(guò)判斷兩個(gè)維度之間協(xié)方差值的正負(fù),可以判斷其正負(fù)相關(guān)性。若兩個(gè)維度數(shù)據(jù)的協(xié)方差值為零,則說(shuō)明數(shù)據(jù)是相互獨(dú)立的。
(4)計(jì)算協(xié)方差矩陣的特征值和特征向量協(xié)方差矩陣為n階方陣,在計(jì)算方陣的特征向量時(shí),需要對(duì)特征向量進(jìn)行歸一化,這是因?yàn)樘卣飨蛄堪幢壤龜U(kuò)大縮小后仍是特征向量,所以特征向量的意義并不在于它的長(zhǎng)度而在于它表示的方向。n階的協(xié)方差矩陣具有n個(gè)正交的特征向量,正因?yàn)橛羞@個(gè)性質(zhì),正交向量可以代替原來(lái)的數(shù)據(jù)軸來(lái)表示數(shù)據(jù)。由于每求出一個(gè)特征向量就會(huì)有相應(yīng)的特征值,所以我們可以建立起特征值與特征向量的對(duì)應(yīng)關(guān)系,為下一步進(jìn)行特征基的組成提供了選擇依據(jù)。
(5)選取特征向量構(gòu)成特征基由于特征值的大小不同,則特征向量在特征基中占有的比重也就有所差別,特征值大的特征向量相應(yīng)的在重構(gòu)時(shí)的貢獻(xiàn)也就越大,基于這樣的原理可以舍去特征值較小的特征向量從而對(duì)數(shù)據(jù)進(jìn)行降維。對(duì)人臉數(shù)據(jù)而言,通常選擇m個(gè)最大的特征值對(duì)應(yīng)的特征向量組成主成分進(jìn)行人臉恢復(fù),這是因?yàn)檩^小的特征值對(duì)應(yīng)的特征向量包含的數(shù)據(jù)信息量小,在不影響總體形狀的情況下可以忽略不計(jì)。本文利用人臉庫(kù)建立稀疏的三維人臉數(shù)據(jù)庫(kù)以及對(duì)應(yīng)的稀疏的二維人臉數(shù)據(jù)庫(kù),根據(jù)主成分分析原理,我們可以將重建的三維人臉Snew3D以及新的二維人臉Snew2D分別用公式(6)和(7)表示。
式中和分別表示三維與二維人臉庫(kù)中的平均人臉數(shù)據(jù),Ps3D和Ps2D分別表示各自數(shù)據(jù)的主元特征組,bs3D和bs2D分別為三維和二維形狀向量的合成系數(shù)。
主成分回歸算法就是利用相關(guān)模型的獨(dú)立與非獨(dú)立數(shù)據(jù)的關(guān)系來(lái)完成建模。最基本的要點(diǎn)就是將二維模型與三維模型分解到一個(gè)低維空間里,用主成分分析系數(shù)bs2D,i和bs3D,i來(lái)表示真實(shí)二維模型xi與三維模型Xi,然后我們用標(biāo)準(zhǔn)的線性回歸來(lái)聯(lián)系xi與Xi。
輸入提取的人臉特征點(diǎn)xinp,關(guān)于尺度因子與位移因子可在對(duì)數(shù)據(jù)的預(yù)處理中求得,這里輸入的人臉特征點(diǎn)即為與人臉庫(kù)對(duì)應(yīng)尺度的數(shù)據(jù)。對(duì)稀疏三維人臉數(shù)據(jù)庫(kù)進(jìn)行主成分分析得到S3D,對(duì)相應(yīng)的二維人臉數(shù)據(jù)庫(kù)進(jìn)行主成分分析得到S2D,分別用各自的系數(shù)表示三維形狀 樣本(X1,X2,…Xn)和二維形狀樣本(x1,x2,…xn),如式(8)和(9)。
式中bs3D,i和bs2D,i分別為三維和二維人臉庫(kù)中能表示第i個(gè)人臉的形狀合成系數(shù)。然后令T=[bs2D,1,bs2D,2,…bs2D,m-1],U=[bs3D,1,bs3D,2,…bs3D,m-1],根據(jù)主成分回歸模型可得式(10)。
CR=(TTT)-1TTU (10)
將人臉特征點(diǎn)xinp輸入,通過(guò)(11)和(12)求得形狀系數(shù)
式中bs2D,inp為根據(jù)輸入特征點(diǎn)求取的二維形狀合乘系數(shù),然后通過(guò)式(12)求得三維形狀合乘系數(shù)
最后利用得到的三維形狀合乘系數(shù)通過(guò)式(13)計(jì)算恢復(fù)三維稀疏人臉模型。
式中xr為恢復(fù)的稀疏人臉模型的形狀向量。
3)采用改進(jìn)的粒子群優(yōu)化算法進(jìn)行紋理重構(gòu),并將重構(gòu)紋理映射到三維模型,得到完整的重構(gòu)模型。粒子群優(yōu)化算法將目標(biāo)函數(shù)的解視為粒子,由大量粒子組成初始種群,然后讓粒子在解空間中運(yùn)動(dòng),粒子的運(yùn)動(dòng)方向和距離由速度因子決定,通過(guò)計(jì)算適應(yīng)值來(lái)判斷粒子的優(yōu)劣,將每個(gè)粒子的個(gè)體最優(yōu)適應(yīng)值進(jìn)行比較可以得到整個(gè)群體的最優(yōu)適應(yīng)值,然后根據(jù)個(gè)體最優(yōu)和群體最優(yōu)調(diào)整粒子的速度,這樣不斷的優(yōu)化更新就可以收斂到優(yōu)解。假設(shè)目標(biāo)函數(shù)的解向量為D維,粒子群優(yōu)化算法初始化N個(gè)粒子,則某一粒子i在D維空間中的位置為Xi=(xi1,xi2,…xiD)T,粒子曾經(jīng)到過(guò)的歷史最優(yōu)位置表示為Pi=(pi1,pi2,…piD)T,整個(gè)種群的歷史最優(yōu)位置為Pg=(pg1,pg2,…pgD)T,初始的飛行速度為Vi=(vi1,vi2,…viD)T,每一代粒子根據(jù)個(gè)體最優(yōu)和種群最優(yōu)位置來(lái)更新自己的速度與位置。(14)和(15)分別為速度更新公式和位置更新公式。
Vi[t+1]=ωVi[t]+c1r1(Pi-Xi)+c2r2(Pg-Xi) (14)
Xi[t+1]=Xi[t]+Vi[t+1] (15)
其中r1和r2是[0,1]內(nèi)的隨機(jī)數(shù),ω為慣性權(quán)重,c1和c2為加速常數(shù)。公式(14)的后兩項(xiàng)分別為認(rèn)知部分和社會(huì)部分。認(rèn)知部分表示粒子根據(jù)自身經(jīng)驗(yàn)向最好點(diǎn)飛行,而社會(huì)部分則表示粒子之間信息共享和協(xié)同合作。為了保證粒子的運(yùn)動(dòng)在允許的范圍之內(nèi),需要設(shè)置一個(gè)粒子的最大運(yùn)動(dòng)速度Vmax則當(dāng)速度Vi>Vmax時(shí),令Vi=Vmax,當(dāng)Vi≤-Vmax時(shí),令Vi=Vmax。
人臉庫(kù)中的紋理數(shù)據(jù)統(tǒng)一用紋理向量來(lái)表示,第i個(gè)人臉的紋理向量表示為:
Ti=(Ri1,Gi1,Bi1,…Rin,Gin,Bin)T∈R3n (16)
式中:N表示人臉庫(kù)的中的樣本總數(shù);n是每個(gè)樣本的頂點(diǎn)數(shù)。
紋理模型匹配就是通過(guò)對(duì)紋理系數(shù)的調(diào)節(jié)使輸入的人臉與重構(gòu)的人臉紋理圖像最為相近。匹配誤差可以用三維模型的投影圖像與輸入的人臉圖像之間的強(qiáng)度差的平方和來(lái)表示,由此可以得到目標(biāo)函數(shù)E。在上一節(jié)得到三維形狀模型之后,能夠利用這些參數(shù)將三維模型投影到二維平面,這樣得到的二維圖像同輸入圖像上的點(diǎn)都是對(duì)應(yīng)的,因此可以利用對(duì)應(yīng)像素點(diǎn)的差值進(jìn)行優(yōu)化。在進(jìn)行每一步優(yōu)化時(shí)隨機(jī)選取三維模型上的若干頂點(diǎn),并在給定圖像上找到與之相對(duì)應(yīng)的像素點(diǎn),然后采用優(yōu)化理論方法對(duì)紋理系數(shù)進(jìn)行優(yōu)化。
本文的匹配誤差函數(shù)E用輸入的圖像Iinput與三維模型投影的圖像Imod灰度差的平方和來(lái)表示,如式(17)所示,得到目標(biāo)函數(shù)E,采用Phong光照模型,E是關(guān)于顏色偏移參數(shù)t、光照參數(shù)I、紋理合成系數(shù)β的函數(shù)
采用在單一光源照射下的Phong光照模型時(shí),從視點(diǎn)觀察到物體表面上任意一點(diǎn)的亮度I應(yīng)為鏡面反射光強(qiáng)、漫反射光強(qiáng)和環(huán)境反射光強(qiáng)的總和,如式(18)所示:
式中,I表示物體表面在被照射點(diǎn)P處的光亮度;Ia表示入射的環(huán)境光的強(qiáng)度;ka表示物體表面對(duì)環(huán)境光的漫反射系數(shù),通常ka的取值范圍為0到1;f為光源強(qiáng)度衰減因子;Il為點(diǎn)光源所發(fā)出的入射光亮度,kd為景物表面漫反射率;為景物表面在被照射點(diǎn)P處的單位法向量;為P到點(diǎn)光源的單位向量;為鏡面反射方向的單位向量;視線方向的單位向量為n稱為鏡面高光指數(shù),用來(lái)模擬鏡面反射光在空間的匯聚程度,與物體表面光滑程度有關(guān),物體表面越光滑,光的匯聚越高,n也就越大,反之物體表面越粗糙,鏡子面反射光呈發(fā)散 狀態(tài),n取值越小。