基于Vizard和Kinect的增强现实人机交互技术研究

计算机时代 / 2017年08月23日 16:04

数码

张利利+刘江城+林晓斌

摘 要: 基于体态和语言的人机自然交互技术很大程度上解决了传统游戏的体验问题,增强了游戏用户的体验感。提出了一种将Vizard和Kinect相结合开发增强现实人机交互技术的方法,即利用Kinect设备获取人体骨骼跟踪识别点,通过Vizard和FAAST取得对应骨骼节点的三维坐标值,并进行空间向量处理,进而判断肢体信息再转换为状态参数,最后完成相应的控制指令输出,实现用户和系统的交互控制。实验结果表明,这种开发方法成本低,周期短,将真实世界信息和虚拟世界信息“无缝”地融合,增强游戏用户的体验感。

关键词: 增强现实; 人机交互; Vizard; Kinect; FAAST

中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2016)04-12-05

Study on augmented reality human-computer interactive

technology with Vizard and Kinect

Zhang Lili, Liu Jiangcheng, Lin Xiaobin

(Minjiang college Physics and electronic information engineering, Fuzhou, Fujian 350000, China)

Abstract: Natural human-computer interaction technology based on posture and language has largely solved the problem of the traditional game experience, and augmented the user experience. This paper presents a method to develop augmented reality interactive technology with Vizard and Kinect. It uses Kinect to obtain tracking identification points of human skeleton, and gets three-dimensional coordinate values of corresponding bones node by Vizard and FAAST. By space vector processing, the body posture can be converted to a state value and then the corresponding control command output is completed, and the interaction control between user and system is realized. The experimental results show that the method is cost low, development cycle short, integrates the real world information with virtual world information seamlessly, thus augments the game user experience.

Key words: augmented reality; human-computer interaction; Vizard; Kinect; FAAST

0 引言

随着计算机技术的快速发展,人机交互技术已经从以计算机为中心,逐步转移到以用户为中心基于计算机视觉的虚拟现实技术(Virtual Reality,VR),其建立人工构造的三维虚拟环境,用户以自然的方式与虚拟环境中的物体进行交互作用,互相影响,极大扩展了人类认识世界,模拟和适应世界的能力[1]。为了使用户产生沉浸感,VR系统通常总是借助头盔显示器、立体眼镜等设备把用户与现实环境隔离开来,这容易导致用户对VR系统差生排斥感,从而影响VR技术的进一步推广和应用。为了应对这些问题,出现了增强现实技术[2]。增强现实技术(Augmented Reality,AR)是对虚拟现实技术的一种新拓展。增强现实强调了将真实世界信息和虚拟世界信息“无缝”地融合,并具有实时交互的功能。近年来,增强现实技术已经渐渐地从实验室理论研究阶段转入大众与行业应用阶段,特别是在游戏领域,市场上已经出现了许多休闲娱乐类的增强现实应用产品,但因目前普遍存在建模工作量大,模拟成本高,设备价格昂贵等问题,导致市场上大部分增强现实应用产品价格昂贵。为了让更多人低成本就能够体验到增强现实技术带来的乐趣,采用基于Vizard和Kinect开发了低成本增强现实人机交互应用——虚拟人机保龄球。

虚拟人机保龄球是利用增强现实技术开发的仿真型休闲娱乐系统。其硬件要求是一台电脑和一台Kinect传感器,软件上主要使用Vizard,3DSMAX。该系统适用范围广,可用于家庭娱乐和商业活动。虚拟人机保龄球具有软硬件廉价、轻巧便携、硬件配置精度高、要求低、预览效果直观等特点,低成本的增强现实应用可以提前让游戏娱乐锻炼三者合一更接近现实。该系统技术实现上采用Kinect传感器设备对游戏者进行立体识别、跟踪,对人体真实运动进行识别,并将并将识别信息输入到系统,系统通过物理引擎实时处理作用于虚拟场景的交互信息,再通过显示设备输出交互结果。

1 开发软硬件简介

1.1 Vizard

