APP下载

基于增强现实系统模型不稳定性的问题研究

2021-03-07严海龙黄军建孙婕张露婷廖袁涛

电脑知识与技术 2021年36期
关键词:增强现实

严海龙 黄军建 孙婕 张露婷 廖袁涛

摘要:增强现实技术是一门基于计算机图形学、人工智能、交互传感技术等多种学科的,将虚拟信息叠加到实时环境中增强真实环境显示的综合性技术。针对目前基于HoloLens结合Vuforia SDK和3D渲染引擎Unity的增强现实系统中虚拟信息的渲染显示受到识别标识信息限制且标识识别效率低,受实时环境的复杂条件影响大而出现的虚拟模型渲染不出、偏移、抖动不稳定的缺陷,提出一套结合Vuforia识别图像机制和简单渲染模型函数使用的实现方案,摆脱了虚拟模型的渲染显示过于依赖标识信息追踪的结果。

关键词:增强现实;模型稳定;HoloLens;Vuforia SDK;隐藏显示

中图分类号:TP391      文献标识码:A

文章编号:1009-3044(2021)36-0028-04

开放科学(资源服务)标识码(OSID):

Research on the Instability of Model Based on Augmented Reality System

YAN Hai-long1, HUANG Jun-jian1, SUN Jie2, ZHANG Lu-ting3, LIAO Yuan-tao1

