2. 苏州工业园区测绘地理信息有限公司,江苏省苏州市苏虹中路101号,215000
主流的基于机载激光雷达数据的建筑物三维模型重建方法包括基于模型驱动的三维重建与基于数据驱动的三维重建,其中建筑物屋顶面的提取是数据驱动方式中最为关键的一个步骤,提取质量的好坏直接关系到后续建筑物拓扑重建的成败[1]。由于受机载激光雷达点云分布不连续、不规则及建筑物多层次、多面片的复杂结构等因素的影响,从机载激光雷达点云数据中提取高精度建筑物屋顶面仍面临着较大的挑战。
学者们围绕屋顶面的高精度提取开展了众多研究,提出了数据聚类[2-3]、区域增长[4-5]、模型拟合[6-9]、能量函数最小化[10]等方法。本文针对现有方法存在建筑物屋顶面提取精度较低、适应性较差等问题,提出了一种分步式建筑物屋顶面点云高精度提取方法。
1 分步式提取方法首先通过预处理选取可靠平面点,利用K-means算法实现可靠点在法向量空间上的聚类; 再通过逐步平面估计,提取初始屋顶面片; 在此基础上,进行面片的合并与未标记点的归属判断。
1.1 预处理点云法向量是建筑物屋顶面提取的重要依据,其在屋脊线等屋顶面交互处通常难以被准确计算[11-12],在法向量空间域中表现为错乱分布的点,不利于后续的聚类操作。为保证面片提取的准确性,首先对屋顶点云进行预处理,以得到法向量下可靠的平面点,主要包括以下步骤:
1) 计算点云法向量与可靠性判断指标。某点的法向量可根据该点的k个邻近点构成的协方差矩阵得到[2]。设pi为某一点,Np ={p1,p2,p3…pk}为该点的k个邻近点, 则对应的协方差矩阵为C,其中p为k个邻近点的重心。对其进行主成分分析,最小特征值对应的特征向量即为该点的法向量,记为ni。选择可靠的平面点即是选择法向量指向稳定的点,同一平面上的点其单位法向量点积应近似为1,所以可将某点与其邻域点的单位法向量点积相较于1的离散程度ασ作为表征平面可靠性的指标:
$ \boldsymbol{C}=\frac{1}{k} \sum\limits_{m=1}^{k}\left(p_{m}-\bar{p}\right)\left(p_{m}-\bar{p}\right)^{\mathrm{T}} $ | (1) |
$ \alpha_{\sigma}=\sqrt{\frac{\sum\limits_{j=1}^{n}\left(\alpha_{i j}-1\right)^{2}}{n}}, \alpha_{i j}=\boldsymbol{n}_{i} \cdot \boldsymbol{n}_{j} $ | (2) |
2) 可靠平面点的选取。每个点均被赋予一个可靠性指标,理论上该值越小,该点越可靠,可选取可靠性指标较好的点组成可靠平面点集seed:
$ \begin{gathered} \text { seed }=\left\{p \mid \alpha_{\sigma}<\alpha_{n}, n=L / k, \right. \\ \left.k=\max \left(K_{g}, K_{w}\right)\right\} \end{gathered} $ | (3) |
式中,αn为可靠性指标降序排列时第n个点对应的ασ值,L为建筑物屋顶面点云总个数,Kw为屋顶面片聚类数,数值上等于后续K-means算法中的参数K,参数K随后续的迭代计算而动态确定。Kg为固定值,可根据屋顶面实际情况在5~7中取值,以防止因去除过多的点而使屋顶面提取困难。
图 1(a)~1(c)分别为建筑物屋顶面影像、屋顶点云可靠性分布及可靠平面点选取结果,图 1(c)中黑色点云为选取的可靠平面点,经过预处理将法向量分布离散的点云去除,对应图 1(d)中红色点云。典型建筑物屋顶由多个平面构成,每个平面点云的法向量会指向特定方向。图 1(d)为屋顶点云的法向量空间分布,即屋顶点云法向量在高斯球上的分布情况,红色为根据可靠性指标去除的点云,其他不同颜色代表不同屋顶面的可靠平面点,可见同一屋顶面上可靠平面点在法向量空间上是较为集中的,不同屋顶面上则相互分离,因此可通过点云法向量空间分布提取建筑物屋顶面片。
K-means算法是无监督的聚类算法,对于屋顶点云法向量这样的类球形分布,其聚类效果较好,且实现简单,调试的参数仅为聚类个数K。本文通过设置聚类指标实现参数K的动态确定,基本原理如下:K-means算法要求簇内各点尽量紧密连接在一起,而簇间距离尽可能大,当K值恰好等于实际所需的聚类数时,屋顶点云在法向量空间上正确聚类; 随着K值的继续增大,某一屋顶面点云将会被分成数簇,即会存在法向量指向相近的数个簇,此后最大的簇间单位法向量点积会趋近于1且保持稳定。所以可取最大簇间单位法向量点积作为聚类指标,K值即为使聚类指标趋近于1且保持稳定的前一个聚类个数,如图 2中红色标记点横坐标为对应的聚类个数。
通过聚类操作,将法向量指向近似的点云归为同类,但若建筑物存在平行或近似平行的屋顶,即法向量指向相近但空间上相离的屋顶,则需对其进行进一步区分。本文采用逐步平面估计法进行此类屋顶面的提取,具体步骤如下:
1) 取某一聚类全部点云单位法向量加权得到的聚类法向量n,并选此聚类中ασ最小的点pmin(ασ) (可认为此点是平面性最可靠的点), pmin(ασ)∈R3, 构建平面方程P1:
$ \boldsymbol{n} \cdot(x, y, z)^{\mathrm{T}}-\boldsymbol{n} \cdot\left(p_{\min \left(\alpha_{\sigma}\right)}\right)^{\mathrm{T}}=0 $ | (4) |
其中,
2) 计算聚类中各点到平面P1的距离,若小于给定阈值,则判断此点为平面上一点,进行联通性分析,取最大联通子集为当前平面的内点;
3) 对内点进行最小二乘拟合,确定平面P2;
4) 计算聚类中各点到平面P2的距离,重复步骤2)的操作,记第i次估计平面P2时P2内点个数为num2i;
5) 若相邻2次平面P2检测的内点数量趋近恒定,即|num2i-num2i-1|<ε,则跳转至步骤6),否则重复步骤3)和4);
6) 从聚类中移除内点,并重复步骤1)~5)进行迭代,由于屋顶平行面片个数一般有限,迭代次数一般不大于10。
本文提出的逐步平面估计是一个寻找最佳屋顶平面的过程,由于法向量的计算误差与聚类中近似平行面片的存在,从整个聚类中得到的某一屋顶平面较为粗糙。通过步骤1)法向量加权与最可靠点的选取,使得P1大体逼近屋顶面片,P1的内点即为某一屋顶面上的点云,由此部分点可拟合出更优的屋顶平面P2,得到更多的屋顶面内点,通过数次内点拟合即可逐步修正平面P2,使其成为最佳平面。上述操作进行了2次连通性分析,第1次是为了剔除由于平面P1的误差纳入的其他屋顶点,进而依据剩余内点拟合得到更优平面; 第2次是为了去除在数学意义上共面而在空间上分离的点,得到纯净的单一屋顶面片。逐步平面估计屋顶面的提取结果见图 3(c),可以看出,该算法能较好地分离平行屋顶面。与RANSAC算法相比,该方法不用设置最小面片点数且不用随机选点以构成平面模型,避免了由于选点不在同一平面而造成的大量不必要的计算。
面片后处理主要包括面片合并及未标记点的归类。由于法向量计算不准确及K-means聚类误差等因素,部分屋顶面经过粗提取后可能形成多个面片,如图 4(a)所示。由于屋顶面A、B近似平行且存在上述误差,使得屋顶面B中的一部分与屋顶面A聚为一类,在逐步平面估计后,屋顶面B将会形成2个破碎面片,如图 4(b)所示。为得到完整的屋顶面,需合并属于同一屋顶面的多个面片。令已找到的屋顶面片为M={m1,m2,…,mn},寻找面片mi的相邻面片,首先定义面片邻域Ner,即由面片中每个点的邻域点面片号构成的无重复标号集合,搜索面片mi的Ner,其中每个标号都代表面片mi的一个相邻面片,计算面片mi与各个相邻面片的最小二乘拟合平面残差平方和,若残差平方和小于阈值,则将面片mi与相应相邻面片合并。重复上述过程2~3次,即可实现屋顶面片的完整提取,面片合并结果见图 4(c)。
未标记点包括非可靠平面点和逐步平面估计剩余的点。待判断点p是否属于屋顶面M取决于2个因素:该点到屋顶面M的距离(dpM)和该点的邻域点涉及的屋顶面M的点数(numpM)。首先计算dpM(可仅考虑该点周围的屋顶面),将小于阈值的面片作为p点的候选面片,若无候选面片,则该点不进行归属判断; 随后统计该点半径范围内归属于每个候选面片的激光点数numpM,此值将作为未标记点归属的判断依据。
待判断点类别的判断不应是随机的,应采用一定的顺序以避免未判断点的影响。图 5中黑色点代表屋顶面m1点,灰色点代表屋顶面m2点,空心点为未判断点。待判断点pi应为屋顶面m2中的一点,却被判断归属于m1,其原因为待判断点远离已知的面片点,两者之间存在大量未判断点,影响了numpM的统计,可见判断顺序应考虑待判断点与已知面片点的邻接程度。邻接程度可由待判断点到k个近邻的已知面片点的平均距离来量化,平均距离越小,邻接程度越高; 平均距离越大,邻接程度越低,判断顺序即为邻接程度由高到低的顺序。同时,考虑到numpM会受点云局部密度的影响,为削弱该影响,采用如下措施:记录待判断点p分属于不同面片的邻域点pkM(上标M表示该邻域点pk属于面片M),并统计同一面片各个邻域点在一定半径范围内同属此面片的点数numpkMM, 求其均值记为NumpkMM, 作为此面片局部密度补偿值,则待判断点的最终判断依据为
为验证本文算法的可行性与稳定性,选取Vaihingen机载LiDAR数据集中部分建筑物的点云数据进行实验。由于本文研究主体为建筑物屋顶,因此地面点、植被点及建筑物立面点等数据均已被剔除。
将本文算法与当前主流的RANSAC算法及区域增长算法进行对比,由于RANSAC算法极易提取出虚假面片,因此本文在每次迭代提取面片的过程中增加连通性分析,同时对剩余点参考§1.3中未标记点的归类方法进行二次判断,减少算法的漏提取; 区域增长算法易形成零星点集,对于此部分点,同样依据§1.3将其视作待判断点归类处理。需要注意的是,区域增长算法会提取出非标准平面的屋顶面,若某待判断点周围存在此类屋顶面,点面距离dpM可定义为待定点到该点邻域内此屋顶面点拟合而成的平面的距离。
2.2 实验结果及定性分析各算法的提取结果如图 6所示,图中不同颜色代表提取的不同屋顶面,其中红色点为未能提取出的屋顶面或屋顶附属物点。通过与航空影像进行对比可以看出,RANSAC算法及区域增长算法的提取效果与本文算法相比差异较大。
区域增长算法仅依靠种子点与待判断点之间的法向量夹角及粗糙度等局部特征进行生长,所以分割结果与局部特征的计算精度息息相关。由于局部特征计算的不稳定性,导致建筑物屋顶将存在不同程度的边界模糊问题,如建筑物4(矩形框区域,下同)。同时,对于较小的屋顶面如建筑物3,计算出的法向量指向杂乱,无法实现有效的聚类,而在过渡平缓的相邻屋顶面处,由于局部特征变化较小,会形成屋顶面的欠分割,如建筑物1和2。此外,在邻接关系复杂的区域容易形成过分割,如建筑物6。
RANSAC算法的每次随机采样估计模型会获取点数最多的屋顶面,两屋顶面相交处的点被优先划分到较大的屋顶面,形成屋顶竞争现象,造成边界不明确,如建筑物5。由于RANSAC算法需要设置最小面片点数阈值,而全局最优的阈值难以找到,当采用较大的阈值时,较小的屋顶面由于达不到阈值条件而无法提取,如建筑物3和10;当阈值设置较小时,较大的屋顶面可能会因为过早地满足阈值条件而变得破碎,如建筑物9。此外,受限于算法本身的原理,对于曲率变化较大的屋顶区域,如建筑物7,无法实现有效提取。
相较于以上2种算法,本文算法的提取结果更加优异,拓扑关系更加清晰,且不会受屋顶面大小差异、数量多少及复杂程度等的影响,具有更高的稳定性。但本文算法本质上是一种平面提取算法,对于如建筑物7的屋顶面,与RANSAC算法一样,提取效果较差。此外,本文算法依赖于可靠平面点,若屋顶面过小且点密度太低,导致计算出的法向量不准确,则屋顶面将不存在可靠平面点,该屋顶面的提取也会失败,如建筑物8。
2.3 定量分析与评价建筑物屋顶面在空间上为平面,在机载LiDAR点云数据中表现为点集,故本文从点与面2个维度对提取结果进行定量分析,在面维度上借鉴文献[13]中的质量评价标准,在点维度上参考文献[3]与[14]的评价方法。
由表 1(单位%)可知,RANSAC算法与区域增长算法在提取完整率上与本文算法精度相仿,其原因为对两者增加了连通性分析与未归类点的二次判断等措施; 但在正确率与提取质量上,RANSAC算法及区域增长算法与本文算法依然存在较大差距,尤其是区域增长算法,说明这2种算法存在较为严重的过分割与欠分割等问题。结合表 2可以发现,本文算法能正确提取绝大多数屋顶面,而RANSAC算法与区域增长算法的提取效果较差。观察建筑物影像可知,本文算法未能正确提取的主要为面积较小(包含的脚点数较少)的屋顶面或曲率变化较大的非平面屋顶面。此外,RANSAC算法与区域增长算法对过渡平缓及拓扑关系复杂的屋顶面也存在错误提取的情况。表 1和2中维度的精度统计结果共同验证了§2.2中的定性分析结论,并进一步证明本文算法对不同复杂程度的建筑物屋顶面的提取具有适应性与准确性。
为比较不同算法的提取效率,统计各算法对不同屋顶面的提取时间,结果如图 7所示。由图可知,本文算法的提取效率与区域增长算法相近,明显优于RANSAC算法。虽然本质上同为平面提取算法,但本文算法首先将近似平行屋顶聚类,然后通过逐步平面估计等措施提取屋顶面,避免了RANSAC算法因对建筑物屋顶面整体选点构建平面模型而造成的大量不必要计算,故提取时间较RANSAC算法明显缩短。
通过定性分析与定量评价可知,本文算法明显优于其他2种算法,对于屋顶结构复杂的各类建筑物也有较好的提取效果,其主要原因为:1)将可靠平面点与非可靠平面点分别进行处理,在将可靠平面点聚类得到平行屋顶面时,可避免非可靠点对聚类的影响; 2)采用由粗到精的分步式处理方式,即先将平行屋顶聚类,然后通过逐步平面估计等措施提取初始屋顶面,再进行细化处理得到建筑物完整屋顶面; 3)面片合并较好地解决了屋顶面的过分割,保证了屋顶面的完整性,对未标记点进行归属判断,避免了屋顶面的竞争现象,可得到更加清晰的面片边界。
3 结语本文针对复杂建筑物屋顶面提取存在的问题,提出一种分步式建筑物屋顶面点云高精度提取方法。实验结果表明,相较于传统方法,本文方法的提取结果更优,且提取效率较高,对不同复杂程度的建筑物屋顶面均能取得较好的提取效果,具有较强的适应性与准确性。由于本文算法本质上也是平面提取算法,故无法有效提取曲面屋顶,另外本文算法依赖于可靠平面点的选取,不能有效提取不存在可靠平面点的小屋顶面。如何准确估计点云法向量以得到小屋顶面的可靠平面点,将是后续研究的重点。
[1] |
李云帆, 谭德宝, 刘瑞, 等. 顾及建筑物屋顶结构的改进RANSAC点云分割算法[J]. 国土资源遥感, 2017, 29(4): 20-25 (Li Yunfan, Tan Debao, Liu Rui, et al. An Improved RANSAC Algorithm for Building Point Clouds Segmentation in Consideration of Roof Structure[J]. Remote Sensing for Land and Resources, 2017, 29(4): 20-25)
(0) |
[2] |
Sampath A, Shan J. Segmentation and Reconstruction of Polyhedral Building Roofs from Aerial Lidar Point Clouds[J]. IEEE Transactions on Geoscience and Remote Sensing, 2010, 48(3): 1 554-1 567 DOI:10.1109/TGRS.2009.2030180
(0) |
[3] |
赵传, 张保明, 陈小卫, 等. 一种利用点云邻域信息的建筑物屋顶面高精度自动提取方法[J]. 测绘学报, 2017, 46(9): 1 123-1 134 (Zhao Chuan, Zhang Baoming, Chen Xiaowei, et al. Accurate and Automatic Building Roof Extraction Using Neighborhood Information of Point Clouds[J]. Acta Geodaetica et Cartographica Sinica, 2017, 46(9): 1 123-1 134)
(0) |
[4] |
曹如军. 基于机载LiDAR点云的建筑屋顶三维重建[D]. 武汉: 武汉大学, 2017 (Cao Rujun. Automatic Roof Reconstruction from Airborne LiDAR Point Clouds[D]. Wuhan: Wuhan University, 2017)
(0) |
[5] |
Gilani S A, Awrangjeb M, Lu G, et al. Robust Building Roof Segmentation Using Airborne Point Cloud Data[C]. International Conference on Image Processing, Phoenix, 2016
(0) |
[6] |
Demir N. Automated Detection of 3D Roof Planes from LiDAR Data[J]. Journal of the Indian Society of Remote Sensing, 2018, 46(8): 1 265-1 272 DOI:10.1007/s12524-018-0802-2
(0) |
[7] |
徐博. 基于航空LiDAR数据的建筑物屋顶面三维重建关键技术研究[D]. 武汉: 武汉大学, 2017 (Xu Bo. Research on the Key Techniques for Building Roof Top Reconstruction from Aerial LiDAR Point Clouds[D]. Wuhan: Wuhan University, 2017)
(0) |
[8] |
Chen D, Zhang L Q, Li J, et al. Urban Building Roof Segmentation from Airborne LiDAR Point Clouds[J]. International Journal of Remote Sensing, 2012, 33(20): 6 497-6 515 DOI:10.1080/01431161.2012.690083
(0) |
[9] |
Bretar F, Roux M. Hybrid Image Segmentation Using LiDAR 3D Planar Primitives[C]. International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, Enschede, 2005
(0) |
[10] |
Kim K H, Shan J. Building Roof Modeling from Airborne Laser Scanning Data Based on Level Set Approach[J]. ISPRS Journal of Photogrammetry and Remote Sensing, 2011, 66(4): 484-497 DOI:10.1016/j.isprsjprs.2011.02.007
(0) |
[11] |
舒敏, 刘科. 由粗到精的机载点云建筑物屋面分割[J]. 激光与红外, 2019, 49(12): 1 414-1 420 (Shu Min, Liu Ke. Building Roof Planes Segmentation of Airborne LiDAR by Using Coarse-to-Fine Method[J]. Laser and Infrared, 2019, 49(12): 1 414-1 420)
(0) |
[12] |
Gilani S A N, Awrangjeb M, Lu G J. Segmentation of Airborne Point Cloud Data for Automatic Building Roof Extraction[J]. GIScience Remote Sensing, 2018, 55(1): 63-89 DOI:10.1080/15481603.2017.1361509
(0) |
[13] |
高广, 马洪超, 张良. 利用合成算法从LiDAR数据提取屋顶面[J]. 武汉大学学报: 信息科学版, 2014, 39(10): 1 225-1 230 (Gao Guang, Ma Hongchao, Zhang Liang. Automatic Extraction of Building Roofs from LiDAR Data Using a Hybridized Method[J]. Geomatics and Information Science of Wuhan University, 2014, 39(10): 1 225-1 230)
(0) |
[14] |
Awrangjeb M, Fraser C S. An Automatic and Threshold-Free Performance Evaluation System for Building Extraction Techniques from Airborne LiDAR Data[J]. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2014, 7(10): 4 184-4 198 DOI:10.1109/JSTARS.2014.2318694
(0) |
2. Suzhou Industrial Park Surveying, Mapping and Geoinformation Co Ltd, 101 Mid-Suhong Road, Suzhou 215000, China