林德江,井志胜,王国德,秦国伟,时华峰
(1.武汉军械士官学校,湖北武汉 430075;2.工兵军代局驻济南地区军代室山东济南 250000)
基于Leap Motion体感控制技术的数字化展示系统研究
林德江1,井志胜1,王国德1,秦国伟1,时华峰2
(1.武汉军械士官学校,湖北武汉 430075;2.工兵军代局驻济南地区军代室山东济南 250000)
针对大型复杂装备“模型展示”中采用“平面+鼠标”方式缺乏真实立体感和自然交互性的问题,提出了基于Leap Motion体感控制技术的数字化展示系统。设计完成了系统的硬件结构和软件架构,研究了Leap Motion到Unity 3D引擎环境的坐标转换、手势交互控制任务等系统实现的关键技术。在此基础上,结合Leap Motion SDK的Unity插件,在Unity 3D引擎中完成了场景配置和场景驱动,实现该系统。实际应用结果表明,该系统沉浸感更强,手势跟踪稳定精准,解决了装备模型立体展示和自然交互的问题,同时也为Leap Motion这种精准的、近距离手势追踪技术的探索应用提供了一定借鉴。
体感控制;Leap Motion;幻影成像;手势追踪;Unity 3D
“模型展示”是大型复杂装备展览、培训中的重要环节之一,采用实装展示的方法容易受到场地、环境、时间、人员等多种因素的制约,且有些部件难以直观展示。目前,在展示和交互过程中大多采用三维动画或二维图片的方式,通过传统鼠标不断调整x、y、z三轴的参数,以展示不同部位的结构。这种基于“平面+鼠标”的方式,一则缺乏立体真实感;二则缺乏自然交互性,难以提供直观便捷的信息展示与交互。
幻影成像技术近年来在商品展示领域应用广泛,与真正的全息技术相比,价格低廉,却能够提供真实感和立体感,十分适合应用于装备模型展示,但目前实际开发中片源大都停留在非交互阶段,缺乏高效的开发环境以及更自然的交互工具。
Leap Motion是Leap公司2013年推出的一款毫米级桌面近距离手势控制设备,与Kinect[1-5]、Wii等适合于远距离全身感应的设备相比,Leap Motion更侧重于捕捉与识别近距离的手和手指详细动作[6-9]。将其结合幻影成像技术应用于装备模型的近距离展示交互,沉浸感更强,仿佛真实的物体就在手中,可以任意操控,展示效果更佳。
Unity 3D是现阶段顶级的跨平台虚拟现实开发引擎[10],具有强大的场景编辑功能和渲染能力,与3ds max及视频编辑软件等传统片源开发工具相比更加灵活、高效,同时也能对Leap Motion设备提供较好的支持。
基于此,笔者提出了“立体+Leap Motion”的展示方式,利用Leap Motion体感控制技术结合幻影成像技术在Unity 3D引擎中开发了用于复杂装备模型展示交互的数字化展示系统,解决了装备模型的立体展示和自然交互的问题,也为Leap Motion这种更加精准的、近距离手势追踪技术的探索应用提供了一定参考。
系统的硬件结构主要由成像金字塔、4台同型号宽屏高清液晶显示器、Leap Motion控制器(以下简称Leap)、VGA分配器、主机和机柜构成,如图1所示。
液晶显示器将同样的交互程序投影在成像金字塔上面,在金字塔成像区域融合形成具有立体感的虚像,如图2所示。通过Leap可以与虚拟三维物体自然交互,进行展示。
成像金字塔:显示三维模型的影像。由4块同尺寸半透半反的三角形玻璃粘结而成,倒立放置,尺寸为100 cm×100 cm×50 cm,金字塔外形的俯视图和左视图如图3所示(金字塔的底边一旦确定,其边面尺寸和高度也就确定)。为保证成像效果,此处选用特殊处理的镀膜玻璃。
液晶显示器:显示投影片源。由幻影成像原理可知,显示器的尺寸需要根据金字塔的底边确定。对于底边为100 cm的金字塔,如果要充分利用其成像区域,则需要100 cm×100 cm的显示屏幕,为了降低成本,提高显示效果,系统此处选用4台同型号的高清液晶显示器。
为保证成像位置关系、大小及显示器的利用率,显示器放置应遵循图3所示的布局关系:显示器的显示平面与金字塔顶点O处于同一水平面内;每台显示器的显示平面距离金字塔顶点O的距离相等;显示器平面存在于对应的金字塔面投影到水平面的等腰直角三角形区域内;假定显示器显示尺寸的长为a,宽为b,那么a+2b<100 cm,为此系统选用了4台PHILIPS 190V4LSB2 19寸显示器(显示尺寸为40.8 cm×25.5 cm,分辨率为1 440×900像素)。
Leap Motion控制器负责追踪手和手指状态,实现交互控制,如图1和图4所示。其基本原理是立体视觉原理,即采用2个摄像头,从不同的角度捕捉画面,通过红外LED照明目标,使之容易识别重建手在真实世界的运动信息。其识别空间为倒置的四棱锥体,在设备上方25~600 mm处[4],即越接近上部交互范围越广,在设置交互范围和放置Leap时要充分考虑这一点。此处,Leap放置时绿色指示灯向外,与显示器平行,设备整体离开成像金字塔区域,以免影响后续交互。
VGA分配器:将交互程序源信号一分为四,使每台显示器均显示相同的内容。选用胜为公司的VS- 2504 VGA一进四出分配器,最高支持分辨1 920×1 440像素。
主机:运行交互程序,实现与Leap连接。选用装有Win 7系统支持Leap的高图形性能计算机。Leap的运行主要依靠算法,需要一定量的处理器和内存资源。
机柜:准确定位显示器、金字塔,要保证加工尺寸和精度,以确保显示效果。
2.1 系统软件架构
展示系统主要功能是实现不同模型的自然交互展示,在设计时充分体现两个主要的功能:一是手势控制任意角度查看模型,即通过手势控制虚拟场景中摄像机的旋转、移动实现对虚拟模型的不同角度观察;二是手势控制模型切换即通过手势控制实现场景中不同的模型加载。
为了实现上述功能,特定义了如表1所示的关键类。
表1 关键类及其功能
程序中各个类的关系图如图5所示。
系统为每个参展模型配置了相应的txt数据文件,包含资源的路径,初始Position和Rotation、Scale等信息,便于运行时读取和加载。运行时,RevolvingGamera先找到“Leapdata Manager”GameObject和“Leapdata Manager.cs”脚本实现Leap初始化,监听手指和手掌的信息,将获取的数据通过LeapdataExtension.cs转换成Unity中的数据,根据获取的有效数据信息判定手势事件,控制相机旋转、拉近拉远或者切换模型。
2.2 Leap到Unity环境的坐标变换
Leap Motion的识别区域是设备上方的倒置的四棱锥体,使用Leap Motion时会虚拟出一个以设备中心为坐标原点的右手坐标系[9],如图6所示。为了更好地实现自然交互操作,必须进行现实世界到虚拟环境的坐标转换。
现实世界中Leap Motion遵循右手坐标系,而Unity 3D场景中是以左手坐标系为基准的,所以将Leap Motion获取的位置数据(x,y,z)换算成Unity 3D场景中数据时,首先要将z轴进行反转。Leap是以mm为单位检测手的移动的,而Unity 3D是以m为单位,所以还应乘以一定的缩放因子S(根据系统场景配置需要设定),这样每检测到手在现实中移动1mm,场景里就移动S m。现实中Leap探测到的y值都为正,如果场景中需要负值坐标那就需要在y方向加偏置。
2.3 手势交互控制任务的实现
系统实现的另一项关键技术是手势交互控制任务,即通过Leap实现手势操控场景中的相机。Leap设备运行后会定时发送视野范围内关于手、手指或工具的运动信息数据,每一份检测到的信息称为帧(Frame),包含了Hands,Fingers,Pointables及Tools等属性[9],通过调用Frame中属性列表信息可以描述或定义设备视野内观察到的整体动作。
当设备检测到手、手指工具,会赋予它一个唯一的ID作为标记,只要实体不出设备的可视区域,该ID号就会保持不变,对于丢失之后又出现的实体,Leap会赋予它一个新的ID。
为了反映绑定后被绑定的手的位置信息、特点以及运动方式,Leap提供Hand对象,包含了几个重要的手的物理特性[9],如表2所示。
表2 Hand对象属性
手势操控任务流程如图7所示。
在上述基础上,实现该系统的关键还在于场景配置以及场景驱动。系统的场景配置和驱动任务主要在Unity 3D引擎中实现。Leap针对Unity 3D开发者专门在Leap Developer Kit中提供了Plugins插件,供使用时导入Unity Asset文件夹下,实现Unity 3D对Leap数据的调用。
将3ds max、Maya等建立的装备模型转换为FBX格式文件导入Unity 3D中搭建三维场景,烘托场景光照,调整摄像机位置,实现场景配置。利用Unity 3D自带的Mono Develop进行C#脚本编程,绑定在相应的GameObject上,实现场景驱动,编辑完成后即可通过Unity 3D发布到Windows平台,导入显示系统中进行展示交互。
图8为系统的运行效果,系统开发完成后经过长时间的运行测试发现,成像效果真实立体,Leap能够精确稳定跟踪,在实际展示交互过程中沉浸感很强,效果良好。
笔者利用Leap Motion体感控制技术结合幻影成像技术在Unity 3D引擎环境中开发了用于复杂装备模型展示交互的数字化展示系统。根据幻影成像原理,设计并确立了系统的硬件结构,提出了系统的软件架构,研究了坐标转换和手势交互控制等系统实现的关键技术,在此基础上实现了该系统。与基于“平面+鼠标”的展示方式相比,该系统沉浸感更强,自然交互性更佳,更具立体真实感,大大提高了展示和交互的效果,同时也为Leap Motion这种精准的、近距离手势追踪技术的探索应用提供了一定参考。
(Referenees)
[1]方志力,温维亮,郭新宇,等.Kinect体感控制性能优化方法[J].计算机工程与设计,2014,35(12):4350- 4355.FANG Zhili,WEN Weiliang,GUO Xinyu,et al.Performance optimization of Kinect somatosensory control[J].Computer Engineering and Design,2014,35(12):4350- 4355.(in Chinese)
[2]廖宏建,曲哲.基于Kinect体感交互技术的虚拟装配实验系统开发[J].实验技术与管理,2013,30(7):98- 102.LIAO Hongjian,QU Zhe.Development of virtual assembly experiment system based on somatosensory interaction technology of Kinect[J].Experimental Technology and Management,2013,30(7):98- 102.(in Chinese)
[3]吴松,韩国柱,陈永才.基于Kinect的装备体感维修教学系统研究[J].中国现代教育装备,2013(11):10- 12. WU Song,HAN Guozhu,CHEN Yongcai.Gesturerecognition artillery maintaining teaching system based Kinect[J].China Modern Educational Equipment,2013(11):10- 12.(in Chinese)
[4]张毅,张烁,罗元,等.基于Kinect深度图像信息的手势轨迹识别及应用[J].计算机应用研究,2012,29(9):3547- 3550.ZH ANG Yi,ZHANG Shuo,LUO Yuan,et al.Gesture track recognition based on Kinect depth image information and its applications[J].Application Research of Computer,2012,29(9):3547- 3550.(in Chinese)
[5]周小芹,刘景,陈正鸣,等.Virtools环境下基于Kinect的手势识别与手部跟踪[J].计算机应用与软件,2013,30(12):295- 298.ZHOU Xiaoqin,LIU Jing,CHEN Zhengming,et al.Using Kinect for gesture recognition and tracking in virtools environment[J].Computer Applications and Software,2013,30(12):295- 298.(in Chinese)
[6]Leap Motion.Leap Motion product[EB/OL].(2014-05- 14)[2015- 02- 15].https:∥ww w.1eapmotion.com/product.
[7]OTANI K.The Leap Motion controller-utilizing the interface to solve problems in the practice of medicine[J].AXIS:Concepts on the Horizon,2013,166:36- 37.
[8]WEICHERT F,BACH MANN D,RUDAK B,et al.Analysis of the accuracy and robustness of the Leap Motion controller[J].Sensors,2013,13(5):6380- 6393.
[9]Leap Motion.Leap Motion developer protal[EB/OL].(2014- 05- 13)[2015- 02- 15].https:∥developer.leapmotion.com/docs.
[10]吴彬,黄赞臻,郭雪峰.Unity 4.x从入门到精通[M].北京:中国铁道出版社,2013:1- 13.WU Bin,HUANG Zanzhen,GUO Xuefeng.Unity 4.x from introduction to master[M].Beijing:China Railway Press,2013:1- 13.(in Chinese)
Researeh on Digital Display System Based on Somatosensory Control Teehnology of Leap Motion
LIN Dejiang1,JING Zhisheng1,WANG Guode1,QIN Guowei1,SHI Huafeng2
(1.Wuhan Ordnance Non-Commissioned Officer Academy,Wuhan 430075,Hubei,China;2.Military Representative Office of Sapper Army Bureau in Jinan Area,Jinan 250000,Shandong,China)
somatosensory control;Leap Motion;phantom imaging;gesture tracking;Unity 3D
TP391.4
A
1673-6524(2015)04-0086-05
2015- 02- 15;
2015- 04- 07
林德江(1987-),男,硕士,主要从事装备虚拟训练技术研究。E-mail:lindejiang1808@sina.com
Abstraet:Digital display system based on somatosensory control technology of Leap Motion was proposed for lack of sense reality and natural interaction of teaching display of large complex equipment through using“plane and mouse”.The design was completed of the hardware structure and software architecture of the system.A study was made of the key technology of implementing the system such as coordinate conversion from Leap Motion space to Unity 3D engine and gesture interaction control tasks.On this basis,the system was realized under the Unity 3D engine through scene configuration and scene driving combined with the Leap Motion SDK plugin of Unity.Application results show that the system's immersion is stronger,and that its gesture tracking is stable and accurate,which not only solves the stereo display and natural interaction problems of the equipment model,but also provides some reference for the exploration and application of the desktop close gesture tracking technology of Leap Motion.