建筑物立面点云直线段特征提取方法 下载: 1095次
1 引言
三维激光扫描技术可以快速获取物体表面的点云数据。三维直线段特征是点云中重要的特征之一,可以用于点云配准[1]、视觉定位[2]、测距传感器标定[3]、建筑物立面图生成和建筑物三维模型重建[4]等。“实景三维中国”概念的提出,使得建筑物三维模型的精细化重建具有重要意义,其中建筑物直线段特征在模型重建中发挥了重要作用,准确有效地提取直线段特征是三维模型重建的关键。根据文献[ 2,5]的定义,点云中三维直线段分为深度不连续直线段(表面轮廓)和表面相交直线段两类。基于点云数据对直线段进行提取的研究还处于起步和探索阶段[5],现有从点云数据中提取直线段的方法可以分为基于图像的方法、基于平面相交的方法和基于点的方法。
基于图像的方法利用了较为成熟的图像处理相关算法。文献[ 6-7]分别采用正射投影和多视角投影的方式将点云投影到二维平面,然后利用线性特征检测算法(LSD)[8]提取直线段。文献[ 9]先利用区域增长对点云进行平面分割,然后从平面中基于图像检测提取直线段特征点并拟合,最后将二维直线段映射回三维空间。基于图像提取直线段的主要问题在于最佳投影平面难以确定,直线段的提取依赖于投影平面的选择,且二维和三维之间的维度变换存在一定的精度损失。
基于平面相交的方法可以提取三维直线段中的平面相交直线段。文献[ 1-2]分别利用随机采样一致性算法(RANSAC)[10-11]和区域增长算法从点云中提取平面,然后通过平面求交得到平面相交直线段。由于实际墙面难以保证平整,因此平面相交求取的直线段容易出现偏差。为此文献[ 12]用直线段邻域点集对平面进行重心归化,提高了直线段的提取精度。基于平面相交提取相交直线段的主要问题在于点云中的小平面难以被精确分割,方向相同的相邻直线段提取效果不佳。
基于点的方法利用局部特征直接提取特征点,并通过直线拟合获取直线段。文献[ 2]和[3]中采用局部主成分分析算法(PCA)[13]提取深度不连续的边缘点,然后进行直线的聚类和拟合。文献[ 4]通过邻域内的夹角关系提取建筑物直线特征点,然后通过聚类和统计分析确定直线段端点并提取每条直线段。此外,文献[ 14-17]也分别通过PCA和法向量变化提取特征边界点,但未对每条特征线进行区分和拟合。基于点对直线段进行提取的主要问题在于局部邻域范围大小对特征点提取影响较大,阈值难以确定,且难以聚类区分每条直线段。
针对点云直线段提取的现有方法存在精度差、漏提取严重、参数阈值难以选取等不足,本文提出一种基于切片的建筑物立面点云直线段提取方法。该方法首先对原始点云进行姿态调整,然后沿坐标轴进行切片并在切片上提取直线段特征点,之后基于圆柱体生长方式对特征点进行聚类及拟合直线段,最后对直线段的端点进行调整与优化。
2 直线段提取
基于切片的建筑物立面点云直线段特征提取方法主要分为6个步骤:建筑物立面点云姿态调整、沿坐标轴方向切片生成、切片上特征点的提取、基于圆柱体生长的特征点聚类、基于残差1范数最小的直线段拟合、直线段端点的调整与优化。
2.1 姿态调整
通过沿特征直线段方向进行切片的方式实现局部加密,进而提取该方向上直线段特征点并沿该方向聚类特征点拟合特征直线段。为便于切片方向的确定和后续特征点的聚类生长,现对建筑物立面整体点云进行姿态调整,使建筑物立面走向与
原始点云如
式中:Δ
矩阵
图 1. 原始点云姿态调整。(a)原始点云;(b)姿态调整后点云
Fig. 1. Attitude adjustment of original point cloud. (a) Original point cloud; (b) point cloud after attitude adjustment
图 2. 姿态调整。(a)原始点云姿态;(b)原始点云主方向;(c)调整后点云姿态
Fig. 2. Attitude adjustment. (a) Attitude of original point cloud; (b) principal direction of original point cloud; (c) attitude of point cloud after adjustment
2.2 切片生成
对姿态调整后的建筑物立面点云进行切片[19],即采用一组与切片方向相垂直的平行平面对点云进行分割,并将三维点云投影到二维切片平面上。设原始散乱点集的坐标范围为(
式中,
分别沿三个坐标轴定义三组平行平面,对姿态调整后的点云数据进行分割,将分割得到的每层数据投影到位于该层中间的参考平面上即可得到三组切片点云,结果如
图 3. 切片生成。(a) X 轴切片;(b) Y 轴切片;(c) Z 轴切片
Fig. 3. Slice generation. (a) Slices along X axis; (b) slices along Y axis; (c) slices along Z axis
2.3 特征点提取
建筑物立面上的绝大多数直线段特征(如门、窗、墙面拐角等)均平行或垂直于地面,因此分别沿
1)对切片上所有点建立KD-tree索引,循环切片上的所有点
2)计算
3)对
4)以
5)统计夹角在135°~180°之间的点的数目,除过接近点(到
用RANSAC拟合直线寻找参考点可以确保参考点选取的准确性。RANSAC可以在存在离群点的情况下拟合得到最优直线,如
为提高切片上特征点的提取速度,第一,在提取某切片特征点前先对该切片进行判断,计算该切片内点云所占面积与切片整体面积的比值,若比值大于一定阈值,则该切片靠近建筑物中的某个墙面,此时不对该切片进行特征点提取。第二,对于切片上的某点
将切片上提取的特征点映射回三维空间即得到与该切片方向垂直的直线段特征点。
图 7. 特征点提取。(a) X 轴切片特征点;(b) Y 轴切片特征点;(c) Z 轴切片特征点
Fig. 7. Extraction of feature points. (a) Feature points on slices along X axis; (b) feature points on slices along Y axis; (c) feature points on slices along Z axis
2.4 直线段特征点聚类
从
1)指定圆柱体半径阈值
2)沿
3)若
4)在切片
5)对聚类后切片层数小于一定数量的聚类结果进行删除,剔除特征点提取中的噪声点,如
图 8. 基于圆柱体生长的特征点聚类流程图(Z 方向)
Fig. 8. Flow chart of feature points clustered based on cylindrical growth (Z direction)
聚类后,可以分别实现沿
图 10. 特征点聚类。 (a) X 轴切片特征点聚类;(b) Y 轴切片特征点聚类;(c) Z 轴切片特征点聚类
Fig. 10. Clustering of feature points. (a) Clustering of feature points on slices along X axis; (b) clustering of feature points on slices along Y axis; (c) clustering of feature points on slices along Z axis
2.5 直线段拟合
聚类后特征直线段的表达方式为原始点云中的离散扫描点,为更加精确地对特征直线段进行表达,需对聚类后的特征点进行直线拟合。多数学者均采用最小二乘法进行空间直线特征点的拟合,但最小二乘法假定数据中只含有偶然误差不含粗差,具有较差的抗差性。直线段聚类后虽然可以剔除较大的粗差点,但对于数值较小的粗差点难以有效剔除,因此聚类结果中难免存在少数的小数值粗差点,此时残差1范数最小的直线拟合方法能更好地避免粗差的影响,实现更精确的直线拟合。
对于某直线段上的特征点(
式中,
由此得误差方程为
将所有属于该直线段特征点的误差方程写为矩阵形式,表示为
式中,
在残差1范数最小的条件下,即min(‖
式中
式中,
将聚类后每条直线段的特征点投影到拟合的对应空间直线上,可以确定直线段的起始端点位置,拟合后的直线段如
2.6 直线段调整与优化
经特征直线段拟合后,实际提取的两条或三条相交直线在相交处并不为同一个端点,会有一定的错位,如
图 12. 直线段端点调整与优化。(a)优化与调整前;(b)优化与调整后
Fig. 12. Adjustment and refinement of endpoints of straight line segments. (a) Before adjustment and refinement; (b) after adjustment and refinement
3 实验与分析
3.1 实验数据
利用4组点云数据对本文算法进行实验验证。Data 1和Data 2为Semantic 3D公开数据集中由地面三维激光扫描测量的较为完整的部分建筑物立面点云数据,点云密度较大;Data 3为由车载三维激光扫描测量的某城市街道中的部分建筑物点云数据,点云密度较稀疏;Data 4为从建筑物BIM模型中生成的点云,数据较为理想,且噪声较少。实验点云数据的点数量及平均点间距信息如
3.2 直线段提取与分析
采用本文算法对实验数据进行三维直线段特征提取,本文算法中主要涉及切片厚度
表 1. 实验数据处理结果
Table 1. Processing results of experiment data
|
由4组实验数据的实验结果可知:本文算法能从建筑物立面点云中较完整地提取直线段特征,且对方向相同的近距离直线段也能很好地区分,如
图 13. 直线段提取结果。(a)~(d) Data 1,Data 2,Data 3,Data 4;(e)~(h) Data 1,Data 2,Data 3,Data 4的提取结果
Fig. 13. Extraction results of straight line segments. (a)-(d) Data 1, Data 2, Data 3, and Data 4; (e)-(h) extraction results of Data 1, Data 2, Data 3, and Data 4
为量化分析本文算法的直线段提取精度,对模型点云Data 4直线段提取结果中窗体的大小进行量测,并与原模型进行比较。Data 4中共存在59个大小相等的窗体,对提取结果中每个窗体的4个边长(2个宽度和2个高度)进行量测,将模型设计值作为真值,计算提取窗体宽度和高度的最大误差、最小误差和平均误差,结果如
表 2. Data 4窗体提取误差分析
Table 2. Error analysis of windows extraction of Data 4
|
3.3 对比实验
为对比本文算法的直线段提取效果,将本文算法与现有方法进行对比分析。文献[
9]将基于平面相交和基于图像从点云数据中提取直线段的方式相结合,提出一种基于平面分割和图像检测的直线段提取算法。分别采用本文算法和文献[
9]所述算法对Data 1和Data 3进行直线段提取,提取结果如
图 14. 直线段提取结果对比。(a) Data 1,文献[ 9]算法提取结果;(b) Data 1,本文算法提取结果;(c) Data 3,文献[ 9]算法提取结果;(d) Data 3,本文算法提取结果
Fig. 14. Comparison of extraction results of straight line segments. (a) Extraction result of Data 1 obtained by method in Ref. [9];(b) extraction result of Data 1 obtained by proposed method; (c) extraction result of Data 3 obtained by method in Ref. [9]; (d) extraction result of Data 3 obtained by proposed method
为对直线段提取结果进行定量评价,采用精确率(
式中,
将Data 1和Data 3平均分成若干个小区域,分别从存在点云数据的小区域中随机抽取4个并编号为1~8,如
根据
1)相比文献[
9]所述基于平面分割和图像检测的算法,本文算法的直线段提取结果更加准确和完整,即提取直线段的精确率和召回率更高。数据Data 3窗体边缘的提取结果中,文献[
9]算法漏提取现象较为严重,如
图 15. 精确率和召回率统计区域。(a) Data 1统计区域;(b) Data 3统计区域
Fig. 15. Statistical areas of precision and recall. (a) Statistical areas of Data 1; (b) statistical areas of Data 3
表 3. 直线段提取结果的精确率和召回率对比
Table 3. Comparison of precision and recall of extraction results of straight line segments
|
2)对方向相同的临近直线段,本文算法的提取效果要优于基于平面分割和图像检测的算法。基于平面分割和图像检测算法的直线段提取效果受制于平面分割的结果,由于点云数据中方向相同的相邻直线段之间的小平面难以被准确分割,因此对应小平面中的直线段难以被有效提取,如
3)对三维特征直线段的提取精度,本文算法要优于基于平面分割和图像检测的算法。后者需要将三维点云转换至二维图像,在图像中检测直线段,再把检测出的直线段由二维转换到三维空间,在进行维度转换的过程中难免会产生精度损失。从
4)相比基于平面分割和图像检测的算法,本文算法对建筑物立面中平行或垂直于地面直线段的提取效果具有绝对优势,但由于本文算法采用了切片的形式进行局部加密并且切片和直线段聚类时均沿坐标轴方向进行,因此本文算法的运行效率较文献[
9]算法有所降低,且无法有效提取建筑物中存在的少数与地面成一定夹角的倾斜直线段,该局限性从算法运行耗时及
从点云数据中基于点提取直线段特征的算法中比较有代表性的为文献[
16]所提的PCA,该算法结果的表现形式为原始点云中位于线特征上的散乱点,故将本文算法从原始点云中提取到的直线段特征点与PCA提取的特征点进行对比分析。采用两种算法分别对数据Data 1进行特征点提取,PCA需要设置待判断点的搜索半径取值范围,实验中选取三组不同的范围阈值,提取结果如
对比特征点提取结果可知,PCA虽然可以提取倾斜直线和曲线上的特征点,但提取效果不佳,且搜索范围参数阈值难以选取。阈值选取过小会导致提取结果中会存在较多的噪声点,如
图 16. Data 1特征点提取结果对比。(a) PCA提取结果,0.2 cm<R <7 cm;(b) PCA提取结果,0.2 cm<R <10 cm;(c) PCA提取结果,0.2 cm<R <15 cm;(d)本文算法提取结果
Fig. 16. Comparison of extraction results of feature points of Data 1. (a) Extraction result of PCA, 0.2 cm<R <7 cm;(b) extraction result of PCA, 0.2 cm<R <10 cm; (c) extraction result of PCA, 0.2 cm<R <15 cm;(d) extraction result of proposed method
4 结论
与现有的基于图像、基于平面分割和基于点的点云直线段特征提取方法不同,一种基于切片的点云直线段提取方法的核心思想是通过切片对原始点云进行局部加密,从而可以较完整地提取点云中的直线段特征。实验中,不同类型点云数据的测试结果证明本文算法能有效提取建筑物立面中的水平和垂直直线段,且具有较高的提取精度,直线段提取平均误差约为平均点间距的1/2。通过与现有方法的对比实验,证明了与基于点提取直线段的主成分分析算法和基于平面分割及图像检测提取直线段的算法相比,本文算法的直线段提取结果更加完整,对方向相同的相邻直线段的提取效果更优,且本文算法提取的直线段与原始数据更加吻合,精度更高。
本文算法的主要局限性为,由于切片和直线段聚类时均沿坐标轴方向进行,因此只能提取与坐标轴平行的直线段,即平行或垂直于地面的直线段,对于建筑物中与地面成一定夹角的直线段不能进行有效提取。但由于建筑物立面中绝大多数直线段均为水平和垂直相交的非倾斜直线段,倾斜直线段数量较少,且仅存在于建筑物顶部,因此本文算法对建筑物立面点云数据直线段特征的提取具有一定的适用性。
[2] BorgesP, ZlotR, BosseM, et al. Vision-based localization using an edge map extracted from 3D laser range data[C]∥2010 IEEE International Conference on Robotics and Automation, May 3-7, 2010, Anchorage, AK, USA. New York: IEEE, 2010: 4902- 4909.
[3] MoghadamP, BosseM, ZlotR. Line-based extrinsic calibration of range and image sensors[C]∥2013 IEEE International Conference on Robotics and Automation, May 6-10, 2013, Karlsruhe, Germany. New York: IEEE, 2013: 3685- 3691.
[5] 倪欢, 张继贤, 林祥国. 三维点云边缘检测和直线段提取进展与展望[J]. 测绘通报, 2016( 7): 1- 4.
NiH, Zhang JX, Lin XG. Edge detection and straight line segment extraction from 3D-point clouds: review and prospect[J]. Bulletin of Surveying and Mapping, 2016( 7): 1- 4.
[6] 梁玉斌. 面向建筑测绘的地面激光扫描模式识别方法研究[D]. 武汉: 武汉大学, 2013.
Liang YB. Research on pattern recognition methods for terrestrial laser scanning towards building surveying and mapping[D]. Wuhan: Wuhan University, 2013.
[9] Lu XH, Liu YH, Li K. Fast 3D line segment detection from unorganized point cloud[J/OL]. ( 2019-01-08)[2019-05-17]. https:∥arxiv.org/abs/1901. 02532.
[11] Poreba M. Goulette F. RANSAC algorithm and elements of graph theory for automatic plane detection in 3D point clouds[J]. Archives of Photogrammetry, 2013, 24: 301-310.
[12] 李明磊, 宗文鹏, 李广云, 等. 基于体素生长的点云结构直线段提取[J]. 光学学报, 2018, 38(1): 0112001.
[13] Hoppe H. DeRose T, Duchamp T, et al. Surface reconstruction from unorganized points[J]. ACM SIGGRAPH Computer Graphics, 1992, 26(2): 71-78.
[14] HackelT, Wegner JD, SchindlerK. Contour detection in unstructured 3D point clouds[C]∥2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 27-30, 2016, Las Vegas, NV, USA. New York: IEEE, 2016: 1610- 1618.
[15] BazazianD, Casas JR, Ruiz-HidalgoJ. Fast and robust edge extraction in unorganized point clouds[C]∥2015 International Conference on Digital Image Computing: Techniques and Applications (DICTA), November 23-25, 2015, Adelaide, SA, Australia, New York: IEEE, 2015: 15698827.
[16] DemantkéJ, MalletC, DavidN, et al. Dimensionality based scale selection in 3D LiDAR point clouds[J]. ISPRS - International Archives of the Photogrammetry, RemoteSensing and Spatial InformationSciences, 2012, XXXVIII-5/W12: 97- 102.
[17] 裴书玉, 杜宁, 王莉, 等. 基于移动最小二乘法法矢估计的建筑物点云特征提取[J]. 测绘通报, 2018( 4): 73- 77.
Pei SY, DuN, WangL, et al. Feature extraction of building point cloud based on moving-least squares vector estimation[J]. Bulletin of Surveying and Mapping, 2018( 4): 73- 77.
[18] 杨泽鑫, 程效军, 李泉, 等. 平面舱壁类型的船舱点云分割方法[J]. 中国激光, 2017, 44(10): 1010006.
[19] 佟国峰, 杜宪策, 李勇, 等. 基于切片采样和质心距直方图特征的室外大场景三维点云分类[J]. 中国激光, 2018, 45(10): 1004001.
[21] 张立朔, 程效军. 基于激光点云的隧道形变分析方法[J]. 中国激光, 2018, 45(4): 0304004.
Article Outline
李金涛, 程效军. 建筑物立面点云直线段特征提取方法[J]. 中国激光, 2019, 46(11): 1109002. Jintao Li, Xiaojun Cheng. Straight-Line-Segment Feature-Extraction Method for Building-Facade Point-Cloud Data[J]. Chinese Journal of Lasers, 2019, 46(11): 1109002.