APP下载

基于图像识别的增强现实学习辅助软件设计*

2018-06-04胡建忠

机械工程与自动化 2018年3期
关键词:螺杆泵预设按钮

胡建忠

(公安海警学院,浙江 宁波 315801)

0 引言

机械类的专业教材往往涵盖了某一型或多型装备的构造、原理、技术参数、使用说明等方面的知识。这些书面的知识,受纸质媒介本身的局限,很难将装备本质内容直观地展现出来,从而影响了人们对教材中知识点的理解,在一定程度上限制了知识的迁移效果。

增强现实(Augmented Reality,简称AR)技术具有沉浸感、交互性、虚实结合等优势,恰恰可以将教材中晦涩难懂的知识点很直观地展现出来。因此,利用AR技术,把机械类专业教材中的各类装备开发成基于图像识别的移动增强现实应用程序,可以很好地辅助人们进行专业理论的学习。目前,运用增强现实技术对图书进行数字化处理已经有成功的范例,例如:名为Magic Book的儿童阅读书,利用AR技术将相关内容制作成动画叠加在书本上的不同单元里;名为My Vision AIR的移动交互图书,运用AR技术呈现相应的图画、模型或视频,增加了阅读的趣味性[1]。

1 基于图像识别的AR关键技术

AR技术是将计算机生成的虚拟物体或场景、文本、图像、视频等信息实时叠加到用户所处的真实环境中,从而实现对现实的增强[2]。它是在虚拟现实技术基础上发展起来的一个分支或拓展,是人机交互技术发展的一个全新方向。通俗地讲,增强现实就是把虚拟信息实时叠加到真实世界中,将虚拟对象与真实环境结合起来,构造出一种虚实结合的虚拟环境[3]。

AR的关键技术有:三维空间注册技术、标定技术、显示技术等。

1.1 三维空间注册技术

三维空间注册技术是对显示场景中的图像或物体进行追踪和定位,并计算虚拟场景与现实世界坐标系的对应关系,从而将虚拟对象按照正确的空间映射关系叠加到现实场景中正确的位置。在AR系统中,目前主要有基于图像识别追踪的三维空间注册技术、基于传感器实现物体运动追踪的三维空间注册技术、结合图像识别追踪与传感器运动追踪的混合三维注册算法[4]。

1.2 标定技术

在增强现实系统中,虚拟对象与真实环境中的物体必须进行精确的对准。当用户观察视角改变时,虚拟相机的参数也必须与真实相机的参数保持一致。同时,也要实时地跟踪真实物体的位置与姿态等参数并不断更新。对相机的参数进行实验与计算的过程称之为相机标定,就是确定相机的光学参数、集合参数、相机相对于世界坐标系的方位和坐标转换。

1.3 显示技术

显示技术是将计算机生成的虚拟信息与用户所处真实环境融合在一起的技术。增强现实系统中的显示技术有头戴式(Head Mounted Display,HMD)显示器、手持式显示器和投影显示等。

头戴式显示器主要有视频透视式(Video See Through, VST)和光学透视式(Optical See Through, OST)两种头盔显示器。手持式移动显示器是一种可以让用户手持的平面LCD显示设备,相对于头盔式显示器,其减弱了视觉的沉浸感;其最大的特点是易于携带,且随着移动智能设备的普及和性能的不断提高,为移动增强现实的发展提供了很好的运行平台。投影显示能够将图像投影到大范围的环境中,它适合室内环境,其应用“物体追踪”技术捕捉人手的动作来实现交互,并应用“反射测距”技术测量人和物体的对应距离[5]。

2 单螺杆泵学习辅助仿真软件的功能要求与设计思路

2.1 软件的主要功能与设计要求

单螺杆泵学习辅助仿真软件应实现的主要功能有两个:一是方便学员对单螺杆泵结构的认知;二是帮助学员对单螺杆泵动态运行过程进行了解。

为实现以上两个主要功能,软件设计的总体要求如下:①软件运行在移动平台上,且运行软件时能自动调用设备后置摄像头对教材中的相应插图进行摄像,并快速完成目标识别、标定与跟踪注册,从而在手机屏幕上呈现交互界面和单螺杆泵模型;②程序运行界面上有相应的交互按钮,便于学员了解软件功能、选择相应的学习模块等;③拆装模块应能清晰地呈现单螺杆泵整体模型和拆装过程;④单螺杆泵动态运行展示模块能够清晰地呈现水流在泵体内部的流动线路,出口位置有逼真的水流效果和声效。

2.2 软件设计思路

