姜龙飞
摘要:针对三维激光点云数据海量性、离散性、信息丰富但冗余大的特点,本文研究了如何从海量点云数据提取空间信息,并提出了基于“定位、扫描、滤波、重建、煤矿一张图显示”的煤矿巷道数据实时获取更新的新思路。在对数据进行体素滤波的基础上研究了PCL点云库常用的3种点云曲面重建方法,可有效较少冗余信息,提高运行效率,探索了可直接加载于煤矿“一張图”系统的三维曲面重建算法。
关键词:激光点云;曲面重建;Marching Cubes算法;Poisson算法;Greedy PT算法
Abstract: This paper studies how to extract spatial information from massive point cloud data, and puts forward a new idea of real-time acquisition and update of underground data of coal mine based on "positioning, scanning, filtering, reconstruction and display of one map of coal mine". On the basis of voxel filtering, this paper studies three methods of point cloud surface reconstruction commonly used in PCL point cloud bank, which can effectively reduce redundant information, and explores a 3D surface reconstruction algorithm that can be directly loaded into the "one map" system of coal mine.
Key words: laser point cloud;surface reconstruction;Marching Cubes algorithm;Poisson algorithm;Greedy PT algorithm
0 引言
基于激光点云的三维场景曲面重建技术是通过记录激光扫描仪发射脉冲方向及接收目标表面反射激光的时间差(或相位差)来获取基于激光扫描仪视角的三维激光点云信息[1],其数据具有获取高效、精准便捷、测量非接触等优点[2]。但由于国内煤矿井下环境的复杂性、下井设备防爆安全性能的要求,针对煤矿井下的三维场景重建的实际应用鲜有人研究。[3]
煤矿生产过程中,传统的建模方法主要有三棱柱体元[4]、约束三角网[5]及 Bezier曲线[6]等,大多基于井下巷道已有的特征点、中线、导线坐标数据等构建三维模型[7],模型精度受建模方法、测量精度影响,且数据获取时一般需要暂停生产,进行人工测量,无法实时获取空间环境信息,从而影响煤矿生产效率。
三维点云采集装置可以通过激光扫描仪非接触地快速获取煤矿煤层采掘现场的空间信息,实时获取矿井巷道和掘进工作面的点云数据,重建场景信息,计算掘进窗口的大小,结合惯导系统和视觉SLAM技术(即Simultaneous Localization And Mapping,同步定位与建图),实时定位采掘装备位置,为煤矿井下实时控制指挥提供可视化平台,从而提高煤炭生产效率。[8]
目前,基于激光点云曲面重建技术,主要采用 Geomagic Studio、3DSmax、maya、Auto CAD等软件进行后期处理。上述软件采用的建模方法多基于国内外已有的成熟软件,需频繁的人工交互,建模效率低,智能化、自动化程度不高,因此,亟需探索一种基于三维激光点云的高效便捷且自动化程度高的巷道三维建模方法。[9]
1 研究思路
煤矿井下三维点云数据的处理流程(如图1),包括了点云数据的采集、滤波、移除离群点、三维曲面重建等步骤。三维激光点云数据存在信息量大、数据离散、冗余多的特点,本文在对数据进行降采样的基础上研究了3种常用的点云曲面重建方法,可有效较少冗余信息。[10]
2 数据选取与研究方法
2.1 实验数据
硬件:LiBackpack D50;
软件:PCL点云库1.9.1、Visual studio 2017、Cloudcompare。
实验数据是在国内某煤矿巷道采集的激光点云,该巷道长200m,截取其中20m(如图2)进行曲面重建,作为样本的巷道点云有3358956个点。
2.2 研究方法
2.2.1 体素法滤波
本实验用PCL点云库VoxelGrid类通过输入的点云数据创建一个三维的体素小立方体,即体素,每个微小的空间可以想象为用三维小立方体体素表示的空间集合,然后在每个体素内,用体素中所有点的重心来近似显示体素中其他点的空间特征,这样该体素内所有的点就可以用一个重心点最终表示,得到该体素的特征点,对于所有的体素进行相似的处理步骤后得到滤波后的点云,可以很好的表示曲面的空间特征。
2.2.2 曲面重建
本实验分别用Greedy Projection Triangulation(Greedy PT)算法、Poisson算法和Marching Cubes(MC)算法,并对三种点云曲面重建的算法效率进行对比,探索适用于煤矿井下巷道快速建模的重建算法。
①Greedy PT算法。Greedy PT算法是建立在Delaunay空间区域増长的曲面重构技术,将复杂三维重建问题进行精简,从整体考虑进行投影,局部判优,进而获得最优解。通过局部区域的最优Delaunay三角网去逼近整体最优的三角网。先将点云通过法线投影到某一二维坐标平面内,对投影得到的点云投影平面内的三角化,从而得到各点的拓扑连接关系。最后根据平面内投影点的拓扑连接关系确定各原始三维点间的拓扑连接,所得三角网格即为重建得到的曲面模型。通常,该算法将在特定方向上规划点云数据,重新定义预期点,并获得三角网格,其满足Delaunay。接着继续延伸三角网格的边,构建网格效果图[11]。
②Poisson算法。基于 Poisson 算法的曲面重构方法,在隐式函数的基础上将空间中散乱点云的曲面三维重建问题转化为泊松方程求解问题,该方法综合考虑了整体和局部方法的优点,通过求解泊松方程、获取模型表面相应点云信息的隐性方程,并提取该方程的等值面,进而获得相应实体点云的表面网格模型。利用泊松方程进行曲面重建大致過程分为6部分,具体流程为:输入点云数据、点云预处理、计算向量场并构建泊松方程、泊松方程求解、等值面的提取,生成表面模型[12]。
泊松表面重建展示了把对有向点集的表面重建转化为一个泊松方程的求解问题。通常采用隐函数f(x,y,z)来表示待重建的曲面模型,f(x,y,z)>0时,表示该实体模型的内部点,f(x,y,z)=0时,表示待重建模型的边界。f(x,y,z)可以看作是一个常函数,用以表示待重建曲面的函数,其梯度处处为零,内表面法向量,可以表示相应表面的点,从而实现用指示函数的梯度来代替采样点云数据。
③Marching Cubes算法。Marching Cubes算法的基本原理是,将空间用相似的立方体体素分割表示,找出所有与等值面相交的体素,并确定每个体素与相应等值面相交的交面,这些交面连在一起就是所需等值面。将点云所在区域用平均的单元格空间划分后,每上下相对应的8个点构成一个立方体(图5),称之为Cube,对于每个Cube,以三角面片来逼近其内部的等值面。
由于每个小立方体有8个顶点,每个顶点有Inside和Outside两种状态,判断小立方体的8个顶点分别是否在目标物体的内部。如果某个顶点在内部,那么给这个顶点标上一个0;如果这顶点在外部,则给它标上一个1,每一种情况都可以在小立方体内生成一些等值面,等值面一般用插值的方法生成,可以理解成生成0个或多个位于立方体内部的三角形。所以一个小立方体里头等值面分布总共可能有28=256种组合。考虑到8个顶点可能旋转、对称情况后,可以用15种基本立方体来覆盖所有256种情况(如图3)[13]。
3 实验结果与分析
在对样本数据进行滤波、去除离散点(滤波后16024个点)的基础上,分别用Greedy PT算法、Poisson算法和Marching Cubes算法进行曲面重建,得到效果如图4。
4 结果对比
为比较3种曲面重建算法的建模效率,本实验在原始点云3358956点的基础上,通过滤波获取点云数3739、5024、6885、10154、16024、29190的6组数据,然后分别用Greedy PT算法、Poisson算法和Marching Cubes算法进行曲面重建,统计算法运行所需时间(如表1、图5)。
5 结论与展望
本文以煤矿井下激光三维点云数据数量大、冗余多、加载不均衡、利用效率低等问题为出发点,研究了激光三维点云的曲面重建问题,对比了3种常用的三维点云重建算法,提出可实时加载至基于煤矿“一张图”系统的三维曲面重建的方法。实验证明,基于激光点云的曲面重建,Greedy PT算法相比于Poisson算法和Marching cubes算法,重建效果好、速度快,可以利用相对较少的点体现更多的三维空间信息,对煤矿井下自动化获取点云数据并实现实时重构、加载至煤矿一张图系统有显著促进和提升。
参考文献:
[1]Mohammed Oludare Idrees, Biswajeet Pradhan. Geostructural stability assessment of cave using rock surface discontinuity extracted from terrestrial laser scanning point cloud[J].Journal of Rock Mechanics and Geotechnical Engineering, 2018, 10(03): 534-544.
[2]Xuehan Xiong, Antonio Adan, Burcu Akinci, Daniel Huber. Automatic creation of semantically rich 3D building models from laser scanner data[J]. Automation in Construction, 2013, 31.
[3]杨彪.矿井巷道三维场景重建的研究与应用[D].华中科技大学,2014.
[4]程朋根,刘学斌,史文中,王伟.一种基于似三棱柱体元的地质三维建模方法研究[J].东华理工学院学报,2004(01):73-79.
[5]孙卡,翁正平,张志庭,刘志锋.基于带约束三角剖分的三维巷道建模方法[J].矿业研究与开发,2007(05):64-65,71.
[6]张海明,孙燕,郭丹.基于OpenGL的三维虚拟煤矿系统的实现[J].科学技术与工程,2007(04):643-645.
[7]宫文博.三维巷道自动化建模方法的研究与实现[D].安徽理工大学,2015.
[8]付忠敏.基于激光扫描的井下点云数据采集与预处理系统研究[D].华中科技大学,2017.
[9]江记洲,郭甲腾,吴立新,杨宜舟,周文辉,张培娜.基于三维激光扫描点云的矿山巷道三维建模方法研究[J].煤矿开采,2016,21(02):109-113.
[10]王元.基于泊松表面重建算法的改进及其并行化研究[D].河南大学,2017.
[11]张津铭.基于点云的高精度表面三维重构研究与实现[D].北方工业大学,2019.
[12]黄明伟,方莉娜,唐丽玉,王思洁.改进泊松算法的图像三维重建点云模型网格化[J].测绘科学,2017,42(04):23-28,38.
[13]邹艳红,何建春.移动立方体算法的地质体三维空间形态模拟[J].测绘学报,2012,41(06):910-917.