APP下载

增强现实技术在移动学习上的应用研究

2017-06-27张行文熊旭辉许新山

关键词:按钮现实模型

徐 敏 ,童 强,2,张行文,2,熊旭辉,许新山

(1.湖北师范大学 计算机科学与技术学院,湖北 黄石 435002;2.湖北师范大学 文理学院,湖北 黄石 435003)

增强现实技术在移动学习上的应用研究

徐 敏1,童 强1,2,张行文1,2,熊旭辉1,许新山1

(1.湖北师范大学 计算机科学与技术学院,湖北 黄石 435002;2.湖北师范大学 文理学院,湖北 黄石 435003)

随着新一代互联网时代的迅速到来,市场上绝大多数手持设备或是智能终端自身己经集成了无线网络、摄像头、GPS和传感器等功能完善的硬件模块,这为继续研究移动增强现实技术的广泛应用提供了良好的硬件条件。介绍项目的总体结构图以及关键代码分析,并提出“借助vysor将安卓手机的屏幕画面实时同步到电脑屏幕上,直接在电脑上对手机进行远程控制操作”的想法,给出了实践效果图。结果表明,该方法能够在终端连续移动过程中无缝切换虚实叠加的效果,更展示了增强现实技术在移动学习上的应用优势。

增强现实技术;同步投影;移动学习

0 引言

在国外,增强现实技术是近几年开始被应用在教育领域。其中,将增强现实技术融入课堂学习实践的有Shelton和Hedley、Kaufmann教授、Dunser和Horneker、EI Sayed等人在这一块做了突出贡献。El Sayed等人设计了一款增强现实的手机学习卡片(ARSC),将卡片和立体模型相结合,提供丰富的用户体验[1]。至于国内,比国外要晚几年,研究机构主要集中在高校的科研单位,如:北京理工大学、北京航空航天大学、国防大学、浙江大学、上海大学等。目前,我国的增强现实技术现处在从算法实现、算法优化本身向具体应用的过渡阶段,增强现实型的教学产品在市场上还不多见。李烨, 杨敏等人提出了基于移动终端的增强现实系统,通过摄像头捕获文字信息识别对象,按照预设内容在视频界面上添加不同的虚拟物体,实现实物与虚拟信息的完美融合[2]。张金颖, 姚志强等人提出了儿童读物移动增强现实系统,通过摄像头等采集设备,从周边真实场景中实时采集视频流,并据此计算观察者当前的位姿,然后生成虚拟场景并进行渲染,最后融合到真实场景中,并输出[3]。从目前我国在教育领域的研究方向来看,相关研究人员还是很认同把增强现实技术推广到移动学习中去的做法。

综合国内外研究现状,我们不难看出:目前增强现实技术在教育领域的应用主要集中在立体书籍、幼儿教育和技能培训等几个方向[4]。另外,基于增强现实技术的移动学习已然成为国内外研究的热点,但受限于技术的限制,它还处于初级阶段。智能终端设备的GPS及各种卫星定位、定向技术可以当即获取学习者所处环境的各种信息,为他们提供情景化学习氛围,让随时随地获取知识成为可能,真正实现了移动学习的意义[5]。目前,人机交互技术正处于多通道、多媒体的智能人机交互阶段,虽然国内外已经取得了很多的研究成果,但这项技术在教学应用上的关注度仍居高不下。

1 移动增强现实技术

移动增强现实技术,主要是指增强现实技术在手持设备上的应用,除了要具备传统增强现实的虚实结合、实时交互和三维注册的特点外,还需要具备较高的自由移动性,不会因为环境因素而只能固定在一个较小范围内活动[6]。在电子书的应用基础上,本文提出了一种基于Unity3D的移动增强现实开发技术,能够实现多种复杂标识物的自动切换识别,并将其应用在教育领域,具体到儿童的书籍当中。在整个交互过程中,Vuforia引擎负责检测和跟踪标识物特征点,并根据不同标识物的位姿信息在视平面上叠加对应的文字图像、3D模型、动画、音频、视频等虚拟信息,让用户随心所欲在移动过程中进行虚实交互。其中,这三者之间的包含关系如图1所示。

图1 虚拟现实技术、增强现实技术和移动增强现实技术包含关系图

2 项目框架设计

