增强现实技术在移动GIS系统中的实现

2014-05-30 22:24王俊李明建邹扬庆罗红霞
安徽农业科学 2014年9期
关键词:视图摄像机坐标系

王俊 李明建 邹扬庆 罗红霞

摘要针对传统GIS应用信息显示直观性不强的缺点,在GIS应用中引入增强现实技术,研究了地理要素实现增强现实显示的关键技术及方法,并以Windows Phone开发平台为例,实现了具有地理坐标信息的地理要素的增强现实显示系统。结果证明,增强现实技术与GIS的结合能够很好的将真实环境与虚拟地理要素信息融合起来,使得地理要素的识别更具直观性。

关键词 增强现实;GIS;地理要素;虚实融合

中图分类号S127文献标识码A文章编号0517-6611(2014)09-02783-03

作者简介王俊(1988- ),男,河南信阳人,硕士研究生,研究方向:遥感与GIS开发及其应用。*通讯作者,副教授,博士,从事生态、环境与遥感GIS应用。

GIS系统中最常用的一项功能就是基于地理位置的搜索,然而传统的GIS搜索主要是在二维平面地图上进行,搜出的结果也被标注在二维平面地图上,需要人为的参与标识物的辨别,由于直观性不强,对于地理知识较弱的人们在识别上有一定的困难,甚至专业人员在复杂的环境下识别也会有一定的难度。近些年来,随着三维GIS的发展,通过建立真实环境的三维虚拟模型代替二维地图[1],在标识物辨别的直观性上取得较大进步。虽然三维GIS在GIS可视化研究上取得了一定的进展,但是三维虚拟模型的创建在人力、物力上耗费巨大,同时对承载GIS系统的硬件要求也较高,以及同真实环境相比在颜色、光泽、材质等特性上有一定的差异,无法满足人们直接与真实环境交互的愿望。其实真实环境本身就是一个复杂的“三维空间地图”,如果把真实环境作为GIS操作的窗口,将虚拟信息标注在真实环境上,将会大大提高地理要素辨别的直观性。

这种假设可以通过引入增强现实(Augmented Reality,简称AR)技术实现,增强现实技术是一种通过将计算机产生的图形、文字注释等虚拟信息有机地融合到使用者所看到的真实世界景象中,对人的视觉系统进行景象增强或扩张的技术[2]。通俗地讲,就是当使用者打开增强现实应用后,就会看到摄像头所拍摄的真实世界视频流,同时在视频流里面还可以看见相关虚拟图形和文字信息叠加在相关物体上,从而使真实世界更加丰富和多样化。增强现实技术的发展经历了从早期在室内研究、采用设备昂贵、不灵动以及特定用途领域如军事、医疗[3]等向室外研究、采用设备便宜便携的移动端以及大众化应用方向发展。增强现实技术的大众化应用得益于移动终端设备的發展和普及,尤其是以智能手机终端为代表的移动设备的发展和普及,其强大的传感器、GPS和指南针等功能的终端完全满足了增强现实技术的硬件要求[4]。

由于增强现实技术直接把真实环境作为视图背景,省去了复杂三维模型创建,提高了人与真实环境之间的互动,同时移动终端如智能手机的发展为在其上创建增强现实应用提供了条件。基于此,笔者针对目前传统GIS信息显示直观性不强等缺点,在GIS系统中引入增强现实技术,研究了如何实现GIS系统中地理要素的增强现实实现关键技术与方法,同时以Windows Phone开发平台为例,实现了具有地理坐标属性的地理要素的增强现实显示系统。

1关键技术研究

实现GIS系统地理要素的增强现实显示,其关键技术是如何实现把计算机产生的图形、文字等虚拟信息叠加到真实环境中,即虚实融合技术。目前,实现虚实融合技术的方法主要有基于硬件跟踪器的注册方式、基于视觉的图像注册方式、混合注册方式3种。该研究考虑到移动GIS地理要素离不开地理位置的支持,而智能移动手机终端配有加速计、陀螺仪等传感器可以完美地支持AR技术等特性,将采用基于硬件跟踪器的图像注册方式完成虚实融合。基于硬件跟踪的图像注册方式撇开了复杂的图像匹配算法计算,根据摄像头的位置和姿态数据能够快速确定虚拟物体在真实环境中的位置,降低系统的延迟性,能够很好地适应智能手机终端配置要求[5]。

