融合数据分析与增强现实的混合式感知空间应用设计

2022-01-08 13:32田扬畅
关键词:虚拟空间对象空间

田扬畅, 杨 路

(安徽公安职业学院,安徽 合肥 230031)

感知空间设计是知识传递过程的核心问题,当前的课堂教学以PPT等多媒体演示应用为主,配合屏幕显示,辅以教师板书教学提供集体式的信息演示和展现服务。这种以信息展示和单向传播为主的被动式感知空间缺乏沉浸感与交互性,难以激发和维持学生的学习兴趣。针对上述问题,融合数据分析与增强现实技术设计了混合式感知空间应用,其具有的沉浸感、交互性等特征能够增强感知体验,激发学生学习的主动性,实现信息的接收和促进知识的迁移,提升教学效果,为培养具有较高专业素养人才队伍提供保障。

1 设计原理

增强现实(Augmented Reality,简称AR)是基于VR研究的技术,它能够在现实场景中叠加虚拟空间,让使用者处于一个虚实融合的沉浸式环境,借助虚拟空间包含的信息强化对现实场景的感知。采用数据分析技术分析教学情境下学生的需求,设计虚拟空间的内容和功能,再通过AR技术实现应用。课堂教学时,学生通过自带摄像头、显示屏的硬件设备运行该应用,摄像头扫描到标识物则在显示屏显示虚拟空间。在该虚实融合的混合式感知空间中,教学知识获得了多重性表征,学生能够以沉浸式、可视化的方式学习知识,通过自然的交互对虚拟空间施加作用,实现虚拟信息与现实信息的交互融合,进而提高对教学空间的使用度。

2 设计流程

混合式感知空间应用设计可分解为2个部分,设计流程图如图1所示。

首先设计者应当以学生对感知空间应用的需求为基础,确定标识物、虚拟空间所包含的对象和内容、交互形式等。需求分析包括数据处理与分析两个部分:数据处理进行数据的解析过滤,清除重复数据,减轻分析负担和提高效率。数据分析选用文本分析进行文本数据的量化,通过倾向性分析了解使用者的感情倾向,借助关键词提取概括评价文本的大概内容,采用主题分析模型总结出需求结果。其次根据设计任务分解的信息点进行落地化处理,首先确定技术方案,之后搭建开发基础,根据设计任务实现应用功能,完成设计。

3 设计任务

收集学生对感知空间应用的需求,基于python进行文本分析确定应用的内容和功能。首先通过python pandas包的read_csv函数导入收集的文本信息,再通过to_csv函数按类别保存信息,编码选择UTF-8。然后基于文本的相似度去除重复数据,进行数据的预处理。接着采用ROSTCM6进行情感倾向性分析,利用机器分类把文本信息分割成积极、消极和中性的样本。基于正则表达式修改数据,之后通过python的jieba包进行文本分词,按某种规范把评论语句变换成词的序列。分词完成后把内容保存到信息变量中。最后是模型实现和分析总结,python的gensim自然语言处理包包含了LDA算法,所以模型实现采用LDA主题模型,经过LDA的主题分析聚合主题,调用show_topics方法展示评论主题的状况,根据评论主题确定应用的标识物、内容等信息。本文以信息网络安全监察专业《计算机网络》课程的教学为例,根据LDA主题分析结果选择课本图片为标识物,显示用的教学虚拟空间应包含图片、文本、音频、视频和模型等对象,以图片、文本、音视频的形式展示教学知识点,模型用于加深学生的直观印象,采用学生最为熟悉的手姿动作作为输入的命令交互方式。

4 技术任务

4.1 技术方案

技术方案包括硬件设备与软件环境两部分。硬件设备用于启动应用显示感知空间,采用手持式智能手机设备。软件环境用于实现应用设计,包括制作虚拟空间、标识物识别和命令交互等功能。在Unity3D中设计prefab格式的虚拟空间,包含图片、音频、三维模型等多种虚拟对象,采用C#编写命令交互脚本,基于ARFoundation的ar tracked image manager实现图片识别和虚实融合的显示功能,完成设计。综上所述,软件开发环境采用Unity3D(2019)+ARFoundation+Python搭建。

4.2 开发基础

(1)配置参数。启动Unity3D,file->build settings,platform->android,点击switch platform切换到android平台,选中android图标->other settings,取消多线程渲染,删除vulkan,target api level和minimun api level都要选择高于nougat的版本。点击xr settings,勾选arcore supported。之后回到Unity3D主界面,Edit->preferences-> external tools,确保jdk和android sdk路径正确。

