基于道路种子点的密集点云道路面识别及MATLAB实现(二)

前言

基于前面的控制点路面提取来讲,这次又是有苦难言😭😭😭,首先虽然这个方法在一定程度上适应了不同坡度的地形,但是其还是具有很高的冗余度和鲁棒性,有些地方还会出现识别缺失和识别错误。
注:若是对该方法感兴趣需要MATLAB源码,请及时联系我😊😊😊。

一、获取道路种子点集

通过LIDAR 360或者其他点云处理软件,多点提取在道路的点集seed(i) <i∈1 ~ n>,n并不是越大越好,越少会导致后续的识别信息丢失,过多或是程序效率缓慢,建议8~10个最为合适。
在这里插入图片描述

二、初始筛选点云确定路面点集

一)根据每个密集点云的高程,计算其到每一个道路点集的距离集合org_distance(i) <i∈1 ~ n>,

二)获取每个距离的最大值MAX(org_distance(i))<i∈1~n>,

三)添加限制因子G=0.005,其具体值可以采用G=M/N×100%(其中M表示路面区分与周围地貌的高度,N表示该地形的最大高差),

四)利用寻找distance(i) < G×MAX(org_distance(i) <i∈1~ n>时具备的点云集合pointCloud_base(i) <i∈1~n>,实现对点云的初次筛选。

三、计算点云密度衡量参数集合二次筛选

1)通过MATLAB自带函数findNeighborsInRadius获取每个点云集合pointCloud_base(i) <i∈1~n>中的每个点在指定半径的球形区域内所具有的领域点集下标位置indices(i) <i∈1 ~ n>。

(1)=====衡量参数一(geometric_density)=====以指定半径搜索3D邻域内计算该点的点云密度

计算下标indices(i) <i∈1 ~ n> 的长度既可获取每个点云集合pointCloud_base(i) <i∈1~n>在指定半径的球形区域内所具有的领域点数geometric_density(i) <i∈1 ~ n>。本文的R=6m,读者可根据具体情况进行调整。

(2)=====衡量参数二(slope)=====以指定半径搜索领域计算该点与其他点的最大坡度

计算每一个点与该半径球形区域内的其他点的坡度集合slope(i) <i∈1 ~ n>

(3)=====衡量参数三(distance)=====以指定半径搜索领域计算该点离其他点的最大距离

计算每一个点与该半径球形区域内的其他点的几何距离集合distance(i) <i∈1 ~ n>

2)通过计算满足限制条件的三个衡量的参数的点云集合,将第一步初始筛选的点集进行二次筛选。

在这里插入图片描述

3)如左下图所示,8个子图分别是将初始筛选的路面点集进行二次筛选的结果,其保留了最接近路面的点云。右下图则是具体筛选后与筛选前的差异。

四、识别结果

如下所示,即为路面识别的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

楠楠星球

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值