国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Kinect的通用式肢體訓練系統(tǒng)的設(shè)計與實現(xiàn)

2018-01-17 10:29:26曲毅
電子技術(shù)與軟件工程 2017年22期

本文闡述了一種通用肢體訓練系統(tǒng)的設(shè)計與實現(xiàn)。該系統(tǒng)使用Kinect作為動作捕捉輸入源,使用Unity3D作為輸出平臺,可實時捕捉人體骨骼動作并進行動作匹配,同時反饋匹配結(jié)果,通過保存動作并共享的方式解決了訓練者在訓練時必須依賴教練、教練必須重復輔導多個訓練者的弊端。

【關(guān)鍵詞】肢體訓練 動作捕捉 Kinect Unity3D

1 緒論

Kinect作為一種體感設(shè)備,可以獲取到運動捕捉時的動態(tài)骨骼數(shù)據(jù),同時支持影像識別,語言輸入,語音識別等多種功能,官方也提供了內(nèi)含的運行驅(qū)動、擁有程序開發(fā)接口(Raw Sensor Streams API)、方便的安裝文件以及完整的開發(fā)手冊,可讓軟件開發(fā)人員使用主流的高級程序設(shè)計語言在visual studio開發(fā)平臺下輕易開發(fā)體感系統(tǒng)和支持自然人機交互的應用。本文正是在這樣的背景下,在基于對Kinect體感識別技術(shù)研究的基礎(chǔ)上,設(shè)計實現(xiàn)一款通用肢體訓練體感教育系統(tǒng)

2 系統(tǒng)設(shè)計

2.1 系統(tǒng)分析

本文旨在為肢體訓練領(lǐng)域研究一個通用式的解決方案,若是僅僅單一的以教練員或者以訓練者為主都不能實現(xiàn)這一目的。因此本課題計劃為不同用戶開發(fā)不同的使用端,多個終端通過網(wǎng)絡連接到服務器,使用服務器上傳下載動作文件從而實現(xiàn)文件的共享。文件共享之后,打破了傳統(tǒng)訓練者和教練員一一對應的關(guān)系,訓練者可以練習來自所有教練的所有動作,而教練員的動作也可以供所有訓練者下載練習。

系統(tǒng)業(yè)務流程如圖1所示。

2.2 系統(tǒng)設(shè)計

根據(jù)以上分析,可以將系統(tǒng)分為一個服務器端和三個客戶端,分別為標準動作采集端、訓練端和手機無線控制端。服務器端負責存儲文件,實現(xiàn)文件的共享;標準動作采集端負責錄制教練員的標準動作,并將動作信息轉(zhuǎn)換成數(shù)據(jù)記錄到文件,再將文件上傳到服務器;訓練端則從服務器下載文件并解析成動作數(shù)據(jù)并將其應用于虛擬人物,實現(xiàn)動作的回放。訓練端還需要獲取訓練者的動作,并將自身動作數(shù)據(jù)與標準動作數(shù)據(jù)進行比對,得到比對結(jié)果后再反饋給訓練者;考慮到訓練者在訓練時需要遠離電腦,在訓練時也無法通過鼠標或者鍵盤控制播放狀態(tài),所以在這里引入手機無線控制端,手機端通過無線與訓練端進行連接,主要負責控制動作回放時的播放和暫停,作為訓練端的控制器而存在。

就整個系統(tǒng)而言,可以將系統(tǒng)分為輸入部分、存儲部分、輸出部分和控制部分,系統(tǒng)結(jié)構(gòu)圖如圖2 所示。

3 系統(tǒng)實現(xiàn)

系統(tǒng)的主要功能,可以通過模型綁定、數(shù)據(jù)驅(qū)動、切換數(shù)據(jù)源、動作匹配等主要步驟來實現(xiàn)。

3.1 模型綁定

真實人物與虛擬人物的動作綁定主要考慮如何通過Kinect獲取到真實人物的骨骼動作,再將真實的骨骼動作同步到虛擬人物上從而實現(xiàn)虛擬人物與真實動作的同步。系統(tǒng)要實現(xiàn)的所有功能模塊幾乎都需要在此基礎(chǔ)上進行。所以首先需要通過Kinect獲取到人物的骨架以及每個骨架結(jié)點的坐標。但是Kinect使用的坐標與Unity內(nèi)部使用的坐標不一樣,所以需要進行必要的轉(zhuǎn)換,將人物相對于Kinect傳感器的坐標轉(zhuǎn)換成虛擬人物相對于屏幕的坐標。此轉(zhuǎn)換完成之后,即可對應真實人物與虛擬人物的關(guān)節(jié)點。

