基于手势的自然用户界面(NUI)在会议中的应用
  光学仪器  2015,Vol. 37 Issue (5): 392-396   PDF    
基于手势的自然用户界面(NUI)在会议中的应用
林明超,王新,董祥美,王海凤    
上海理工大学光电信息与计算机工程学院,上海 200093
摘要: 自然用户界面NUI的清晰、简洁、智能化的方式让用户体验更加直观,更为人性化。基于自然用户界面的应用设备层出不穷,手势识别这种操作技术占据了重要的位置。随着虚拟现实技术快速发展,人们的办公方式也发生了很大的变化。在幻灯片演示方面,传统的方式显得呆板,不能让人们自由使用动作。因此,文中提出一种使用手势来代替鼠标输入的方法,使用Leap Motion控制器。经过试验,计算机的反应速度快,并能准确地辨别出有效手势,能够对幻灯片进行操作。
关键词: 手势识别     人机交互     Leap Motion控制器     自然用户界面    
Gesture-based NUI application for controlling PowerPoint
LIN Mingchao ,WANG Xin,DONG Xiangmei,WANG Haifeng     
School of Optical-Electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China
Abstract: The natural user interface(NUI)is widely used because of clearance,conciseness,and intelligence. NUI-based applications have grown rapidly,particularly the use of gestures,which have occupied a pivotal place in the technology. With the rapid development of virtual reality technology,people's workplaces have great changes. The traditional way to use mouse to control PowerPoint is bored. It can't use people's body freely. Therefore,considering this circumstance,one solution was presented by employing NUI technology for controlling PowerPoint using gestures. After a simulation experiment,the results show that computer can accurately identify a valid gesture,and PowerPoint can be controlled by gesture.
Key words: gesture recognition     human computer interaction     Leap Motion controller     natural user interface    
引 言

人机交互(human-computer interaction)是指通过计算机输入设备、输出设备使人与计算机能够相互交流的过程。在过去,人机交互的主要输入设备为鼠标与键盘。如今,随着计算机硬件,模式识别,人工智能等研究的快速发展,已经可以通过身体追踪、手势[1]、多点触摸手势,声音识别、面部识别[2]和虚拟现实技术等技术与计算机交互。支持这些技术的设备,包括Kinect、智能手套、麦克风、2D摄像头、太空镜、iPad等类似设备[3]

近几年,在人机交互领域,使用人的自然感应来代替计算机硬件的输入已经越来越流行了。例如,使用手势识别来玩视频游戏,比如使用Leap Motion控制器来玩水果忍者。另外,利用Leap Motion控制机器人手臂帮助有需要的人们,特别是残疾人[4]。这些应用都使用了自然用户界面(NUI)这一相同概念。NUI是一种新的操作方式,可使用户用手势和声音来操纵电脑或其他机器。

如今在越来越多的会议,报告者使用PPT来展示他们的内容。但是人们依然使用鼠标或Kinect[5]作为控制PowerPoint演示文稿的方式[6]。虽然至今,3D形式的展示技术依然处于一个研究状态。为了促进这种发展,本文提出了一种使用Leap Motion确定手势动作的一种方法。将这种方法与NUI技术结合,可以使用手势作为PPT展示的控制方法。

1 Leap Motion 控制器原理

Leap Motion控制器能够能检测和追踪手、手指、类似于手指的物体,提供离散的位置和运动。它的工作速度为120帧/秒。Leap Motion的检测范围为设备上的一个倒置的金字塔,塔尖在设备中心。Leap Motion的可工作范围大约在设备前方25~600 mm。有研究人员在工业机器人上设计一个测量设置,可以测量Leap Motion控制器的手势和动作检测能力的精度和稳定性[7]。静态场景下的精度测量分析的结果,一个设定的3D位置与测量得到的位置之间的偏差小于0.2 mm。动态场景下的精度测量分析的总体平均精度为0.7 mm。虽然不能达到理论精度0.01 mm,但是对于手势应用界面来说仍是很高的精确度。

Leap Motion的原理图如图 1所示。