(1.Electronic and Information Engineering College of Southwest University, Chongqing 400715, China; 2.Haihe River, Huaihe River and Xiaoqinghe River Basin Water Conservancy Management and Service Center of Shandong Province, Jinan 370102,China; 3.People's Procuratorate of Beijing Municipality, Beijing 100078, China)

Abstract: Augmented Reality technology is a comprehensive technology based on Computer Graphics,Artificial Intelligence,Interactive sensing technology and other disciplines, which superimposes virtual information into a real-time environment to enhance the display of the real environment. The rendering and display of virtual information in the current augmented reality system based on HoloLens combined with Vuforia SDK and 3D rendering engine Unity are limited by identification information, low identification efficiency, and greatly affected by the complex conditions of real-time environment, resulting in the defects of virtual model rendering failure, migration, and unstable dithers. An implementation scheme combining Vuforia recognition image mechanism and simple rendering model function is proposed to get rid of the virtual model rendering relying too much on the tracking results of identification information.

Key words: augmented reality; stability of model; Hololens; Vuforia SDK; hide display

近年来,随着计算机不断地迭代,其处理能力也在不断地提升,互联网的高速发展已经将我们从真实世界活动引入到了虚拟世界当中[1]。增强现实技术是在虚拟现实的基础上发展起来的一种新的计算机人机交互技术,指的是借助计算机图形技术和可视化技术将虚拟信息如计算机生成的文本信息,3D模型等叠加到眼睛看到的真实环境当中,借助显示设备将虚拟信息和真实环境融为一体,给予用户一种全新的虚拟+现实的感官效果。而混合现实(简称MR) 是一组技术组合,借助显示设备中通过摄像头观察到的真实场景与虚拟场景相结合,使真实世界与虚拟场景在同一视觉空间中显示并能与用户进行各种交互的计算机虚拟现实技术[2]。

在增强现实系统中需要对3D虚拟场景進行渲染、设计交互功能,并叠加到相应的AR跟踪真实场景中,渲染引擎采用的是Unity3D。Unity3D中的渲染技术主要优点具有高度优化的图像渲染管道(如Open GL)并且内置高效的物理引擎,能实现更加真实的交互效果,支持多种外部导入的模型格式(如.obj、.3ds)、贴图,并自动转换为自身格式。在完成应用开发后能方便快捷地部署到设备上,且支持多种设备,如Windows、Android、IOS和HoloLens等平台[3]。

基于Unity开发的HoloLens应用程序是通过不同3D场景组成的,每个场景中可设置多个实体对象(GameObject)用以完成不同的任务,并且可以使用脚本代码对实体对象进行一系列的功能设计。Unity中的脚本语言主要支持C#、UnityScript 两种,当脚本用程序语言如事件函数写好相应功能后,都会绑定到需要实现该功能的GameObject(对象)上,在运行时该场景时场景中挂载了脚本的物体也会运行相应脚本中的功能程序。

在应用增强现实系统时,用户的沉浸式体验、虚实结合程度以及虚拟信息进行各种交互的流畅度、真实感是用于评价其增强系统好坏的指标之一。但由于如今AR技术在图像识别、追踪注册等方面还处于发展阶段,各方面还不够成熟。如张乐在研究基于HoloLens的增强现实系统时提到基于计算机视觉的跟踪注册技术的缺点是可能出现虚拟物体漂移问题,受环境影响大。标识信息的丢失或遮掩会直接导致虚拟信息的注册和跟踪失败[4]。

王培霖等[5]对于增强现实的现状也是认为AR技术需要使用图像处理、渲染及跟踪算法等,虽然已经可以应用至正常的真实环境,但是有时候存在由于光线问题而导致的物体阴影、物体运动在跟踪时仍然存在较大延时或是遮蔽问题、分辨率或是帧数不高时会产生较强烈的抖动及运动模糊等问题。包佳宇[6]、张帅[7]提到目前增强现实中有关用户体验的研究也包括环境光、遮挡和能见度、渲染和分辨率不匹配,校准不匹配,增强现实技术成像需要与预设的数据信息保持一致,一旦出现数据差,即可导致成像内容出现停顿或形变问题,从而影响使用者的体验效果。王宇希等[8]提及增强现实现状时也表示目前的AR跟踪注册方法只能对场景中少量的信息加以利用,如特征点信息,这造成系统对环境的理解不完整。

而本文便是在基于HoloLens的增强现实装配指导系统中出现的因实时环境复杂因素导致的识别模型抖动偏移等情况下提出的一种解决方案。

1 增强现实系统结构

开发基于HoloLens结合Unity和Vuforia的增强现实系统由三个部分组成。第一个部分在Vuforia官网云端完成。第二个部分在Unity3D中完成,包括在导入MRTK工具包和Vuforia SDK后创建的HoloLens开发场景中创建的各种GameObject对象并进行交互设计。最后一个部分便是通过Unity打包并部署在HoloLens设备中进行应用,流程如图1。

1.1 Vuforia识别原理

Vuforia识别使用的是视觉跟踪器,即使用摄像机跟踪目标,利用计算机视觉技术计算摄像机姿态,并且Vuforia识别是通过检测自然特征点的匹配来完成的。将Target Manager中的Image检测出的特征点保存在数据库中,然后通过分析摄像头实时捕捉到的视频影像,并检测当前实际场景每一帧图像,通过像素格式转换后图像中的特征点与数据库中模板图片的特征点数据进行匹配,是否有图像内容和预设的识别对象有匹配。匹配成功后,Vuforia就会创建一个可追踪结果对象,并通过State对象逐帧地把可追踪结果对象应用到Unity中[9]。Vuforia识别图目标星级越高,识别追踪速度越快,稳定性就越好。

1.2 Vuforia追踪显示原理

首先在场景中将Unity的内置相机删除后替换成Vuforia AR Camera,接下来创建一个由Vuforia SDK提供的对象ImageTarget用于放置需识别的物体图像。需要增强显示的对象,虚拟模型则事先放入场景中并作为ImageTarget的子物体。子物体的意思就是虚拟模型对象的坐标变化完全决定于父物体ImageTarget的变化,属于包含关系。

最终实现识别后增强现实效果的便是脚本DefaultTrackable Event Handler.cs(下文将简称为DTEH)。在Unity的开发中脚本就像是指令一般控制着对象的各种功能行为的实现。在创建对象ImageTarget后DTEH脚本会被自动挂载,在该脚本文件中定义了OnTrackingFound()、OnTrackingLost()两个方法。

当AR Camera追踪到真实物体时,Vuforia提供的像素级的图像转换器在相机的OpenGL ES渲染格式与跟踪格式之间进行转换[9]。脚本中的OnTrackingFound()函数在识别图片成功后执行使得隐藏虚拟模型开始通过GPU渲染管线渲染显示,过程如图2。而当识别图像丢失后触发OnTrackingLost()函数使虚拟模型又重新回到禁用状态。

2 基于HoloLens的隐藏模型追踪显示的实现

2.1 传统的HoloLens结合Vuforia开发的局限性

通过上文可知,由于真实环境复杂可变,而数据库模板图片是在固定环境条件下拍摄的,实时检测出真实图像与模板图像会因为环境变换如光照问题会影响到检测与跟踪的效果。在HoloLens的应用中,用户也需要实时与一个稳定且不受外界干扰的虚拟模型进行各种交互,能360°地观察虚拟模型而模型不会随着用户的移动而移动。除了虚拟模型不稳定以外,在传统的Vuforia开发中,由于虚拟模型对象作为识别图像对象的子物体,用户与虚拟模型进行的各种交互功能将会受到限制,例如虚拟模型只能随着实时环境中的识别图像移动而移动,并不能实现HoloLens开发组件MRTK中提供的各种手势以及凝视交互功能,局限性很大。

为了解决此类问题,在本文中提出一种基于隐藏函数利用Vuforia的追踪显示解决模型受干扰发生偏移抖动的问题。

2.2 一种基于隐藏函数利用Vuforia的追踪显示的解决办法

在基于HoloLens结合 Vuforia开发的过程中,首先要先将虚拟模型置于摄像机的可视范围之内,接下来在场景中创建一个隐藏显示脚本HIDE.cs,脚本代码部分如图3。

先将虚拟模型的渲染禁用实现“隐藏”的状态,此处使用了隐藏函数:

void Start()

{ gameObject.SetActive(false);//隱藏物体 }

其中,Start()将在MonoBehaviour创建后在该帧Update()第一次执行前被调用,在脚本被启用时才会执行。所以应用程序开始时,虚拟模型处于被禁用状态,没有被渲染显示。在ImageTarget Inspector面板中,脚本DefaultTrackableEventHandler(Script)有个功能便是当目标被识别成功后,能执行场景中其他挂载脚本物体中的函数。此处便利用了该功能在识别成功后执行HIDE.cs脚本中的显示函数:public void Gamestart() {gameObject.SetActive(true);//显示物体}将虚拟模型成功渲染显示(虚拟模型在隐藏前必须放置在摄像机的视野中),模型显示后即使Vuforia追踪图像受到了外界光照、摄像头模糊等干扰因素,但虚拟模型并不会受到干扰而一直存在于视野当中。此处会存在以下两种情况:

1)在传统方法中,由于虚拟模型在Unity场景中是ImageTarget(识别图像)的子物体,所以会随着真实环境中标识物的移动而移动,通过本文方法实现模型的渲染后并不能随识别图移动,会出现虚拟模型位置不准确的情况。与传统方法相比,由于此方法是基于Unity / Vuforia 在HoloLens中的开发应用,而HoloLens的开发提供了多种交互方式,例如通过手势交互便能直接移动虚拟物体到指定位置,还能对其进行旋转、缩小放大等操作,如图4。

手势交互功能实现过程如下:首先在Inspector面板中虚拟物体添加Box Collider组件,作为一个与手进行碰撞检测的碰撞器用于触发事件。接下来为了让虚拟物体在场景中具有可移动、旋转、缩小放大等可调整的状态,添加Object Manipulator脚本并且会自动添加Constraint Manager脚本。由于需要让HoloLens的摄像机识别响应输入,需给物体添加Interactable脚本,便能够实现触摸输入,远距离时发射手部光线和语音进行与模型的交互。对于一个场景中会存在多个虚拟物体的情况,添加NearInteractionGrabbable脚本便是为了交互时能优先接近最近的可抓取物,脚本的添加如图5。

2)在傳统方法中,AR识别脱离后虚拟模型会自动消失。而本方法是立足于HoloLens结合Unity+Vuforia开发的增强现实系统,所以同样采用了通过交互触发隐藏脚本的方式使虚拟模型完成自动消失。在对虚拟物体挂载隐藏脚本过后,利用Interactable交互组件中的Events组件,将该脚本拖入Events当中,当我们用手点击物体的时候便会触发脚本使物体隐藏。若再需要物体显示,可重新通过识别图像触发显示函数让物体再次渲染出来,脚本挂载位置如图6。

本方法中的全息模型不需要依赖追踪函数的识别成功而显示,所以不会受到外界环境的影响和目标信息的限制,并且不会受到虚拟模型与识别图像之间相对位置的影响。用户可以在任意角度和位置观察全息模型或者与模型交互,模型也不会因为摄像机移动的缘故而发生偏移抖动,也不会受到外界环境干扰或者无法一直跟踪识别图像而导致应用无法加载虚拟模型。

3 实验结果分析

在Vuforia输出显示过程中,AR Camera是通过发射射线找到摄像头的实时画面并在屏幕中显示出来。传统的识别方法在识别后按照正常情况下忽略环境变化因素以及设备性能因素,增强现实的实验效果如图7(a)。而由于设备性能或者受到环境变化等条件对识别结果干扰较大的情况下,虚拟模型实时增强显示在真实环境中会出现模型丢失,光标发生剧烈抖动的情况,如图7(b)所示;当虚拟模型成功渲染后也会因此导致模型抖动不稳定的现象,如图7(c)所示。与之相比,本文采用的方法是首先将虚拟模型隐藏到摄像机可视范围中将要增强现实的位置,只需成功识别一帧图像后便能渲染出虚拟模型,并不再受标识物的影响,有效解决了虚拟模型识别丢失或者实时识别受到影响时的抖动与偏移等缺陷,保证了虚拟模型的稳定性,实验结果如图8。

4 结束语

本文是基于HoloLens结合Unity引擎和Vuforia SDK开发的增强现实系统应用中出现的因受实时环境复杂条件影响导致虚拟模型追踪失败或抖动不稳定的缺陷,提出的一套在HoloLens的应用中结合Vuforia识别图像机制和简单渲染模型函数使用的实现方案。重点是从Vuforia识别机理和导致识别缺陷的原因以及本文提出的方案与传统识别方案对比的优势展开的论述。实验结果表明,相对于传统的识别方案,本文方案具有以下优势:

1) 解决了因实际环境复杂因素导致的识别不精确进而影响的虚拟模型抖动、漂移等缺陷,不需要一直对模型图像进行识别匹配,只需要在一帧图像中匹配成功后便能触发显示函数使模型渲染。在HoloLens的应用中,用户可360°全方位对虚拟模型进行探视,所以就要求虚拟模型保持稳定性才能使用户有更好的沉浸感。