对比了移动设备 iOS、Android 两大操作系统平台,总结了二者各自的优缺点,结合开放性、通用性等优点选取 Android 硬件平台作为本文移动增强现实系统的开发平台。纵观市场上,支持Android平台增强现实技术的开发工具包,主要有Metaio、AndAR、OpenCV和Vuforia等。其中较常使用的是AndAR和Vuforia,Vuforia是由高通发布的一款基于嵌入式设备的增强现实开发包,支持Android平台、IOS平台和Unity3D三个版本的平台。Vuforia AR SDK是一个功能丰富的商业增强现实SDK,其SDK许可管理允许开发者采用SDK来进行开发和发布商业的增强现实应用。文中项目整体设计框架是基于Unity3D增强现实技术上实现的,即结合三维建模工具、javascript语言和C #语言在Unity3D中实现交互,由Vuforia引擎负责检测和跟踪标识物特征点,并根据不同标识物的相对位置和摄像机的位姿信息在移动设备视平面上叠加对应的文字图像、3D模型、动画、音频、视频等多种虚拟的多媒体信息,借助Vysor将安卓手机的屏幕画面实时同步投影显示在电脑、投影仪的屏幕上,甚至还能直接在电脑上对手机进行远程控制操作,其系统的总体结构图如图2所示。

图2 系统的总体结构

该系统包括真实环境、Android智能终端、服务端和数据库4个部分。真实环境,是为增强现实系统有效运行而提供的真实场景,主要和Android智能终端交互。Android智能终端主要包括终端信息获取、标识识别、手势识别和增强信息显示四个模块。其中,终端信息获取模块采用GPS和Android手机传感器获取当前手机的经纬度信息和位姿信息。标识识别模块则能识别摄像头下的标识图,并将获取的数据信息跟数据库里的事先匹配好虚拟物体的标识图进行比对,给出一定信息反馈。手势识别模块则根据用户手指在屏幕上的点击,实现基本的交互操作。增强信息显示模块,即实现现实世界和虚拟世界的完美融合。而服务器负责跟MySQL数据库、Android客户端进行通信,数据库则负责存储兴趣点信息。

3 项目功能分析与关键代码实现

目前,在移动设备上实现的增强现实系统比较常见的还是采用屏幕触摸、手势以及基于标记的交互方式,通过设计合理的图形用户界面引导用户进行功能的选择和调用。同时,高通的SDK就是采用了无标记跟踪,即从图像里提取自然特征,实时对手机进行定位,支持大量的Android平台并且在持续的开发中,这点正好跟移动端增强现实系统的功能需求吻合。智能交互技术是移动增强现实系统中与显示技术和跟踪注册技术有着紧密联系的技术,交互技术的优劣直接影响着虚拟世界与现实世界交互的好坏。此项目涉及的UI元素及关键代码分析如下:

判断手指是否选中模型:

if (touch.phase == TouchPhase.Began){

RaycastHit hit = new RaycastHit();// 判断是否有碰撞到对象

if (Physics.Raycast(ray, out hit, 1000)) {

pickedObject = hit.transform;

lastPlanePoint = planePoint;

}

else{

pickedObject = null;

}

}

3.1 3D模型

1)功能:根据不同的标识图显示不同的3D模型。

2)操作形式:

放大/缩小:两手指分别由里向外拖曳,实现模型的放大效果;反之,由外向内拖曳,则实现模型的缩小效果。

旋转:只需用一个手指分别沿X、Y、Z轴三个方向拖曳,便可以依次实现模型在这三个方向的旋转。这个功能可用来360度观察3D模型。

上下左右移动:一个手指分别向上、向下、向左、向右滑动,便可以上下左右的移动模型。

3)关键代码

放大/缩小:

bool isEnlarge(Vector2 oP1, Vector2 oP2, Vector2 nP1, Vector2 nP2){

//函数传入上一次触摸两点的位置与本次触摸两点的位置计算出用户的手势

var leng1 = Mathf.Sqrt((oP1.x - oP2.x) * (oP1.x - oP2.x) + (oP1.y - oP2.y) * (oP1.y - oP2.y));

var leng2 = Mathf.Sqrt((nP1.x - nP2.x) * (nP1.x - nP2.x) + (nP1.y - nP2.y) * (nP1.y - nP2.y));

if (leng1 < leng2){

return true;//放大手势

}

else{

return false;//缩小手势

}

}

旋转/移动:

var angle:float=Time.deltaTime*100;//设置旋转角度范围

var translate:float=Time.deltaTime*100;//设置移动范围

transform.Rotation(angle,0,0); //沿X轴旋转angle度

transform.Rotation(0, angle,0);//沿Y轴旋转angle度

transform.Rotation(0,0, angle);//沿Z轴旋转angle度

transform.Translate(translate,0,0); //沿X轴移动translate个单位

transform.Translate(0,translate,0); //沿Y轴移动translate个单位

transform.Translate(0,0, translate); //沿Z轴移动translate个单位

3.2 文字信息

1)功能:对3D模型进行相应的解释说明。

2)操作形式:

