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