完成虚实融合需要涉及到世界坐标系、摄像机坐标系(视图坐标系)、虚拟物体空间坐标系、投影平面坐标系、屏幕二维平面坐标系5个坐标系之间的变换。如图1所示,x、y、z表示世界坐标系;ε、η、δ表示虚拟物体空间坐标系,该坐标系用来对所添加的虚拟物体进行几何描述;x′、y′、z′(左手坐标系)表示摄像机坐标系,此坐标系的o′、z′轴与观察者视线方向重合;u、v 是一个二维平面坐标系,表示投影平面坐标系并且和屏幕坐标系处于同一平面,垂直于o′、z′轴投影面,即为观察者看到的画平面[6-7]。

2增强现实在GIS系统中的实现

在GIS系统中,增强现实的实现需要经过这样的一系列流程,如图2所示。首先作为GIS应用的窗口,必须要有与真实世界交互的窗口,因此获取摄像头应用权限,获取视频源显得尤为重要;其次,需要提供设备准确的地理位置和姿态数据,以便正确地叠加虚拟物体,这两项数据可以通过设备的GPS和电子罗盘数据获取;接着根据摄像机视角建立相机坐标系下的取景范围,并判断虚拟物体是否在取景范围内。如果在取景范围内则对虚拟物体进行渲染,然后输出图像并显示;如果不在取景范围内,则虚拟物体不显示并实时根据设备的位置和姿态再次进行判断。

2.1相机取景范围的建立摄像机的取景范围,简单来说就是摄像机能够捕获的真实世界范围,可以通过定义两种矩阵实现,分别为视图矩阵和投影矩阵。视图矩阵也称作摄像机矩阵,主要是描述摄像机的位置、摄像机朝向的目标位置、向上的方向信息,主要功能相当于把摄像机固定下来;投影矩阵用于描述摄像机的视角、成像的长宽比、投影参数这3个属性,相当于把镜头和像纸信息固定下来。

在计算机编程中,可以使用XNA类库中Matrix类来创建这两种矩阵,Matrix类提供了一组以Create开头的静态方法用于创建所需要的矩阵类型,视图矩阵可以使用Matrix类中的CreateLookAt()方法创建,方法原型为:public static MatrixCreateLookAt(Vector3 cameraPosition,Vector3 cameraTarget,Vector3 cameraUpVector)。该方法中定义的3个参数分别对应前述的摄像机位置、朝向的目标位置、向上的方向3种信息。

同样,投影矩阵也可以通过Matrix类提供的CreatePerspectiveFieldOfView()方法来创建,方法原型为:public static MatrixCreatePerspectiveFieldOfView(float fieldOfView,float aspectRatio,float nearPlaneDistance,float farPlaneDistance)。该方法定义了4个参数,参数fieldOfView为视角,也就是可视范围,以弧度制来表现,通常设为π/4;参数aspectRatio为成像的长宽比,一般通过获取视频源区域view的长宽比来设定,这里并不是屏幕的长宽比;参数nearPlaneDistance为摄像机能够观察到的最近距离,可以通过查看摄像机参数信息获取;参数farPlaneDistance为摄像机镜头能够观察到的最远距离,同样通过查看摄像机参数信息获取。

