基于Leap Motion的虚拟翻书系统设计与实现
2016-12-28李杰
李杰
(北方工业大学计算机学院,北京 100144)
基于Leap Motion的虚拟翻书系统设计与实现
李杰
(北方工业大学计算机学院,北京 100144)
随着计算机技术的发展,非接触式的交互越来越受到人们的重视。为了提高学习兴趣,增强学习的交互性,结合Leap Motion体感交互设备,在学习和掌握相关技术的基础上,设计并实现虚拟翻书系统。针对挥手翻页的姿势识别问题,重点研究坐标变换技术,将不同坐标系的数值进行处理判断;针对翻页的特效问题,重点研究曲面变形技术,将不同的平面进行旋转缩放;针对图片资源加载缓慢的问题,研究异步加载技术,避免资源切换出现的停顿现象。经实践证明,系统具有良好的运行效果,达到预期目标。
Leap Motion;坐标变换;曲面变形;异步加载
0 引言
随着计算机技术的快速发展,传统的鼠标、键盘等交互方式已不能满足人们的需要。而自从微软在2010年推出Kinect For Windows体感设备用来捕获人体姿势、动作及面部跟踪等技术,引起开发者的广泛兴趣;紧接着Leap Motion公司推出Leap Motion Controller小型捕捉系统,用来更精确的追踪人体手部的运动,带来了体感交互的新方式[2-3]。随着新型体感设备的发展,人们越来越关注这种非接触式的交互,更是引起人们的体验兴趣,同时也在互动娱乐,项目展示等方面得到了很好的应用。
1 系统总体设计
1.1 系统结构设计
系统主要有Leap Motion控制器和计算机组成,Leap Motion控制器与计算机通过USB串口连接,Leap Motion主要完成数据采集,后通过数据分析及动作定义来判定人体进行的操作,从而执行翻书的动画,其对应的结1构图和流程图图1和图2所示。
图1 系统结构图
图2 系统流程图
1.2系统功能描述
系统的主要功能模块如图3所示。
图3 功能结构图
动作数据分析模块是对Leap Motion采集的数据进行分析,与事先定义好的手部动作进行对比,从而判断当前人体手部执行的动作。因Leap Motion所使用的数据是以mm为单位,且手部移动的范围与屏幕显示的范围大小不一致,为了避免出现手部移动过大或过小的现象,需要划定手部在Leap Motion坐标系下移动的范围,同时也需要事先确定出待绘制屏幕的大小,通过坐标变换来校准手部移动的范围。
翻书动画实现模块主要是通过定义多个曲面,将每个曲面设置不同的参数来进行旋转,变形,从而形成不同的形状。本文需要设置5个曲面,分别用来设置正反封皮,正文。一般来说,正反封皮的厚度要比正文的厚度要大,且书籍翻页时能看到一页的正反面,为了增加书籍的真实度,我们在这里就用3个曲面来设定书籍的正文,可以依据设定的翻页速度,曲面间隔等参数来实现不同的动画。
图片加载模块主要是通过异步加载的方式将多张图片加载到内存,为了避免图片加载过慢,导致卡顿的现象,需要将多张图片打包,进行异步加载。
2 系统关键技术
人体动作有很多种,同一种动作,不同的人进行的操作也不一样,为了方便使用人的操作,在定义动作执行规范的同时,也需要对多人进行训练,找到动作操作的相似点。但因采集到的动作数据是相对Leap Motion体感设备来说,它的坐标原点是以设备的中心点为准,满足右手坐标系,与显示输出设备的坐标是不一致的,需要对数据进行校准,这就需要用到坐标变换技术。
为了模拟真实书籍的翻页效果,需要对不同的曲面进行缩放,旋转等操作,尤其在执行翻页效果时,能同时看到三个不同的曲面。这就需要对不同的曲面执行不同的操作,涉及到曲面变形技术。
为了模拟真实书籍效果,需要加载多张图片,甚至达到1000多张图片。为了避免在图片加载过程中,出现卡顿等现象,需要使用异步加载技术,将图片资源事先加载到系统内存,避免在图片进行切换出现的停顿或无法显示图片等情况。
2.1 坐标变换技术
坐标变换技术对数据处理非常重要,若体感设备坐标系与屏幕坐标系一致的话,数据只需要进行归一化处理,按照设定的大小来处理即可;若体感设备坐标系与屏幕坐标系不一致,就在归一化后,进行相应的处理。因每个体感设备的坐标系是不一致的,这里就针对Leap Motion体感设备来说明坐标变换技术。
图4 LeapMotion坐标系向屏幕坐标系转换
图5 LeapMotion坐标系向Unity坐标系变换
由图4和图5可知在进行二维体感交互和三维体感交互时,都需要进行坐标变换,本系统主要使用的是Leap Motion坐标系向屏幕坐标系转换,为了保证拿到的数据比较准确,都需要进行归一化处理,可通过以下公式进行归一化处理。
在这里假定设定的Leap Motion交互的最小距离点为(Lsx,Lsy),交互的最大距离点为(Lex,Ley);屏幕的最小距离为(Sex,Sey),最大距离为;(X1,Y1)为Leap Motion坐标系下的某一点,这里需要确定出在屏幕坐标系中的某一点(Xs,Ys)。
这里注意的是,对屏幕坐标系来说,获取的数据在Y轴上互为反向;对Unity坐标系来说,在Z轴上是互为反向,需要进行方向互换。可通过上述方法来自定义体感设备的交互范围,以及与屏幕互动的范围大小。若不需要设定交互范围,可使用LeapMotion所提供的InteractionBox方法来快速获取手或手指的位置坐标。在获取位置坐标后,可依据移动的范围或方向来判断人体所执行的动作,与事先定义好的姿势识别进行对比,从而判断所执行的操作。
2.2 曲面变形技术
曲面变形是为了模拟书籍,尤其是在执行翻页特效时尤其重要。本文用到的是MegaFiers变形插件,是Unity专用的物体变形与动画解决方案,支持所有的开发平台,具备将40种以上的变形功能单独或整合到一个多边形物体中。本文主要使用的是MegaBook,是用来快速创建虚拟书籍的正反封皮以及多张不同的页面,可以用来依据需要来设定页面的大小和翻页的速度等,缩短系统开发的时间。
虚拟书籍是有5个平面组成,分别用于设定正反封皮,和页面翻页特效;为了对不同的平面进行变形,需要将这些平面进行网格划分,同时将设定页面的3个平面生成动画,在执行平面旋转时,需要实时更换这三个平面的贴图,已达到翻书的模拟效果。
2.3 异步加载技术
异步加载是为了解决图片资源过多而影响系统运行,避免图片在进行切换出现的卡顿现象。因本系统主要使用的是Unity游戏引擎开发,在这里就说明Unity中的异步加载技术。
Unity中主要使用LoadAsync方法来加载图片资源,为了提高加载速度,需要使用Unity给定的打包方法来对多张图片进行打包压缩,后可调用StartCoroutine方法新开个线程来进行异步加载。
3 系统实现
本系统采用Unity游戏引擎和Leap Motion体感设备开发,图6为系统运行及体感设备界面,图7到图8为系统运行界面,该系统开发成功后,已被运用到各个幼儿园中。
图6 系统运行的体感设备
图7 挥手运行界面
图8 系统运行界面
4 结语
本文结合Leap Motion体感设备在Unity游戏引擎上设计并实现了虚拟翻书系统,可在一定程度上增加孩子的互动性以及趣味性,提高孩子的学习能动性,在市场上具有一定的应用前景。
参考文献:
[1]李杨韬,禹东川等.基于LeapMotion手势识别的认知训练系统的设计和实现[J].电子设计工程,2016(5):12-14.
[2]黄俊,景红.基于LeapMotion的手势控制技术初探[J].计算机系统应用,2015(10):259-263.
[3]林书坦,尹长青.基于LeapMotion的数字手势识别[J].电脑知识与技术,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
,男,河南南阳人,助理研究员,硕士,研究方向为虚拟现实、数字娱乐等
2016-09-27
2016-11-15
优秀青年教师培养计划(No.XN072-007)