点云分割之区域生长、RANSAC测试

        再回首loam系列算法,为了实现准确的特征集的配准,对于不同类型的点云进分割还是有必要的。简单的测试了一下两种方式进行点云分割:

一、区域生长

        首先根据点的曲率对点进行排序,之所以排序,是因为区域生长算法是从曲率最小的点开始生长的,这个点即是初始种子点,初始种子点所在的区域即为最平滑的区域。从最平滑的区域开始生长,可以减少分割区域的总数,提高效率。

        算法流程:

    1)设置一空的种子点序列和空的聚类数组。将选好的初始种子点加入到当前种子点序列中,开始搜索邻域点。
    2)对每个邻域点,比较邻域点的法线和当前种子点的法线之间夹角,小于平滑度阈值的加入到当前区域。
    3)计算每个邻域点的曲率,小于曲率阈值的加入到种子点序列中,删除当前的种子点,利用新加入的种子点继续生长,重复上述过程至种子点序列清空。
    4)完成1~3即一次区域生长完成,将点集加入到聚类数组。

二、随机采用一致性:

        随机参数估计鲁棒性较好的方法:Hough Transform(图像领域),RANSAC(点云处理);RANSAC是一种迭代的随机参数估计方法:

    1)从随机样本中抽选一个样本子集,使用最小方差估计算法对这个子集进行模型参数估计;
    2)计算所有样本与估计出的子集模型的偏差,与预先设定的阈值进行比较;
    3)小于阈值,为模型内点(inliers),大于阈值为模型外点(outlier),记录下当前inliers数目;
    4)重复以上过程,最多内点数目对应的参数即为最佳参数;
    缺点:
    1)待估计模型比较抽象的时候,阈值不好设定,且不适用于样本动态变化的应用;
    2)只能从样本中估计出一个模型(每次迭代只能进行单模型识别);

        而有个名字相似的算法:SAC_IA,SAC_IA实现的是初始配准,输出变换矩阵,典型的运用:SAC_IA+FPFH+ICP/NDT(快速点云特征直方图使用sac_ia实现粗配准,然后再给到ICP/NDT初始值去匹配),可以看看前面有一篇文章《手写SAC_IA实现基于FPFH描述子的点云帧间匹配》;

三、分割效果:

        简单附两张图:(速腾16线,分割一次大概几十ms)

 

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>