显示/隐藏:单击一次按钮,页面上会显示当前模型所对应的文字说明材料;再单击一次按钮,页面上模型所对应的文字说明材料会被隐藏。

3)关键代码

void OnGUI(){

if(GUILayout.Button("显示/隐藏")){

if(gameObject.active == false) {

gameObject.active = true;

}

else{

gameObject.active = false;

}

}

}

隐藏:gameObject.SetActive(false);

显示:gameObject.SetActive(true);

3.3 音频

Unity3D游戏引擎一共支持4种音乐格式的文件:

.AIFF:适用于较短的音乐文件可用作游戏打斗音效

.WAV:适用于较短的音乐文件可用作游戏打斗音效

.MP3:适用于较长的音乐文件可用作游戏背景音乐

.OGG:适用于较长的音乐文件可用作游戏背景音乐

1)功能:对3D模型进行补充说明。

2)操作形式:

播放/暂停/结束:单击按钮,系统会播放跟当前页面上显示的模型相对应的音频说明材料;单击按钮,系统会暂停刚才所播放的音频;单击按钮,系统会结束当前播放的音频材料。

3)关键代码

播放/暂停/结束:

if(GUI.Button(new Rect(420,10,70,30),"播放音乐")){

if (!music.isPlaying){

music.Play();

}

if (GUI.Button(new Rect(420,90,70,30), "暂停音乐")){

if (music.isPlaying){

music.Pause();

}

}

if (GUI.Button(new Rect(420,50,70,30),"结束音乐")){

if (music.isPlaying){

music.Stop();

}

}

3.4 UI按钮:真实存在于页面的固定按钮

1)功能:单击按钮,调用某个功能代码,从而实现某个功能,完成一次事件的触发操作。比如:实现页面的跳转;单击暂停或播放对应的音频;单击显示或隐藏辅助的文字说明。

2)操作形式:

跳转:单击按钮,可跳转到事先设置超链接的页面。

3)关键代码

事件促发触发:

if (toolbarID == 2) {

Application.LoadLevel ("model");//单击第二个按钮,页面跳转到model

}

3.5 虚拟按钮:通过识别标识图显示对应虚拟按钮

处理事件的按钮是通过实现IVirtualButtonEventHandler接口,这个接口有两个方法:OnVirtualButtonPressed和OnVirtualButtonReleased。

1)功能:单击可显示标识图所对应分解模型(化学:单击可显示标识图所对应虚拟3D模型的分解模型;动物学:单击可显示动物的部分肢体图片)。

2)操作形式:

显示/隐藏:单击一次虚拟按钮,显示对应的虚拟信息;再单击一次虚拟按钮,隐藏对应的虚拟信息。

3)关键代码

public void OnButtonPressed(VirtualButtonBehaviour vb){

Debug.Log("OnButtonPressed");

switch (vb.VirtualButtonName){

case "VB1": GameObject.Find("ARdemo1").transform.animation.wrapMode=WrapMode.Loop;

GameObject.Find("ARdemo1").transform.animation.Play("bike");

break;

case "VB2": GameObject.Find("ARdemo1").transform.animation.wrapMode=WrapMode.Loop;

GameObject.Find("ARdemo1").transform.animation.Stop("bike");

break;

}

}

public void OnButtonReleased(VirtualButtonBehaviour vb){

}

4 测试与使用

4.1 技术路线和开发环境

1)技术路线

本系统采用基于Unity3D的移动增强现实技术实现的。

2)开发环境

开发语言:javascript/c#

操作系统:Windows 7

集成开发环境:Vuforia AR SDK+Unity3D集成Android开发环境

三维建模工具:3Dmax

3)研究准备:

i)移动设备的配置,根据系统功能和性能需求,选用Android移动设备作为硬件调试平台。表1中向数据是本次测试机向相关参数配置。

表1 Android终端参数配置

ii)开发环境搭建,首先配置一台硬件性能优良的Windows7系统PC,然后完成开发环境搭建,安装Unity3D集成Android开发环境,安装JDK、Vuforia AR SDK、Cygwin Terminal 等底层支持(环境搭建具体步骤这里不详述,可参考相关通用公开资料)。

4.2 Vysor实现同步投影显示

Vysor是一款Chrome浏览器插件应用,可以将安卓手机的屏幕画面实时同步投影显示在电脑的屏幕上,甚至还能直接在电脑上对手机进行远程控制操作,并且跨平台支持Win / Mac / Linux,用途非常广泛。

1)安装Vysor

i)下载Vysor并安装Vysor ;

ii)手机开启USB调试模式;

iii)安装ADB Driver驱动:如果你在Windows系统下使用Vysor,需要安装一个ADB Driver驱动(Mac下不需要);