Leap Motion控制器由3个IR(红外光)发射器和2个IR相机组成。首先IR发射器发出红外光,当红外光遇到障碍物后会反射,此时摄像头接受反射的红外光,通过算法对接收回的信息进行处理。它使用复杂的数学方法计算出位置数据和角度等数据信息。所用到的帧信息包括手(所有的手),有端点的(手指和有段点的工具),手指(所有的手指),手势(所有手势的开始、结束)。

Leap Motion控制器提供了一个右手系的笛卡尔坐标(如图 2所示)。它的位置值可以精确到微米级别。X轴和Z轴在水平面,Y轴垂直水平面,方向朝上。当Leap Motion追踪手的数据时,它的数据会发到数据帧内,凭借运动方向朝向,可以明确输入手势的定义,文中将利用手的运动朝向来定义部分手势。

图 1 Leap Motion 原理图

Fig. 1 Leap Motion schematic

图 2 Leap Motion 坐标图

Fig. 2 Leap Motion coordinate
2 PPT控制方法

手势输入模型会判断输入的手势是否为定义的手势。手势定义灵活多变,并且符合人的生活经验,即使从没有使用过的人也能凭借生活经验很快掌握。这种手势设定使人与计算机之间的交互更加自然,降低人们对适应新产品的难度和时间。设计方法基于以上的思想,控制功能如表 1所示。

表 1 手势功能 Tab. 1 Gestures and functions

手势可以根据运动方向定义为,向左或向右。输入的手势速度必须要大于预设的值,才能被Leap Motion识别,然后判断为该执行什么指示。根据人的习惯,幻灯片是按顺序排列,所以人们习惯于将向右的运动手势作为下一步的指令。向左代表返回,即上一步的指令。文中还提供了顺时针画圈的功能使人们能作为放映幻灯片的指令,逆时针画圈作为取消放映的功能。

2.1 Leap Motion 鼠标移动模拟

当使用Leap作为控制器时,首先涉及到的就是如何使用它与计算机交互。第一步必然是使用手指的移动来代替鼠标的移动,必须调整Leap的坐标系空间与计算机屏幕的坐标空间相适应。文中使用Leap 提供的Interaction Box类,这个类提供了规范化Leap的坐标系空间位置到屏幕的坐标空间的函数。可归一化的Leap空间中手指的维度坐标,以获得在应用坐标里的点。操作人员第一最长的手指为输入,最后使用SetCursorPos函数即可获得模拟鼠标移动的效果。代码如下:

Frame frame=leap.Frame();

Finger finger=frame.Fingers.Frontmost;

Vector stabilizedPosition=finger.StabilizedTipPosition;

InteractionBox iBox=leap.Frame().InteractionBox;

Vector normalizedPosition=iBox.NormalizePoint(stabilizedPosition);

float x=normalizedPosition.x*windowWidth;

float y=windowHeight-normalizedPosition.y*windowHeight;

SetCursorPos ((int) tx,(int)ty).

2.2 Leap Motion 鼠标功能模拟

提出的方法支持鼠标控制,使用Leap Motion 控制器作为前端的设备来模拟鼠标控制。Leap Motion定义了一个自适应的触摸表面(如图 3所示),你可以用它来协调互动应用程序的2D元素。这种平面取向大致平行于XY平面,可与使用者的手指和手的位置交互。当使用者的手或工具向前运动时,Leap 将会判断向前的指向性物体是否靠近或触摸这个模拟界面。这种情形根据相对于模拟界面的距离定义为距离(1,-1),即触摸界面和非触摸界面。

图 4所示, 当使用者的左手在Leap上运动时,其触摸距离的数值。由于Leap十分灵敏,所以将其判断距离加0.8,这样不会造成误点,如此当触摸距离为-0.8时,手指才刚接近触摸界面,所以使用者必须做出明显的触摸动作,才能被判定为触摸。

图 3 鼠标模拟

Fig. 3 Touch emulation

图 4 触摸模拟距离

Fig. 4 Touch distance
2.3 PPT的上一步和下一步功能

上一步和下一步功能是PPT演示中十分重要的一项功能。使用手的向左移动来代表上一项,使用手的向右移动来代表下一项,如图 5所示。当手的移动速度超过所设的阈值,手势的输入有效。使用手的手指的平均速度代表手指的移动方向。这种方法简明有效,符合人的自然认识。

图 5 手的左右运动

