点云滤波方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
点云滤波方法-CAL-FENGHAI.-(YICAI)-Company One1
激光雷达点云数据滤波算法综述
滤波对象及目的:通过机载激光雷达快速获取高精度三维地理数据,对它所获取的点云数据的滤波过程就是将LIDAR点云数据中的地面点和非地面点分离的过程。
滤波方法:对数学形态学的滤波算法、基于坡度的滤波法、基于TIN的LIDAR点云过滤算法、基于伪扫描线的滤波算法、基于多分辨率方向预测的LIDAR点云滤波方法。
(一)LIDAR数据形态学滤波算法:
(1)离散点云腐蚀处理。遍历LIDAR点云数据,以任意一点为中心开w×w大小的窗口,比较窗口内各点的高程,取窗口内最小高程值为腐蚀后的高程(2)离散点膨胀处理。再次遍历LIDAR点云数据,对经过腐蚀后的数据用同样大小的结构窗口做膨胀。即以任意一点为中心开w×w大小的窗口,此时,用腐
蚀后的高程值代替原始高程值,比较窗口内各点的高程,取窗口内最大高程值
为膨胀后的高程
(3)地面点提取。设Z p是p点的原始高程,t为阈值,在每点膨胀操作结束时,对该点是否是地面点作出判断。如果p点膨胀后的高程值和其原始高程值Z p
之差的绝对值小于或等于阈值t,则认为p点为地面点,否则为非地面点
该算法有两种滤波方式:一种是按离散点进行滤波,一种是按格网滤波。(1)按离散点滤波:是对每个激光点进行腐蚀和膨胀操作各一次,结构窗口内数据的选取按距离来量度。
(2)按格网滤波:指将每个格网看成一个“像素”,按照数字图像处理中取邻域的方法来开取结构窗口。腐蚀时,格网的“像素值”即为w×w邻域所包含格网的最小高程值;膨胀时,格网的“像素值”即为w×w邻域所包含格网的最大高程值。
优缺点:总体上,数学形态学算法存在的主要问题是坡度阈值的人工选取和细节地形的方块效应。如果阈值设定太大,可能保留一些低矮的地物目标,设定太小,则可能削平地形特征。现在各种阈值的选取一般根据研究者的经验设定,或者根据地形特征设定的,没有考虑全局的特征因素,不具有普适性。解决这些问题的方法是根据地形的起伏大小和高程变化自适应的进行滤波窗口调整。但此方法在大范围地区及地形变化强烈山区的有效性还有待进一步
研究。
实际应用:从应用上,Lindenberger将数字形态学方法引人到机载激光雷达数据滤波中,首先采用水平结构单元对机载激光测高数据进行开运算,过滤剖面式激光扫描数据,然后利用自回归过程改善了开运算结果。
(二)基于坡度变化的滤波算法
滤波基本思想:基于坡度变化的滤波算法是根据地形坡度变化确定最优滤波函数,对于给定的高差值,随着两点间距离的减小,高程值大的激光脚点属于地面点的可能性就越小。
原理:假设A 为原始数据集,DEM 为地面点集,d 是点间距离,那么满足下列滤波函数的点就是DEM 的元素。
()()
max {|:,}i j i i p p i j DEM P A P A h h h d p p =∈∀∈-≤∆ (1) 如果对于给定点Pi,找不到临近点Pj使它们满足关系式(2),那么Pi 划分为地面点。
max (())i j p p i j h h h d p p ->∆- (2)
该滤波方法主要是通过比较两点间的高差值的大小,来判断拒绝还是接收所选择的点。两点间高差的阀值定义为两点间距离的函数Δhmax(d)即所谓的滤波核函数。通常该函数是非递减函数,确定该函数的方法主要有合成函数,假设地形坡度不超过a%,且观测值没有误差,则滤波函数定义为:
max ()h d ad ∆= (3)
通常观测值是有误差的,所以再增加一个置信区间,并假定允许的具有标准偏差的地面点被拒绝,滤波函数就为:
max ()h d ad ∆=+ (4)
在绝大多数情况下,很难用一些参数指定具体的滤波函数,因而需要根据具体的地形训练数据子集推求同地形变化特性相符的滤波核函数。这需要选择一个合适的区域作为训练数据子集用这些数据点推求max ()h d ∆
优缺点:基于坡度的滤波算法具有计算简单、适应性强等特点,但是需要预先知道地形坡度和确定所开窗口的大小,所选点必须同其它所有点进行比较,以确定该点是否为地面点,也需要在整个数据集中,对每一个点进行坡度计算,这样势必造成计算量的增大,速度变慢。同时,高差阀值的选择是整个算法的关键,这些过滤阀值的设置取决于测区的实际地形状
况,对于平坦地区,丘陵地区和山区,应该根据不同坡度设置不同的过滤参数值。而上述方法仅根据坡度设置统一的阈值,很可能会滤掉一些真实的地形信息,造成分类误差。要克服这些缺点可以把分块处理的思想引入,将原始点云数据按地形统计特性进行分块,然后每一个分块再按照基于坡度变化的滤波算法进行处理得到各块数据地面点集,最后根据重叠区域特征点将各块拼接,得到完整地面点集。这样不同的分块就得到不同的过滤阈值,避免了阈值的单一性,减少了分类误差。Vosselman使用Delaunay三角网组织数据,根据坡度过滤地物点的方法,通过计算该点与邻域内所有点的坡度值,如果最大坡度值在阈值内,则该点分类为地面点。Sithole在Vosselman的基础之上修改了该算法,采用变化的斜率阈值来提取地面点以适应陡坡地形的算法,不同的地区使用不同的坡度阈值来得到更好的分类结果。
(三) 基于TIN的过滤算法
滤波原理:利用TIN 模型中的地物临近点云高程突变关系,研究利用高差临界值条件和满足该条件的临近点数量等参数来过滤地物点。
算法:pt_cloud为非空点云,并依据区域地形、建筑物、植被等分布及高程变化情况给定高差(threshold_h)和临近点数量(threshold_vn)两个域值条件,并定义Filtered和Unfiltered两个数组分别记录被过滤点和未被过滤点。
构建pt_cloud的Delauney三角网,则点云过滤算法的描述如下:
TIN_Filtering(Pt_Cloud,Threshold_h,Threshold_vn,Filtered,UnFiltered)
如果Pt_Cloud为空,则结束;
初始化Vicinity数组(邻近点集合),vn(邻近点数)和h(高差值)等参数;取出Pt_Cloud的第一个点,记为obj_pt(目标点);
在Delauney三角网中检索obj_pt所有邻近点,并将邻近点逐个加入到Vicinity 数组;
取出Vicinity的第一个点,记为v_pt(邻近点);
计算obj_pt与v_pt的高差值并赋给h;
如果h≥Threshold_h,,则vn++;
如果Vicinity非空,则返回循环;
如果vn≥Threshold_vn,则把obj_pt加入到
Filtered,否则,obj_pt加入到UnFiltered;
当进行多次(Method)循环逐步过滤点云时,算法描述如下:
TIN_Method_Filtering(Pt_Cloud,Threshold_h,Threshold_vn,Method,Filtered,UnFilter ed)如果Method<1,则结束;
置空Unfiltered;
构建Pt_Cloud 的二维Delauney三角网;
TIN_Filtering(Pt_Cloud,Threshold_h,Threshold_vn,Filtered,UnFiltered)
Pt_Cloud= UnFiltered;
Method;
优缺点:基于不规则三角网(TIN)的方法,是基于二维邻域搜索的方法,其计算量和算法复杂度相对较大。一般而言,由于高大建筑物和植被与其邻近地面点之间形成明显的高程突变,所以对高程突变地物,算法的过滤效果较好,但在过滤灌丛或低矮的地面物体时,产生过大误差。
(四)基于伪扫描线的滤波算法
伪扫描线:指将水平面上二维离散分布的激光点重新组织成一维线状连续分布点序列的一种数据结构。
基本思想:两点之间的高度差是由自然地形的起伏和地物的高度共同引起的。若两个邻近点之间的高度差越大,那么这个高度差是由自然地形引起的可能性就越小,更为可能的是较高点位于地物上而较低点位于地面上。
原理:假设有两个邻近的激光脚点和,是地面点,是它的邻近点。
如果它们的高度值和满足条件: