全景图像与GIS集成技术研究

2013-08-06 15:26李石磊杜明义刘艳巍于晓坡
城市勘测 2013年4期
关键词:球面全景投影

李石磊,杜明义,刘艳巍,于晓坡

(北京建筑工程学院“现代城市测绘”国家测绘地理信息局重点实验室,北京 100044)

1 引言

目前GIS技术发展迅速,已经在社会生活中的各个领域得到了广泛应用。但传统二维地图只对处于三维空间中的各种地理对象全部进行向二维平面投影的简化处理,导致第三维方向(即垂直方向)上的几何位置信息、空间拓扑信息和部分语义信息的损失,不能完整地反映客观世界,同时二维地图的抽象多义性,给我们认识空间信息带来了一定的困难[1]。而传统的三维地图一般采用对空间实体进行构建三维模型达到三维的效果。但建立三维模型工作量大、建设周期长、制作成本高、不利于在网络上传输。

而使用全景图像构建出的三维场景具有真实性强、对播放设备要求低、开发周期短、交互性强、画面质量高等特征,并且它以占98%网络播放市场的Flash播放器为载体,对真实场景拍摄捕捉,可以观看整个场景空间的所有图像信息,无视觉死角,用户可通过鼠标任意放大缩小、随意拖动,以多角度、全方位和动态的形式体现在地图上,使人们在查询GIS空间信息的同时提供图文并茂的空间位置上地理实体的信息。本文以北京市西城区城市运行管理系统影像管理平台开发为例,全面阐述全景影像与GIS的集成的实现方法。

2 全景图像

2.1 全景图像的定义及分类

全景图像是一种全新的图像组织模式,指视点固定,视线向任意方向运动时所观察到的图像,它记录了虚拟相机运动时从各个方向上所能获得的图像,可描述完整的周围环境信息[2]。

根据全景图像分辨率的不同,可以把全景图像分为单分辨率全景图像和多分辨率全景图像。利用数码相机单次采集的图像就是单分辨率全景图像;而通过改变焦距多次采集的图像是多分辨率全景图像,多分辨率图像比单分辨图像具有更好的不同尺度的分辨率。而根据图像投影方式的不同,全景图像可以分为柱面、球面和多面体全景图像三大类,这三类图像分别把视点空间看做是圆柱体、球体和多面体[3-4]。

(1)柱面全景图像

该全景图像在水平方向的视角是360°,但由于没有上端和下端两部分场景,用户不能在垂直方向进行观看,所以柱面全景图像垂直视角小于180°。

(2)球面全景图像

把普通照相机拍摄到的图像经过拼接形成一个球体的形状,即是球面全景图像,其视角是全视角(即360*180)。

(3)立方体全景图像

以景物中心作为固定点来观察整个地理空间中的实体场景,并将周围场景的图像信息记录在以该点为中心的立方体上,即是立方体全景图像。立方体全景图像是由6幅广角为90°的图像组成。

因柱面全景图像垂直方向视角受到限制,虽然立方体全景图像在构建虚拟环境时速度和质量都较高,但是其图像的获取较为困难,鉴于以上原因本文以球面全景图像为例,结合现有项目的开发来阐述与GIS的集成。

2.2 球面全景图像的投影原理

球面全景图的投影是将鱼眼照片上的点映射到球面模型上(如图1所示),所有的投影线都是与球面垂直的,所以没有如传统平面图像中的光轴[5],球面视图中每个可见的空间点,在球面投影中都能被展现出来。

图1 球面投影

如图1所示,球的半径为f,假设相机位于球体中心,相机投影的方向由极角θ(如图1,相机视线与Z轴的夹角)和方位角φ(如图1,相机视线在XY平面内的投影与X轴的夹角)来决定。在球面投影中,球面坐标系与相机坐标系是一样的。如果P在世界坐标系中的坐标为:

由此,我们可以通过该公式算出全景图像上任意点在该球面中的投影点p的坐标。

2.3 全景图像的制作

全景图像的制作过程主要有三步:首先拍摄所需要的全景图像,其次将图像按照一定的投影方式进行投影,最后拼接成全景图像。全景图像的制作流程如图2所示。

(1)全景图像的拍摄

普通相机拍摄球面全景图像时,首先把相机固定在三脚架上,以相机的镜头为旋转中心,分别以世界坐标系中的X轴和Y轴为旋转轴,旋转相机进行拍摄。具体可以采用如下:首先将相机向上仰起60°,平转相机一周进行拍摄;然后平放相机,再平转相机一周进行拍摄;最后将相机向下倾斜60°,平转相机一周进行拍摄。通过上述方法就可以完整地采样视点空间中的所有景物信息。也可以利用专业的全景照相机进行拍摄[7]。处理好的全景图像如图3所示。

图2 全景图像制作流程

图3 全景图像

(2)全景图像生成

如果是普通设备采集到的图像,需要经过全景拼接和图像融合才能得到全景图像。全景图像拼接首先对拍摄到的照片进行投影,使它们按照一定的投影方式投影到统一的参考系中,参考系有立方体、圆柱形、球形等,这样投影过的照片就有了统一的空间参考;其次,提取和匹配重叠区域的特征点,通过重叠的特征点对图像重叠区域进行融合;最后,如果拍摄过程中有噪声点以及光线强弱不均匀等原因造成的图像丢失,还要通过图像处理软件(例如Photoshop)对图像缺失部分进行修复等。如果开发中需要对全景图像进行切片,还应执行对图片的切片操作以及处理图片间的过渡效果等。

如果是专用设备采集到的全景图像,需要制定适用于全景图像、空间定位数据以及GIS地图数据一体化处理的流程与规范,例如空间定位数据与道路数据的容错尺度规定与拟合算法、GPS点的抽稀和内插、每个GPS点的视线角度计算、道路交叉口的多方向全景数据调度、根据时间匹配原则对GPS数据与全景数据进行选取等[8]。

3 全景图像与GIS的集成

3.1 全景图像数据预处理

全景图像与GIS集成前,我们需要对全景图像数据进行数据预处理,全景图像预处理是指对全景图像的空间数据和属性数据进行分类、编辑、存储以及建立全景图像数据库的过程。全景图像数据主要包括空间数据和非空间数据,空间数据主要包括全景图像空间位置信息,非空间信息主要包括全景图像的编号、采集时间、采集地点以及各种文档和报表等。全景图像数据结构表设计如表1所示。

全景图像数据表结构 表1

由于本文研究的全景图像具有GIS空间地理位置信息,全景图像数据存储采用SQL Server 2005对数据进行分类管理,即将全景图像的属性文件与时空数据分开存储,用中间键进行关联。全景图像数据存储结构如图4所示。

图4 全景图像数据库数据存储结构

此外,在对全景图像数据进行分类、编辑时,要选择合适的存储数据类型来组织数据。常用的数据存储文件类型有二进制文件、文本文件、XML文件等。由于XML文件是一种严格的标记文件,层次性强、表现直观,本文采用XML文件组织全景图像数据,以Flex为开发平台,来实现基于球面三维场景的实现。

3.2 利用Papervision3D实现基于球面三维场景

本文以Eclipse作为开发环境,使用Flex和Papervision3D技术来完成球面全景图像三维场景的显示。Papervision3D是基于ActionScript的开源项目,目的在于实现绚丽美观、功能强大的Flash3DWeb应用程序,是著名的Flash3D免费开源引擎。同时,Tween-Lite类也是ActionScript开源项目中的一个类库,它是一个快速的、高效的缓动引擎,实现对象随时间推移模糊、渐变、旋转等多个属性的功能,用它对全景图像播放时进行美化。

Papervision3D成像主要元素是3D对象(Display-Object3D),摄像机(Camera),材质(Material),场景(Scene),视点(Viewport),渲染引擎(Render)等。Papervision3D成像示意图如图5所示。

图5 Papervision3D成像示意图

实现基于Papervision3D全景图像的展示,首先要对全景图像进行动态渲染,即将全景图像作为纹理应用于Papervision3D创建的球面对象(Sphere)上,Papervision3D创建的球面是一个虚拟的场景,在此虚拟场景里可以定义视点的位置,场景的大小,浏览的方式以及加载的顺序等,具体过程如图6:创建一个球Sphere对象;将全景图像作为Sphere对象的纹理给球体添加纹理材质,即创建了一个有纹理的立体球;在球体中心放置镜头,设置鼠标与虚拟场景的交互动作,用鼠标来控制镜头的视角,即可实现全景图像与用户的漫游式交互。

图6 基于papervision3D的全景图像渲染过程

全景图像通过papervision3D渲染展示后,我们在开发过程就可以以全景图像名称组成的XML文件作为参数将全景图像与GIS二维地图关联起来。

3.3 全景图像与GIS集成关键技术

本文结合现有项目,以北京市西城区ArcGIS数据作为底图数据,以 ArcGIS9.3、ArcGIS Server9.3、IIS6.0、SQL Server2005、Tomcat6.0、Ladybug3、Adobe Flash Builder 4 为技术手段来阐述全景图像与GIS集成的关键技术。

首先,Ladybug3全景相机采集的全景图片是由图片和属性文件组成。其全景图片的命名方式也具有一定的特点,形如“20120726-X-39.123-Y-116.452-1236001.jpg”,其中名称中“20120726”是相机采集的时间,“X-39.123-Y-116.452”为相机采集地理空间实体的地理坐标,“1236001”为采集图片的流水编号;除此以外,还有一个属性文件,此文件详细记录了相机采集的时间、坐标、流水号、采集的距离、相机的设置参数等。

其次,将全集相机采集的全景图片的属性信息和空间信息存入到数据库SQL Server2005。由于SQL Server2005是关系型数据库,不能满足存储GIS空间拓扑关系的需要,这里我们采用分别存储,即将全景图片的属性信息和空间信息分开存储,然后用中间键进行关联。

