基于LiDAR点云法向量稳健估计的室内平面图自动生成方法
2017-10-17湛逸飞杨必胜
湛逸飞,杨必胜
(武汉大学 测绘遥感信息工程国家重点实验室,湖北 武汉 430079)
0 引 言
“室内地图”是根据位置服务的需求,遵循特定的数学法则,通过图形符号、三维模型、全景图像、数据图表等形式,抽象概括表达室内空间和对象的分布状况及其属性特征的信息载体与工具[1]。近年来,随着数字地图技术和移动互联网技术的发展,室内地图已成为定位、导航不可或缺的基础支撑图[2]。移动互联网时代给室内地图带来更大的应用空间及可想象空间,消费经济的极大繁荣、电子商务的快速发展、社交工具基于位置的功能进化等给予室内地图越来越多的商业价值[3],被视为室外地图的“最后一公里”。被广泛应用于室内定位、室内导航级室内外一体化导航、o2o电子商务等方面[4]。基于平面图数字化的室内地图制作已远远不能满足现有需求[5]。近年来,随着便携式LiDAR技术的兴起,基于LiDAR技术,如背包式、手推车[6-8]等数据采集为室内地图的制作带来了新的数据来源,同时也带来了新的挑战。由于室内点云具有噪声大,场景复杂等特点,如何准确估算点云的法向量实现点云的高质量分割成为研究的热点和难点。Jean-Francois Lalonde,2005;Unnikrishnan R,2010提出了球形自适应邻域方法[9],实现了在局部邻域内保证拟合平面的法向量误差最小。杨必胜等人提出了另一种自适应邻域方法[10-13]。它既参照了“维数特征”方法也融入了局部强度信息,兼顾了几何特征和强度信息的最优,极大地提高了混合区域内对不同地物的几何特征计算精度。Abdul Nurunnabi另辟蹊径,它利用RobustPCA方法克服了传统的PCA方法对噪点过于敏感的弊端[14]。在固定的邻域内,通过RobustPCA先计算出局部几何特征,再以区域生长方法对点云进行分割。
本文提出了一种基于LiDAR点云数据的室内平面图自动生成方法,其关键技术点在于:使用了稳健的点云法向量估计方法,从室内LiDAR点云数据中提取墙面点云。经过一系列优化处理后,生成XoY平面上的矢量边界,经过修整后完成室内平面图的构建。相对于传统的矢量化方法,本方法具有更精确、成图快、自动化程度高等优点。
1 基于LiDAR点云的室内平面图自动生成
本文提出的基于LiDAR点云的室内平面图自动生成方法整体结构流程如下图1所示。分为冗余点离群点剔除、墙面提取、平面矢量化,矢量线段修整等几个步骤。其中,基于RobustPCA的法向量稳健估计确保了室内墙面点云法向量计算的鲁棒性,是后续工作的基础,为本方法的关键技术点。
图1 基于室内LiDAR点云自动生成室内平面图流程图Fig.1 Flowchart of automatic generation of indoor plan based on LiDAR point cloud
由于Lidar点云中存在大量的噪声和冗余,本文方法首先剔除噪点、大量的地面点及天花板点。通过计算点到其最近点欧氏距离来判定,若该点到其最近点欧式距离大于某阈值,即判定为噪声点。然后通过格网剖分统计Z值直方图,从而区分地面点和天花板点。经过上述步骤后,剩余点中的绝大多数则被认为是墙面点。为实现墙面的边界,开发了基于稳健主成分分析(RobustPCA)的点云法向量估计方法。
1.1 基于RobustPCA的法向量稳健估计
主成分分析(PCA)的显著性功能已被用于研究特征面和分割与重建[15]。室内LiDAR点云由于玻璃幕墙反射以及数据采集中平台误差等问题会有大量的噪声点云存在。而传统的PCA对噪声十分敏感,具有较大的不确定性,无法满足室内LiDAR点云的法向量准确计算。本文基于RobustPCA计算室内LiDAR点云稳健的表面特征,从而为墙面边界的稳健提取奠定基础。
RobustPCA的关键步骤如下:
1)确定初始点集。使用KD-tree获取离目标点距离最近的N个点,计初始点集为H。在本文中设N为20。若H中点数小于3,视该点为噪声点予以删除。
2)根据公式(1)计算迭代次数It:
式中,Pr=0.99,h=1/3,ε=0.5为经验值。ε的实际意义为点云的可置信度,代表最小的非噪声点云占总体点云的百分比。
3)随机从H中选取3个点组成子点集h,用PCA方法拟合一个三点平面方程。利用公式(2)计算H中所有点对应该平面的OD值,并进行排序。
式中,Pi为H中各个点,P ̄为中心点,n→为h对应的平面法向量。
4)取OD值较小的前hfree个点,用PCA拟合一个平面,计算最小特征值λ0,其中,
5)重复3)4)过程It次,取λ0最小的平面P,求H中所有点对应于P的OD值,并计算所有OD值的中间绝对偏差MAD:
式中,a=1.482 6。
然后计算出H中所有点的Rz值:
将Rz值大于2.5的视为噪点,不参与计算,得到稳健的点集子集Hr。若Hr中点数小于3,视为噪声予以删除。
6)用PCA方法计算Hr,得到目标点稳健的表面法向量及曲率k。其中为最小特征值λ0对应的特征向量,曲率k为:
1.2 面片分割及墙面面片选取
为提取墙面面片,本文基于区域生成方法,并利用点的法向量、欧氏距离以及到原始平面的距离作为比较条件,确定搜索点是否与种子点进行聚类,直到无法找到合适的邻近点为止[16-18]。具体流程如下:
1)根据计算出的点法向量计算出点的曲率k,并以曲率k进行排序,k值最小点被确定为种子点。
2)取出初始种子点,使用KDtree以r为半径获取其周围所有候选点,本文中r取1.5 m。对于每个候选点,若其同时满足3个条件:
①当前点未被分割;
②当前点曲率小于阈值Kt;
③当前点法向量与初始种子点法向量夹角小于阈值St且当前点与初始种子点所在平面的距离小于阈值Ht;
则将Pi加入当前点容器将与种子队列。
其中,根据多次实验结果,在本文中设定Kt取0.05,St取8°,Ht取0.1 m。
3)执行2)直到所有点被分割,即完成了区域生长。
对聚类的点群根据表1中的参数进行筛选,得到所需要的墙面点云。利用公式(6)计算每个墙面点云的法向量,从而拟合出每个墙面的数学方程。
表1 墙面点云筛选阈值Tab.1 Threshold of selection of wall point cloud
1.3 墙面边界提取
根据分割出每个墙面的数学方程Ax+By+Cz+D=0,将其投影到XOY平面,从而获取其与XOY平面的交线AX+BY+D=0。根据墙面面片点云外包矩形中距离较大的一对对角点计算其到直线Ax+By+D=0的垂足,从而获得墙面的初始边界:
求出所有的墙面边界后,对提取出的墙面边界利用下面步骤进行优化。首先,选取最长线段的方向为主方向,将方向与主方向近似的边界修正为与主方向一致,将方向与主方向垂直的边界修正为与主方向垂直。最后通过如下步骤实现边界的连接:
1)计算出所有线段的长度Li,并以线段长度Li进行排序,线段长度最长的线段被确定为种子线段。
2)取出初始种子线段,线段容器内的其他线段为候选线段。对于每条候选线段,其同时满足:
①当前线段未被合并;
②前线段方向与种子线段夹角小于阈值At;
③当前线段与种子线段的距离小于阈值Dt;
则将Li加入当前线段容器将与种子队列。
其中,根据多次实验结果,At在本文中设定为10°,Dt设定为0.2 m。
然后,在合并后的墙面线段基础上,进行闭合多边形搜索。具体的方法是:
把线段按长短排序,优先选取较长线段为种子线段。
以种子线段的一个端点为起点,搜索离该点最近的其他线段的端点,若小于阈值Dt,则将两线段连为折线。
以被连接线段的另一端点为起点搜索下一线段。重复②③过程,直到无法找到下一线段或找到初始线段。
若搜索停止且未搜索到初始线段的另一端点,则舍弃本次搜索。
若搜索到初始线段的另一端点,则发现闭合多边形,停止搜索。
2 试验与分析
本文所用的室内LiDAR点云采集背包搭载了Velodyne的HDL-32E的激光雷达传感器,以及NovAtel的SPAN-CPT作为惯性测量单元(Inertia Measurement Unit,IMU),两者之间刚性连接并已测两者间相对姿态。
本文利用两个不同类型、大小的室内LiDAR点云为试验数据在Intel Core i7-4710MQ 2.50Ghz处理器与16G内存的计算机对本文提出的方法进行验证。
2.1 试验数据
两份试验数据的基本情况见表2:
表2 试验数据说明Tab.2 Declaration of experiments data
分别对应图2(a),图2(b)。其中,数据1的场景为写字楼,其特点是室内窗户较多,玻璃镜面反射导致产生较多噪声点。数据2的场景为商场,其特点为场景面积大,墙体长。
2.2 试验结果分析
利用本文的方法提取的室内平面图如图2(c)和2(d)所示。黑色线段为提取出的墙面线段,红色线条为墙面线段首尾闭合形成的封闭多边形。
图2 试验数据与试验结果Fig.2 Experiments data and indoor plan results
统计结果表明:场景1中提取结构线137条,准确率为90.51%,召回率为94.48%,搜索到闭合多边形5个。误提取得墙面主要为较大桌子的立面,漏提的部分主要是被窗户分隔开的小墙面。场景2中提取结构线175条,准确率为88.24%,召回率为97.59%,搜索到闭合多边形13个。误提取墙面主要为柜台立面;漏提部分主要是弧形墙面。实验结果同时表明:墙面提取整体准确率达到了88.06%,而且能够提取跨度几十米的墙面,并具有较好的抗噪性,证实了本文方法的稳健性,见表3。
表3 试验结果与处理时间Tab.3 Experiments results and processing time
3 结束语
本文提出了一种基于LiDAR点云的室内平面图自动生成方法,该方法通过一种稳健法向量估计方法实现墙面点云法向量的准确估计,从而为室内墙面边界的准确提取奠定了基础。实际的试验结果表明:本文的方法能够有效地从室内扫描点云中稳健提取墙面的边界线,具有快速、准确等特点,为室内地图的制作提供了不可或缺的基础信息,鉴于室内定位及导航对室内地图的精细化要求,自动化地提取楼梯、门等附属设施将是本文下一步工作的重点。