APP下载

基于AR的三维城市信息系统设计与实现

2018-10-16陈冠臣吴星星赵雯婷

地理信息世界 2018年3期
关键词:全息手势部署

陈冠臣,吴星星,王 伟,赵雯婷

(1. 天水三和数码测绘院,甘肃 天水 741000;2. 武汉大学 测绘遥感信息工程国家重点实验室,湖北 武汉 430079;3. 武汉大学 经济与管理学院,湖北 武汉 430072)

0 引 言

三维城市信息系统(Urban Information System,UIS)试图从三维空间的视角去理解和表达真实的世界.目前,3D UIS的载体是二维的(如电脑屏幕),而不是三维的(如头戴设备),这使得现有的空间信息得不到充分地表达和可视化,2D扁平的实体屏幕会影响我们对所研究的城市实体的认知和理解[1].随着虚拟现实技术的发展,出现了基于"眼镜"的增强现实技术.增强现实技术AR(Augmented Reality,AR)是将计算机生成的虚拟物体叠加到现实世界当中,并产生新的可视化环境,虚实结合并提供实时互动[2-4].本文将AR技术引入3D UIS,改变3D UIS传统的体感和互动方式,从传统二维的空间向三维空间转化,从更高的维度理解虚拟世界.但是,3D UIS与增强现实的结合存在着接入问题,目前比较流行的开发VR(Virtual Reality,VR)、AR、MR(Mixed Reality,MR)的引擎(Unity、Unreal、CryENGINE、Cocos 3D)并没有提供开发城市地理信息的接口,所以城市地理信息内容很难直接架构到增强现实平台之上,实现内容与平台的拼接.基于AR技术的城市地理数据可视化方法,虽然还存在一系列的问题,但对比普通的地理数据可视化方法,AR技术实现对数据的可视化更简单、直观、真实感更强[5].

目前,具有代表性的AR头戴设备是微软的Microsoft HoloLens,HoloLens相比于传统的增强现实设备具有更高级的功能,如具有3D立体显示,对凝视、手势的捕捉,空间声音与空间映射等功能[6].基于上述优势,HoloLens被广泛地应用于可视化应用程序的研究当中,如将HoloLens应用于灾难和紧急事件的管理,虚拟实验室的构建[7],医学解剖学、药学等领域[8].本文主要的研究内容是将微软增强现实设备HoloLens应用于3D城市信息的渲染,开发增强城市信息系统(AR-3DUIS).为了实现AR-3DUIS应用,本文设计了基于规则的三维城市场景建模方法,实现快速从二维城市地理数据建模成三维城市地理场景模型;继而,设计了AR-3DUIS应用的交互方式,通过Unity3D游戏引擎设计用户与三维数字城市交互的接口,实现用户与虚拟三维数字城市、虚拟三维数字城市与物理世界的交互;最后,通过实验,实现了将全息数字城市映射到物理世界,成功地将AR技术应用于三维城市信息系统.HoloLens与3D UIS的集成对于城市的规划设计具有重要的意义:①从视觉的角度,通过HoloLens眼镜,数字城市是以全息的3D影像展示,3D的物体在3D空间展示,用户可以获取最佳城市三维视角.②从交互的角度,改变传统用户与三维城市信息的交互方式,从鼠标转向语音、凝视、手势的交互.

1 AR-3DUIS系统设计

本文的主要目标是实现将HoloLens应用于三维城市场景的展示,将三维城市信息引入物理真实世界,两者融为一体,带来全新的视觉体验和更高效、自然的交互方式.要实现上述目标,主要包括AR-3DUIS应用资源的创建、AR-3DUIS应用程序的开发以及AR-3DUIS应用程序的部署3个流程.如图1所示是系统架构设计图,其中AR-3DUIS应用资源创建层为AR-3DUIS应用程序开发提供三维城市场景内容,AR-3DUIS应用程序开发层提供三维城市场景与用户之间的交互接口,AR-3DUIS应用程序部署层提供将应用程序部署到HoloLens的方法.

图1 系统架构图Fig.1 System architecture

1.1 AR-3DUIS应用资源创建层