再次,处理地图底图数据,发布基于ArcGIS Server9.3 for Flex的地图服务。这里我们将北京市西城区的底图数据用ArcGIS9.3处理后,如图7所示。

图7 处理后的GIS底图

图7中,我们可以看到全景线(可以选择性显示),即图中每个点便对应一张全景图像。之后将其保存成.mxd格式文档,用ArcGIS Server9.3将处理好的地图发布成Mapping地图服务,这样我们就可以将地图在B/S架构的环境中进行调用。发布后的地图服务包括地图底图服务(如图8)和单图层服务(如图9)。

图8 地图底图服务

图9 单图层服务

最后,我们将Ladybug3全景相机中的属性文件组织成XML文件,本XML文件包含图片名称、图片采集地理坐标、图片采集时间、图片流水号,将其发布在IIS6.0下面,以提供WebService服务。此时,以Adobe Flash Builder 4作为开发平台,分别调用已发布好的地图服务和属性文件,准备将GIS与全景图像结合。

全景图像与GIS结合,分成单点全景影像与GIS的结合和连续全景与GIS的结合。无论单点全景影像还是连续全景影像,与GIS结合的方式有两种:一是利用地理坐标与GIS结合,二是利用全景图像拍摄的时间作为时间轴与GIS结合。全景图像、papervision3D、GIS三者的关系如图10所示。

图10 全景图像、papersion3D、GIS三者的结合的关系

在基于全景图的三维场景做好的基础上,确定三维场景所在的地理位置,然后在GIS提供的二维地图上根据场景的地理坐标添加三维实景场景,这样全景图像就与GIS二维地图对应了起来,就实现了定位到地图上的某一点直接查看该点的全景图像,如图11所示。

图11 全景图像与GIS二维地图关联

另外,在全景图像与GIS结合过程中,由于全景点在拓扑道路上并不是连续的点(如图12),而是一个个相邻的单独点,为了保障全景图像的连续性播放,需要让按照一定距离进行采集全景图像的相邻路段在拍摄全景图像时具有一定的重合度,并以此种方式在路段上连续推进采集。例如线段1~2间显示全景1的数据,从点2到点3显示点2的数据,这样在播放中便能使全景图像连续。

图12 拓扑道路上的全景点

如果以全景图像的拍摄时间作为时间轴来连续播放全景图像,我们可以将全景图像的拍摄时间作为GIS与papervision3D展示的桥梁,以这种方式来展示在GIS项目开发和应用中重点关注的对象。但此种方法不容易与GIS空间信息相关联,如果要与GIS二维地图位置信息相关联,得将全景图像相应的位置建立时间与位置的属性表,实现以拍摄时间和定位位置信息相关联。按照时间播放全景图像如图13所示。

图13 以时间顺序播放全景图像

4 结语

本文以全景图像在北京市西城区城市运行管理系统影像管理平台中的开发为例,阐述了全景影像的制作、全景影像的展示、与GIS的集成以及全景影像在GIS中的应用,文章最后展示了利用此技术将北京市街景(它也是球面全景图像)应用到已开发系统中的实例,实现了北京市西城区主要道路和著名景点的全景图像全覆盖。全景图像与GIS的集成解决了传统二维地图中可视化的缺陷,更利于以B/S模式在网络上传输,提供给人们身临其境的三维效果,丰富了GIS应用查询方式。

[1]黄健熙,郭利华,龙毅等.二维地图与三维虚拟场景的互响应设计与实现[J].测绘信息与工程,2003,28(1):33~34.

[2]张茉.基于计算机的数字重构全景成像技术研究[D].长春:长春理工大学,2009:8~20.

[3]董雪琴,刘士华.用全景图来构建虚拟现实系统[J].凉山大学学报,2001,3(4):17 ~19.

[4]吴霞.广域网监视系统中的全景图生成技术研究[D].南京:南京理工大学,2008:20~22.

[5]Shigang Li,Fukumori K.Spherical Stereo for the Construction of Immersive VR Environment[C].IEEE Virtual Reality 2005 Conference.Bonn,Germany:IEEE Computer Society Visualization and Graphics Technical Committee,2005:217 ~222.

[6]杨燕,王雪瑞,戴青等.球面全景图像生成技术的研究[J].计算机应用与软件,2007,24(10):164~165.

[7]冯海波.虚拟全景空间生成技术研究与实现[D].成都:电子科技大学,2007:10~40.

[8]李海亭,张淼,彭清山.城市地理信息系统中的全景地图技术研究[J].城市勘测,2011(3):40~41.

猜你喜欢
球面全景投影
关节轴承外球面抛光加工工艺改进研究
解变分不等式的一种二次投影算法
戴上耳机,享受全景声 JVC EXOFIELD XP-EXT1
基于最大相关熵的簇稀疏仿射投影算法
转体桥大直径球面平铰底部混凝土密实度控制
球面检测量具的开发
找投影
找投影
深孔内球面镗刀装置的设计
全景敞视主义与侦探小说中的“看”