iv)将手机通过USB数据线连接到电脑,并启动Vysor,找到对应的移动设备并按下选择键即可连接;

一般地,首次连接成功后,手机上会弹出对话框问你是否允许连接,选择“是”即可。此时Vysor会自动在你的手机上安装Vysor的APP,提示连接成功后,我们便可在电脑上看到手机的同步画面。通过鼠标对手机进行操作,手机跟着同步响应;反之在手机上操作,电脑上的显示也会随之变化。Vysor可以支持一次连接多台Android手机或平板设备。

2)同步投影效果展示

Vysor键盘和鼠标对手机进行操作的对应关系如下:鼠标左键 = 手指点击、键盘Esc / 鼠标右键 = 手机返回键、F1 = 菜单键、键盘Home键 / 鼠标中键 = 手机Home键。其同步效果图如图3所示。

图3 同步投影效果

5 小结

相比于传统的印刷教材、老套的教学方式,其最大的意义在于突破空间、时间以及其他客观因素的约束,实现了虚拟世界和真实世界的实时同步,让师生有身临其境的感觉。2008年,徐纪涛、李鑫曾在《虚拟现实技术的教学应用探析》一文中提出虚拟现实技术的四种应用:课件制作、网络协作学习、基础课虚拟实验室、训练科目。Kikuo Hideaki曾指出,增强现实技术可以为学习者提供一种新型的学习工具,而且具有很大的发展空间。在实践层面上,基于增强现实技术设计、开发针对性的教育教学资源或学习实验平台,是对主流教学形式的丰富和补充,为教学和学习提供了多样化的手段和方法,也对教学演示、实验指导、课程教学等方面有很大的帮助。增强现实技术作为新兴技术的代表之一,在教育教学中的应用对推进教育信息化,促进教育教学改革具有积极的意义和深远的影响。人性化的交互方式给学习者带来全新的学习体验,真正实现数字反哺现实,技术改变生活。

[1]El Sayed N A M,Zayed H H ,Sharawy M I. ARSC: Augmented Reality Student Card[J].Computers & Education,2011,56(4):1045~1061.

[2]李 烨,杨 敏,李玉三.基于增强现实技术的移动虚拟电子书研究[J].软件导刊,2013,12(1):12~14.

[3]张金颖,姚志强,吴 献,等.儿童读物移动增强现实系统的研究[J].信息系统工程, 2016,(3):53~56.

[4]董子龙,章国锋,邵元龙,等.基于汉字标志的增强现实系统[J].中国图像图形学报,2009,(7):1463~1468.

[5]程 志,金义富,智能手机增强现实系统的架构及教育应用研究[J].中国电化教育,2012,(8):134~138.

[6]Azuma R. A survey of augmented reality[J]. Teleoperators and Virtual Environments,1997, 6(4): 355~385.

Research on the application of augmented reality technology in mobile learning

XU Min1,TONG Qiang1,2,ZHANG Xin-wen1,2, XIONG Xu-hui1,XU Xin-shan1

(1.Computer Science Department of HUBEI Normal University, HuBei HuangShi 435002, China; 2.College of Arts&Acience of HUBEI Normal University, HuBei HuangShi 435003, China)

With the rapid development of the new generation Internet era, most handheld devices or intelligent terminals have integrated hardware modules such as wireless network, camera, GPS and sensors, etc., which provides good hardware conditions for the study of mobile augmented reality technology. In this paper, the overall structure of the project and the key code analysis are introduced in detail, and the idea that synchronizing the screen of Android mobile phone to the computer screen by vysor and controlling the mobile phone directly on the computer is proposed. The results show that the smooth transitions effect of virtual and real superposition in the successive move of terminal, and the application advantage of Augmented Reality Technology in mobile learning.

augmented reality technology; simultaneous projection; mobile learning

2016—10—19

湖北省高等学校省级教学研究项目,2014367;湖北省教育厅科技项目,B20132505;湖北省高校优秀中青年团队,T201430

徐敏(1990— ),女,湖北黄石人,硕士研究生,主要研究方向为增强现实,智能计算与人机交互.

童强(1968— ),男,硕士,硕士生导师,主要研究方向为增强现实、机器视觉、人机交互技术.

TP391

A

2096-3149(2017)01- 0076-03

10.3969/j.issn.2096-3149.2017.01.016

猜你喜欢

按钮现实模型
当你面前有个按钮
适用于BDS-3 PPP的随机模型
我对诗与现实的见解
重要模型『一线三等角』
重尾非线性自回归模型自加权M-估计的渐近分布
漫画:现实背后(下)
死循环
离散型随机变量分布列的两法则和三模型
一种基于Unity3D+Vuforia的增强现实交互App的开发
内心不能碰的按钮