2) 虚拟模型的位置不会随着识别图像的移动而移动。在传统方法中虚拟模型是作为识别模板图像ImageTarget的子物体,子物体会随着父物体的移动而发生相对移动,而在HoloLens的应用中,用户需对虚拟对象进行各种交互操作,例如移动旋转等,基于此原因本文方案很好地解决了虚拟模型受到限制的情况,使模型处于一个独立的GameObject对象而不受其他对象的影响。

3) 虚拟模型的大小和距离摄像机的距离可以任意改变。在传统方法当中由于ImageTarget的规模必须为(1,1,1),规模反映了对象的大小,如图9。而要想让虚拟模型能在摄像机内渲染显示,就必须要设置虚拟模型的大小与识别图像的大小相对保持一致,否则虚拟模型不在摄像机的可视范围之内后最终在屏幕上得不到渲染结果。与之相比,本文所提供的方法是不受标识物大小的影响,可以任意设置虚拟物体大小,前提是也需要在摄像机可视范围之内,如图10、图11。

参考文献:

[1] 顾君忠.VR、AR和MR-挑战与机遇[J].计算机应用与软件,2018,35(3):1-7,14.

[2] 黄进,韩冬奇,陈毅能,等.混合现实中的人机交互综述[J].计算机辅助设计与图形学学报,2016,28(6):869-880.