为实现2.1节中所述的功能要求,软件设计的主要思路为:首先完成单螺杆泵的实体建模,然后在vuforia官网上下载适用于Unity3d的增强现实软件开发工具包,再将SDK和单螺杆泵模型导入Unity3d编辑器中进行拆卸动画片断录制、UI界面设计、拆装动画演示和动态运行效果演示的交互设计。

3 单螺杆泵学习辅助仿真软件交互设计与功能实现

3.1 增强现实软件开发工具包的下载与设置

3.1.1 SDK下载

登录vuforia官网,进入Downloads页面,点击Download for Unity按钮,下载对应的资源包vuforia-unity-6-2-10.unitypackage (46.20 MB)。

3.1.2 开发者选项设置

(1) 在License Manager界面点击Add License Key按钮,设置许可证密钥。Project Type栏中Development选项设置为免费,并在Project Details栏内设置应用程序的名称和设备类型等。点击Confirm按钮生成许可证密钥。

(2) 在Target Manager界面,点击Add Database新建数据库,输入名称并选择Device类型后,点击Create按钮创建数据库。

(3) 进入新建的数据库,添加Targets对象。设置对象类型为Single image,添加相应的图片到数据库中。设置完成后下载该数据库,生成Unity资源包待用。

3.1.3 ARSDK导入Unity编辑器中的设置

在Unity3D编辑器中导入vuforia-unity和MonoPump图片资源包,然后将Assets文件夹中的ARCamera和ImageTarget两个预设体拖拽至层级视图下,为场景添加两个父对象。设置ARCamera对象属性:将vuforia官网License Key中的文本复制粘贴到App License Key栏中。设置ImageTarget对象属性:Database栏中选择之前导入的MonoPump资源包,Image Target栏中选择MonoPump。

3.2 UI界面设计

本设计通过在现实世界中叠加一层虚拟信息,从而实现对现实世界的增强。因此,该场景的背景即为现实环境,无需额外构建背景层。为了在程序运行时便于使用者对虚拟对象进行交换操作,则需要增加图形用户界面,并利用界面中的各种UI控件实现丰富的交互功能。在该界面中,共添加了5个Button控件和1个Text控件。Button控件分别命名为“自动拆卸”、“自动组装”、“开始运行仿真”、“About”、“退出”,以实现和名称相同的交互操作。Text控件用于填写About的文档信息。

3.3 自动拆装/动态运行演示交互功能的实现

3.3.1 自动拆装功能的实现

当单螺杆泵对象处于组装或拆卸完毕的状态下,点击自动拆卸按钮,通过调用animator.SetBool函数改变动画状态机中的动画过渡条件,从而实现按预定方式播放拆卸或组装动画片段。其关键部分代码为:

public void ClickPlayBack(){

isBack = true;

isPlay = false;

isShot = false;

}

if(isBack) {

animator.SetBool ("isPlay", false);

animator.SetBool ("isBack",true);

StartCoroutine (WaitForSomeTimes02());

}

3.3.2 动态运行效果的实现

(1) 点击开始运行仿真按钮的同时,调用单螺杆泵对象脚本组件中的ClickPlayShot ()方法体,该方法体为:

public void ClickPlayShot(){

if (isShot)

isShot = false;

else

isShot = true;

}

此方法体的功能是:如果isShot为真,则将isShot设为假,如果isShot为假,则将isShot设为真。从而实现布尔变量值在真假之间来回切换。

(2) 按钮文字和材质的变换以及水流声音的控制。点击开始运行仿真按钮的同时调用游戏对象BubbleShotter脚本组件中的ClickDynamicFlow ()函数。该函数的关键部分代码如下:

if (isDynamicFlow) {

isDynamicFlow = false;

button_PlayShot_text.text = " 开始运行仿真";

outletPort.GetComponent ().material = mat1;

WaterFlow.SetActive (false);

single_screwPump.GetComponent ().enabled = false;

}

(3) 对轴承旋转的功能控制。控制工作中旋转对象包括联轴器、内部螺栓、螺杆轴、连接轴、传动轴,令这些零件绕x轴旋转。在Update函数中添加如下语句:

float currentX = -90f +currentTime * rotateSpeed;

coupling.transform.rotation = Quaternion.Euler(currentX, 0, 0);

(4) 螺杆泵系统内水流效果的实现方式是:以一定的速率在相应位置发射水泡预设体,并让该预设体沿着指定的路径运动,当到达终点时,销毁该预设体。

该方法依赖于iTweenEditor插件中的iTweenPath和iTweenEvent脚本。具体通过三个关键步骤来实现。