Vizard是一款虚拟现实开发平台软件。它基于C/C++,运用OpenGL拓展模块开发出的高性能引擎在用python语言开发时,Vizard同时自动将编写的程式转换为字节码抽象层(LAXMI),进而运行渲染核心。Vizard将集成开发环境(IDE)与高级图形库融合于Python程序语言中。集成开发环境极大简化了维护数据素材的工作量,并提供了用于执行实时预览,场景调试及脚本测试工具包。Vizard的主要特征如下。①硬件兼容性:支持几乎当前所有的虚拟现实设备,包括动作捕捉器。3D立体显示器,头盔显示器及其他众多外部输入设备。②增强现实技术应用:Vizard与WordViz旗下Video Vison增强现实装置完美结合,可轻松实现计算机图像与现实场景的融合。③Python语言编程:Vizard采用了Python这款极具发展潜力又极易上手的语言作为其编程核心[3]。

1.2 Kinect

Kinect是微软在2011年发布的一款3D体感游戏摄影机,具有动态捕捉、影像辨识、麦克风输入、语音识别、社群互动等功能。它改进了鼠标、键盘传统控制方式,为手势输入终端的开发提供了的技术支撑,通过人体手势及其他动作将操作指令下达给设备[4-6]。游戏者只要一个手势或者动作就能玩转一切,这种新鲜的游戏方式,让游戏与娱乐更加方便有趣。它的突出特点有两点:①Kinect设备体型轻巧便携;②动态捕捉能力强,影像辨识精准度高。Kinect能够更精确地进行骨架跟踪,更精确地进行关节和肢体活动的映射:当你活动你的上半身时,从臀部到背部,最后从肩部到你的手指一系列的运动都会被识别出来,最后融为一个完整连续的动作反映到游戏中。Kinect的骨架追踪系统最多可同时侦测到6个人,在同一时刻只能辨识两个人的动作[7]。随着Kinect技术的不断完善和挖掘下,相信Kinect的功能更加强大,在实时捕捉人体细节,为人机交互带来质的飞跃,其未来前景毋容置疑。

1.3 3DS MAX

3DS MAX全程是3-dimension studio max,即三维影像工作室,是美国Autodesk公司旗下Discreet分部开发的一款基于计算机系统的三维模型制作和渲染的软件,已成为使用最广的三维建模、动画和渲染工具[5]。3DS MAX还具有强大的材质编辑器,能使模型表现出物体的颜色,质地,文理,透明度和光泽等特性。贴图功能则用于表现物体材质表面的纹理,利用贴图可以不用增加模型的复杂度就可以表现对象的细节,并且可以创建反射、折射、凹凸和镂空等效果。通过贴图可以增强模型的质感,完善其造型,是三维场景更加接近真实的环境。

2 基于Vizard和Kinect的虚拟人机保龄球实现

2.1 游戏的设计和实现

2.1.1 三维建模

利用3DS MAX进行三维虚拟场景的建模,首先需要获取场景的相关数据,然后构建三维虚拟场景,构建三维虚拟场景的方法主要有基于模型(model)和基于图像绘制(IBR)两种方法,本文采用的是基于模型的建模方法,该建模方法主要包括多边形建模,非均匀有理B样条曲线建模、细分曲面建模等在建模时,可根据需要选择建模的方式,最后添加纹理,材质,渲染搭建好的三维虚拟场景[8]。

本文搭建的三维虚拟场景主要是保龄球馆场景,该场景的需要获取的数据主要有保龄球、保龄瓶,保龄球道的空间尺寸等。在建模过程中,对场景模型在点、线、面、体四个层次上调整即可创建出标准规格大小的保龄球瓶。构建好的三维模拟物体需要添加材质和贴图。材质主要用于表现物体的衍射,质地,纹理,透明和光泽等特性,依靠各种类型的材质可以制作出现实世界中的任何物体[9]。本文中,主要通过贴图以增强模型的质感,完善模型的造型,使三维场景更接近真实的环境。在材质编辑器界面,选择贴图中漫反射的贴图类型,进入材质/贴图浏览器中,选择v-Ray中的VrayHDRI贴图,最后载入要贴的位图。直接贴上去的图通常会显得不够真实自然,还需要使用UVM工具进行调整,最终完成对三维模拟物体的创建,如图1所示。

2.1.2 载入模型