2.2判断虚拟物体是否在取景范围内视图矩阵和投影矩阵的定义确定了摄像机的取景范围,在判定虚拟物体是否在取景范围之前,还需要引入世界矩阵。世界矩阵的主要作用是确定虚拟物体在世界空间坐标系里面的相对位置,在XNA中世界矩阵使用Matrix类中CreateWorld()方法创建,方法原型为:public static MatrixCreateWorld(Vector3 position,Vector3 forward,Vector3 up)。该方法中定义了3个Vector3参数,其中第1个参数position表示虚拟物体在世界中所处的三维坐标,一般设置为系统默认的(0,0,0),也就是坐标原点;第2个参数forward表示虚拟物体的朝向向量,一般根据虚拟物体的朝向确定;第3个参数up表示哪个方向是虚拟物体的向上方向,一般设置为(0,0,1),也就是Y轴正方向。

定义好世界矩阵后,结合前面定义的视图矩阵和投影矩阵一起将虚拟物体进行投影变换,变换方法采用Viewport的Project()方法,原型為:public static ViewportProject(Vector3 source,Matix projection,Matrix view,Matrix world)。该方法中参数source为虚拟物体在世界中所处的三维坐标,参数projection、view与前面定义的投影矩阵和视图矩阵相同,而参数world与所定义的世界矩阵并不相同,而是世界矩阵与姿态矩阵相乘后的矩阵,这是因为在晃动或者翻转手机的时候空间在不断的变换。世界矩阵在和前面获取的姿态矩阵做乘积运算时先要对姿态矩阵进行绕X轴90°的旋转变换,目的是让姿态矩阵坐标系同XNA右手坐标系相同,从而达到正确坐标转换。该方法返回一个Vetctor3对象,其中X、Y为已经投影到Viewport上的点坐标,Z值表示该点的深度,如果该值<0或者>1,则该点位于相机“后面”,将无法观测到;如果该值≥0且≤1,则该点位于相机“前面”,也就是处在视野范围内。通过上述方法可对可视的虚拟物体进行正确的叠加处理。

叠加出虚拟物体正确的位置后,为了使虚拟物体与真实的环境更加融合,还需要对虚拟物体进行相关的渲染,在XNA中可以利用BasicEffect类来对叠加的虚拟物体的颜色、光线等特效进行渲染控制。最后把渲染好的虚拟物体正确地输出显示,便完成了系统的增强现实显示功能。

3增强现实在移动GIS系统中应用实例

以Windows Phone开发平台为例,实现了基于位置图像注册的增强现实GIS系统测试版,测试版系统的主要功能为获取用户周围具有地理坐标位置的要素(在此以查询周围餐饮要素为例),分别以二维地图方式和增强现实方式显示,系统的地图服务采用微软的必应中国地图服务,测试机采用Windows Phone操作系统的三星S7530E,地点位于重庆市沙坪坝上桥新街。

首先,在Windows Phone虚拟机上运行程序,通过Bing Map的Search WebService获取用户周围100 m范围内的餐饮店,分别在二维地图和真实环境中显示。如图3所示,屏幕中间的黑色点为当前所在的位置,红色标注为查询出来的餐饮店名称以及位置,屏幕上方为增强现实显示模块;由于虚拟机无法进行摄像头的模拟,所以增强现实模块显示在屏幕上方,二维地图显示,可以根据屏幕下方的button按钮进行控制,屏幕右上方的圆形为手机当前相对于地图位置的朝向,有了它就可以很快辨别出在真实环境中运动的方向。

4结论

增强现实技术与移动GIS的结合,使得地理要素的识别更具直观性,提高了人与真实环境的互动性。由于两者的结合受到GPS定位精度与网络信号稳定的限制,在实际使用中虚拟物体的显示会有一定的误差,同时受到智能手机硬件的限制,地图的刷新和虚拟物体的显示会有一定的延迟。此外,该研究仅实现了基于地理位置点状要素的增强,缺少三维物体的增强显示,在接下来的研究中,将研究三维物体在增强现实GIS系统中的实现。

猜你喜欢
视图摄像机坐标系
解密坐标系中的平移变换
坐标系背后的故事
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
基于重心坐标系的平面几何证明的探讨
摄像机低照成像的前世今生
新安讯士Q6155-E PTZ摄像机
如何消除和缓解“摄像机恐惧症”