基于AR-VR混合技术的儿童智力开发系统研究
2020-12-07李婷婷王相海
李婷婷,王相海
1.大连东软信息学院 数字艺术与设计学院,辽宁 大连 116023
2.辽宁师范大学 计算机与信息技术学院,辽宁 大连 116029
1 引言
儿童智力开发是指通过积极有效的方法对儿童早期智力发展进行有意识的影响,从而提高儿童的观察力、记忆力、想像力和思维能力。学者们普遍认为,儿童智力发展情况一方面是由先天因素所决定,另一方面则是受周围环境的影响。儿童在后天学习过程中通过丰富多彩的世界体验不同的新鲜事物,大脑受到的刺激越多,越有利于开发儿童智力。近年来,虚拟现实技术和增强现实技术发展迅速并日趋成熟,如何有效利用科技手段为儿童构建学习环境,提升儿童智力开发水平及效果是学者们一直关注的问题。Padgett 等人开发了一个虚拟现实教学系统,研究虚拟现实技术适用于儿童消防安全教育的可行性[1];Smith 等人基于虚拟现实技术,搭建虚拟火灾环境,并加入交互功能,儿童可以在虚拟环境中进行火灾演习[2];Sue 等人为自闭症儿童进行社交干预实验[3];Lin等人利用增强现实仿真系统构建学习内容并对儿童协作能力进行研究[4]。
虚拟现实技术[5(]Virtual Reality,VR)借助其沉浸特性可以有效地将声音、图像、文字、动画、图形等元素有机地结合起来,全方位、多视角地将学习内容呈现在儿童面前,而增强现实技术[6(]Augmented Reality,AR)则是通过显示技术、计算机图形、计算机多媒体等技术将真实环境与虚拟信息相结合,通过不断变化的交互提示,延长儿童的学习时间,使儿童记忆更加深刻。但是,以上研究都是针对单一的技术展开,单一的VR技术或AR技术弱化了儿童对真实世界的观察和感知能力[7],如果能将AR 技术与VR 技术相结合,采用双向互动的方式使儿童在基于VR技术构建的虚拟世界和基于AR技术构建的真实世界中互相切换,将极大提升儿童学习兴趣。因此,本文在分析儿童智力开发理论基础上,提出基于AR-VR 混合技术设计开发儿童智力开发系统,将AR技术和VR技术混合,通过积极健康的学习内容,丰富的视听体验,积极多样化的交互方式来吸引儿童的注意力,达到开发儿童智力的目的,未来将具有广泛的应用发展空间。
2 基于AR-VR混合技术儿童智力开发系统
2.1 系统设计
2.1.1 系统模块设计
本系统一共由六个模块构成,如图1 所示。其中,摄像机模块主要实现第一人称和第三人称视角切换。VR 漫游模块利用虚拟摇杆实现角色在场景中漫游,培养儿童对身边事物的认知及观察能力。计数模块中引入竞争机制,以游戏计时的方式开展任务学习,激发儿童学习兴趣,提高学习效果。声音模块包括卡片朗读和背景音乐,儿童通过在环境场景中找寻发现,根据系统声音交互提示进行学习。环境模块主要实现场景加载功能。AR识图模块将儿童读物图片通过手机扫描叠加相应的多媒体资源,体验3D 的学习方式,通过视觉、听觉的双层刺激,为儿童传递更丰富更具体的经验。系统模块间相互作用,儿童在虚拟情境中参与学习活动,通过自主学习、任务学习、协作学习,在游戏实践中完成知识体系的建构。
图1 系统结构图
2.1.2 系统流程设计
儿童智力开发系统流程设计如图2所示。
图2 系统设计流程图
首先,启动系统后,儿童根据需要选择不同的学习内容,系统会根据儿童的输入初始化场景环境,加载场景模型及人物角色。此时,儿童可以利用虚拟摇杆在虚拟场景中进行漫游,在虚拟世界中尽情参观,找寻发现新鲜事物,一旦找寻到任务卡中的目标,就可以靠近点击,系统会在点击的同时发射粒子特效表示目标找寻正确。接下来就可以进行知识学习,学习卡片上面有物品的名称以及中英文注释。此时,儿童有两种方式可供选择。一种是开启语音功能,系统自动发音,儿童可以进行跟读。还有一种是切换到AR系统中进行3D交互,若选择AR交互,系统自动开启摄像头进行视频采集,并进行标识识别、跟踪注册等一系列活动,将虚拟场景和真实场景的数据进行叠加,并将虚实融合后的景象呈现在儿童面前。最后系统判断是否学习完本章所有知识,如果没有则继续返回VR场景漫游,否则退出当前场景继续学习其他内容。系统基于AR-VR交互创新性学习方式使儿童在虚拟世界中发现新鲜事物,点击即可学习知识,生动有趣,激发儿童学习积极性。
2.2 系统实现
2.2.1 虚拟环境搭建
虚拟环境搭建是儿童智力开发系统中的重要组成部分。几何法和物理法是经典的两种常用建模方法。基于物理的建模方法能够表现模型真实的物理运动,但是需要求解一组复杂的微分方程,计算开销大,计算效率受数值方法的稳定性限制。由于儿童智力开发系统对实时性和稳定性要求较高,所以基于几何建模的方法更加适合,因为基于几何建模方法无需进行复杂的运算,计算速度快,效率高[8]。因此,儿童智力开发系统中的模型采用几何建模方式进行构建,包括树木、花儿、房屋等模型。在构建模型时尽量采用多边形加纹理贴图的方式实现,主要代码如下:
void Draw(float x,float y,float z,float tx,float ty,float tz,float a,float rx,float ry,float rz)
{
glPushMatrix();
glTranslatef(tx,ty,tz);
glRotate(fa,rx,ry,rz);
glEnable(GL_BLEND);
glDisable(GL_DEPTH_TEST);
glBindTexture(GL_TEXTURE_2D,texture[95]);
glBegin(GL_QUADS);
glTexCoord2f(0.0,0.0); glVertex3(f−x,−y,z);
glTexCoord2f(0.0,1.0); glVertex3(f−x,y,z);
glTexCoord2f(1.0,1.0); glVertex3(fx,y,z);
glTexCoord2f(1.0,0.0); glVertex3(fx,−y,z);
glEnd();
glEnable(GL_DEPTH_TEST);
glDisable(GL_BLEND);
glPopMatrix();
}
2.2.2 粒子特效实现
在虚拟环境中,粒子特效能够增强儿童学习时的体验感,绚丽的粒子特效可以让激发儿童的学习积极性。系统设计当儿童学习到知识后会出现粒子的爆炸发光效果,提示儿童完成学习任务。
(1)粒子属性
首先,设计粒子系统属性包括:粒子数量、粒子大小、粒子颜色、粒子速度、粒子加速度、粒子生命值等信息。然后初始化所有粒子的初始属性值,设粒子的坐标为(x,y,z),则粒子系统中粒子初始坐标通过公式(1)计算随机得出。
近年来,因火灾引起的车辆事故时有发生,按照起火原因,汽车火灾大致分为自燃、引燃、碰撞起火、爆炸和雷击五种类型,这五种类型的前三项,成为了司法鉴定的重点。本文结合一起实际案例,利用激光拉曼光谱法对现场残留物进行成分分析,使用“排除法”确证了现场起火的根本原因。保险公司的理赔工作提供了法律依据。[1-3]
其中,R为常数,取值100。
(2)粒子运动
粒子在运动过程可被近似为斜抛运动,如图3 所示。其中,系统粒子速度位移更新过程可以描述为:
其中,Vx为系统粒子水平方向速度,Vy为系统粒子竖直方向速度,Sx为系统粒子水平方向位移,Sy为系统粒子竖直方向位移,V为系统粒子瞬时速度,α为速度V与水平方向夹角,t为粒子运行时间。
图3 爆炸粒子运动示意图
(3)触发实现
粒子触发检测采用射线技术实现。射线是一条从物体上的一点向其运动方向发出的射线,通过判断射线与其他物体的碰撞器是否相交以及物体间距离来进行检测。系统中,当点击鼠标左键时,从鼠标点击处向目标物体发射一条射线,若在检测范围内,则产生粒子效果,代码如下所示:
if(Input.GetMouseButtonDown(0)){
if(Physics.Raycas(tray,out hit)){
hitname=hit.collider.name;
GameObject particles=Instantiate(onClickparticle,hit.point,Quaternion.identity)as GameObject;
2.2.3 导航地图实现
儿童在虚拟世界中可以对身边事物随时学习。为此,场景中加入导航地图功能,系统中的导航地图可以使儿童在虚拟场景学习时获得实时的位置信息,快速地找到知识卡片信息。系统将地形按比例缩放到导航地图的大小,场景中架设2 个摄像机,主摄像机照射主场景,另一个摄像机将以俯视的角度获取地形信息,设置垂直投影,照射的部分缩小在制定位置呈现,并将人物角色作为导航地图摄像机的跟随目标。然后将投影的画面送到显示在UI 的Textrue 上面,如图4 所示。角色移动时,导航地图中场景也相应地伴随着移动,映射物体在导航地图中坐标计算按照导航地图宽和地形宽比例进行换算得到,如式(6)~式(9)所示:
其中,地形宽为W,地形长为L,导航地图宽为w,导航地图长为l,目标物体坐标为(X,Y),映射物体坐标为(x,y)。
图4 导航地图示意图
2.2.4 跟踪注册实现
跟踪注册技术是AR系统的前提和基础,是决定AR系统性能优劣的关键。目前常见的跟踪注册技术有三种[9]:第一种是基于方位传感器的跟踪注册即利用方位跟踪传感器来检测真实世界里AR系统使用者的方向和位置。第二种是基于计算机视觉的跟踪注册即利用计算机视觉理论对摄像头捕捉到的视频进行实时处理,计算出摄像头在三维空间中所处的位置与姿态。第三种是将两者混合的跟踪注册方式。综合比较,基于计算机视觉的跟踪注册方法硬件成本低、系统构成简单、实现相对简单,被广泛应用于AR系统中。
基于计算机视觉跟踪注册方法按照有无标记可以分为基于自然特征的方式和基于人工标记方式[10]。基于自然特征的方法需要将拍摄对象物体所得图像上提取的自然特征数据和对象物体的自然特征数据进行对应配对,计算量大。而基于人工标记法相对计算量较小,而且稳定准确。因此,本系统采用基于计算机视觉中的人工标记方式进行跟踪注册[11],具体实现步骤如下:
步骤1通过摄像头来获取现实世界的真实视频,并将其传送到计算机中。
步骤2对采集的图像进行二值化预处理[12],如公式(10)所示。对于图像中任意一点(x,y),如果其灰度值S(x,y)≥t则可以认为该像素点为背景点,否则认为该点为兴趣点。
通常设置a0=0,a1=1,得到的即为二值化的图像。
步骤3利用图像分割及边缘检测技术识别出该二值图像中所有的兴趣点。
步骤4根据模式识别匹配算法,将标记图像与标记库中的模板标记图像进行匹配来判断此标记是否为合法标记,如果匹配成功则认为找到了一个兴趣区。
步骤5模版匹配成功后,确定当前标志物的特定ID,进行标志识别。
2.2.5 标志识别实现
传统识别标志物大多采用二维码实现,具有识别速度快、精度高等优点,但同时也存在着不美观、信息表达不直观等缺陷[13]。为了避免二维码标志物的缺陷,系统中的标志物利用卡通形象的学习卡片实现,待扫描的标志物卡片为学习内容的形象化表达,更加直观形象地体现出AR交互内容,并且可以在标识物所在的空间上注册虚拟场景。如图5所示,为系统部分标志物卡片识别效果图。
图5 标志物识别图
具体实现时,系统将摄像头捕获的视频流转换为二值图像进行计算分析,查找是否有和目标一致的特征点,实现跟踪识别功能,识别效果如图6所示,黄色小叉为图像特征点,部分实现代码如下:
for(int tIdx=0;tIdx {constQCAR::Trackable*trackable=state.getActiveTrack -able(tIdx); QCAR::Matrix44F modelViewMatrix= QCAR::Tool::convertPose2GLMatrix(trackable->getPose()); int textureIndex=(!strcmp(trackable->getName(),"stones"))?0:1; constTexture*constthisTexture=textures[textureIndex];} 图6 标志识别效果图 2.2.6 虚实融合实现 虚实融合可以提高儿童体验的真实感,向儿童呈现出具有高度逼真感的虚实融合新环境[14]。系统在完成标识模板的识别后,得到标识的编号ID,由于每个标识都与某个预先设计好的三维虚拟物体对应。根据识别标识的ID号可以匹配得到需要加载的虚拟物体。然后根据摄像机定标法求出摄像机位姿数据,从而得到需要加载的3D 虚拟物体的具体位置。最后,在计算机显示器、智能手机或头盔显示设备上完成图像的输出。 2.2.7 系统交互实现 交互性是儿童智力开发系统的一个重要特征[15],AR-VR交互方式是本系统的一大特点。虚拟世界与增强现实世界的结合为系统增添了趣味性,提高儿童的专注力。当在虚拟场景中点击AR 交互,系统会从VR 切换到AR 系统中观看知识点的完整3D 动画效果。如果选择学习,系统将以文字加拼音辅助的方式显示知识点,儿童可以根据系统发声进行跟读,实现儿童与虚拟物体的交互,AR-VR交互流程如图7所示。 图7 AR-VR交互流程图 系统中采用虚拟摇杆技术操纵角色在虚拟场景中漫游,儿童通过手指的触摸控制虚拟拖动点。设定虚拟摇杆的控制区域在圆o范围内,通过虚拟摇杆的拖动点a在圆o内的位置来反映应用中第三人称的位置移动以及转换漫游视角,如图8 所示。虚拟摇杆功能计算,如式(11)所示: 其中,圆o为虚拟摇杆控制范围,r为控制半径,a为虚拟摇杆控制范围外点,其坐标为(xa,ya),e为虚拟摇杆边界上的点,其坐标为(xe,ye)。 图8 虚拟摇杆示意图 儿童在虚拟世界中与虚拟物体(房屋、地面、石头、树木等)进行交互基于AABB 包围盒碰撞检测技术实现[16]。其算法是基于每一条坐标轴并利用盒子的边缘去检测,将实际检测碰撞对象包含进该触发盒中,实现碰撞检测,为简化碰撞对象之间的运算,在碰撞对象的外围包裹一个规则的几何体。碰撞检测原理如图9 所示,图中为物体A和物体B在XY平面投影效果,其中中间斜线区域为物体A与物体B的重叠区域。如果在三维坐标系下,如下表达式成立,则可判断发生了碰撞。 图9 AABB碰撞检测原理示意图 (AminX≤BmaxX&&AmaxX≥BminX)&&(AminY≤BmaxY&&AmaxY≥BminY)&&(AminZ≤BmaxZ&&AmaxZ≥BminZ) 为了验证儿童智力开发系统运行效果,本文进行了大量仿真实验。仿真实验在配置为(Intel)Core i5-8400 CPU(2.8~4.0 GHz)、DDR4 8 GB 内存以及 Nvidia GTX1060 6 GB显卡的PC机,编译环境为Visual Studio 2017,代码编写采用C#语言,基于Unity3D 平台结合Vuforia SDK实现。 启动系统后,进入场景选择模式,一共有4 个场景可以选择,如图10、11 所示。当进入场景后,通过手指触摸可以控制场景中第三人称的位置移动以及转换漫游视角,实现个性化的自主参观,欣赏森林风景并且根据任务卡提示在虚拟场景中学习对应知识。当完成任务后即可出现粒子特效,并弹出相应知识介绍,如图12、13所示。系统中引入游戏化学习方式通过设定任务数量以及时间增加紧张感。系统右上方是导航地图,提示任务区域所在位置。VR 部分采用Oculus Rift DK2 虚拟头盔进行测试,具有良好沉浸感,并且可以实现360°自由视角实现对事物全面观察,测试效果如图14、15所示。 图10 系统界面效果图 图11 关卡选择效果图 图12 虚拟漫游效果图 图13 学习内容效果图 图14 自由视角测试效果图 图15 虚拟沉浸感测试效果图 切换到AR 系统后,可以通过扫描识别图叠加三维虚拟物体,实现多感官交互学习。为了验证系统性能,将标志识别图分别进行遮挡以及明暗处理,分别验证标志识别图被遮挡30%、50%和60%情况下以及在弱光源和强光源下的识别效果,测试效果如图16、17所示。实验结果表明,AR 系统在遮挡环境下和光线条件较差环境中能够根据残留的标志物信息来获得准确的跟踪注册数据,具有很好的鲁棒性,可以很好地适应环境。 图16 遮挡处理测试效果图 图17 光线影响测试效果图 将VR技术和AR技术结合开发了儿童智力开发系统。通过虚拟世界和现实世界之间的交互切换充分调动了儿童的学习积极性,让儿童从视觉、听觉和触觉上感受虚拟世界场景,为儿童传递更丰富、更具体的经验,达到良好的教育效果,这种新颖的学习模式,是儿童智力开发的一种新手段。未来AR-VR混合技术的应用将会扩展到高危虚拟场景模拟、城市规划等多个领域。3 实验与分析
4 结束语