王安琪
(大连财经学院管理学院,辽宁 大连 116600)
三维城市重建的主要信息是建筑物,三维城市重建的重要步骤是建筑物轮廓线提取[1]。地图更新与城市重建等领域均离不开建筑物轮廓信息。因此,建筑物轮廓线提取至关重要[2]。传统的基于影像的建筑物轮廓线提取方法易受地面物体影响,导致轮廓线提取精度与效率降低。为此,设计高精度、高效率的建筑物轮廓线提取算法属于目前的研究热点。国内外相关领域的学者纷纷对建筑物轮廓线提取算法进行了研究。
Che等[3]提出了基于倾斜摄影数据的单体三维建筑轮廓线提取算法,将倾斜摄影模型的点云划分为虚拟网格,并将每个虚拟网格中的点云视为一个整体,通过设置高度差来提取建筑立面的点云,将网格的最高点和最低点之间的高度差与高度差阈值进行比较,消除网格中所有不符合要求的点云,对建筑立面的点云进行分类,并通过分类的点云提取轮廓线。该方法可用于从大量倾斜摄影数据中获得单个三维建筑模型,建筑物轮廓线提取效率较高,但提取精度较差。Zhu等[4]提出基于自适应多边形生成算法的建筑物自动提取方法。该方法旨在直接生成建筑顶点序列,以勾勒出每个建筑实例的轮廓。利用自适应多边形生成算法预测建筑顶点的候选位置,并通过建筑边界的位置和方向确定这些顶点的排列,以细化它们的位置。该算法提取建筑物轮廓线的精度较好,但步骤较多,提取效率较差。朱军桃等[5]先塑造建筑物点云网孔,初步提取边缘点云,再通过改进卷包裹算法,在初步提取的边缘点云内提取角点,按照角点二次提取边缘点云,最后通过最小二乘拟合方法,拟合二次提取边缘点云连接形成的轮廓线,得到最终的建筑物轮廓线提取结果。该算法具备较优的建筑物轮廓线提取效果,提取效率较快。但该算法在提取角点时,容易出现错提问题,导致轮廓线位置偏移,降低建筑物轮廓线提取精度。徐景中等[6]通过建筑物点云构建建筑物虚拟网格,利用邻域分析法标记建筑物边界格网,基于方向的单边缘格网抑制法,按照标记结果提取轮廓点,通过最小二乘拟合方法拟合轮廓点,提取建筑物轮廓线。该算法提取的轮廓线较为精准,且提取速度较快。但该算法在构建建筑物虚拟网格时,会出现部分建筑物边界点被遮挡的情况,导致轮廓线提取完整性较差。
方向预测规则化算法具备较优的规则化效果,可提升轮廓线提取精度[7]。为提升建筑物轮廓线提取的完整性和精度,本文将方向预测规则化算法应用至建筑物轮廓线提取的研究中,设计基于方向预测规则化的建筑物轮廓线提取算法,提升建筑物轮廓线提取效果。
建筑物轮廓线提取的具体步骤如下:
步骤1:由机载激光雷达采集建筑物点云数据S。
将S近似成一个平面,为此,旋转建筑物三维点云,即旋转建筑物点云平面[9],将其法向量旋转到与坐标是(0,0,1)的法向量nz平行的位置。通过罗德里格旋转公式得到旋转矩阵Rj(α)。按照建筑物点云平面法向量n与nz,计算旋转角α,公式如下:
(1)
利用n与nz计算旋转轴j,公式如下:
(2)
Rj(α)的计算公式如下:
(3)
式中,(x,y,z)为旋转建筑物三维点云任一点的坐标。
令旋转后的建筑物点云数据集S′为:
S′=Rj(α)·S·λ
(4)
式中:λ为平滑系数;S与S′都是3×n的矩阵。
通过筛选边界网格,可去掉无效点云,加快建筑物轮廓点提取速度,边界网格筛选步骤如下:
步骤1:利用Rj(α)旋转S,得到S′,在水平面内投影S′,得到二维点云。
步骤2:利用二维点云,塑造建筑物二维网格。设置合理的孔洞尺寸,可避免出现细节丢失与孔洞问题[10]。令建筑物二维网格横纵坐标的最大、最小值为Xmax、Xmin、Ymax、Ymin,建筑物二维网格的孔洞尺寸Hsize为
(5)
式中:β为调节系数;N为建筑物点云数量。
S′内某建筑物点云G(x,y)所处网格的公式如下:
(6)
(7)
G所处行数与列数为r、c,点云G的横纵坐标是x、y。
步骤3:筛选边界点云,建筑物二维网格建立成功后,筛选边界点云,即筛选边界网格。边界网格筛选的条件为八邻域网格中包含空网格O。通过深度优先搜索算法筛选边界网格,具体方式为:搜索O的八邻域是否包含未访问的网格,如果包含则访问该网格,若网格不是空的,则标记成边界网格;如果不包含,则递归进行该算法,以全部网格均被访问为止,完成边界网格筛选。
利用改进的散点轮廓算法在建筑物点云数据内提取建筑物轮廓点的具体步骤如下:
步骤1:设置滚动圆半径γ,在建筑物边界网格中随机选择点G0,G0所处网格中全部点云组建的点集是G,G0的八邻域中全部点云组建的点集是Q。γ的计算公式为:
(8)
式中:μ为调节因子;M为某网格中点云数量;m为非空网格数量。
步骤2:求解滚动圆圆心,在Q内随机选择点云G1,根据G0与G1的坐标(x0,y0)、(x1,y1)以及γ,求解圆心坐标,公式如下:
(9)
通过式(9)可计算获取‖G1‖>‖G0‖、
‖G1‖<‖G0‖两种情况下的圆心,记作G2、G3。
步骤3:分析G0是否是边界点,求解Q内除G0与G1以外其余点云至G2、G3的距离,如果全部点云至G2或G3的距离均超过γ,那么G0是边界点,否则,分析Q内另一点云G1是否是边界点,Q内除G0以外,全部点云都当成G1参与分析完成为止,如果无法分析G0是否是边界点,那么认定G0是非边界点。
步骤4:分析G内其余点云是否是边界点,在G内选择一点云G0,进行上述3个步骤,分析G内的全部点云。
步骤1:将1.1提取的建筑物轮廓点的首尾点相连,得到一条直线L。
步骤2:求解全部建筑物轮廓点至L的距离,获取最大的距离值Dmax,设ε为L的均值,如果Dmax>ε则剔除该线段内的点云,如果Dmax≤ε则将该线段分成两部分。
(10)
步骤1:确定获取的简化建筑物轮廓线的φbest,计算简化建筑物轮廓线段编号和最佳主方向线段编号差的绝对值,如果该值是偶数,则归类为主方向类;反之,归类为垂直于主方向类。
步骤2:求解主方向类简化建筑物轮廓线段的加权平均主方向,公式为
(11)
式中:简化建筑物轮廓线段i的起止坐标是(Xstart,Ystart)、(Xstop,Ystop);gi为长度;h为简化建筑物轮廓线段数量。
步骤3:求解与φmean正交的加权平均主方向φmean,φmean为φbest的垂直方向。
步骤5:调整建筑物轮廓线位置,公式为:
(12)
步骤6:反复操作步骤4与5,全部简化轮廓都完成规则化为止。通过截取邻近轮廓线交点,完成轮廓线提取。
以某小区的高层建筑物为实验对象,该小区内共包含27栋楼,地上总建筑面积约45 869.26 m2,地下总建筑面积约3 628 m2,除最上层层高为3.0 m外,其余层的层高均为2.9 m。该小区高层建筑物屋顶共包含3种形状,分别是简单、规则凹与不规则凹多边形。
利用RIEGL VQ-840-G型机载激光雷达采集该小区高层建筑物的点云数据。RIEGL VQ-840-G型机载激光雷达主要参数如表1所示。
表1 RIEGL VQ-840-G型机载激光雷达主要参数
以该小区内其中一栋高层建筑物为例,利用本文算法采集该高层建筑物的三维点云数据。三维点云数据采集结果如图1所示。
图1 高层建筑物点云数据采集结果
根据图1可知,本文算法可有效采集高层建筑物的三维点云数据,且采集的三维点云数据可描绘该高层建筑物的各个细节信息。
利用本文算法将采集的高层建筑物三维点云数据转换成二维点云,并提取高层建筑物的轮廓点与关键轮廓点。高层建筑物轮廓点与关键轮廓点提取结果,如图2所示。
图2 建筑物轮廓点与关键轮廓点提取结果
根据图2(a)可知,本文算法可有效提取高层建筑物的整体轮廓点,提取的整体轮廓点与实际建筑物的轮廓非常接近,说明本文算法的建筑物轮廓点提取效果较优。根据图2(b)可知,本文算法也可提取高层建筑物的关键轮廓点,提取的关键轮廓点与实际建筑物的轮廓也较为接近。实验证明本文算法对建筑物轮廓点与关键轮廓点的提取是有效的。
利用本文算法简化的高层建筑物轮廓线,并提取最终高层建筑物轮廓线,简化高层建筑物轮廓线与最终高层建筑物轮廓线的提取结果,如图3所示。
图3 简化轮廓线与最终轮廓线提取结果
根据图3可知,简化的高层建筑物轮廓线可大概描绘高层建筑物的轮廓,整体轮廓线较为平整,无锯齿情况出现,但在90°转角位置的处理效果较差,还需处理。经过处理后,最终提取的高层建筑物轮廓线与实际轮廓更为接近。实验证明,本文算法可有效简化建筑物轮廓线并提取最终的建筑物轮廓线,提取的建筑物轮廓线无锯齿现象,整体轮廓线非常平整。
以完整率、最大偏差与点云贡献率为评价指标,衡量本文算法的轮廓线提取效果,完整率代表轮廓线提取的完整性,其值越接近100%,轮廓线提取完整性越佳。最大偏差代表提取轮廓线位置与实际位置间的最大平面距离,其值越小,轮廓线提取精度越高,最大偏差阈值是0.2。点云贡献率代表轮廓线提取的有效程度,其值越接近1,轮廓线提取有效程度越高。本文算法在提取不同屋顶形状高层建筑物轮廓线时的轮廓线提取效果,结果如表2所示。
表2 高层建筑物轮廓线提取效果
根据表2可知,本文算法可提取不同屋顶形状的高层建筑物轮廓线,且完整率均为100%,说明本文算法轮廓线提取的完整性较高;最大偏差均未超过设置的阈值,说明本文算法轮廓线提取精度较高;点云贡献率均与1较为接近,说明本文算法轮廓线提取的有效程度较高。
建筑物轮廓线提取在智慧城市的建设中至关重要,为此设计基于方向预测规则化的建筑物轮廓线提取算法,避免因强制调整轮廓线方向导致提取轮廓线和实际轮廓线间的偏差较大,影响提取精度,该算法可为智慧城市发展提供有利的技术支持。