AR-3DUIS应用资源创建层为AR-3DUIS应用程序开发提供素材和内容.利用传统三维建模软件(Maya、3DMAX、CAD)实现对三维城市场景的创建成本大、效率低、耗时长.针对该问题,本文采用基于规则文件驱动的方式实现快速三维城市建模.快速三维城市建模的思想是使用2D地理信息的组合数据、属性数据和过程定义的规则,反复优化规则,创建高质量的3D内容.本文在CityEngine平台下,利用预处理过的GIS矢量、栅格数据的轮廓和属性信息,通过CGA(Computer Generated Architecture)规则文件驱动快速、批量地生成城市场景中建筑物、基础公共设施、道路等数据的三维模型,提高了城市三维建模的效率[9].CGA规则文件驱动的方法流程是通过对需要建模的物体进行拆分和细分割,然后进行分类,对相同的类别进行批量建模,提高建模的效率.表1是建筑物三维建模的一般流程,其中extrude、comp、split、texture是CityEngine提供的用于拉伸、分割、拆分、贴纹理的函数.建筑物快速三维建模的步骤如下:首先,通过高度信息对建筑物的面要素进行拉伸;然后将拉伸后的建筑物按照实际的需要进行拆分和细分割,对细分割后的要素进行分类并定义相应的规则进行批量建模;最后通过贴图函数为各拆分部分贴上纹理.通过规则文件生成的模型同样可以采用手动调整模型的高度、纹理等属性,方便个性化定制.

表1 建筑物三维建模的一般流程Tab.1 The general process of 3D modeling of buildings

1.2 AR-3DUIS应用开发层

AR-3DUIS应用程序开发层用于设计交互接口,实现用户与虚拟三维数字城市以及虚拟三维数字城市与物理世界之间的交互.本文采用Unity3D游戏引擎作为开发的核心平台,另外,利用集成于Unity3D的Holotoolkit SDK,可以加快AR-3DUIS应用的开发.Holotoolkit开发包集成了负责交互设计的基础类库,包括语音设计、凝视设计、手势设计,用于实现用户与三维数字城市自然、简洁地交互.空间映射设计负责实现虚拟世界与物理世界的交互,通过空间映射实现三维城市场景与物理世界无缝的融合.如图2所示是交互设计逻辑关系图,其中,凝视设计的原理是根据用户头部的位置和方向进而确定视线的方向,该视线与全息场景发生碰撞,碰撞点即为视线焦点位置;手势设计的思想是先对手势分类,按手势的类型可分为操纵手势、导航手势和离散手势,然后根据用户输入的手势做判断,离散手势用于实现对全息物体的单击和双击操作,操纵手势用于对全息物体的移动和缩放,导航手势用于对全息场景的旋转;语音设计主要是将特定的语句、短语与相对应的程序绑定,并存入哈希表当中,当系统捕捉到语音时,自动向哈希表查询相匹配的语音,执行对应的程序以实现通过语音控制应用程序.

图2 交互设计逻辑关系图Fig.2 Logic diagram of interactive design

1.3 AR-3DUIS应用部署层

AR-3DUIS应用部署层提供将AR-3DUIS应用部署到HoloLens设备的方法,部署时需要建立HoloLens与开发者工具Visual Studio 2015 Upadate 3之后的专业版/企业版/教育版或者Unity3D引擎之间的连接.通过Visual Studio部署AR-3DUIS应用有两种方式,通过Wi-Fi或者USB部署.通过Wi-Fi部署的步骤如下:①在HoloLens设备上开启开发者模式;②将Visual Studio编译配置设为x86;③部署目标选择远程机器(Remote Machine);④输入设备IP地址或者设备名称;⑤第一次部署应用到HoloLens上,需要验证PIN码.通过USB部署与通过Wi-Fi部署类似,无需步骤③.另外,通过Unity3D部署AR-3DUIS应用,主要是利用Holographic Remote Player技术,通过该技术可以实现将全息应用程序部署并运行在PC计算机上,计算机将渲染计算之后的全息影像通过Wi-Fi并以帧的形式传给HoloLens,HoloLens只负责显示以及对用户手势和语音等交互信息的捕捉并实时传输给PC计算机.通过这两种方式可以实现将AR-3DUIS应用部署到HoloLens上,利用HoloLens渲染三维城市地理信息,用户可以与AR-3DUIS应用以自然的人机交互方式(手势、凝视、语音)进行交互.

