李知菲+何林知+洪震
摘要:根据虚拟现实技术课程知识综合性强、教学过程创新性需求大和实验工程应用性高的特点,笔者引入流行的体感交互技术,基于微软公司的Kinect镜头,围绕体感数据的捕捉与处理、人体动作的识别和虚拟交互设计三大知识模块,给出了课程中体感交互教学实验项目的原理、技术和开发方法。通过教学实践,本文设计的教学实验项目提高了学生学习的主动性,培养了学生的体感交互技术项目研发能力,增强了学生的创新思维能力和职业素养。
关键词:体感交互;Kinect镜头;实验教学;教学改革
近年来,体感交互技术的研究和应用在教育领域逐渐成为热点,如在课堂教学[1]、教学游戏项目[2]和仿真实验[3][4]等方面都有一定的成果。本文以浙江师范大学数理与信息工程学院开设的研究生课程《虚拟现实技术》为例,研究了基于微软公司的体感捕捉设备——Kinect镜头的体感交互实验系统开发方法,并给出了应用于教学中的实验项目实例。
● 虚拟现实技术课程的特点
依托浙江师范大学计算机软件与理论重中之重学科的虚拟现实与动作捕捉实验室,面向计算机和软件工程专业研究生开设的《虚拟现实技术》课程侧重学生实验技能和职业素养的培养。课程以项目化教学的方式进行,在介绍虚拟现实技术理论知识的基础上,重点讲授虚拟现实系统硬件环境的搭建及使用、三维模型构建及优化、交互技术和开发平台Quest 3D等方面的知识,最终通过实际横向项目开发的方式巩固学生的理论知识,并使学生掌握虚拟现实技术项目开发的流程和业界规范。
通过几年的课程建设和教学实践,总结出课程的特点如下:
(1)知识的综合性:课程的教学内容包括了计算机图形学、数字图像处理、模式识别和多媒体技术等计算机专业的相关知识,也涉及信号处理与传输、网络通信等网络工程专业的内容,同时又要求学生有较好的程序开发基础,课程具有非常强的综合性。
(2)教学的创新性:虚拟现实技术的应用日益增多,从最初的简单展示三维模型,发展到对展示对象或环境进行交互控制,到现在的体感交互和沉浸式环境,技术的进步和应用的需求互相促进,不断创新。这就需要教师在教学过程中能引入较新的技术或成果,引起学生学习兴趣,调动学生学习热情,启发学生创新思维。同时,学生在学的时候也需注意对发现新问题、找到新方法的创新性思想的培养。
(3)实验的应用性:虚拟现实技术具有很强的工程应用性,对课程的理论知识和相关算法进行实验验证并不是实验教学的主要目的,使学生通过真实项目的开发,掌握到虚拟现实技术项目开发需要的技术、开发的流程和开发的规范才是教学的重点。
随着体感交互技术应用的流行,根据课程的上述特点,将体感交互作为教学的重点内容是适合的。在教学计划中,安排了16学时的体感交互技术内容,具体如下页表所示。
教学内容以Kinect镜头作为体感捕捉设备,以Kinect SDK开发技术为理论重点,设计了两个实验项目。实验项目1为三维建筑漫游,要求学生实现手臂动作的捕捉,并完成手臂控制虚拟摄像机进行场景漫游的交互设计,通过实验使学生掌握简单体感交互项目的开发方法。实验项目2为机械拆装,要求学生实现抓取、吸附移动、碰撞检测和作用域控制等较深入的交互控制方式,此项目在项目1的基础上增加了难度,使学生通过实验能掌握较高级的体感交互系统开发技术,为以后工作中的项目开发打下基础。同时,由于实验项目2的内容较为综合,覆盖到课程的内容比例较大,因此将其作为整个课程考核的组成部分,在最终的总评成绩中占40%。
● 体感交互技术教学实验环境的搭建
《虚拟现实技术》课程的体感交互技术实验统一安排在浙江师范大学计算机软件与理论学科的虚拟现实与动作捕捉实验室,选用的体感采集设备为微软公司的Kinect镜头(如图1),镜头采用USB口与计算机相连,即插即用,硬件设置简单易行。基于Kinect镜头和计算机平台的体感交互实验开发环境可以用如图2所示。
图2中①为硬件基础层,核心部件是Kinect的传感器,包括有镜头角度驱动马达、摄像头和麦克风阵列。实验中主要用到的是镜头组,Kinect的镜头共有两个,一个用于RGB彩色图像采集,一个用于深度信息采集,还有一个红外发射器,具体的原理可以参阅微软公司的Kinect产品网页。
层②为镜头设备的驱动层。实验室选用DELL公司的INSPRIRON通用计算机,Windows 7操作系统作为开发平台,设备通用性较高,开发的系统具有良好的平台移植能力。Kinect镜头的驱动安装非常简单,需要调用的部分主要是设备访问、视频流控制和镜头组堆栈。
层③是自然人机接口NUI的API部分,也包括有音频识别等功能的API。
软件方面为基于微软发布的Kinect SDK,主要提供了软件类库和开发工具,通过它可以捕获体感交互中需要的自然数据,如人体的骨骼信息(动作信息)、深度信息(距离信息)和图像信息等。Kinect镜头采集的体感数据交换流程如图3所示。
● 体感交互技术教学实验项目的设计
下面以课程的实验项目1建筑漫游为例,说明体感交互技术教学实验项目的设计。
1.项目概述
传统的三维建筑漫游一般采用鼠标或键盘来控制摄像机,实现前后左右移动、旋转、上下视角改变和镜头缩放(变焦)等功能,使用户最大程度地接近真实世界中人在建筑群或室内等建筑环境中的游览方式,也能实现真实世界中不能提供的方式,如透视、鸟瞰和变焦等。
鼠标或键盘操作远不如手势操作简单自然,实验项目基于Kinect镜头,通过捕捉用户的手臂姿态动作实现上述建筑漫游时需要的交互控制功能,其体感交互情境如图4所示。
2.系统的逻辑结构
系统分为三层,由下到上分别是Kinect设备层、手臂姿态识别层和应用层,如图5所示。endprint
Kinect设备层基于Kinect SDK进行人体骨骼、深度图像和RGB彩色图像的实时采集,帧速率为30FPS,图像大小可达640×480像素。系统可以实现两人的骨骼动作跟踪,并设定主要操作人员(距离镜头较近者)。深度图像和彩色图像提取出轮廓信息,融合骨骼信息后基于DTW算法进行手臂姿态跟踪和识别。识别并标签后的手臂动作作为驱动信息提供给应用层。应用层中采用交互设计软件Quest 3D读取用户的手臂动作,并命令系统作出反馈,如左右转向、前进和后退等。
3.实验设计
本实验需4学时,分两次课进行,中间间隔1周,使得学生有较充分的课下准备时间。第1次课要求学生实现Kinect数据采集及基本处理。使用到的硬件为计算机和Kinect镜头,软件为Visual Studio 2010和Kinect SDK V1.7,语言为C#。为了使学生的精力主要集中在数据处理和手臂姿态识别算法上,数据采集部分在Kinect Toolkits提供的算法基础上做了滤波优化。
第2次课要求学生基于DTW算法完成手臂动作的训练和整个识别算法,并借助课程前面实验中开发的Quest 3D建筑场景验证算法的有效性。
通过本次实验项目的开发,学生将完整地掌握基于Kinect镜头的体感数据捕捉和处理、常用的人体动作识别算法和体感交互开发方法,熟悉体感交互系统逻辑结构和数据交换流程,为将来进行体感交互设计系统研发打下牢固的基础。
实验项目同时培养了学生的创新性思维,使学生学习的内容紧跟科技进步的最新成果,把握应用市场流行的脉搏。
● 结论
体感交互技术相关的系统开发涉及知识多,对学生的理论知识和实验能力都有较高要求,但也能扎实地培养学生在此领域的专业技能,在2个专业、共计4轮的《虚拟现实技术》教学实验中,师生反响热烈。课程将自然人机交互的新成果Kinect体感交互技术融入到教学中,结合实际项目,构造虚拟教学情境,提高学生学习的主动性和参与度,实现了科技化教学。
参考文献:
[1]陈静.基于Kinect的手势识别技术及其在教学中的应用[D].上海:上海交通大学,2013.
[2]马建荣,章苏静,李凤.基于体感技术的亲子互动游戏设计与实现[J].中国电化教育,2012,(308):85-88.
[3]廖宏建,曲哲.基于Kinect体感交互技术的虚拟装配实验系统开发[J].实验技术与管理,2013,30(7):98-102.
[4]廖宏建,杨玉宝.体感交互设计及其在三维虚拟实验中的应用[J].远程教育杂志,2013,(1):54-59.endprint