Fig. 5 Hand left and right movement
2.4 放映和退出幻灯片

自然用户界面提供清晰、简洁、智能化的管理界面和操作方式,所以当打开PPT后十分需求全屏化功能。使用画圈手势代表PPT的全屏化输入和退出,如图 6所示。当顺时针画圈代表全屏化PPT,当逆时针画圈时,代表退出全屏化。使用Leap的画圈手势,由于顺时针和逆时针的法向量的不同,所以法向量与手指之间角度θ不同,可以设置当θ<90°时为顺时针旋转,当θ>90°时为逆时针旋转。若最小识别半径较小,使用者不经意的转圈就可能触发指令,所以设置较大的最小识别半径,设置最小识别半径为75 mm。经过测试,必须画大的圆才能触发指令,不会造成错误输入。

图 6 画圈手势

Fig. 6 Circle gesture
3 成果展示

图 7所示,使用者通过在Leap Motion上方运动控制PPT。所有控制手势的功能如上文所述。

图 7 成果模拟图

Fig. 7 Simulation results

软件和硬件开发环境如下:

软件环境主要包括:Windows 7版本操作系统,Leap Motion develop Kit 2.20 for windows 是Leap 所发布的开发工具包,主要提供Leap的驱动程序和函数。本文使用OFFICE 2013 版本的PowerPoint演示文稿。开发的编译器为Visual studio 2013,使用C#语言。

硬件包括:PC,Leap Motion控制器。

手势操作测试中,使用了Leap Motion控制器测试了上述的方法。首先打开一个PowerPoint演示文稿,使用鼠标模拟按键点击幻灯片放映,使用向右或向左手势控制幻灯片,使用鼠标移动到重点部分进行指示,在幻灯片中途使用逆时针手势退出幻灯片放映。

试验结果显示在使用过程中能辨认出有效的手势。各手势设置的识别阈值合理,没有因为Leap Motion的高精度的识别度而出现错误的识别。

4 结 论

本文展示了PowerPoint演示文稿基于自然用户界面(NUI)的控制方法。通过一个试验性的实验,发现了使用Leap 来定义手势,然后替代鼠标的功能。这种新方法的关键处在于应用人的感觉作为鼠标功能的代替。人们可以使用一种自然的方法来演示PPT。一些简单、有效的手势能与计算机实时交互。实验结果显示这种方法很稳定,能够帮助人们使用手势控制PPT的演示。

自然用户界面增加了人们使用机器的感受,它的应用将会被使用在各个领域。如果与虚拟现实技术、语音导航结合,人们将能立体展示自己的产品。本文方法的应用在这种展示方法上将是一个完美的结合。

参考文献
[1] MOHANDAS M,ALIYU S,DERICHE M.Arabic sign language recognition using the leap motion controller[C]//2014 IEEE 23rd International Symposium on Industrial Electronics(ISIE).Istanbul:IEEE,2014:960-965.
[2] 全星慧,牟海维,吕秀丽,等.基于PCA与贝叶斯决策的人脸识别算法[J].光学仪器,2014,36(2):122-125.
[3] LIU H Z,XI Y L,SONG W,et al.Gesture-based NUI application for real-time path modification[C]//2013 IEEE 11th International Conference on Dependable,Autonomic and Secure Computing(DASC).Chengdu:IEEE,2013:446-449.
[4] BASSILY D,GEORGOULAS C,GVTTLER J,et al.Intuitive and adaptive robotic arm manipulation using the leap motion controller[C]//Proceedings of ISR/Robotic 2014; 41st Internatimal Symposium on Robotics Munich.Germany:VDE,2014:1-7.
[5] 黄康泉,陈壁金,郑博,等.Kinect 在视频会议系统中的应用[J].广西大学学报:自然科学版,2011,36(增刊Ⅰ):308-313.
[6] 陈静,陈泽宇,王敏娟,等.基于Kinect 的体感技术在教学领域中的应用//第五届教育教学改革与管理工程学术年会.重庆:全国教育教学改革与管理工程组委会,2012.
[7] WEICHERT F,BACHMANN D,RUDAK B,et al.Analysis of the accuracy and robustness of the leap motion controller[J].Sensors,2013,13(5):6380-6393.