[3] 郭晓敏,申闫春.基于Unity/Vuforia的AR导览系统研究[J].计算机仿真,2019,36(8):165-169.

[4] 张乐.基于HoloLens的增强现实识别系统[D].太原:中北大学,2020.

[5] 王培霖,梁奥龄,罗柯,等.增强现实(AR):现状、挑战及产学研一体化展望[J].中国电化教育,2017(3):16-23.

[6] 包佳宇.眼镜式增强现实显示设备的图像质量研究[D].南京:东南大学,2017.

[7] 张帅.虚拟现实及增强现实技术的发展现状及前景[J].佳木斯职业学院学报,2018(8):456-457.

[8] 王宇希,张凤军,刘越.增强现实技术研究现状及发展趋势[J].科技导报,2018,36(10):75-83.

[9] 罗永东.基于Unity3D的移动增强现实技术与应用研究[D].青岛:青岛科技大学,2015.

[10] 孟晓宁,王宝华.图形处理中GPU固定渲染管线的研究[J].集成电路应用,2018,35(2):90-94.

【通联编辑:谢媛媛】

猜你喜欢

增强现实
虚拟现实及触觉交互技术:趋势与瓶颈
照片建模与增强现实实验在三维软件基础课程中的应用
增强现实技术在职业教育中的应用
虚拟现实技术和增强现实技术在建筑业的应用初探
虚拟现实技术和增强现实技术在建筑业的应用初探
浅谈增强现实技术及其军事应用
增强现实的系统结构与关键技术研究