将在3DS MAX中建模好的三维虚拟物体加载到Vizard虚拟环境前,需要将三维虚拟物体从3DS MAX中导出为OSGB文件格式才可以被Vizard读取加载。OSGB文件格式是Vizard默认的一种标准的存储场景和物体等信息的文件格式,而3DS MAX无法直接保存为OSGB文件格式,还需要使用3DSMAX导出OSGB格式的OSGBexplorer.exe插件。

首先安装插件程序OSGBexplorer.exe文件,这样3DS MAX导出文件格式选项就会有OSGB文件导出格式。其次将3DS MAX中建模好的三维虚拟场景以OSGB文件格式输出存储,在输出前需设置输出单位为米,以保证Vizard能够正确读取导出文件的信息。最后利用Python语言编程载入相应的OSGB文件。实现加载OSGB文件的Python语句是:

object=viz.add('objectname.osgb')

加载之后可以通过运行程序,实时预览/查看载入好的三维虚拟模型[3]。

2.1.3 游戏设计实现

游戏策划的内容是:游戏由两个场景组成,第一个场景是介绍引导界面,通过3D文字,介绍如何进行游戏;第二个场景是游戏界面,等待用户按住H键,根据按下的时间,触发发射不同速度的保龄球。K键视角左移,L键视角右移,Z键发球点左移,X键发球点右移,每次发射球,加入副窗口跟随保龄球以观察保龄球的运动及击打效果。完成一次打球提示打倒多少只保龄球瓶,并用3D文字提示游戏的进度,完成一局显示总分并给出评价,最后根据用户需求,按下N键或者Y键选择是否进行下一局,实现一局游戏的流程图如图2所示。

[引导界面][游戏界面][发球][等待下一局][统计并显示游戏分数][显示击球运动及击打效果]

最后根据游戏脚本,依次定义游戏引导任务,游戏场景模型初始化任务,游戏过程任务,计算总分任务,控制游戏是否结束任务,同时根据任务进程的需要,为各个任务设置分任务,并根据上述任务事件的发生顺序,设计主控函数。主控制函数脚本如下:

def mainSequence():

while Game==True:

yield startInstruction()

yield initial3D()

yield gameProcess()

yield calculateScore()

yield quitGameOrNot()

viztask.schedule(main_Sequence)

2.2 增强现实技术应用

2.2.1 增强现实框架搭建

⑴ 安装Kinect

Kinect作为新一代的体感设备,对于安装Kinect环境的配置要求使用Windows8.1系统、i7处理器、CPU主频3.1GHz,标准USB3.0接口、4GB RAM的电脑;连接Kinect到适配器,接入电源,通过USB3.0直接把Kinect连接到Windows PC设备上。

⑵ 配置FAAST

FAAST是一个中间件,由美国南加州大学(University of Southern California)MxR小组开发,提供基于prime sense的深度摄像头的,人体姿态动作的转译。其基于CS架构,提供一个VRPN服务器来将通过Kinect捕捉到的全身动作流式传输给VRPN客户端[10]。FAAST压缩包可以通过MxR小组的网站获得,最新版本支持kinect2.0,压缩包下载解压后内有一个执行文件FAAST.exe,点击运行后将在本机生成一个VRPN服务器。服务器界面如图3所示,点击‘Connect按钮,就能够使PC连接上Kinect,并在FAAST Viewer栏实时显示捕捉到的深度图像。

2.2.2 增强现实虚拟人机保龄球实现

增强现实技术可以通过两种方式实现人机交互。一是通过创建VRPN(Virtual-Reality Peripheral Network)实时追踪人体骨骼节点,搜集人体骨骼节点之间在三维空间的相对位置坐标变化信息,编写python脚本进行实时肢体语义分析,使分析结果触发对应事件并通过屏幕反馈输出。此方式的优点在于能够直接把捕捉到的骨骼节点位置信息准确地传给肢体语义分析模块。通过模拟键值的方式,在打开的FAAST.exe中菜单Gestures选项,点击“New Gestures”,创建一个手势的捕捉与输出事件;设置捕捉用户特定动作的“Input”,点击“Add”添加捕捉身体位置或动作速度的事件,并设置这些事件变化的方向、大小等详细属性;最后设置输入到系统的“Output”。同样点击“Add”添加输出为模拟鼠标、键盘或打字等事件并点击“Save”保存手势为XML文件,最后在Python脚本中定义捕捉“Output”输出事件的模块,并触发相应的反馈输出事件。此方式的优点在于无需编写语义分析脚本,直接处理“Output”输出事件即可。

