自然人机交互虚拟实验平台
2020-07-15朱兴宇姜明辰
朱兴宇, 姜明辰
(1.长春工业大学 应用技术学院, 吉林 长春 130012;2.北京航空航天大学 新媒体艺术与设计学院, 北京 100191)
0 引 言
虚拟实验是指借助于多媒体仿真和虚拟现实等技术在计算机上进行的对传统实验各操作环节的模拟和仿真。虚拟实验室在提供虚拟实验场景的基础上,可以搭建出现实世界中无法设计的理想实验环境,以及超越时间和空间限制的实验环境,大多数的虚拟实验采用的人机交互方式为鼠标、键盘、手柄的控制方式。
随着计算机相关技术的发展,体感技术的使用突破了平面的约束,可以让用户在不需要任何其他辅助设备的情况下,运用肢体动作对机器发出指令,从而实现用最自然的方式与机器对话[1]。自然人机交互研究领域中,手势识别是其中重要的研究领域[2],利用手势的输入突破了人对鼠标、键盘等输入设备的依赖,是人与计算机交互的新方式。
自然科学虚拟仿真实验平台具有综合性、自然交互性、安全性和易于扩展性等特点,可以使资源进行最大的优化和利用,对于基础自然科学研究和教学具有一定的应用价值。
1 虚拟实验平台总体设计
传统自然科学实验对于实验场地、时间和安全性有一定的要求,也无法避免实验器具损耗和意外的产生,如实验步骤对实验结果的影响、实验操作不当对于实验人员的伤害等,同时受到时间和空间限制的实验同样无法开展,虚拟实验平台将解决以上问题。
实验数字资源方面,实验平台中的实验仪器、物品采用3D Max进行建模,并导出fbx文件。将fbx文件导入到Unity3D软件中,设计自然科学虚拟实验场景[3]。
人机交互控制方式如图1所示。
实验功能上,实验平台可进行物理、化学、生物、天文等多学科基础实验。每个实验通过步骤讲解、实验演示、学生演练、实验数据展示分析等多个环节,利用声、光、人机交互等多种方式增强实验体验效果。
人机交互方式上,采用基于体感技术的自然人机交互方式,通过Kinect采集、识别人体生物信息[4-5],获得实验人员的姿态、手势数据,操控虚拟实验场景中的实验对象,完成相关实验内容。
2 人机交互方式设计
2.1 基于Kinect的体感交互技术
体感交互技术是指通过人物的各种肢体动作实现与数字设备进行实时交互的一种智能技术。Kinect传感器作为自然体感交互设备集成了先进的计算机视觉技术,逐渐应用于手语识别、医疗应用、教育领域、体感游戏、军事训练等多个方面。Kinect通过对采集的数据进行背景分割,获取人体各个骨骼点及人体深度信息。当获取人体深度图像后,对各个像素间的概率值推测后进行分类,得到大量数据在随机决策库中进行检索,找出对应的像素,根据匹配出属于身体的部位,再通过机器设备进行分析,得到需要获取的人体25个骨骼点信息。Kinect采集的深度、彩色、人体骨骼数据如图2所示。
(a) 深度数据 (b) 骨骼数据
图2 Kinect采集的深度、彩色、人体骨骼数据
2.2 实验手势、姿态特征获取
Kinect获取每个骨骼点信息是由x,y,z表示的三维坐标系[6]。当用Kinect采集人体骨骼三维信息时,被测人应面对Kinect设备,人体骨架在Kinect设备骨骼信息的获取范围之内,且与Kinect设备保持一定距离。
Kinect每一帧获取25个人体骨骼点数据,虚拟实验平台中的人体动作局限在人体上肢和手部。因此,在提取手势特征点的时候将提取实验手势中经常用到的11个骨骼点分别是:WristLeft(左腕关节)、WristRight(右腕关节)、HandLeft(左手)、HandRight(右手)、ElbowLeft(左肘关节)、ElbowRight(右肘关节)、ShoulderLeft(左肩)、ShoulderRight(右肩)、SpineMid(脊柱中央)、Head(头部)、Neck(脖子),以及VerticalVector(法向量)。
在虚拟实验平台中,每两个骨骼点间将构成1个特征向量,不同特征向量的组合被定义成不同实验手势、姿态特征,通过这种方法表达实验人员的操作意图。
特征向量提取方法:
AB=(x2-x1,y2-y1,z2-z1)。
(1)
AB两点为2个骨骼点数据,坐标分别为(x1,y1,z1),(x2,y2,z2)。利用余弦定理计算两个特征向量之间的角度。
角度计算方法
(2)
表1 部分实验手势语义
2.3 实验手势、姿态识别
手势识别就是通过识别人的动作姿态理解所包含动作的行为含义[7-8]。将2.2中获取的实验手势与定义的实验手势进行比对,从而判断出实验手势所表达的行为含义。文中采用相似性度量的方法进行手势识别。通过手势匹配相似度进行手势识别,采用欧氏距离进行实验手势识别,其公式为
(3)
其中:
e1=(a1,a2,…,an),
e2=(b1,b2,…,bn),
式中:e1、e2分别代表实验手势集合和实验标准手势集合,通过距离的计算,获取两种手势间的距离,同时定义阈值,在一定阈值内通过手势识别。
每帧识别的具体流程如图3所示。
2.4 识别算法举例
以头部的转向动作为例,介绍虚拟实验平台中姿态识别算法的具体应用,设定阈值t=0.8。
1)Kinect获取人体骨骼点信息,并提示实验人员满足实验距离要求;
2)头部、颈部构成的特征向量A,颈部、左肩构成的特征向量B,颈部、右肩构成的特征向量C;
3)两个特征向量AB构成的角度α,两个特征向量AC构成的角度β。人体在正常站立时头部保持正直状态,α和β两个角度范围为85°~95°;当向左自然转动时,角度β为95°~125°;当向右自然转动时,角度α为95°~125°;
4)根据欧式距离计算头部转动角度与系统定义的标准转头角度间的距离d;
5)当d≥0.8时,认定实验人员在转头的动作,记录此时与垂直动作间的角度差值s;
6)将s传入Unity3D,调整相机的旋转角度;
7)实现场景中视野的转移,此时可以观察到实验平台中其他实验器具(物体)或实验数据。
3 实验分析
自然人机交互的核心在于人体手势、姿态的识别,为了验证平台的性能,分别进行了骨骼跟踪测试、实验手势识别测试、系统性能测试。
3.1 骨骼跟踪测试
实验人员反复进入Kinect传感器检测范围,对Kinect获取的人体骨骼数据进行分析,结果表明,人体在距离Kinect传感器1.3~1.5 m时,骨骼跟踪效果最佳。
3.2 实验手势、姿态识别测试
选取10名实验人员,无遮挡状态下分别完成靠近实验台、远离实验台、拾取器具、释放器具、放大(缩小)、头部转向六组实验手势,每组提取200次样本。测试结果见表2。
表2 实验手势识别测试
结果表明,由于场景放大(缩小)需要实验人员实施连续动作,动作频率的快慢和人员对平台使用熟练度影响手势识别的准确性,其他各组实验手势的识别率都超过 90%,具有较高的识别率和较快的响应时间。
3.3 系统性能测试
实验软硬件环境为:Intel(R) Core(TM)i5-6200U CPU @2.30 GHz,8 GB RAM,显存1 G,64位Windows操作系统,Unity3D 2018,Kinect V2,分辨率采用1 366×768,30 帧/s。在粒子特效、音效全开的情况下,基本满足平台使用的流畅性,在某些复杂实验场景下,提高显卡配置将获得更好的用户体验。
4 虚拟实验平台搭建
自然科学虚拟实验平台包括学科选择、实验选择、实验演示、实验操作、实验分析几个重要功能,实验操作是其中重要组成部分。
使用自然人机交互方式,实验人员不触摸屏幕、不利用鼠标键盘。由于实验人员操作的不可预期性,需要在Unity3D中设置碰撞检查[9],虚拟手碰到部件后,通过颜色的改变提示用户,使用握拳手势拾取、选中实验器具(物体)。
实验人员通过平台提供的黑板查看当前实验的实验步骤,实验中,可以左右转头查看实验过程以及实验数据,最终完成相关实验。
虚拟实验平台中支持的部分实验如图4所示。
(a) (b)
5 结 语
基于自然人机交互技术构建一个自然科学虚拟实验平台。通过微软Kinect体感传感器采集人体手势、姿态数据,并控制实验平台中的器具。平台的研究与设计跨越了时间、空间以及现实环境的限制,是课堂理论教学和实验教学的重要补充[10]。改变传统虚拟实验室人机交互的方式,提高学生动手实践的趣味性和主动性,同时也提高了部分实验的安全性。 对虚拟仿真实验的开展提供了一定思路。