關(guān)節(jié)點同步之后,虛擬人物還需要根據(jù)關(guān)節(jié)點來移動骨骼模型。此時才可以實現(xiàn)虛擬人物的運動效果。該功能通過Unity提供的Avatar骨骼系統(tǒng)來實現(xiàn)。Avatar系統(tǒng)可以根據(jù)人物骨骼結(jié)點的Rotation來使骨骼進行平滑的移動。使用Dictionary boneIndex2MecanimMap這個鍵值對來將人體骨骼結(jié)點序號依次與Avatar系統(tǒng)的骨骼結(jié)點對應起來。即:當人物某個結(jié)點移動之后根據(jù)該結(jié)點的序號通過boneIndex2MecanimMap找到對應的Avatar骨骼結(jié)點,將Avatar節(jié)點與人物骨骼結(jié)點移動相同的位置,Avatar結(jié)點的移動可以牽引骨骼進行移動從而實現(xiàn)整個骨骼的移動。真實人物與虛擬人物的動作綁定效果如圖3所示。

3.2 數(shù)據(jù)驅(qū)動

真實人物與虛擬人物的動作綁定后,可以實現(xiàn)使用虛擬人物骨骼的關(guān)節(jié)結(jié)點與真實人物的關(guān)節(jié)點進行關(guān)聯(lián),下一步要實現(xiàn)虛擬人物根據(jù)真實人物的動作進行運動。

這里用到的是在單位時間內(nèi)對各個人體骨骼結(jié)點的位置進行采樣。通過對單位時間段內(nèi)不同關(guān)節(jié)點位置做補間動畫來實現(xiàn)同步真實人物動作的動畫效果。

3.3 切換數(shù)據(jù)源

在真實人物與虛擬人物動作對應的過程中,可認為動作的數(shù)據(jù)流從真實人物流到虛擬人物中。要實現(xiàn)保存動作,只需要動作數(shù)據(jù)流附與虛擬人物時將數(shù)據(jù)流拷貝一份副本進行序列化再保存到本地即可。若要實現(xiàn)動作的播放,只需要將虛擬人物的數(shù)據(jù)源切換到文件流即可。動作的保存與播放結(jié)構(gòu)如圖4所示。

3.4 動作匹配

動作匹配是指比較訓練者的姿勢與播放的教練的姿勢是否匹配。高效且精確度滿足需求的評估方法尤為重要。系統(tǒng)需要對同一空間下的兩個不同虛擬人物模型的相對應的關(guān)節(jié)點進行比較匹配,以驗證訓練者的某個關(guān)節(jié)點的移動距離和方向是否與標準動作一致。本文通過兩個向量的差來判斷其匹配度。即通過比較兩個虛擬模型相應結(jié)點的相對位置來判斷結(jié)點是否匹配并返回匹配結(jié)果,按此方式遍歷所有結(jié)點,便可以得到該動作的匹配情況。

可由方程(1)來計算誤差值:

△Z=((a-b)-(c-d))2 (1)

對于任意一個骨骼結(jié)點,θ1表示訓練者的某個關(guān)節(jié)點,θ2表示教練模型上與θ1相對應的結(jié)點。向量a表示坐標原點到骨骼結(jié)點θ1的向量;向量c表示坐標原點到骨骼結(jié)點θ2的向量,b和d分別表示訓練者模型和教練員模型的根結(jié)點△表示兩個結(jié)點的相似度,如果△的值比允許的誤差值小,那么可以認為該結(jié)點的匹配是達標的。但是,若向量足夠小,即便兩向量方向相反,他們的差也有可能小于誤差值,這顯然是不被允許的。因此在計算向量的差值之前還需要對兩個向量的方向的夾角進行判定。此時需要引入向量的余弦相似度,即兩個向量夾角的余弦值越接近1,表明兩個向量越相近。當余弦相似度達不到要求時,可直接判定當前節(jié)點為不匹配。

動作匹配結(jié)果如圖5所示。

4 結(jié)束語