增强现实人机保龄球采用前一方式实现。首先Vizard中通过连接FAAST框架搭建的VRPN服务器取得trackers。能够取得的trackers一共有24个:

接着分析用户肢体动作。先要获取对应骨骼节点的三维坐标值,也就是trackers相对空间的坐标值,对坐标值进行空间向量处理,可以获取表示骨骼的向量,再通过向量之间的角度关系,判断肢体动作,并传出状态参数。

最后修改游戏脚本中的监测对象,把监测键盘事件的函数修改为监测状态参数的事件,就可以实现人机交互。以下为实现脚本:

#创建VRPN服务器并取得trackers

trackers=[]

vrpn=viz.addExtension('vrpn7.dle')

for i in range(0, 24):

t=vrpn.addTracker('Tracker0@localhost',i)

trackers.append(t)

#分析肢体动作

def bodylanguage():

#获取坐标值

pos_head=trackers[0].getPosition()

pos_rshoulder=trackers[11].getPosition()

pos_rteble=trackers[12].getPosition()

pos_rhand=trackers[13].getPosition()

#用cal_vector和cal_angle函数处理处理坐标值并返回参数

vec01=cal_vector(pos_rteble,pos_rshoulder)

vec02=cal_vector(pos_rhand,pos_rteble)

angle=cal_angle(vec01,vec02)

#分析角度值及头部坐标判断身体状态并返回状态参数

bodystate=analysisbody(angle,pos_head)

return bodystate

#监测状态参数

def post(state):

#解析状态参数并发送参数给控制对象

post01(state[0])

post02(stare[1])

return None

3 总结和展望

本文提出了一种新的将Vizard平台和Kinect平台相结合开发增强现实人机交互技术的研究方法。以虚拟人机保龄球为例,很大程度上增强了体感游戏的沉浸感。Vizard平台能够加快开发速度,Kinect能够降低用户的使用成本,说明这两种技术的结合能够快速高效的开发出低成本的增强现实人机交互应用。

后期还可将该技术运用到更多的领域,如趣味医疗复健系统,增强现实交互式虚拟实物展览系统等。随着Vizard平台功能的丰富以及电子设备的发展更新,更多的高性能低成本的增强现实应用开发将会变得更容易,该技术也将会得到更广泛的应用和发展。

参考文献(References):

[1] Zhao Q P. A survey on virtual reality. Sci China Ser-F:Inf

Sci,2009.52:348-400

[2] 郭天太,王引童.虚拟现实技术与增强现实技术[J].机械制造,

2003.6.

[3] 林晨,林晓斌.三维虚拟场景建模及其在Vizard环境中的应

用研究[J].闽江学院学报,2015:5

[4] 罗元,谢彧,张毅.基于Kinect传感器的智能轮椅手势控制系

统的设计与实现[J].机器人,2012.34(1):110-113

[5] 刘鑫,许华荣,胡占义等.基于GPU和Kinect的快速物体重建[J].

自动化学报,2012.38(8):1288-1297

[6] 王万良,马庆,王鑫.基于KINECT的高维人体动画实时合成

研究[J].计算机应用与软件,2011.28(11):184-187

[7] 田屏.基于Kinect的虚拟试衣镜[J].科技视界,2015.13.

[8] 陈波.3D巨匠:3DS MAX完全手册[M].科学出版社,2013.

[9] 时代印象.3ds Max2014完全自学教程[M].人民邮电出版社,

2013.

[10] E.Suma, D.Krum, B.Lange, S.Koenig, A.Rizzo, and

MBolas. Adapting user interfaces for gestural interacti on with the flexible action and articulated skeleton toolkit. Computers & Graphics,2013.37(3):193-201

1.环球科技网遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.环球科技网的原创文章,请转载时务必注明文章作者和"来源:环球科技网",不尊重原创的行为环球科技网或将追究责任;3.作者投稿可能会经环球科技网编辑修改或补充。