2 AR-3DUIS实验结果与讨论

本文基于CityEngine 2014.0 example中提供的旧金山基础地理数据以及微软的全息眼镜HoloLens开发者版本,开展了基于增强现实与三维城市信息系统集成的实验.实验目标如下:①通过空间映射技术将虚拟三维旧金山数字城市中引入真实的物理世界,虚实结合融为一体;②利用HoloLens 3D立体显示技术为用户带来全新的真三维的视觉体验;③通过凝视、手势、语音等自然的交互手段操纵全息数字城市,改变传统的三维地理信息系统的交互方式.实验主要内容如下:

2.1 虚实融合

如图3所示是数字旧金山引入物理世界的示意图,是全息数字城市与物理世界叠加融合为一体的结果.虚拟数字城市与物理世界的融合是基于空间映射技术,空间映射是将真实环境的环境信息扫描数字化到设备中,使得全息数字城市可以识别真实的物理场景,从而达到可以将虚拟对象与真实世界相结合的效果.如图4所示是空间映射流程图,具体实现步骤如下:①基于规则实现快速三维城市建模,获取实验需要的三维城市地理场景;②通过内置于Unity3D的Holotoolkit SDK为该三维地理场景创建Surface Observer对象,该对象调用SetVolumeAsSphere、SetVolumeAsAxisAlignedBox、SetVolumeAsOrientedBox、或SetVolumeAsFrustum方法为三维城市地理场景Surface Observer对象指定需要的空间范围,渲染出一个围绕全息三维城市场景的立方体边框,以显示数字城市映射时的实际尺寸;③实时监测Surface Observer对象区域中空间表面发生的变化,针对不同的状态(Add/Update状态和remove状态),指定对应事件的处理方法;④通过HoloLens对物理空间扫描数字化之后与三维城市的Observer Surfaces对象做空间运算,判断物理空间能否容纳三维城市虚拟场景.具体的空间运算步骤如下,首先,通过从observer surface立方体的中心和边界4个角进行光线投射,确定全息三维城市是否匹配到了物理表面上;然后,检查物理空间表面法线以确定它是否足够平滑以使全息三维城市齐平,若可以则完成三维场景跟踪注册,实现虚拟数字城市与物理空间的融合.

本实验通过空间映射技术实现的增强城市信息系统(AR-3DUIS)相比于传统的3DUIS具有如下特殊功能:①AR-3DUIS中数字旧金山中的地理场景和物体是通过用户周边世界的光线和声音所创建,所以它是物理世界中的一部分,具有虚拟对象真实感官特性;②可交互性:AR-3DUIS应用中的数字城市能够响应用户的凝视、手势和语音指令.该数字城市除了能与人发生交互,同时作为物理世界的一部分也可以与物理世界的表面发生交互;③深度信息和视角信息:当AR-3DUIS中的数字城市被放置在物理世界时,该数字城市便具有深度信息和视角信息,用户与数字城市实体距离和角度是可量测的;④空间持久性:用户使用空间锚点将数字城市插入现实世界中,当用户重新返回的时候,该数字城市依然保持在原来放置的位置.

图3 将虚拟三维城市嵌入现实世界Fig.3 Embed virtual 3D city in the real world

图4 空间映射流程图Fig.4 Flow chart of spatial mapping

2.2 人机交互方式