基于Kinect的通用式肢體訓練系統(tǒng)為教練員和訓練者分別開發(fā)了兩個功能不同的客戶端。教練端通過Kinect捕捉獲取到教練人員的骨骼動作后,使用Unity將骨骼動作的數(shù)據(jù)流轉(zhuǎn)換成文件流保存成文件再通過網(wǎng)絡將動作文件上傳至云空間進行共享;訓練端則是下載并播放動作文件,將播放的動作文件與Kinect獲取的自身的動作進行比對,并反饋各個關(guān)節(jié)點匹配的結(jié)果。與傳統(tǒng)的肢體訓練相比,使用兩個客戶端互相配合,訓練者可以靈活的增加、刪除和選擇要練習的動作,避免了需要為訓練不同的動作開發(fā)不同軟件的弊端。

后期擬在錄制教練員動作時同時也以視頻的形式錄制下來。如此訓練者可以通過觀看視頻獲取更精確的動作細節(jié)信息,使用骨骼信息來進行比對測試自身練習的動作是否到位。這樣給予訓練者一個更全面的練習環(huán)境。另外,擬增加開發(fā)一款動作剪輯軟件,使得專業(yè)人員可以像剪輯視頻一樣剪輯動作,丟棄冗余、錯誤的動作,給訓練者一個更專業(yè)的標準動作。

參考文獻

[1]蔡俊.基于Kinect的上肢康復訓練系統(tǒng)的研究[D].廣東工業(yè)大學,2015.

[2]鄔冠上.基于Kinect的交互式健身游戲的設(shè)計與實現(xiàn)[D].中國科學院大學(工程管理與信息技術(shù)學院),2014.

[3]黃彧.相似性度量的研究及其在數(shù)據(jù)挖掘中的應用[D].福建師范大學,2009.

[4]余濤.Kinect應用開發(fā)實戰(zhàn):用最自然的方式與機器對話[M].北京:機械工業(yè)出版社,2013.

[5]商宇浩,李一帆,張吉祥.Unity 5.x完全自學手冊[M].北京:電子工業(yè)出版社,2016.

[6]吳國斌.KINEC人機交互開發(fā)實踐[M].北京:人民郵電出版社,2013.

[7]陳泉宏.Unity API解析[M].北京:人民郵電出版社,2014.

[8](美)Alan, Shalloway.設(shè)計模式解析[M].北京:人民郵電出版社,2016.

[9]Erich,Gamma.設(shè)計模式:可復用面向?qū)ο筌浖幕A(chǔ)[M].北京:機械工業(yè)出版社,2007.

[10]陳綏陽,張娓娓,李繼C#面向?qū)ο蟪绦蛟O(shè)計[M].北京:清華大學出版社,2014.

[11]李紅波,丁林建,冉光勇.基于Kinect深度圖像的人體識別分析[J].專題策劃,2012(04).

[12]王瑩.基于Kinect的Tri-tracking視頻跟蹤算法研究[D].大連:大連理工大學,2012.

[13]代艾波,瞿暢,朱小龍,于陳陳.體感交互技術(shù)在運動康復領(lǐng)域的應用[J].中國康復理論與實踐,2014(01).

[14]David M.Frost,Tyson A.C.Beach,Troy L.Campbell,Jack P.Callaghan,Stuart M.McGill.Can the Functional Movement Screen? be used to capture changes in spine and knee motion control following 12 weeks of training?[J]. Physical Therapy in Sport,2016.

[15]向澤銳,支錦亦,徐伯初,李娟.運動捕捉技術(shù)及其應用研究綜述[J].計算機應用研究,2013(08):2241-2245.

作者簡介

曲毅,女,淮海工學院計算機工程學院,副教授,主研方向為計算機圖形學、虛擬現(xiàn)實、人機交互。

張承凱,男,計算機工程學院軟件工程專業(yè)2017屆本科畢業(yè)生。

作者單位

江蘇省連云港市淮海工學院計算機工程學院 江蘇省連云港市 222002endprint

开封县| 伽师县| 建昌县| 阳高县| 三台县| 长沙县| 清苑县| 宜州市| 时尚| 鹤山市| 丹凤县| 和平区| 新乐市| 荃湾区| 道真| 台湾省| 易门县| 茂名市| 桂东县| 许昌市| 奉贤区| 兰州市| 武义县| 湘西| 乃东县| 梧州市| 凤阳县| 巴林左旗| 柞水县| 洮南市| 阿拉尔市| 高邮市| 甘洛县| 唐海县| 夏津县| 江口县| 阜平县| 武邑县| 吉林市| 泰兴市| 南涧|