陳起陽 史佩倫 陳方園 熊國瑾
摘要:本文以交互式投影動(dòng)態(tài)捕捉下的數(shù)據(jù)采集子系統(tǒng)為研究對象,首先分析了基于kinect下的動(dòng)態(tài)捕捉、語音捕捉以及基于Kinect進(jìn)行圖像分割所使用的Mean Shift算法,然后建立了基于MAYA下的角色模型。
關(guān)鍵詞:交互式投影動(dòng)態(tài)捕捉;kinect;算法
1基于 kinect 下的動(dòng)態(tài)捕捉及語音捕捉
Kinect的構(gòu)成結(jié)構(gòu)是由三個(gè)鏡頭、四個(gè)內(nèi)置麥克風(fēng)構(gòu)造而成,中間結(jié)構(gòu)的鏡頭是RGB的彩色攝像機(jī),它的作用是用來采集彩色圖像,而中間鏡頭的兩邊分別設(shè)有紅外線發(fā)射器和紅外線的CMOS的攝影機(jī)。Kinect工作原理是由將紅外線發(fā)射器投射近紅外光譜,然后照射到一些粗糙物體、或者穿透毛玻璃后,所在的光譜回發(fā)生扭曲,進(jìn)而會隨機(jī)的反射斑點(diǎn),之后就會被CMOS攝影機(jī)所讀取。最后CMOS攝影機(jī)分析到的紅外光3譜并且讀取它們之后生成深度圖。而對于四個(gè)麥克風(fēng),內(nèi)設(shè)數(shù)字的信號處理器DSP這樣的組件, 它們所將同時(shí)收錄聲音來源,之后進(jìn)行對比過濾,剔除背景噪音。
對于人體的骨骼動(dòng)態(tài)捕捉,Kinect所測量的人體骨骼范圍為0.5m—4.5m,而幀數(shù)據(jù)則定為人體的25個(gè)關(guān)節(jié)點(diǎn)的集合數(shù)據(jù),而幀數(shù)據(jù)中的每幀都包含了關(guān)節(jié)中的3D位置和所處的方向,而每秒掃描人體骨骼運(yùn)動(dòng)的幀數(shù)為30fps。
2基于Kinect進(jìn)行圖像分割所使用的Mean Shift算法
2.1 Kinect深度圖獲取方式及流程
對于Kinect的RGB彩色攝像機(jī)捕捉的彩色圖通過Mean Shift算法]對彩色圖進(jìn)行對于圖像的分割,之后通過散焦法對于分割的圖像進(jìn)行提取及融合,最后對于融合成的深度圖進(jìn)行一個(gè)三邊濾波。散焦法對于分割成的單幅圖進(jìn)行提取方式:首先通過邊緣點(diǎn)處的LOG濾波響應(yīng)的正負(fù)處的雙峰間距計(jì)算出散焦的模糊參數(shù)從而獲得了邊緣點(diǎn)處的深度值,最后可以使用matting Laplacian的插值從而生成稠密的深度圖。最后可以將散焦法形成的稠密深度圖和RGB彩色攝像機(jī)捕捉到的深度圖進(jìn)行一個(gè)融合,達(dá)到最終的目的。通過Mean Shift算法所得的深色圖的質(zhì)量遠(yuǎn)超過通過Kinect所捕捉到的深色圖。
優(yōu)先使用散焦法,將Mean Shift算法分割成的深色圖通過散焦法提取深度D2(X,Y);
將Kinect所捕捉到的深度圖D1(X,Y)與Mean Shift算法分割成的D2(X,Y)進(jìn)行融合,從而生成一個(gè)圖像的質(zhì)量較好的融合型深度圖D3(X,Y);
對于D1(X,Y)和D2(X,Y)融合成的深度圖Dy(X,Y)進(jìn)行三邊濾波。
2.2 Mean Shift 算法圖像分割具體步驟及特征
第一、對于kinect的RGB彩色攝像機(jī)所捕捉到的彩色圖轉(zhuǎn)換到LUV色彩空間并且之后使用Mean Shift算法將彩色圖像進(jìn)行分割并將分成c個(gè)區(qū)域p1、p2、p3……pc,之中c為通過Mean Shift算法進(jìn)行圖像分割所產(chǎn)生的區(qū)域數(shù)目總和,也可將其稱之為類別數(shù)。
第二、我們將通過散焦法將分割成的c個(gè)區(qū)域進(jìn)行深度提取,首先將分割成的區(qū)域的彩色圖進(jìn)行一個(gè)轉(zhuǎn)化成為灰度圖,之后使用Canny算子方法進(jìn)行檢測灰度圖的邊緣,并且計(jì)算LOG的濾波響應(yīng),之后通過邊緣處的邊緣點(diǎn)處的LOG濾波的響應(yīng)的正負(fù)雙峰之間的距離進(jìn)行計(jì)算從而得到散焦的模糊參數(shù),最后通過模糊參數(shù)可以進(jìn)而得到邊緣點(diǎn)處的 深度值,這樣我們就可以最后的到分割成的稀疏的深度圖。
第三、我們可以將邊緣處的分割成的稀疏深度圖(包含深度值)通過matting
Laplacian的插值從而生成稠密的深度圖。
第四、對于分割成的稠密深度圖進(jìn)行一個(gè)權(quán)值的深度圖像的融合。具體方式:通過對于分割區(qū)域中p1、p2、p3……pc 等進(jìn)行像素級的一個(gè)加權(quán)融合,可以根據(jù)此區(qū)域的產(chǎn)生的灰度值的方差和此區(qū)域處的像素到邊緣處像素的距離計(jì)算出稠密深度圖所要融合的一個(gè)權(quán)值。
第五、我們將對已經(jīng)通過權(quán)值融合好的深度圖進(jìn)行一個(gè)三邊濾波,而所謂的三邊濾波則是包括表征的三維空間距離、所呈現(xiàn)的顏色值得差異性以及深度值的差異化。
首先我們將Kinect的RGB所捕捉到的色彩圖轉(zhuǎn)化為LUV的色彩空間,而其中的L*則表示為亮度,其中所取值的區(qū)間為00到100間,而其中的V*則表示為色彩的飽和度,其中的的取值的范圍為-100到100區(qū)間,而將Kinect中的RGB色彩圖動(dòng)態(tài)捕捉圖轉(zhuǎn)換為LUV空間化的轉(zhuǎn)換的公式:
通過由上式可以通過色彩圖坐標(biāo)(R,G,B)從而計(jì)算出LUV的彩色空間(L*,U*,V*)坐標(biāo)值,之后我們進(jìn)行將每個(gè)圖之中的坐標(biāo)以及色彩的信息成為一個(gè)增廣向量,即x(xs,xr),此外空間的坐標(biāo)xs(x,y),而色彩的信息則為xr(l*,u*,v*),從而得到增廣的向量為x(x,y,l*,u*,v*)。
對于Mean Shift算法下的Mh(xt)而
對于計(jì)算公式中,t所代表的含義即為迭代的次數(shù),而n則為落入到Sh中的像素的個(gè)數(shù);而其中的K h h 則為核函數(shù),且它的定義為
在最后,Mean Shift算法當(dāng)結(jié)束時(shí)會一共呈現(xiàn)處c個(gè)類型的聚合,且對應(yīng)著Kinect中的RGB所捕捉到的色彩圖分割成的c個(gè)區(qū)域中的p1、p2、p3……pc。
2.3散焦法下的圖像深度提取
在對于通過Mean Shift算法分割成的區(qū)域進(jìn)行散焦法的深度提取,當(dāng)分割成的區(qū)域化的所捕捉的模型沒有聚焦點(diǎn)的時(shí)候,所通過RGB捕捉到的色彩圖就會產(chǎn)生模糊,之后我們可以根據(jù)物體到達(dá)聚焦的平面的所處距離不同,所產(chǎn)生的模糊程度也會因此而不同。通 過聚散法所產(chǎn)生的構(gòu)成原理則就是先
估算出散焦的模糊的參數(shù),之后整合RGB捕捉的參數(shù)計(jì)算出圖像的深度值。
首先將通過Mean Shift算法分割成的散焦圖C(x,y)轉(zhuǎn)化成灰度的圖像I0(x,y),其中為散焦的參數(shù)。其下,將對于散焦參數(shù)的具體計(jì)算、通過matting?Laplacian插值生成稠密深度圖以及生成邊緣處的稀疏的深度圖。
2.4關(guān)于模擬下的Kinect所捕捉的骨骼運(yùn)動(dòng)及色彩圖、深度圖
3基于MAYA下的角色模型的建立
基于Kinect下的動(dòng)態(tài)捕捉到的骨骼運(yùn)動(dòng)和深度圖片下,通過MAYA軟件進(jìn)角色模型的構(gòu)建,對于所構(gòu)建的模型,將在模型身體控制器上設(shè)置多個(gè)骨骼運(yùn)動(dòng)觸發(fā)點(diǎn),設(shè)置多個(gè) 面部控制器,并且建立表情的修構(gòu)數(shù)據(jù)庫和角色模型數(shù)據(jù)庫。
3.1 MAYA下構(gòu)建角色模型及與Kinect的綁定方法
首先通過三維人體掃描儀進(jìn)行人體的掃描,之后再進(jìn)行等比例的縮小并且構(gòu)建虛擬化的三維數(shù)學(xué)模型,從而形成虛擬化的人體模型,在模型之中將包括多個(gè)身體控制器和多個(gè)面部控制器等,通過在身體模型上綁定骨骼運(yùn)動(dòng)系統(tǒng),從而骨骼運(yùn)動(dòng)系統(tǒng)和身體控制器共 同的驅(qū)動(dòng)者角色模型的動(dòng)作。同理,我們所進(jìn)行的骨骼運(yùn)動(dòng)系統(tǒng)和面部控制器共同驅(qū)動(dòng)角色模型的面部發(fā)生變化。對于模型的面部表情,我們將通過關(guān)鍵幀的設(shè)置,對模型產(chǎn)生的一些表情進(jìn)行修復(fù)化。其中具體的構(gòu)造方法如下:Q1:首先進(jìn)行三維人體的掃描及按比例構(gòu)造出人物模型,并且在于模型中設(shè)立多個(gè)控制器進(jìn)行身體以及面部的控制;Q2:在模型身上綁定骨骼系統(tǒng),并且與身體控制器進(jìn)行實(shí)時(shí)綁定,并驅(qū)動(dòng)身體動(dòng)作的進(jìn)行和變化;Q2.1:將掃描到的人體骨骼導(dǎo)入到MAYA場景之中,并且調(diào)整每個(gè)身體關(guān)鍵的骨骼部位與身體的模型相對應(yīng)齊;Q2.2:根據(jù)客戶端所要求得指令,在模型上自動(dòng)綁定一些動(dòng)態(tài)骨骼運(yùn)動(dòng);Q3:在模型身上綁定骨骼系統(tǒng),并且與面部控制器進(jìn)行實(shí)時(shí)綁定,并驅(qū)動(dòng)面部動(dòng)作的進(jìn)行和變化;Q4:通過關(guān)鍵幀的設(shè)置,我們可以通過已經(jīng)形成的表情的數(shù)據(jù)庫和動(dòng)作的數(shù)據(jù)庫將信息賦予到模型之中;Q4.1:通過 BlendShape[3]的變形處理將修復(fù)每個(gè)所需要的表情;Q4.2:通過關(guān)鍵幀,在身體控制器和面部控制器處的屬性中建立與表情修復(fù)的一種驅(qū)動(dòng)關(guān)系;
Q4.3:調(diào)整模型的面部表情,并且修復(fù);Q5:可以依據(jù)RBF的修復(fù)設(shè)置,將已經(jīng)儲存的身體模型數(shù)據(jù)進(jìn)行修復(fù)以及對所產(chǎn)生的動(dòng)作進(jìn)行修正;Q5.1:創(chuàng)建好每個(gè)身體模型數(shù)據(jù),將模型數(shù)據(jù)上傳到模型數(shù)據(jù)庫中,并且利用RBF技術(shù)進(jìn)行定位,對于身體骨骼和所修復(fù)的模型進(jìn)行融合。
3.2構(gòu)建模型及表情修復(fù)流程
第一、構(gòu)建多個(gè)身體模型及在身體上綁定多個(gè)控制器并對于面部和身體動(dòng)作的控制;
第二、在身體的模型之中綁定骨骼系統(tǒng)進(jìn)行運(yùn)動(dòng)捕捉;
第三、在面部的模型之中綁定骨骼系統(tǒng)進(jìn)行動(dòng)態(tài)捕捉;
第四、將在表情數(shù)據(jù)庫中進(jìn)行模型與表情的相匹配并且對所產(chǎn)生角色表情部分進(jìn)行修正;
第五、將儲存在數(shù)據(jù)庫中的身體模型進(jìn)行骨骼的動(dòng)態(tài)融合,并且對于所產(chǎn)生的模型的動(dòng)作進(jìn)行不斷的修復(fù)。
3.3身體綁定及面部模型綁定結(jié)果示意圖
3.4 基于Unity下的場景模型的建立
參考文獻(xiàn)
[1] Komar,K.G,Proc.SPIE[J],120,(1977),127.
[2] Y.Chuang,B.Curless,D.Salesin,and ?R.Szeliski.A ?bayesian ?approach ?to ?digital matting[M].CVPR,2001.
[3] 戴鵬,徐光祐.面向網(wǎng)上人際交流的便捷人臉動(dòng)畫.計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào)[J],2008,2 0(6):793-800.
[4] 郭海新,劉慶.虛擬現(xiàn)實(shí)技術(shù)在室內(nèi)設(shè)計(jì)中的應(yīng)用[J].大眾商務(wù),2010(1):15-153.