步骤一:动态生成预设体运行的路径。泵运行时,螺杆是不停地旋转的,而入口管线是静态的。因此,路径的生成有两种方式:一种是直接在path脚本组件中设置各路径节点的值;另一种是先在螺杆上沿螺旋线依次添加空的子对象,并用代码将这些子对象的Transform.position值动态赋值给path组件中的各路径节点。本文选用第二种方式,因为对于动态变化的路径,直接对路径节点赋值的方式是无法实现的。该脚本的关键部分代码为:

if (wayPoint.GetComponent ().nodeCount

== screwShaft.transform.childCount) {

for(int i=0;i

wayPoint.GetComponent ().nodes [i] = new Vector3(

screwShaft.transform.GetChild (i).transform.position.x,

screwShaft.transform.GetChild (i).transform.position.y,

screwShaft.transform.GetChild (i).transform.position.z); }}

步骤二:水泡预设体设置。在层次面板中创建一个球体,设置Scale值使球体为合适的大小,并为球体添加水泡材质,然后为球体添加iTweenEvent脚本。对iTweenEvent组件进行设置,设置完成后将球体对象拖拽至Assets文件夹下,生成预设体。

步骤三:水泡预设体的实例化。当螺杆泵运行时,在Path路径的第一个节点位置以一定的速率实例化生成水泡预设体,并在生成的水泡对象运动到路径末端时及时销毁对象,以防止不断生成水泡对象而导致系统内存空间占用越来越多。其实现代码为:

//当shotSpeed等于1时,每2 s实例化生成1个水泡预设体对象

currentTime += Time.deltaTime * shotSpeed;

if (Mathf.CeilToInt (currentTime) % 2

== 0) {

Instantiate (prefab, new Vector3 (screwShaft.transform.GetChild (0).transform.position.x, screwShaft.transform.GetChild (0).transform.position.y, screwShaft.transform.GetChild(0).transform.position.z),

Quaternion.identity);}

(5) 螺杆泵出口水流效果的实现。水流效果可在Asset Store中查找下载免费的粒子效果资源。本设计选用Water FX Particles资源中的水流效果,下载完成后将该资源导入到Assets文件夹下,并将该文件夹下的Font和Surface Splash预设体拖拽至层次面板中的螺杆泵出水口对象下,调整位置和方向,设置好粒子发射的控制参数。

3.4 发布到Android平台

在Unity中编辑完成后,将工程发布到Android平台,生成APK文件,即可安装到安卓手机上运行。其发布方法如下:

(1) 发布前的资源准备。要将编辑好的工程发布到安卓平台,需安装三个插件:Android模拟器(sdk)、Java(jdk)以及Android NDK。安装完成后需对系统环境变量进行设置。

(2) 发布到安卓平台。选择File/BuildSettings菜单命令,弹出编译设置面板。在Platform栏中选择安卓平台。在Player Settings面板中,依次设置公司名称、应用名称、图标、分辨率等,完成设置后,点击Build按钮发布生成APK文件包,该文件大小为57.6 MB,将其安装到手机上的运行效果如图1所示。

图1 APP运行时对教材插图摄像识别后的效果

4 结论

基于图像识别的单螺杆泵增强现实学习辅助仿真软件,能很流畅地运行在移动平台上,具备认知装备结构、学习拆装过程和观看动态运行效果等功能,较好地解决了纸质插图立体感不强、视角单一等问题。并利用iTweenPath插件实现装备内部流体的运动效果,比二维仿真软件更加形象逼真,比普通的动画演示更具交互性。

参考文献:

[1] 蔡苏,王沛文,杨阳,等.增强现实(AR)技术的教育应用综述[J].远程教育杂志,2016,34(5):27-40.

[2] 李文霞,司占军,顾翀.浅谈增强现实技术[J].电脑知识与技术,2013,9(28):6411-6414.

[3] 娄岩.虚拟现实与增强现实技术概论[M].北京:清华大学出版社,2016.

[4] 吴帆,张亮.增强现实技术发展及应用综述[J].电脑知识与技术,2012,8(34):8319-8324.

[5] 候颖,许威威.增强现实技术综述[J].计算机测量与控制,2017,25(2):1-7.

猜你喜欢

螺杆泵预设按钮
当你面前有个按钮
螺杆泵机采井系统效率分析与提升探讨
三螺杆泵寿命试验台测控系统设计
潜油螺杆泵市场应用及发展前景
死循环
问题是预设与生成间的桥
一种防烧泵的煤层气螺杆泵井管柱设计方法
内心不能碰的按钮
论幽默语境中的预设触发语
预设留白 生成精彩