基于点云数据的建筑物屋顶面点集轮廓线提取
王道芸1 袁晨鑫2
(1. 广州市城市更新规划设计研究院有限公司, 广东 广州 510000;2. 中陕核工业集团测绘院有限公司, 陕西 西安 710000)
摘要: 针对利用点云数据提取建筑物轮廓线不完整、缺失的问题,提出一种基于点云数据提取建筑物轮廓线方法。该方法首先对原始点云数据进行预处理,获取建筑物点云数据集;其次,采用具有噪声的基于密度的聚类方法(DBSCAN)进行点集聚类,得到单个建筑物点云数据集;再次,采用Alpha Shapes算法进行建筑物轮廓线粗提取,然后采用管子算法进行建筑物特征关键点提取;最后采用强制正交的方法进行轮廓线规则化,获取最终的建筑物轮廓线。实验证明,本文方法可以很好地提取建筑物轮廓线,适用性和时效性比较好。
0 引言
三维模型是建设智慧城市、智慧交通的基础数据。智慧城市对城市三维模型提出了极大需求,三维激光扫描技术是获取三维模型数据的重要技术,建筑物轮廓线信息是重建建筑物三维模型的重要依据。目前该领域许多专业人士对建筑物轮廓线特征信息检测提取做了相关的实验研究。尤红建等[1]将点云数据进行预处理生成数字表面模型(digital surface model,DSM)数据,并采用图像检测方法提取建筑物轮廓线信息;张栋等[2]利用点云数据和航拍影像相结合提取建筑物轮廓线,该方法可以很好地提取简单建筑物轮廓线信息,但是对复杂的建筑物点云数据提取效果不佳。孟峰等[3]通过对点云数据进行重采样获取影像数据,并对影像进行分割,最后通过边缘检测算法进行建筑物轮廓线提取,该方法提取的建筑物轮廓线数据会缺失部分信息。文献[4]首先将点云数据生成DSM深度影像,然后采用双边滤波算法进行对建筑物轮廓线提取,最后采用基于高斯核的Hough变换轮廓线进行检测及规则化,该方法可以很好地提取比较规则建筑物轮廓信息,但对复杂的建筑物轮廓线提取效果不佳。综上,现有算法能在海量离散型数据中提取建筑物轮廓特征信息,但对于复杂建筑物提取信息效果不太明显,转角暗角提取信息不全。因此,本文提出一种建筑物轮廓线检测的方法,首先采用布料模拟滤波(cloth simulation filtering,CSF)算法[5-6]对点云数据进行滤波处理,利用噪声密度的聚类方法(density-based spatial clustering of applications with noise,DBSCAN)进行点集聚类获取单个建筑物点云数据集,其次采用Alpha Shapes算法进行建筑物轮廓线信息粗提取,然后利用管子算法进行建筑物特征关键点提取,最后采用强制正交方法进行建筑物轮廓线规则化处理,获取完整的建筑物轮廓线信息。
1 点云数据获取及预处理
1.1 点云数据获取
本文采用的飞行平台为飞马D2000无人机搭载的机载激光雷达(light detection and ranging,LiDAR)扫描仪,于2020年6月在江西南昌城区采集了建筑物的点云数据,采集点云数据总计115万点,密度为300~500 pts/m2。原始点云数据包括三维坐标、回拨次数、强度信息、类别等属性信息。
1.2 点云数据预处理
获取的原始点云数据不能直接进行建筑物模型构建,需要利用点云后处理软件进行数据处理。将点云数据转化成相对应的标准格式后,并将质心坐标系转换为大地坐标系,并提取建筑物轮廓线信息。
获取的点云数据包括电线杆、树木、信号塔、多个建筑物及道路、草皮等地面数据,若需要进行建筑物轮廓线的提取以及模型的建立,就需要对点云数据进行滤波处理。本文采用CSF滤波算法获取建筑物点云数据,见图1。
图1 点云滤波处理示意图
2 建筑物轮廓线提取方法
2.1 建筑物轮廓线提取
2.1.1 基于DBSCAN算法聚类
经过CSF算法处理得到的建筑物点云数据,存在数据量大、计算周期长,计算速度慢等问题。本文将经过处理后点云数据先通过基于DBSCAN算法进行聚类,后分割成单个建筑物点集,再利用单个建筑物点集进行建筑物轮廓线提取。该方法可以减少计算量、提高计算速度。
DBSCAN聚类的中心思想[7-9],只要某个区域点密度大于某个域值,就将其加到与之邻近的聚类中。该簇中每个对象都假定在给定的半径ε的邻域中至少要包含最小数数目(MinPts)。该方法能解决基于距离的算法只能发现“类圆形”聚类的不足,可看到任意形状的聚类,且对其他杂乱数据不敏感。本文选择DBSCAN算法进行建筑物点云数据进行聚类。
DBSCAN主要通过检查数据集中每个对象的ε-邻域来搜寻聚类。如果点p的ε-邻域包含多于MinPts个目标对象,则创建目标点p作为核心对象的新簇C。DBSCAN从C中搜寻到未被处理目标对象q的ε-邻域,若目标对象q的ε-邻域包含多MinPts个目标对象,则还没有包含在C中目标对象q的邻点放到簇中,同时该点的ε-邻域放到下一步中进行检测。这个过程多次重复执行,如果没有新的目标点可以被放到任何簇时,则该过程结束。算法流程如下:
(1)确定两个参数。Epsilon为在一个点周围邻近区域的半径,MinPts为邻区域内至少包含目标对象点的个数。
(2)任意选取一个点,判断该点是否为核点。如果是一个类,该点为核点,否则,该点设定为外围点。
(3)遍历其他点,直到最终建立一个类,把directly-reachable的目标点、density-reachable的目标点依次加入该类中。如果标记为外围的目标点被加载进去,则该修改状态为边缘点。
(4)多次重复步骤1和步骤2,直到所有的目标点满足在类中(核点或边缘点)或者为外围点。
(5)利用轮廓函数对算法进行评估,得出最优参数。
2.1.2 基于Alpha Shapes算法的轮廓线提取
经过基于密度聚类的方法获取单个建筑物的点云数据集,获取的数据是单个建筑物平面点云数据集的一堆离散点集,本文利用基于Alpha Shapes算法进行建筑物轮廓线的提取。
Alpha Shapes算法[10-11]对离散的点云数据进行三维形状重建,假设一个有限的点集S的Alpha Shapes是个多边形,则点集S和参数是可以确定唯一多边形,并且Alpha Shapes表达多边形形状细节,并规定其精度。
假设有半径为a的圆在离散点云数据集S外滚动,当趋向为0时,则每一个离散点都是边界;当点集比较均匀时,且选取一个合适的值,提取出点集S的内外边界;若继续增大,该圆不会滚入点云集合内部,这时会得到其外部点集的边界线;若进一步增大,当趋向无穷大时,得到的点集S将是一个凸包。
Alpha Shapes算法的具体流程:
(1)输入点云坐标向量p,确定滚球半径r。
(2)在目标对象p中任选一目标点p0(可以按p向量的排序来选,遍历所有点,也可以按照一定规则优选边界附近的)。
(3)以p0为圆心、以2r为半径画圆,该圆内的其他目标点标记为pr_cir,在pr_cir内任选一点作为p1,然后计算出过p0和p1两点的圆心(有2个,分别记为p2和p3),其中圆心p2、p3为经过p、p1两点且半径为a的两种情况下的圆心坐标,如图2所示。
图2 Alpha Shapes算法几何图
(4)将去除p0和p1的其他目标点标记为pr_cirr,从而计算pr_cirr所有目标点和以p2为圆心和以p3为圆心之间的距离,通过循环来实现该过程。最后将计算出来两圆心之间的距离加入一个数据组d1和d2中。
(5)判定边界点的规则条件。假设pr_cirr内所有目标点与其他圆的距离都大于r值,则该点为边界点p1,就可以定义新的p1重复步骤了。
(6)若不能满足条件,就重复(4)继续计算,直到计算完为止。即遍历pr_cir,若pr_cir所有目标点都不能满足该要求,则标记为非边界点。
2.1.3 基于管子算法的轮廓线特征点提取
经过基于Alpha Shapes的方法提取建筑物轮廓线,获取的建筑物轮廓线并不完整,部分拐角及半隐蔽部分的关键点无法获取。因此本文采用基于管子算法[12-13]提取建筑物轮廓线拐角以及半隐蔽部分的特征点,从而使获取的建筑物轮廓线完整,如图3所示。
图3 管子算法示意图
假设采用直径为d的管子用来判断边界点。若边界点区域变化小于直径d时,变化较小,超过d的目标点直接删除,删除的点不会影响到整体的边界形状。若区域变化大于直径d时,则判断该目标点是为边界线拐点,则将其保留。管子算法动态的处理边界点,并不需要所有点参加运算,该算法可以最大化地保留边界线的信息,部分较小的变化不会影响整体边界线的判断。
算法基本流程如下:
(1)决定直径d的大小,并作为算法的初始值。该值表示一个点集基线的距离,作为判断转折点的依据。
(2)从头两个点p1、p2开始,计算两点连线的方位角B和距离L0。
(3)垂直与当前线段(开始时为p1p2),pi点(开始时为p2点)做长度为d的垂线,计算容忍角度a0的范围为β0±Δα0,其中Δα0=arctan(d/2l0)。
(4)连接下一个点pi+1(第一次为点p3)与起始点p1生成新的线段,并计算B、L,由此计算出新的容忍角度a的范围为β±Δα,其中Δα=arctan(d/2l)。
(5)如果B在当前的容忍角度a0内,则当前点pi不是转折点,被剔除。以p1pi+1为起始线段与下一点pi+2进行比较,此时半段方位角的范围为[max(β0-Δα0,β-Δα),min(β0+Δα0,β+Δα)],继续步骤(3)和步骤(4)。如果b不在当前的容忍角度a0内,将该点和下一点连线当作起始半段线段,重复以上步骤。
2.2 精细化建筑物轮廓线
通过管子算法可以提取完整建筑物轮廓线,但提取的建筑物轮廓线是锯齿状的、部分轮廓线的拐角以及半隐蔽部分的角度并不是直角,与现实状态下建筑物的角度存在差异。因此需要对建筑物轮廓线规则化。本文采用强制正交规则化轮廓线算法[14-15],通过该算法可以使建筑物轮廓线的形状与现实中的建筑物很好地结合。
建筑物轮廓线规则化算法步骤:
(1)计算每个相邻特征点的距离,将最长边作为建筑物的某个主方向,并从这条边开始对边界点重新编号。
(2)从最长边的两个特征点距离d开始,计算某个特征点到最长边特征点距离直线PL的垂足PO坐标和相应的距离。
(3)计算垂足点到PO到PL的距离D,并与最长边两特征点距离做比较,并进行判断。
(4)重复上述所有步骤,直到所有特征点都处理完为止。
3 实验与结论
3.1 轮廓提取结果
实验利用基于CSF滤波方式从原始点云数据中滤波地面点,并根据高程差值等信息手动剔除掉树木、电线杆以及其他植被噪声点,最后将提取的建筑物点云数据作为提取建筑物轮廓线实验点云数据集,如图4所示。
图4 点云数据预处理
为了验证本文方法提取建筑物轮廓线的适用性和有效性,采用基于DBSCAN的方法对建筑物点云数据集进行聚类(图5),分割成以单个建筑物为单元的建筑物点云子集,选取简单独栋建筑物、L型建筑物以及多栋相连建筑物等不同形状点云数据进行实验。
图5 基于DBSCAN方法的聚类
实验表明,通过采用Alpha Shapes方法提取建筑物轮廓线,其建筑物轮廓线提取效果根据Alpha值的不同而不同。通过多次实验可发现,Alpha值的优劣影响提取建筑物轮廓线的精度,在实际操作过程中要根据提取建筑物轮廓线的精度调整Alpha值的,本次实验选择Alpha=1.0时提取建筑物轮廓线效果比较好,如图6所示。
图6 基于Alpha Shapes算法提取建筑物轮廓线
通过Alpha Shapes方法初步提取的建筑物轮廓线拐角部分以及半隐蔽部分未被检测到,使得提取的建筑物轮廓线并不完整,因此需要对提取的建筑物轮廓线未被检测到的转角及半隐蔽进行处理,通过采用管子算法进行提取初始轮廓线的关键点。获取完整的建筑物轮廓线,提取结果如图7所示。
图7 基于管子算法建筑物特征点提取
从离散的LiDAR点云数据初步提取的建筑物轮廓线一般呈锯齿状,非常粗糙,但现实中的建筑物轮廓线基本是平滑的。因此,对采用管子算法之后获取的建筑物轮廓线,进行规则化处理。本文采用强制正交的方法优化建筑物轮廓线,结果如图8所示。
图8 基强制规则化建筑物轮廓线提取
3.2 精度和效率分析
3.2.1 精度分析
本文通过面积测定比较法分析建筑物点云数据提取轮廓几何精度以及与其他方法提取建筑物轮廓线耗时进行对比分析其效率性。
面积测定比较法是将提取建筑物轮廓线连接形成闭合区域,计算该面积,同时将形成的闭合区域间套合在真实轮廓线进行对比分析,结果如表1所示。
表1 建筑物轮廓提取线精度检测一览
通过表1可以看出,本文方法提取简单建筑物轮廓线的精准率可以达到96.32%,提取L型建筑物轮廓线的精准率可以达到93.26%,提取多个复杂建筑物轮廓线的精准率可以达到91.43%。同时跟直接Alpha Shapes方法提取建筑物轮廓线方法进行对比,本文方法的精准率优于直接用Alpha Shapes方法。
3.2.2 效率分析
为验证本文方法的时效性,选择实验区域的多个建筑物点云数据进行效率分析,统计本文方法与直接用Alpha Shapes方法提取建筑物的运行时间。从表2可以看出,本文方法提取建筑物轮廓线的方法耗时低、速度快,并且提取的轮廓具有较好的精准率。
表2 建筑物轮廓线提取运行效率一览
4 结束语
建筑物轮廓线是三维建模中一个重要的几何特征,其提取的精度和速度对三维建模的质量和效率起到重要作用。传统的建筑物轮廓线提取方法提取数据精度低,效率慢,耗时久,提取的建筑物轮廓线拐角部分和半隐蔽部分的特征易缺失。本文通过基于DBSCAN聚类的方法将群体建筑物分割成多个单元建筑物,采用Alpha Shapes方法提取建筑物轮廓线,提取的轮廓线部分拐角及半隐蔽部分点未被提取出来;采用管子算法获取轮廓线的关键点,获取的建筑物轮廓线与现实建筑物形状相近;采用强制正交化方法规则化建筑物轮廓线,能够将绝大部分规则建筑物的轮廓线规则化。结果表明,本文的方法适应性强、准确性高。通过规则化处理后的建筑物轮廓线与现状中的建筑物基本吻合。
参考文献
[1] 尤红建,苏林,李树楷.利用机载三维成像仪的DSM数据自动提取建筑物[J].武汉大学学报(信息科学版),2002,27(4):408-413.
[2] 张栋.基于LIDAR数据和航空影像的城市房屋三维重建[D].武汉:武汉大学,2005.
[3] 孟峰,李海涛,吴侃.LIDAR点云数据的建筑物特征线提取[J].测绘科学,2008,33(5):97-99,108.
[4] 袁晨鑫,官云兰,陈梦露,等.基于LiDAR点云数据的建筑物轮廓线提取[J].工程勘察,2020,48(6):68-72.
[5] 郑津津,于洋洋,周洪军.基于布料模拟滤波和随机森林的点云分类算法[J].工业控制计算机,2020,33(2):90-92.
[6] 张昌赛,刘正军,杨树文,等.基于LiDAR数据的布料模拟滤波算法的适用性分析[J].激光技术,2018,42(3):410-416.
[7] 李忠武.基于密度的聚类分析[J].电子测试,2016(14):59-60.
[8] 苟和平,景永霞,冯百明,等.基于DBSCAN聚类的改进KNN文本分类算法[J].科学技术与工程,2013,13(1):219-222.
[9] 冯少荣,肖文俊.DBSCAN聚类算法的研究与改进[J].中国矿业大学学报,2008,37(1):105-111.
[10] 王秋燕,陈犀力.基于Alpha Shapes算法的LIDAR数据建筑物轮廓线提取[J].智能建筑与智慧城市,2019(2):23-25.
[11] 沈蔚,李京,陈云浩,等.基于LIDAR数据的建筑轮廓线提取及规则化算法研究[J].遥感学报,2008,12(5):692-698.
[12] 刘士程.基于LiDAR数据提取建筑物顶面轮廓线方法研究[D].成都:西南交通大学,2012.
[13] 陈永枫.基于机载LiDAR点云数据的建筑物重建技术研究[D].郑州:信息工程大学,2013.
[14] 陈奇.机载LiDAR与影像结合的建筑物检测及其轮廓精化方法研究[D].武汉:武汉大学,2015.
[15] 高广.利用机载LiDAR数据生成规范化建筑物模型的关键技术研究[D].武汉:武汉大学,2014.
引文格式: 王道芸,袁晨鑫. 基于点云数据的建筑物屋顶面点集轮廓线提取[J].北京测绘,2023,37(6):861-866.
作者简介:王道芸(1993—),女,青海海东人,硕士,从事3S技术理论和应用研究工作。E-mail:1471612493@qq.com
通信作者:袁晨鑫,E-mail:ycx202357@qq.com
转自:“测绘学术资讯”微信公众号
如有侵权,请联系本站删除!