1 引 言
机载激光雷达(LiDAR)是由激光扫描仪、全球定位系统(GPS)和惯性导航系统(INS)三部分组成,可以直接快速地获取地球表面的三维空间信息[1-2]。原始LiDAR 点云具有点密集度高、数据量大两大典型特点,并且在扫描过程中容易产生一定数量的噪声点,主要包括无穷远点(如天空)和杂质点(如树木,玻璃等)。这些点信息对数据处理与三维模型重建产生负面影响,因此需将这些无效点或干扰点去除。
LiDAR点云数据去噪处理是LiDAR点云数据过滤的基础,是点云数据过滤的其中一部分。任何基于光谱信息、回波次数、回波强度的点云数据过滤要在已经去噪的点云数据基础上进行。
本文在Delaunay三角网的基础上,根据点云特征点高程突变方面的特性用Visual Basic编程实现去噪处理。
2 LiDAR点云数据去噪处理
产生噪声点主要因素可分为三类:A:由被测对象表面因素产生的误差,比如表面粗糙程度、波纹、表面材质等,当被测量表面粗糙值较低或光泽比较亮时(如玻璃、金属等),会使激光束在漫反射的同时发生较强的镜面反射而产生测量误差;B:由扫描系统引起的误差,如测量设备的精度、摄像机的分辨率,振动等等;C:偶然噪声或背景噪声,在扫描过程中由于偶然因素成为扫描数据的一部分(如飞鸟等运动物体、无回波信息的局部空洞)。噪声将直接影响地物识别、分类以及建筑物等模型重建的质量,容易导致重构曲线、曲面不光滑。
噪声点在高程突变方面表现出来的特性为目标点与其所有邻近点之间都具有明显的高程变化且幅度大。本文以LiDAR点云原始数据为基础,首先要构建Delaunay三角网,再依据三角网记录存储各点的拓扑关系,最后根据高程突变这一特点,进行噪声点的剔除。
2.1 构建Delaunay三角网及检索邻近点算法描述
Delaunay三角网是点云转换成TIN的一种常用表现形式,用来表示数字高程模型,表达空间离散点之间的邻近关系。在Delaunay三角网中两点邻近的判定条件也可以根据两点之间是否有边相连,因而,在Delaunay三角网中某点邻近点的数量等同于该点所关联边的数量[4-5]。
此过滤方法的关键在于如何从Delaunay三角网中获取各点之间的拓扑关系,即判定点与点之间是否相邻。本文中构建Delaunay三角网的算法为逐点插入法,逐点插入算法的基本步骤是:
(1)定义一个包含所有数据点的初始多边形
(2)在初始多边形中建立初始三角网,然后迭代以下步骤,直至所有数据点都被处理
(3)插入一个数据点P,在三角网中找出包含P的三角形t, 把P与t的三个顶点相连, 生成三个新的三角形
(4)用LOP算法优化三角网。
图1.构建Delaunay三角网流程图
在构建完Delaunay三角网的基础上,选取数据中第一点作为目标点,然后在Delaunay三角网中进行检索,检索以一个三角形为单位,如果目标点在此三角形中,则三角形的其余两点与目标点相邻,存入邻近点数组。如此对Delaunay三角网中的所有三角形进行检索,则在临近点数组中都为该目标点的临近点,再对临近点数组中的点进行剔除重复点的工作,由于构建的是三角网,则重复点的重复数不可能超过2个,这为剔除重复点提供了极大的方便。剔除重复点后的邻近点就是该目标点的所有邻近点。如此对构网的所有点进行检索邻近点的工作,检索邻近点流程图如图2所示。邻近点与目标点进行角度和高差的比较,在阈值之内的保留,超出阈值的剔除,剔除之后,进行重新构网。
2.2 基于高程突变的噪声点剔除算法描述
假设给定一个非空点云Pt_Cloud,并依据区域内地形、建筑物、植被等分布及高程变化情况给定高差(Threshold_h)和邻近点数量(Threshold_vn)两个阈值条件,并定义Filtered和UnFiltered两个数组分别记录被过滤点和未被过滤点。首先构建Pt_Cloud的Delaunay三角网,则点云过滤算法(TIN_Filtering)的描述如下:
TIN_Filtering(Pt_Cloud,Threshold_h,Threshold_vn,Filtered,UnFiltered)
If Pt_Cloud is empty,then exit;
初始化参数:邻近点集合Vicinity数组,邻近点数vn和高差值h;
在Delaunay三角网中检索obj_pt的所有邻近点,并将邻近点逐个加入到Vicinity数组;
If vn≥Threshold_vn,then把obj_pt加入到Filtered,否则,obj_pt加入到
当进行多次循环逐步过滤点云时,算法描述如下:TIN_Iterations_Filtering(Pt_Cloud,Threshold_h,Threshold_vn,Iterations,
TIN_Filtering(Pt_Cloud,Threshold_h,Threshold_vn,Filtered,UnFiltered);
算法主要有高差和邻近点数量两个参数。由于地形复杂,地面物体的体量、形状、及对激光脉冲进行反射、吸收或被穿透的性质存在巨大差异,任何一个阈值条件都很难兼顾所有的情形,存在错误过滤激光点云的可能,因而参数的选择将是一个挑战性的工作,需要根据具体的任务进行分析和设置。
3 实验对比和分析
本次实验数据采用选择了加拿大Optech公司生产的激光三维扫描系统ALTM3100采集。该系统标称精度:GPS定位精度为10 cm,激光点高程精度为15 cm,平面精度优于1/2000×航高。
利用Visual Basic编程实现基于高程突变的Delaunay三角网噪声点剔除方法,程序主要由两部分构成,一个是构网模块,另外一个是主程序。程序操作如图4所示。
本次实验选取点云数据取数据中200个点的数据进行噪声点剔除,分别设置高差阈值Th,邻近点阈值Tvn进行对比实验,实验结果如表1和表2所示。
组别 |
Th |
Tvn |
过滤点 |
未被过滤点 |
1 |
18 |
1 |
194 |
6 |
2 |
18 |
2 |
184 |
16 |
3 |
18 |
3 |
161 |
39 |
4 |
18 |
4 |
135 |
65 |
5 |
18 |
5 |
33 |
167 |
6 |
18 |
6 |
33 |
167 |
7 |
18 |
7 |
0 |
200 |
组别 |
Th |
Tvn |
过滤点 |
未被过滤点 |
1 |
16 |
5 |
194 |
6 |
2 |
17 |
5 |
184 |
16 |
3 |
18 |
5 |
33 |
167 |
4 |
19 |
5 |
0 |
200 |
实验表明这块地形起伏比较均匀,在这块地形中目标点与邻近点的高程都比较集中在17-18范围内,则可推断此地形可能为树林或起伏均匀的山地,且树顶和树底的点分布居多。
4 结 论
针对LiDAR点云数据存在噪声的问题,首先利用Delaunay算法建立三角网,在些基础上,提出基于临近搜索的高程突变过滤算法,对噪声进行去除。通过Visual Basic编程实现本文提出的方法,并进行实验验证,结果表明基于邻近点搜索的高程突变过滤算法能有效的对LiDAR点云数据进行噪声点剔除。
参考文献
1 曾齐红.机载激光雷达点云数据处理与建筑物三维重建[博士学位论文].上海大学.2009.1
2 贾广帅.机载激光雷达数据特点和滤波方法研究[硕士学位论文].山东科技大学.2007.5
3 刘文.基于数学形态学原理和Terrascan的LiDAR点云数据分类研究[硕士学位论文].国家海洋局第一海洋研究所.2008.6
4 武晓波,王世新,肖春生.Delaunay三角网的生成算法研究.测绘学报.1999,第一期:第28卷
5 毛建华,何挺,曾齐红,李先华.基于TIN的LiDAR点云过滤算法.激光杂志.2007,第6期:第28卷
6 韩文泉,储征伟,黄金浪.利用LiDAR技术生产数字线划图技术路线分析.测绘通报.2007,第5期:58