自动驾驶使用同心区域模型改进地面点云快速分割算法

Posted 小哈里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动驾驶使用同心区域模型改进地面点云快速分割算法相关的知识,希望对你有一定的参考价值。

文章目录

运行环境:Ubuntu18.04, ROS环境运行。
ROS环境配置:https://blog.csdn.net/qq_44830040/article/details/106049992
1、改进程序1,将CZM(同心区域模型)思想替换进去
2、提取程序1中的分割部分,与程序3融合。
3、采用开源数据集进行验证

1、linefit_ground_segmentation

地面点云快速分割算法—linefit_ground_segmentation

  • 项目地址:https://github.com/lorenwel/linefit_ground_segmentation
  • 论文地址

大致介绍:

  • 将雷达点云等间隔为N个段,每个段有个角度a,并且等分为M个Bin。
  • 将当前帧所有点云投影到段中,也就是降维:将p(x,y,z)三维,降到二维p(d, z)。
  • 对每个段拟合直线z = kd + b,这里的k指的的路面的坡度。基于拟合的直线判断点到路面的高度,如果高度小于阈值,则该点是路面点,否则为障碍物点。这种方法可以适用于具有坡度的路面。

参考资料:

  • 数据集与项目注解:https://github.com/HuangCongQing/linefit_ground_segmentation_details
    论文注解:https://blog.csdn.net/lovelyaiq/article/details/118826534

2、使用Patchwork改进第1部分

基于同心区域模型 (CZM) 的区域地面分割方法,称为 Patchwork

  • 项目地址:https://github.com/LimHyungTae/patchwork
  • 论文地址 (发表于ICRA2021,机器人领域的国际顶级会议,CCFB类)

大致介绍:

  • 摘要:
    本文将点云编码到基于同心区域模型的表示中,以一种计算简单的方式为bin分配合适的点云密度。然后在区域内进行平面拟合,来估计每个bin的地面。最后,引入地面似然估计以显著减少误报。
    实现结果在SemanticKITTI和粗糙地形数据集上进行了验证,与最先进的方法相比,我们提出的方法具有良好的性能,与现有的基于平面拟合的方法相比,速度更快

  • 首先,将所有的点根据需要划分成 地面点 和 非地面点。并按照极坐标对点云进行分区,距离原点越近区域面积越小,文章利用min和max值和特定公式进行分区。
    同心区模型图如下:

  • 然后,每个区域找地面,然后地面再拼接在一起。每个区域利用z值进行“生长”,然后得到地面点集。在最靠近车的Z1,利用传感器高度来决定初始点,越离车远,传感器高度值要乘以一个系数。
    我们利用地面似然估计 (GLE) 在垂直度、高度和平整度方面来确定每个bin是否为地面。图片如下。

  • 最后,通过垂直度、高度、平整度三个特征,来进行二分类,使得所有的bin集合成整个路面。
    区域级地平面拟合 R-GPF 图如下:

参考资料:

  • 3DLiDAR传感器进行基于同心区域的区域地面分割和地面似然估计:https://blog.csdn.net/weixin_42905141/article/details/122951210
    patchwork基于多线激光雷达的地面分割方法
    https://zhuanlan.zhihu.com/p/484251201
    点云地面分割算法—— Patchwork论文分析
    https://www.guyuehome.com/38829

3、激光深度聚类算法 depth_clustering

使用 Velodyne 激光雷达传感器生成的点云 , 快速且稳健的深度聚类算法

  • 项目地址:https://github.com/PRBonn/depth_clustering

大致介绍:

  • 环境需要:ubuntu 18.04 ,ros-melodic
  • 然后使用项目中的安装命令进行安装。安装完后编译。
  • 然后下载一些数据图进行测试
    # 安装命令
    sudo apt install libopencv-dev libqglviewer-dev-qt5 freeglut3-dev qtbase5-dev 
    # 数据集下载
    mkdir data/; wget http://www.mrt.kit.edu/z/publ/download/velodyneslam/data/scenario1.zip -O data/moosmann.zip; unzip data/moosmann.zip -d data/; rm data/moosmann.zip
    # 查看运行结果
    ./qt_gui_app 
    
  • ros环境下编译相同,其他bag包和环境等按照ros的操作来。

参考资料:

  • 深度聚类:https://blog.csdn.net/weixin_44876302/article/details/119715528
    使用笔记:https://ivenwang.com/2020/05/16/jule/
    安装运行:https://blog.csdn.net/qq_40216084/article/details/108703496
    ROS运行:https://blog.csdn.net/m0_52118763/article/details/120876198

以上是关于自动驾驶使用同心区域模型改进地面点云快速分割算法的主要内容,如果未能解决你的问题,请参考以下文章

自动驾驶之感知算法

3D点云的快速分割:自动驾驶汽车应用的LiDAR处理实例

MATLAB点云处理(二十八):基于格网法与平面拟合的道路点云与非道路点云分割

MATLAB点云处理(二十八):基于格网法与平面拟合的道路点云与非道路点云分割

Patchwork++:基于点云的快速稳健的地面分割方法

自动驾驶感知算法实战4——语义分割网络详解(DeepLabV3FCNUNet等)