2. 西南交通大学地球科学与环境工程学院,四川 成都 611756;
3. 武汉市国土资源和规划信息中心,湖北 武汉 430014
2. Faculty of Geosciences and Environmental Engineering, Southwest Jiaotong University, Chengdu 611756, China;
3. Wuhan Land Resources and Planning Bureau, Wuhan 430079, China
1 引 言
传统二维正视地图难以对空间对象间的垂向关系进行有效表达,无法有效表达建筑物高度和立面纹理信息[1, 2, 3, 4],而基于B/S模式的三维地图在效率等方面具有较大的技术难度,且成本较高[5]。高效直观的侧视地图(也被称为三维仿真地图、2.5维电子地图等)在网络环境下的大众化应用日益普及[6, 7, 8],典型的侧视地图网站有E都市和都市圈等。侧视地图是固定视角下的三维地图(对三维城市模型进行投影变换所产生的具有三维视觉效果的二维地图),其本质为栅格图像,无法直接操作单个对象。但作为面向公众服务的地图产品,必须对每个建筑物标注必要的个性化属性信息才更有价值,这就需要在栅格地图上叠加建筑物的范围轮廓矢量线(文献[8, 9]将其称为热区)。
目前,侧视地图中建筑物的轮廓线通常都是人工交互提取的,且轮廓较为粗糙。面对一个城市范围海量的建筑物模型,人工交互提取城市侧视地图上的建筑物轮廓线已明显不能满足要求,亟须自动提取的方法。
针对在侧视地图上自动提取建筑物轮廓线的问题,首先会想能否借鉴在航空影像上提取建筑物轮廓线的方法,因为同样是栅格图像且内容相近。但现有基于高分辨影像自动提取建筑物轮廓的方法[10, 11, 12, 13],都是针对建筑物顶部轮廓的,无法适用于任意视角下建筑物轮廓线的提取。城市侧视地图包含丰富的内容,单纯基于侧视地图难以自动精确提取建筑物轮廓线[12]。越来越多的城市都已经建立了日益精细化的三维城市模型,本文充分利用三维城市模型数据,提出一种自动提取侧视地图中建筑物轮廓线的方法。
2 侧视地图中建筑物轮廓线提取方法首先,基于投影空间分块加载三维城市模型。再利用深度缓冲区分割算法,获得顾及建筑物遮挡的单个建筑物对象(若存在建筑群,则先将建筑群内的各单体建筑聚合成一个复杂对象)的颜色缓冲区,实现当前提取对象与周围环境的分离。然后,再基于单个对象的颜色缓冲区提取建筑的轮廓线。最后,利用基于投影空间分块加载三维城市模型所带来的便利,将基于屏幕空间的轮廓线与侧视地图进行分块匹配。
对比先提取单个建筑物对象的完整轮廓线,再利用建筑物间的遮挡关系,生成顾及遮挡的轮廓线的方法,本文方法较突出的优点是无论建筑物间的遮挡关系多么复杂都能统一处理。譬如,建筑物A既遮挡了建筑物B又被建筑物B遮挡。
2.1 建筑物轮廓线提取的算法流程本文方法流程如图 1所示,包括以下内容:
(1) 基于投影空间分块加载三维城市模型。一次性将一个城市范围内的三维城市模型都加载至计算机内存是不必要的。分块加载三维城市模型数据就显得较为合理。为确保分块投影后拼接成的二维图形与全部投影后的二维图形(侧视地图)一致,也就是建筑物间的遮挡关系不会发生改变,本文提出了基于投影空间分块加载三维城市模型的方法。依据侧视地图的空间分辨率及帧缓冲区大小确定投影空间中分块的大小。利用基于R树索引的三维可视化查询方法,查询投影空间各分块所包含(全部包含及部分包含)的三维城市模型,加载查询结果至内存。
(2) 深度缓冲区分割算法,利用两次渲染来实现当前提取对象与周围环境的分离。该算法能够充分考虑当前提取对象被周围其他建筑物间遮挡及提取建筑群的范围轮廓线这两个情况。
(3) 获取分离出的单个建筑物对象的颜色缓冲区,将其二值化,再基于二值图像追踪建筑物的轮廓线。
(4) 消除分块拼接处的重复轮廓线并将提取的建筑物轮廓线与侧视地图匹配。基于投影空间分块加载三维城市模型的方法不仅能够保持与整体投影后一致的遮挡关系,而且能够实现建筑物轮廓线与侧视地图分块匹配,降低了匹配的难度,提高了匹配的精度。
2.2 基于投影空间三维城市模型分块加载方法投影空间是三维城市模型的投影所在的平面。为保证比例一致,侧视地图通常采用正平行投影。投影变换取决于视点的方位角α和俯仰角β(图 2),要求其与侧视地图视点的方位角和俯仰角保持一致。
投影平面的法向量方向为三维模型空间的坐标系OXYZ平移至三维城市模型的最小轴向包围盒(minimum axis-aligned bounding box,MAABB)的中心点O′后的坐标系O′X′Y′Z′,绕其Z′轴逆时针旋转α,再绕旋转后的Y″轴逆时针旋转β后的X'''轴正方向,即视线方向的反方向。以MAABB的中心点O′沿视线方向一个视距D处的点O'''为原点,以Y'''轴正方向为横轴正方向,Z'''轴正方向为纵轴正方向建立投影面坐标系(图 2)。
本文提出的基于投影空间分块加载三维城市模型的方法原理参见图 3。MAABB的8个顶点A-H分别投影到投影空间中,获得8个投影点A′-H′。计算投影点A′-H′的最小轴向包围矩形(minimum axis-aligned bounding rectangle,MAABR)。将MAABR均等分为若干个小矩形块(不能均等分时,将其扩展至刚好能够均等分),矩形分块的宽和高取决于侧视地图的空间分辨率(即一个像素代表实际地物的大小)和帧缓冲区的大小。
假设侧视地图的空间分辨率为res(单位:m/像素),帧缓冲区的大小为m像素×n像素,那么分块大小为W×H
若MAABR为(xmin,ymin,zmin),则分块的数目为R×C
对于每个分块,利用基于R树索引的三维可视化查询方法[14],查询分块内所对应的三维城市模型。当然,前提是需要为三维城市模型建立三维R树索引[15]。最后,加载查询到的三维城市模型。
如有生产侧视地图的需求,基于投影空间分块加载三维城市模型还可以用于实现自动生成无缝侧视地图,解决基于模型空间分块所面对的前期人工分区、后期人工拼接的效率低下且拼接结果易出现地物遮挡关系错误等问题。
2.3 顾及建筑物遮挡和建筑群的深度缓冲区分割算法若建筑物被另一个建筑物遮挡,那么提取出的两个轮廓线所围成的多边形就会存在重叠区域。当鼠标落在该区域时,将无法确定是哪个建筑物被选中。因此,建筑物轮廓线互相之间应不相交。针对被其他建筑物部分遮挡的建筑物如何提取未被遮挡部分的轮廓线的问题,本文借鉴文献[16, 17]中利用深度缓冲区提取城市天际线的方法,提出了基于深度缓冲区的分割算法。算法原理是先将当前待提取对象周围的其他建筑物模型投影至屏幕空间,深度值记录到深度缓冲区,保留深度缓冲区,清空颜色缓冲区,再将当前对象投影至屏幕空间,此时颜色缓冲区中非背景值所对应的区域就是当前对象未被遮挡部分在屏幕空间的投影。
深度缓冲区是帧缓冲区的组成部分,深度缓冲区记录着屏幕视口上每个像素点的深度值。若视口的宽为M个像素,高为N个像素,那么对应的深度缓冲区的尺寸就为M像素×N像素。
图 4(a)为三维城市模型投影后的侧视地图,建筑物之间存在遮挡现象。
绘制除当前对象之外的其他建筑物(如图 4(b))时,对应的深度缓冲区记为Depth_buffer1={dij1}。只绘制当前对象(如图 4(c))时,对应的深度缓冲区记为Depth_buffer2={dij2}。
初始化深度缓冲区和颜色缓冲区,绘制除当前对象之外的其他建筑物,获取深度缓冲区Depth_buffer1。清除颜色缓冲区但不清除深度缓冲区,再以非背景颜色绘制当前对象,只有当深度值小于等于当前深度缓冲区中对应像素的深度值才绘制,并更新深度值,绘制完成后的深度缓冲区记为Depth_buffer3={dij3},颜色缓冲区记为Colour_buffer={cij}(i,j为整数,且1≤i≤M,1≤j≤N)
式中,cij代表黑色时为背景,非黑色时为对象,此时的颜色缓冲区中非黑色像素所连成的区域就是当前对象未被遮挡的部分在屏幕空间的投影(如图 4(d))。
2.4 基于颜色缓冲区的轮廓线提取方法基于颜色缓冲区Colour_buffer提取当前建筑物模型的轮廓线的思路是将颜色缓冲区Colour_buffer转换成二值图像〈建筑物对象,背景〉,再基于该二值图像追踪目标边界。二值图像上的边界主要有两类基于像素的边界和基于裂缝的边界[18]。由于基于裂缝的边界数据量较大,本文追踪基于像素的边界。
基于像素的边界由边界像素点构成。边界点包括两种:4-边界点和8-边界点。4-边界点与背景至少共享一条边,8-边界点与背景至少共享一条边或一个顶点[19]。直接边界是8-边界点的集合而间接边界是4-边界点的集合[18]。对于同一目标,间接边界所包含的边界点比直接边界的要少。而且,对于某些8-连通区域,直接边界无法闭合,或者闭合了但不是所希望的边界。本文追踪的目标边界是间接边界。
基于像素的间接边界追踪算法主要分3个组成部分:寻找起始点、追踪下一点以及终止条件。经典的算法有:爬虫算法、Moore邻域算法、辐射扫描算法及TP算法等[19],但这些算法都不能够追踪带洞目标的内部边界。本文采用文献[20]所设计的算法,通过标记与外边界相邻的外边界点OB和内边界相邻的内边界点IB,找起始点,能够追踪带洞目标的内外边界及有多个连通区域的目标的边界;通过两个连续链码间的关系优化下一点的追踪序列;通过改善终止条件保持连通性。
2.5 轮廓线与侧视地图分块匹配建筑物轮廓线与侧视地图匹配是指建筑物轮廓线能够与侧视地图上对应的建筑物能够在坐标上吻合(图 5)。
屏幕空间是视口范围内的有限矩形空间。以视口左上角为原点,视口宽为横轴x,向右为正方向,视口高为纵轴y,向下为正方向建立屏幕坐标系oxy(x∈[0,M-1],y∈[0,N-1])。
建筑物轮廓线的坐标定义在一个屏幕坐标系中,每个轮廓线分块都有一个对应的屏幕坐标系,是一个局部坐标系。
依据在分块中的局部屏幕坐标及所在分块的行列号,就可将建筑物轮廓线统一在一个全局坐标系下,再把侧视地图也统一到全局坐标系下,就能实现建筑物轮廓线与侧视地图的匹配。定义第0行第0列分块的左下角为全局坐标系的原点,赋坐标为(0,0),分块的水平方向为X轴,向右为正方向,分块的垂直方向为Y轴,向上为正方向,全局坐标系的单位距离和屏幕坐标系一样都为一个像素。
将行列号为(i,j)的分块内轮廓线转换至全局坐标系下。首先,转换每个分块内的建筑物轮廓线的边界点的Y坐标值y,用(N-1-y)代替原来的y值。因为屏幕坐标系的纵轴方向是向下的,而全局坐标系的纵轴方向是向上的。然后,每个分块内的建筑物轮廓线的边界点的坐标值增加平移量(x0,y0)
通过两个控制点对已经存在的侧视地图进行平移和缩放变换转换至全局坐标系下。
对于跨分块的建筑物对象(如图 5中椭圆中的建筑物对象),还必须将分块拼接处虚假轮廓线(图 6)剔除。由于处理方法比较简单,本文不在此赘述。
3 试验与分析利用典型的武汉市三维城市模型数据进行试验,并将提取的轮廓线与E都市地图上人工交互提取的轮廓线进行对比分析,验证了本文方法在建筑物轮廓线复杂、存在建筑群及建筑物间存在遮挡等情况下的有效性,并凸显了对比人工交互式提取方法的优越性。需要说明的是,尽管由于模型生产者及生产时间不同,导致本文所利用的武汉市三维城市模型和E都市的三维城市模型存在差异,且也没能获知E都市确切的投影参数,但只要对比双方都符合:①建筑物轮廓线复杂(图 7);②存在建筑群(图 8);③建筑物间存在遮挡(图 9)就能达到对比目的,并不强制要求双方的模型或投影参数完全一致。而且,本文提出的自动提取侧视地图中建筑物轮廓线的方法不受三维城市模型和投影参数的限制。
如图 7(a)所示,是E都市地图上人工交互提取的轮廓线,轮廓线粗糙,忽略很多细节,例如拐角处(椭圆内)。采用本文方法提取的单体建筑轮廓线如图 7(b)所示,轮廓线更加精细,准确。如图 8(a)所示,E都市地图上人工交互提取的建筑群轮廓线将不属于该建筑群的像素点(椭圆内)包围其内。而利用本文方法提取建筑群轮廓线如图 8(b)所示。如图 9(a)所示,E都市手工提取的建筑物轮廓线遮挡处理效果很不理想,将属于遮挡建筑物的像素点包含在轮廓线内(左边椭圆内),而部分像素点却没能包含在轮廓线内。图 9(b)中轮廓线,是利用本文方法对建筑物轮廓线进行遮挡处理后的效果,可以看出,被遮挡建筑物和遮挡建筑物之间边界准确程度很高。
4 结 语本文提出的自动提取建筑物轮廓线的方法能够改善目前人工交互提取成本高昂、效率低下且精细程度和准确程度不高的现状。该方法可以推广至其他地物。对于存在三维城市模型且待生产侧视地图的城市,利用本文方法可以在生产侧视地图的同时提取建筑物轮廓线,而对现有的侧视地图,只要知晓生产侧视地图时的投影参数就可以。
[1] | TERRIBILINI A. Maps in Transition: Development of Interactive Vector-based Topographic 3D-Maps[C]//Proceedings of the 19th International Cartographic Conference. Ottawa:[s.n.], 1999:993-1001. |
[2] | SCHOBESBERGERD,PATTERSONT.Evaluating the Effectiveness of 2D VS 3D Trailhead Maps: A Study Conducted at Zion National Park, Utah[C]//Proceedings of the 6th ICA Mountain Cartography Workshop, Mountain Mapping and Visualisation. Switzerland:[s.n.], 2007:201-205. |
[3] | PETIE G. Systematic Oblique Aerial Photography Using Multiple Digital Frame Cameras[J]. Photogrammetric Engineering and Remote Sensing, 2009, 75(2): 102-107. |
[4] | LIU Jiajia, GE Wen, XUE Ning. Spatial Cognition Difference Research on 2D and 3D Electronic Maps[J]. Hydrographic Surveying and Charting, 2014, 34(2): 76-79. (柳佳佳, 葛文, 薛宁. 二维和三维电子地图的空间认知差异研究[J]. 海洋测绘, 2014, 34(2): 76-79.) |
[5] | HARROWER M. A Look at the History and Future of Animated Maps[J]. Cartographica, 2004, 39(3): 33-42. |
[6] | ADABALA N. A Technique for Building Representation in Oblique View Maps of Modern Urban Areas[J]. The Cartographic Journal, 2009, 46(2): 104-114. |
[7] | XU Dijun, WANG Kun. Research and Production of New Digital Surveying and Mapping Products of Ningbo[J]. Bulletin of Surveying and Mapping, 2011(8): 84-87. (徐狄军, 王坤. 宁波市新型数字测绘产品的研究与建设[J]. 测绘通报, 2011(8): 84-87.) |
[8] | REN Peng. Study and Design of Public Service Platform for 3D Simulation Digital City[D]. Changsha: Central South University, 2011. (任鹏. 三维仿真数字城市公众服务平台的研究与设计[D]. 长沙: 中南大学, 2011.) |
[9] | CHEN Xun. Production and Publication of 2.5D Electronic Map[D]. Xi'an: Xi'an University of Science and Technology, 2012. (陈迅. 2.5维电子地图的制作与发布[D]. 西安: 西安科技大学, 2012.) |
[10] | WU Wei, LUO Jiancheng, SHEN Zhanfeng, et al. Building Extraction from High Resolution Remote Sensing[J]. Geomatics and Information Science of Wuhan University, 2012, 37(7): 800-805. (吴炜, 骆剑承, 沈占锋, 等. 光谱和形状特征相结合的高分辨率遥感图像的建筑物提取方法[J]. 武汉大学学报: 信息科学版, 2012, 37(7): 800-805.) |
[11] | JIN Xiaoying, DAVIS C H. Automated Building Extraction from High-resolution Satellite Imagery in Urban Areas Using Structural, Contextual, and Spectral Information[J]. EURASIP Journal on Applied Signal Processing, 2005, 2005: 2196-2206. |
[12] | CHENG Liang, GONG Jianya. Building Boundary Extraction Using Very High Resolution Images and LiDAR[J]. Acta Geodaetica et Cartographica Sinica, 2008, 37(3): 391-393. (程亮, 龚健雅. LiDAR辅助下利用超高分辨率影像提取建筑物轮廓方法[J]. 测绘学报, 2008, 37(3): 391-393.) |
[13] | CHENG Liang, GONG Jianya, LI Manchun, et al. 3D Building Model Reconstruction from Multi-view Aerial Images and LiDAR Data[J]. Acta Geodaetica et Cartographica Sinica, 2009, 38(6): 494-501. (程亮, 龚健雅, 李满春, 等. 集成多视航空影像与LiDAR数据重建三维建筑物模型[J]. 测绘学报, 2009, 38(6): 494-501.) |
[14] | GONG Jun, XIE Xiao. Three-dimension Visualization Query Method Based on R-tree[J]. Geomatics and Information Science of Wuhan University, 2011, 36(10): 1140-1143. (龚俊, 谢潇. 基于R树索引的三维可视化查询方法[J]. 武汉大学学报: 信息科学版, 2011, 36(10): 1140-1143.) |
[15] | ZHU Qing, GONG Jun, ZHANG Yeting. An Efficient 3D R-tree Spatial Index Method for Virtual Geographic Environments[J]. ISPRS Journal of Photogrammetry and Remote Sensing, 2007, 62(3): 217-224. |
[16] | CHEN Chi. The Skyline Analysis Algorithm Based on 3D GIS[D]. Wuhan: Wuhan University, 2011. (陈侈. 基于三维GIS的天际线分析算法[D].武汉: 武汉大学, 2011.) |
[17] | ZHANG Xia.3D GIS Based Visual Openness Analysis of Urban Space[D]. Wuhan: Wuhan University, 2006. (张霞. 基于3D GIS的城市空间视觉开放度分析[D]. 武汉: 武汉大学, 2006.) |
[18] | WAGENKNECHTG. A Contour Tracing and Coding Algorithm for Generating 2D Contour Codes from 3D Classified Objects[J]. Pattern Recognition, 2007,40(4): 1294-1306. |
[19] | GHUNEIM A G. Contour Tracing[EB/OL]. [2014-05-08]http://www.imageprocessingplace.com/downloads_V3/root_downloads/tutorials/contour_tracing_Abeer_George_Ghuneim. |
[20] | REN Mingwu, YANG Jingyu, SUN Han.Tracing Boundary Contours in a Binary Image[J]. Image and Vision Computing,2002, 20(2): 125-131. |