李杰
(北方工業(yè)大學(xué)計算機(jī)學(xué)院,北京 100144)
基于Leap Motion的虛擬翻書系統(tǒng)設(shè)計與實(shí)現(xiàn)
李杰
(北方工業(yè)大學(xué)計算機(jī)學(xué)院,北京 100144)
隨著計算機(jī)技術(shù)的發(fā)展,非接觸式的交互越來越受到人們的重視。為了提高學(xué)習(xí)興趣,增強(qiáng)學(xué)習(xí)的交互性,結(jié)合Leap Motion體感交互設(shè)備,在學(xué)習(xí)和掌握相關(guān)技術(shù)的基礎(chǔ)上,設(shè)計并實(shí)現(xiàn)虛擬翻書系統(tǒng)。針對揮手翻頁的姿勢識別問題,重點(diǎn)研究坐標(biāo)變換技術(shù),將不同坐標(biāo)系的數(shù)值進(jìn)行處理判斷;針對翻頁的特效問題,重點(diǎn)研究曲面變形技術(shù),將不同的平面進(jìn)行旋轉(zhuǎn)縮放;針對圖片資源加載緩慢的問題,研究異步加載技術(shù),避免資源切換出現(xiàn)的停頓現(xiàn)象。經(jīng)實(shí)踐證明,系統(tǒng)具有良好的運(yùn)行效果,達(dá)到預(yù)期目標(biāo)。
Leap Motion;坐標(biāo)變換;曲面變形;異步加載
隨著計算機(jī)技術(shù)的快速發(fā)展,傳統(tǒng)的鼠標(biāo)、鍵盤等交互方式已不能滿足人們的需要。而自從微軟在2010年推出Kinect For Windows體感設(shè)備用來捕獲人體姿勢、動作及面部跟蹤等技術(shù),引起開發(fā)者的廣泛興趣;緊接著Leap Motion公司推出Leap Motion Controller小型捕捉系統(tǒng),用來更精確的追蹤人體手部的運(yùn)動,帶來了體感交互的新方式[2-3]。隨著新型體感設(shè)備的發(fā)展,人們越來越關(guān)注這種非接觸式的交互,更是引起人們的體驗(yàn)興趣,同時也在互動娛樂,項(xiàng)目展示等方面得到了很好的應(yīng)用。
1.1 系統(tǒng)結(jié)構(gòu)設(shè)計
系統(tǒng)主要有Leap Motion控制器和計算機(jī)組成,Leap Motion控制器與計算機(jī)通過USB串口連接,Leap Motion主要完成數(shù)據(jù)采集,后通過數(shù)據(jù)分析及動作定義來判定人體進(jìn)行的操作,從而執(zhí)行翻書的動畫,其對應(yīng)的結(jié)1構(gòu)圖和流程圖圖1和圖2所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
圖2 系統(tǒng)流程圖
1.2系統(tǒng)功能描述
系統(tǒng)的主要功能模塊如圖3所示。
圖3 功能結(jié)構(gòu)圖
動作數(shù)據(jù)分析模塊是對Leap Motion采集的數(shù)據(jù)進(jìn)行分析,與事先定義好的手部動作進(jìn)行對比,從而判斷當(dāng)前人體手部執(zhí)行的動作。因Leap Motion所使用的數(shù)據(jù)是以mm為單位,且手部移動的范圍與屏幕顯示的范圍大小不一致,為了避免出現(xiàn)手部移動過大或過小的現(xiàn)象,需要劃定手部在Leap Motion坐標(biāo)系下移動的范圍,同時也需要事先確定出待繪制屏幕的大小,通過坐標(biāo)變換來校準(zhǔn)手部移動的范圍。
翻書動畫實(shí)現(xiàn)模塊主要是通過定義多個曲面,將每個曲面設(shè)置不同的參數(shù)來進(jìn)行旋轉(zhuǎn),變形,從而形成不同的形狀。本文需要設(shè)置5個曲面,分別用來設(shè)置正反封皮,正文。一般來說,正反封皮的厚度要比正文的厚度要大,且書籍翻頁時能看到一頁的正反面,為了增加書籍的真實(shí)度,我們在這里就用3個曲面來設(shè)定書籍的正文,可以依據(jù)設(shè)定的翻頁速度,曲面間隔等參數(shù)來實(shí)現(xiàn)不同的動畫。
圖片加載模塊主要是通過異步加載的方式將多張圖片加載到內(nèi)存,為了避免圖片加載過慢,導(dǎo)致卡頓的現(xiàn)象,需要將多張圖片打包,進(jìn)行異步加載。
人體動作有很多種,同一種動作,不同的人進(jìn)行的操作也不一樣,為了方便使用人的操作,在定義動作執(zhí)行規(guī)范的同時,也需要對多人進(jìn)行訓(xùn)練,找到動作操作的相似點(diǎn)。但因采集到的動作數(shù)據(jù)是相對Leap Motion體感設(shè)備來說,它的坐標(biāo)原點(diǎn)是以設(shè)備的中心點(diǎn)為準(zhǔn),滿足右手坐標(biāo)系,與顯示輸出設(shè)備的坐標(biāo)是不一致的,需要對數(shù)據(jù)進(jìn)行校準(zhǔn),這就需要用到坐標(biāo)變換技術(shù)。
為了模擬真實(shí)書籍的翻頁效果,需要對不同的曲面進(jìn)行縮放,旋轉(zhuǎn)等操作,尤其在執(zhí)行翻頁效果時,能同時看到三個不同的曲面。這就需要對不同的曲面執(zhí)行不同的操作,涉及到曲面變形技術(shù)。
為了模擬真實(shí)書籍效果,需要加載多張圖片,甚至達(dá)到1000多張圖片。為了避免在圖片加載過程中,出現(xiàn)卡頓等現(xiàn)象,需要使用異步加載技術(shù),將圖片資源事先加載到系統(tǒng)內(nèi)存,避免在圖片進(jìn)行切換出現(xiàn)的停頓或無法顯示圖片等情況。
2.1 坐標(biāo)變換技術(shù)
坐標(biāo)變換技術(shù)對數(shù)據(jù)處理非常重要,若體感設(shè)備坐標(biāo)系與屏幕坐標(biāo)系一致的話,數(shù)據(jù)只需要進(jìn)行歸一化處理,按照設(shè)定的大小來處理即可;若體感設(shè)備坐標(biāo)系與屏幕坐標(biāo)系不一致,就在歸一化后,進(jìn)行相應(yīng)的處理。因每個體感設(shè)備的坐標(biāo)系是不一致的,這里就針對Leap Motion體感設(shè)備來說明坐標(biāo)變換技術(shù)。
圖4 LeapMotion坐標(biāo)系向屏幕坐標(biāo)系轉(zhuǎn)換
圖5 LeapMotion坐標(biāo)系向Unity坐標(biāo)系變換
由圖4和圖5可知在進(jìn)行二維體感交互和三維體感交互時,都需要進(jìn)行坐標(biāo)變換,本系統(tǒng)主要使用的是Leap Motion坐標(biāo)系向屏幕坐標(biāo)系轉(zhuǎn)換,為了保證拿到的數(shù)據(jù)比較準(zhǔn)確,都需要進(jìn)行歸一化處理,可通過以下公式進(jìn)行歸一化處理。
在這里假定設(shè)定的Leap Motion交互的最小距離點(diǎn)為(Lsx,Lsy),交互的最大距離點(diǎn)為(Lex,Ley);屏幕的最小距離為(Sex,Sey),最大距離為;(X1,Y1)為Leap Motion坐標(biāo)系下的某一點(diǎn),這里需要確定出在屏幕坐標(biāo)系中的某一點(diǎn)(Xs,Ys)。
這里注意的是,對屏幕坐標(biāo)系來說,獲取的數(shù)據(jù)在Y軸上互為反向;對Unity坐標(biāo)系來說,在Z軸上是互為反向,需要進(jìn)行方向互換??赏ㄟ^上述方法來自定義體感設(shè)備的交互范圍,以及與屏幕互動的范圍大小。若不需要設(shè)定交互范圍,可使用LeapMotion所提供的InteractionBox方法來快速獲取手或手指的位置坐標(biāo)。在獲取位置坐標(biāo)后,可依據(jù)移動的范圍或方向來判斷人體所執(zhí)行的動作,與事先定義好的姿勢識別進(jìn)行對比,從而判斷所執(zhí)行的操作。
2.2 曲面變形技術(shù)
曲面變形是為了模擬書籍,尤其是在執(zhí)行翻頁特效時尤其重要。本文用到的是MegaFiers變形插件,是Unity專用的物體變形與動畫解決方案,支持所有的開發(fā)平臺,具備將40種以上的變形功能單獨(dú)或整合到一個多邊形物體中。本文主要使用的是MegaBook,是用來快速創(chuàng)建虛擬書籍的正反封皮以及多張不同的頁面,可以用來依據(jù)需要來設(shè)定頁面的大小和翻頁的速度等,縮短系統(tǒng)開發(fā)的時間。
虛擬書籍是有5個平面組成,分別用于設(shè)定正反封皮,和頁面翻頁特效;為了對不同的平面進(jìn)行變形,需要將這些平面進(jìn)行網(wǎng)格劃分,同時將設(shè)定頁面的3個平面生成動畫,在執(zhí)行平面旋轉(zhuǎn)時,需要實(shí)時更換這三個平面的貼圖,已達(dá)到翻書的模擬效果。
2.3 異步加載技術(shù)
異步加載是為了解決圖片資源過多而影響系統(tǒng)運(yùn)行,避免圖片在進(jìn)行切換出現(xiàn)的卡頓現(xiàn)象。因本系統(tǒng)主要使用的是Unity游戲引擎開發(fā),在這里就說明Unity中的異步加載技術(shù)。
Unity中主要使用LoadAsync方法來加載圖片資源,為了提高加載速度,需要使用Unity給定的打包方法來對多張圖片進(jìn)行打包壓縮,后可調(diào)用StartCoroutine方法新開個線程來進(jìn)行異步加載。
本系統(tǒng)采用Unity游戲引擎和Leap Motion體感設(shè)備開發(fā),圖6為系統(tǒng)運(yùn)行及體感設(shè)備界面,圖7到圖8為系統(tǒng)運(yùn)行界面,該系統(tǒng)開發(fā)成功后,已被運(yùn)用到各個幼兒園中。
圖6 系統(tǒng)運(yùn)行的體感設(shè)備
圖7 揮手運(yùn)行界面
圖8 系統(tǒng)運(yùn)行界面
本文結(jié)合Leap Motion體感設(shè)備在Unity游戲引擎上設(shè)計并實(shí)現(xiàn)了虛擬翻書系統(tǒng),可在一定程度上增加孩子的互動性以及趣味性,提高孩子的學(xué)習(xí)能動性,在市場上具有一定的應(yīng)用前景。
參考文獻(xiàn):
[1]李楊韜,禹東川等.基于LeapMotion手勢識別的認(rèn)知訓(xùn)練系統(tǒng)的設(shè)計和實(shí)現(xiàn)[J].電子設(shè)計工程,2016(5):12-14.
[2]黃俊,景紅.基于LeapMotion的手勢控制技術(shù)初探[J].計算機(jī)系統(tǒng)應(yīng)用,2015(10):259-263.
[3]林書坦,尹長青.基于LeapMotion的數(shù)字手勢識別[J].電腦知識與技術(shù),2015(12):108-109.
[4]Guna J,Jakus G,Pogaanik M,et al.An Analysis of the Precision and Reliability of the Leap Motion Sensor and Its Suitability for Static and dynamic tracking[J].Sensors,2014,14(2):3702-3720.
Design and Implementation of Virtual Open Book System Based on Leap Motion
LI Jie
(College of Computer Science,North China University of Technology,Beijing 100144)
With the development of computer technology,people pay more attention to non-contact interaction.In order to increase interest in learning and enhanced interactive learning,combined with Leap Motion somatosensory interactive device,on the basis of learning and mastering related technologies,designs and implements virtual open book system.Aiming at the problem of turning hand gesture recognition,focuses on the coordinate transformation technique,and processes the numerical value of different coordinate system;aiming at the problem of the page with effect,focuses on surface modification technology,this has zoom in different plane;aiming at the problem of slow loading image resources,studies the asynchronous loading technology,to avoid the phenomenon of the emergence of resource switching.The practice shows that the operation of the system has a good effect,which achieves the desired goals.
Leap Motion;Coordinate Transformation;Surface Deformation;Asynchronous Loading
1007-1423(2016)33-0065-04
10.3969/j.issn.1007-1423.2016.33.015
,男,河南南陽人,助理研究員,碩士,研究方向?yàn)樘摂M現(xiàn)實(shí)、數(shù)字娛樂等
2016-09-27
2016-11-15
優(yōu)秀青年教師培養(yǎng)計劃(No.XN072-007)