唐滿
摘 要:Kinect體感技術(shù)在數(shù)字化舞蹈中的應(yīng)用,主要是將Kinect作為深度和彩色數(shù)據(jù)的獲取設(shè)備,對得到的舞蹈人員原始信息,進(jìn)行去噪、平滑處理、對齊等一系列操作,在此基礎(chǔ)上,將Kinect獲取的深度數(shù)據(jù)轉(zhuǎn)化為與虛擬角色三維坐標(biāo)一致的算法,實(shí)現(xiàn)用戶動(dòng)作、體態(tài)的變化,來控制虛擬角色動(dòng)作、體態(tài)的變化。突破傳統(tǒng)舞蹈學(xué)習(xí)方式的局限性,對舞蹈學(xué)習(xí)方式的改革和創(chuàng)新具有重要而深遠(yuǎn)的意義。
【關(guān)鍵詞】Kinect 深度數(shù)據(jù) 數(shù)字化舞蹈 運(yùn)動(dòng)捕獲
運(yùn)動(dòng)捕獲技術(shù)(Motion Capture Technology)是在20世紀(jì)70年代后發(fā)展起來的一種關(guān)鍵技術(shù),它主要用于記錄人體運(yùn)動(dòng)數(shù)據(jù)以供后期運(yùn)動(dòng)分析和運(yùn)動(dòng)回放 [2]。Kinect技術(shù)的出現(xiàn)可以提高運(yùn)動(dòng)捕捉的實(shí)時(shí)性,運(yùn)動(dòng)者通過利用Kinect體感傳感器獲取人體運(yùn)動(dòng)數(shù)據(jù),達(dá)到對動(dòng)作實(shí)時(shí)記錄的目的。用Kinect獲取的舞蹈者的舞蹈動(dòng)作,來控制虛擬角色動(dòng)作、體態(tài)的變化。
1 Kinect數(shù)據(jù)捕獲
Kinect數(shù)據(jù)具備對動(dòng)態(tài)圖像進(jìn)行實(shí)時(shí)數(shù)據(jù)搜集、語音語色調(diào)節(jié)、圖像數(shù)據(jù)分析、麥克風(fēng)輸入及人體互動(dòng)等多個(gè)性能。若使用Kinect經(jīng)過紅外掃描圖像收集區(qū)域,使得遠(yuǎn)程紅外線接收器收到物體反射光源,經(jīng)過處理后對圖像數(shù)據(jù)進(jìn)行傳輸,而RGB圖像傳感器則是經(jīng)過直接收集到圖像數(shù)據(jù)。Windows Kinect SDK 中深度數(shù)據(jù)和彩色數(shù)據(jù)的請求均通過Open Next Frame方法,詳細(xì)數(shù)據(jù)獲取步驟為:首先讀取圖像幀信息;其次獲取彩色圖像幀信息;最后,用事件模型獲取數(shù)據(jù),來獲取數(shù)據(jù)幀。
2 運(yùn)動(dòng)數(shù)據(jù)的提取和處理
2.1 人體識別及分類
人體識別主要是把深度圖像中的人體,從中分離出來,這就需要對人物周邊的情景進(jìn)行“過濾”。這與彩色圖像相比,對深度圖像不會產(chǎn)生影響,所以對不同的目標(biāo)人物輪廓提取會比彩色圖像噪聲更小。根據(jù)人體結(jié)構(gòu)特征及 Kinect 中人體識別的特點(diǎn),對場景中出現(xiàn)任何類似“大”字的物體圖像都有可能是人體。人體部位分類是通過特征值來進(jìn)行快速分類的,用特征值來記錄并識別人體的各種姿勢。
2.2 骨骼識別
根據(jù) Open NI 中“骨骼跟蹤”所能捕捉到的14個(gè)關(guān)節(jié)點(diǎn)來生成一副骨架系統(tǒng)。也就是從人體的所有關(guān)節(jié)點(diǎn)中找出這14個(gè)關(guān)節(jié)所在位置,人體的關(guān)節(jié)點(diǎn)可以通過達(dá)芬奇的維特魯威人圖進(jìn)行區(qū)分,同樣使用機(jī)器學(xué)習(xí)算法來實(shí)現(xiàn)辨別。
2.3 骨骼數(shù)據(jù)提取
Kinect 中人體骨架關(guān)節(jié)點(diǎn)分為24個(gè)關(guān)節(jié)。實(shí)際應(yīng)用過程中,通過NITE中間件分析骨架時(shí),只能得到14個(gè)關(guān)節(jié)點(diǎn)信息,通過試探可以獲得可用節(jié)點(diǎn)列表,平移向量是一般的3維空間向量,通過其旋轉(zhuǎn)可用旋轉(zhuǎn)矩陣、歐拉角度或四元數(shù)來表示。
2.4 骨骼關(guān)節(jié)點(diǎn)運(yùn)動(dòng)平滑
骨骼關(guān)節(jié)點(diǎn)運(yùn)動(dòng)平滑,主要是提高采樣頻率即提高攝像頭幀率的中對骨骼關(guān)節(jié)點(diǎn)的平滑處理,處理過程中主要是增加運(yùn)動(dòng)控制節(jié)點(diǎn)的數(shù)目。其中,設(shè)定浮點(diǎn)函數(shù)的范圍是從0-2,根據(jù)浮點(diǎn)函數(shù)對讀取到的數(shù)值做平滑處理,處理后的值越大,那么它的處理結(jié)果也就越好,但是在處理過程中,也會丟失細(xì)節(jié)信息。
3 虛擬角色的創(chuàng)建
3.1 角色綁定
角色綁定通常是從腰部開始的。腰部的綁定包括IK的創(chuàng)建、拉伸及旋轉(zhuǎn)設(shè)置,全局和次級控制等。然后是腳部的綁定,對腳部進(jìn)行基本設(shè)定,包括添加腳部拉伸效果、拉伸開關(guān)以及腳部的空間鎖定等,最終可以實(shí)現(xiàn)腳部的基本形態(tài)。
3.2 蒙皮
蒙皮是將模型綁定到骨架的過程。使用蒙皮將模型綁定到骨架后,它與骨架關(guān)節(jié)和骨骼的變換相一致或背離。Maya中存在三種類型的蒙皮:平滑蒙皮、剛性蒙皮和間接蒙皮。蒙皮后需要繪制相關(guān)權(quán)重,這樣模型在運(yùn)動(dòng)時(shí)才不會變形。
4 運(yùn)動(dòng)重定向
所謂的運(yùn)動(dòng)重新定向,就是將運(yùn)動(dòng)數(shù)據(jù)導(dǎo)入到虛擬情景中,在滿足信息數(shù)據(jù)實(shí)時(shí)需求的情況下,基于運(yùn)動(dòng)圖像捕捉數(shù)據(jù)的重定向技術(shù),該技術(shù)是基于逆向運(yùn)動(dòng)學(xué)的一種改進(jìn)運(yùn)動(dòng)定向方法。該方法的輸入是一個(gè)關(guān)節(jié)的角度向量數(shù)據(jù)流θsrc(t) 和離散時(shí)間下原始模型對應(yīng)的末端效應(yīng)器位置x1(t) ,輸出則是對應(yīng)離散時(shí)間點(diǎn)上關(guān)節(jié)目的角度向量數(shù)據(jù)流 θdes(t)。這種算法的主要優(yōu)點(diǎn)如下:
(1)關(guān)節(jié)比例不同,結(jié)構(gòu)的模型之間的運(yùn)動(dòng)重定向;
(2)在重定向過程中可以較好的保留原始運(yùn)動(dòng)特征;
(3)進(jìn)一步減少了圖像數(shù)據(jù)捕捉過程中數(shù)據(jù)錯(cuò)誤問題。
5 控制虛擬角色運(yùn)動(dòng)
利用 Unity 3D 游戲開發(fā)平臺來控制虛擬角色運(yùn)動(dòng),Unity 3D 包含一個(gè)集成的腳本環(huán)境,可以通過編寫控制腳本來實(shí)現(xiàn)虛擬角色驅(qū)動(dòng)。
將動(dòng)作模型導(dǎo)入到 3D 場景中,根據(jù)重定向后的數(shù)據(jù)來驅(qū)動(dòng)虛擬情景下的人物模型來完成動(dòng)作。下圖是其中一幀的截圖。
6 總結(jié)
Kinect體感技術(shù)在數(shù)字化舞蹈中的應(yīng)用,是用舞蹈者的動(dòng)作來控制虛擬角色運(yùn)動(dòng),通過觀察虛擬角色的舞姿來判斷自己的動(dòng)作是否標(biāo)準(zhǔn)。從實(shí)際效果來看,該研究可以提高學(xué)習(xí)者學(xué)習(xí)舞蹈的積極性,對舞蹈學(xué)習(xí)方式的改革和創(chuàng)新具有一定的意義。
參考文獻(xiàn)
[1]Dimitrios Alexiadis,Petros Daras. Evaluating a Dancers Performance using Kinect-based Skeleton Tracking[C].Greece:Informatics and Telematics Institute,2011:659-662.
[2]李紅波,丁林建,冉光勇.基于Kinect深度圖像的人體識別分析[J].數(shù)字通信,2012(04).
[3]Shotton,J.Real-time human pose recognition in parts from single depth images[C].Colorado Springs: IEEE Computer Society,2011:1298-1299.
[4]尚華強(qiáng).基于Kinect的虛擬人物動(dòng)作仿真研究[D].杭州:杭州電子科技大學(xué),2006:41-70.
[5]宣雨松.Unity 3D游戲開發(fā)[M].北京:人民郵電出版社,2012(06).
作者單位
南陽理工學(xué)院 河南省南陽市 473004