(2)新建工程、导入插件、建立资源文件夹。建立工程,导入ARFoundation和ARCore XR plugin,在工程的assets文件夹下建立scenes、scripts和prefabs等资源文件夹,方便各类资源管理。删除hierarchy窗口默认的main camera,右键XR导入ar session和ar session origin,完成开发基础的配置。

4.3 功能实现

(1) 虚拟空间。虚拟空间包含了文本、图片、按键、音视频和模型等多种虚拟对象,前三者通过UGUI提供的text、image和button控件实现,三维模型可采用现成的模型,或者在3D MAX等环境下自定义制作并导入Unity3D环境。音视频对象是设计的重点,考虑到设计的AR应用可能涉及移动场合,采用共振音频技术以保证良好的音频效果。视频对象要挂载Unity3D的跨平台组件videoplayer,支持本地和http/https远程播放两种方式。把上述虚拟对象根据显示需要布置好在空间中的位置,然后作为一个整体拖到prefabs文件夹下,完成prefab格式的虚拟空间设计。

(2)图片识别。ARFoundation的图片识别是依据参考图像库的信息实现的,首先要建立一个图片参考库,里面包含要识别的图片信息。create->xr->referenceimage library建立图片参考库,名称自定义。选中该参考库->inspector->add image,添加要识别的图片。之后选中当前场景的ar session origin对象,挂载ar tracked image manager组件。tracked image prefab用于设置要显示的prefab格式的虚拟空间。当识别到图片标识物则在屏幕的某个位置实例化该虚拟空间,实现虚实融合的效果。

(3)命令交互。命令交互包括触摸类和位移类两种,前者如触摸button控件显示信息,后者如移动缩放虚拟对象。触摸类通过setactive方法实现,比如触摸“使用帮助”(shiyongbangzhu)button控件显示文本内容(help_text),初始化阶段在start函数根据文本名称help_text找到文本对象,执行help_text.setactive(false)隐藏文本。当学生触摸“使用帮助”button控件,采用oncollisionenter函数,检测到碰撞执行help_text.setactive(true),实现文本显示。位移类通过Unity3D内置的input类自定义编程实现,代码实现可分解为两部分:①用于旋转操作的rotateon方法,touch.deltaPosition.x控制旋转,touch.deltaPosition存储的数据是两次检测之间手指在屏幕上移动的位置,获取到虚拟对象绕其本身Y轴旋转的旋转量,通过这个旋转量就可以控制虚拟物体的旋转。②用于双指缩放和单指移动操作的zoomon方法。双指缩放首先获取每个手指的当前触点与前一次检测时的位置,然后分别计算当前两个手指之间的距离与前一次两个手指之间的距离,获取两次距离的差值,即手指缩放的度量值。如果当前两指距离大于之前的距离那么在做放大手姿,反之在做缩小手姿。执行deltaMagnitudeDiff*mZoomSpeed*Time.deltaTime计算缩放量实现物体的缩放。单指移动先获取fingerid,根据input.touchcount得到触点个数,如果等于1表示是单点触摸,那么再判断touch.phase的状态,如果是touchphase.moved,则表明正在进行单点移动操作,之后获取方向位置信息并进行移位操作。

学生在智能手机端运行应用,摄像头扫描到图片标识物即在屏幕显示感知空间界面,感知空间应用示例如图2所示,学生可根据个人兴趣,以自然的手姿方式与虚拟对象进行交互,如播放路由器使用视频,移动查看路由器模型,触摸按键查阅文本内容等。

图2 感知空间应用示例图

5 结束语

混合式感知空间应用是对现有课堂教学的一种辅助,最终目的是实现不同方式的优势互补,而不是对传统方式的全盘否定。当前设计的混合式感知空间应用自身也有很多不足,在使用的新鲜感消逝后,学生对课堂教学的专注度迅速下降,有的学生甚至用手机玩起了游戏,反而对教学产生了负面影响。因此,现阶段混合式感知空间应用只是对传统教学空间设计的一种有效尝试,未来还需对软硬件做进一步的优化以增强使用效果。

猜你喜欢
虚拟空间对象空间
虚拟空间设计中的关键技术分析
晒晒全国优秀县委书记拟推荐对象
空间是什么?
创享空间
攻略对象的心思好难猜
图说车事
网络经济对企业的影响分析
个性签名
奇闻趣事
QQ空间那点事