朱惠娟,王军,朱俊
(南京理工大学紫金学院 计算机学院, 江苏 南京 210046)
我国对于体感交互技术的相关研究主要开始于《国家中长期教育改革和发展规划纲要(2010—2020年)》和《教育信息化十年发展规划(2011—2020年)》掀起的技术、应用和教育信息化理论三方面的研究浪潮。
2011年胡赢[1]在文中提到“所谓的‘体感交互’就是指‘使用者通过人体姿态来控制计算机’”。
在教育领域,李青和王青[2]提出“体感交互技术在教学中可作为教学工具,将体感和白板结合,可以扩展电子白板的功能”,同时与现有教学形式相结合,推出情景化教学、个别化学习及游戏化学习等教习方式,极大地提升孩子的学习兴趣。
在游戏娱乐领域,于洪达[3]运用双画立体投影显示系统及Kinect网络,实现将3D游戏中的同一个场景分别输出到不同的角度的玩家眼中,使得不同视角的玩家所观察到的环境相互独立。
发达国家在动作捕捉领域的研究已经进入了实用化阶段,市面上有许多商品化的运动捕捉[4]设备,例如Sega Game、MotionAnalysis、FilmBox等。以MotionAnalysis来说,其应用领域十分广泛,在电影艺术方面有大量的特技采用MotionAnalysis系统进行采集制作。美国好莱坞建立了一个基于MotionAnalysis系统且有16镜头的工作室,许多著名电影均使用了该系统的动作捕捉技术,例如《猩球崛起》《阿凡达》《魔戒》《黑客帝国》等。
可见,随着计算机技术的不断进步,人机交互技术有了巨大的突破,体感交互正在不断地出现在人们的视野中。本文即采用Leap Motion双目视觉成像的特点,与Unity3D结合实现了商用沉浸式艺术展示的效果。自定义不同的手势动作,将Leap Motion获取到的关键手势信息进行分类识别,给用户带来沉浸式体验感。
无论是肢体动作还是手势、眼动、语音等交互命令,都需要体感传感器来作为人机交互之间的媒介,例如使用Leap Motion传感器来进行手势交互;使用眼动仪[5]来捕捉眼球转动、视线聚焦点信息;使用Kinect获取肢体动作信息等。
从技术角度来看,动作捕捉的本质就是测量、跟踪、记录物体在三维空间的运动轨迹。一般来说,典型的运动捕捉设备,如表1所示。
表1 一般运动捕捉系统的组成部分及作用
Leap Motion[6]体感控制器为光学式运动捕捉设备,Leap Motion传感器定位精度高,两颗120帧率的摄像头使得其对动作捕捉有着较高的实时性,体积小巧便于携带与使用,而就手势处理来说,Leap Motion传感器的4立方英尺识别范围已是足够,且Leap Motion表面使用的滤镜几乎可完全过滤可见光,经过测试,两颗灰阶摄像头无论在黑暗中还是强光照射下都能完美得到半灰度的红外图像,无需再加任何去噪波。
鉴于以上原因,本系统采用Leap Motion传感器作为体感交互部分的体感传感器。
1.2.1 Leap Motion基本原理
Leap Motion是一款由体感控制器制造公司Leap在2013年发布的面向PC及苹果电脑MAC的体感控制器,如图1所示。
Leap Motion控制器主要由两个高清的摄像头、光学传感器和三个红外LED灯组成。Leap Motion采用双目视觉原理来对手部进行距离的精准测量,根据内置的摄像头从不同的角度捕捉画面来模拟人类的立体视觉,从而对手势在三维空间的位置信息进行判断。Leap Motion以超过每秒200帧的速度追踪手部移动,其检测范围为传感器上方的25毫米到600毫米之间的倒四棱锥体,精确程度可达1/100毫米。
1.2.2 Leap Motion基本数据
Leap Motion使用的是一种基于计算机视觉原理的识别技术,应用于立体视觉[7]的测量方法称之为三角测量法。其应用场合广泛,小到Kinect设备,大到飞机装配等高精度的作业环境。目前比较有代表性的就是Leap Motion的手势识别技术,微软开发的混合现实头戴式显示器HoloLens上同样搭载该技术。双目立体视觉测量方法,如图2所示。
图2 双目立体视觉测量方法
Leap Motion的API为开发者提供了一系列追踪手部运动的快照数据信息,官方文档中将这些定期发送的关于手部运动的信息称为“帧”(Frame)。每一帧都包含了Leap Motion的一系列基本绑定数据,这些数据为检测到的所有手掌(hands)的列表和信息、所有手指(fingers)的列表和信息、所有工具(tools)的列表和信息(工具定义为细长、笔直的,比手指长的东西,例如一支笔)、所有可指向对象(pointables),即所有手指和工具的列表及信息和手势(gestures)。帧数据下所包含的数据层级示意图,如图3所示。
图3 Frames(帧数据)所包含的数据层级示意图
1.2.3 Leap Motion的信息特征提取
Leap Motion是基于双目视觉的手势识别设备,利用双目立体视觉成像原理,通过两个摄像机进行深度成像,提取手部的三维位置信息,根据深度图建立手部立体模型,最后利用关键点信息识别手势。人体手部的骨骼位置图,如图4所示。
图4 手部骨骼示意图
每根手指包含了许多个骨骼点,从上到下分别为远端指骨、中端指骨、近端指骨、掌骨。其中拇指较其他手指不同,只有三根指骨,并没有掌骨。LeapMotion传感器可识别出每只手的所有手指,同时记录下手指的三维空间坐标。为了便于编程,Leap Motion将拇指的掌骨设为长度为零的掌骨,使每根手指都有4根骨头。
无论是在展馆展览还是课堂辅助教学应用该系统,系统的交互方式都需要通过较好的创新性来吸引游客或者学生的注意。同时展示内容应尽量贴合生活,且能被大多数用户理解该内容所表达的意义,无论该内容是出于教学或者欣赏的目的。因此,本系统以“花海”的展示为主,通过自定义的手势控制花的成长和展示,表现出花海不同的性状。在创新性方面,则是选择将花以数字媒体的形式展现,使其更抽象,富有科技感。既可满足展览吸引眼球,又可用于日常的商业展览等活动,提升用户的参与度[8]。系统设计的核心交互功能,如图5所示。
图5 核心交互功能
在Leap Motion传感器未检测到手的情况下,“花”处于不“生长”的状态,当传感器检测到手进入时,“花”便开始产生变化,与自然界的花生长周期长的特点类似,此时“花”变化速度缓慢。通过交互动作,使花变化速度增加,采用更改动画animator播放速度的方法来加速“花”的“生长”。交互手势为数字“8”,如图6所示。
图6 交互手势“8”
手势“8”的实现方法为使用bool类型的方法IsEight(Hand hand),该方法定义了列表List
左手握拳时,交互对象缩小;左手伸展开时,交互对象放大。此交互可以便捷放大缩小对象,以方便观察,如图7所示。
图7 交互手势“8”
在实现变大交互的部分,定义了bool类型方法isOpenFullHand(Hand hand)判断每手指是否都处于伸展状态。
在判断手上下左右移动时,考虑到正常情况下手会有抖动,因此设定一个常量smallestVelocit=4f用于判定手处于静止状态,当手的移动速度hand.PalmVelocity.Magnitude小于这个值时,isStationary返回true,手视为静止状态,如图8、图9所示。
手势“上”识别 手势“下”识别
手势“左”识别 手势“右”识别
完成手势判定之后,调用颜色改变方法完成交互命令,采用获取网格渲染器组件的方式,根据交互手势的不同,分别修改材质的颜色为绿色、红色、蓝色以及初始颜色。
本系统使用手势进行交互,对于初次使用LeapMotion传感器设备或第一次使用本系统的用户,操作方式及手势细节需要加以说明,如图10所示。
图10 手势学习页面
进入场景后,用户的起始点处于离展示台较远的一个通道内,用于模拟类似于夺宝行动,用户进入最终宝藏所放置的密室中的场景,如图11所示。
图11 虚拟场景
“花朵”被置于展示台上,昏暗的环境配以高光来突出“花”的与众不同,用户可以通过“W”“A”“S”“D”操控角色进行自由移动,使用鼠标来观察。
在靠近展示台时,会出现系统提示,可以按下键盘字母“G”进入花卉的操控界面,如图12所示。
图12 展示页面
在手势交互界面,可以使用手势来改变花的性状,通过“OK”手势来改变花的状态,使花从静止状态转变到开放状态,如图13所示。
图13 “OK”手势控制
通过数字8的手势可以加快花的开放速度,如图14所示。
图14 花开控制
本系统利用Leap Motion采集自行定义的关键手势动作的精确位置及方向信息,并完成了沉浸式体感交互系统的设计与开发,该技术可用于类似的商业艺术作品展示等领域,也为Leap Motion应用于人机交互领域带来了新的灵感。但是,由于非艺术专业人员,画面效果较粗糙,将在今后工作中持续研究并改进。