本实验AR-3DUIS应用实现了凝视、手势和语音等自然人性的人机交互方式,3种交互方式中凝视用于捕捉用户视线与数字旧金山碰撞的具体位置,手势以及语音交互用于实现对捕捉点所在的地理实体的操作.人机交互的具体实现是基于Unity3D游戏引擎,每种交互方式的实现过程如下:①凝视设计:凝视是通过用户头部的位置(UnityEngine.Camera、main、transform、position)和方向(UnityEngine、Camera、main、transform、forward)并调用Physics.RayCast发出射线后得到射线与全息数字场景碰撞的结果,该结果包含了碰撞点的3D位置参数和碰撞对象,通过3D位置参数生成凝视的图标,实现对凝视的响应.如图5所示是凝视示意图,蓝色小圆圈所在的位置表示用户视线在数字旧金山中变压器上的位置,用于实现对用户视线的反馈.②手势设计:手势识别可以通过HoloLens提供的高级API实现,首先,创建手势识别GestureRecognizer实例;然后,为该对象注册指定的手势类型(GestureSettings.Tap、GestureSettings、Hold和Navigation Gesture等手势);之后,为每一种手势类型订阅手势事件和方法;最后,手势识别对象GestureRecognizer实例开始手势识别.如图6所示是通过手势查看三维数字城市中的实体变压器零件信息的示意图,手势交互是在凝视的基础上实现的.本实验主要实现了air-tap、Navigation Gesture和Manipulation3种方式,其中,air-tap方式实现对数字旧金山具体实体的查询;Navigation Gesture方式实现对数字场景的旋转,方便用户从不同的角度浏览数字旧金山;Manipulation方式用于对数字场景的缩放,实现用户从不同的尺度浏览数字旧金山.

图5 凝视示意图Fig.5 Gazing sketch map

图6 手势与语音查看全息物体的属性Fig.6 The properties of a holographic object with gestures and speech

2.3 讨论

本文实验实现了将增强现实技术应用于三维城市信息系统,通过Microsoft HoloLens头戴设备,将三维数字城市映射到物理世界当中,提供给用户真三维数字城市的视觉体验,并且用户能感知数字场景中的深度信息和视角信息.虽然本文实现了将AR应用于3D UIS,但也存在技术上的限制与不足,具体如下:

1)HoloLens渲染能力有限,为了兼顾ATOM处理器和本身的性能,微软对HoloLens应用程序的大小进行了限制,所以,AR-3DUIS应用程序不能超过900MB.

2)开发AR-3DUIS应用有两种方式,采用Unity3D游戏引擎和Holographic DirectX3D API.基于Unity3D可以实现快速开发AR-3DUIS应用,但该开发方式会受制于Unity3D;基于Holographic DirectX3D API,缺少人机交互的基础类库,需要从底层设计人机交互接口,开发难度系数较大.

3)AR-3DUIS应用适合第一人视角,也可以采用第三人称浏览,对比两种视角,后者的视觉效果不如前者.第三人称视角依赖于HoloLens Mixed Reality Capture系统,该系统采用的是200万像素的RGB摄像头.本文实验截图是通过第三人称捕捉的视屏流获得,画面像素低质量差,画面质量不如直接穿戴HoloLens全息眼镜.解决第三人称视角像素的问题可以采用Spectator View对增强现实画面拍摄,该方法需要两台HoloLens、一台可以输出HDMI的摄录设备和一套高性能的计算机系统,采用该方法其输出画面分辨率可以达到1080p甚至4K左右.

3 结束语

本文提出的基于AR的三维城市信息系统设计方法,以Unity3D游戏引擎为核心开发平台,以HoloToolkit为开发包,以增强现实设备HoloLens为应用展示平台,改变传统的三维城市信息的载体和视觉体验,从二维的电脑屏幕视角到增强现实眼镜HoloLens三维的全息视角,使得UIS用户能体验真正的3D UIS;另外改变UIS的体感和交互方式,从传统的鼠标和键盘的交互转向凝视、手势和语音的交互方式.未来对于AR-3DUIS的研究将集中关注以下方面:①将地理分析模型、空间分析服务集成到AR-3DUIS当中,丰富增强城市信息系统的计算分析能力,使其能动态展示城市演变的过程;②建立城市信息系统与增强现实之间通用的数据接口和标准,降低两者数据格式转换带来的成本.

猜你喜欢

全息手势部署
全息? 全息投影? 傻傻分不清楚
一种基于Kubernetes的Web应用部署与配置系统
晋城:安排部署 统防统治
部署
全息欣赏:小学美术“欣赏·评述”学习新样态
挑战!神秘手势
V字手势的由来
胜利的手势
全息技术在公共景观设计中的应用研究
部署“萨德”意欲何为?