使用Vmware+Ubuntu20.04+ros实现地面点云分割

目录

1. 论文所做的主要工作

2. 论文所提Patchwork的组成

2.1 问题定义

 2.2 同心区域模型

2.3 区域地面拟合

2.4 地面似然估计

3. 代码下载位置

4. 复现过程--相关配置安装

4.1 ros安装

4.2 readme

5.结果


本文主要内容是:1.对论文进行简单介绍与翻译。2.进行相关环境的安装配置。3.复现论文《Concentric Zone-Based Region-Wise Ground Segmentation With Ground Likelihood Estimation Using a 3D LiDAR Sensor》中点云分割的代码,希望可以为大家提供帮助。


1. 论文所做的主要工作

(1)在本篇论文中,如图1所示,提出了一种新的基于同心区域模型(Concentric Zone Model, CZM)的区域地面分割方法,称为Patchwork,它是之前研究中,区域地平面拟合(Region-wise Ground Plane Fitting, R-GPF)的扩展。

(2)此外,在垂直度、高度和平整度方面利用地面似然估计(GLE)来确定每个箱子是否在地面上。

(3)与最先进的基于区域拟合的方法相比,论文中提出的方法在超过40 Hz的频率下表现出了良好的性能。其中,Patchwork以最小的查全方差估计了地面点,这表明所提出的方法克服了复杂城市环境下的欠分割问题。


2. 论文所提Patchwork的组成

2.1 问题定义

        首先,我们将此刻的点云表示成P。然后,让P={P1,P2,…,Pk,…,PN}是一组点云,这些点云包含由3D激光雷达传感器获取的当前的N个点,其中每个点Pk由笛卡尔坐标中的k={xk,yk,zk}组成。论文中,P明确地分为两类:一组地面点G和非地面点G^{c},它们满足G∪G^{c}=P。其中G^{c}还包括车辆、墙壁、街道树木、行人等。

        接下来,估计的地面点可以定义为\hat{G},由于估计会不可避免地包含固有误差,一些实际上来自非地面物体的点可以包含在\hat{G}中,反之亦然,总之,\hat{G}\hat{G^{c}}表示如下:

        其中,\hat{G}\hat{G^{c}}也同时满足\hat{G}\hat{G^{c}}=P,其中TP、FP、FN、TN分别表示真正、假正、假负和真负的集合。

 2.2 同心区域模型

       正如前面提到的,大多数基于平面的方法都基于一个普遍的假设,即可观测世界可能不是平的。因此,地平面的估计应按区域进行,假设可能不平坦的世界和地面的小部分或箱子在该区域内确实是平坦的。

       以往的一些方法利用均匀的极网格表示S,将点云划分为径向和方位角有规则间隔的多个桶,即环和扇区,如图所示。

        发现的问题:因此,S有两个局限性。首先,随着距离变得越来越远,点云变得过于稀疏,以至于无法找到正确的地平面,这就是我们所说的稀疏问题。一些方法自适应地调整bin的大小以适应对数点分布。但是,由于箱的大小以线性或二次的方式增加,所以稀疏性问题并没有完全解决。另一方面,当靠近原点的bins的大小太小而不能代表S中的一个单位空间时,这有时会导致地平面的正确法向量估计失败,我们称之为可代表性问题。

      为了解决上述问题,本论文提出了基于CZM的极网格表示,表示为C。以一种计算不复杂的方式在bins之间分配适当的密度。因此,P被划分为多个区域,每个区域由不同大小的bins组成,如图2(b)所示。让<N>={1,2,3,4,5,…,N},则提出的模型如下:

      其中Zm为C的第m个区域,Nz为区域的数量,在本论文中设置四种。Zm={pk∈P | Lmin,m≤pk≤Lmax,m}.Lmin,m和Lmax,m分别表示最小和最大径向边界;Zm也被分成Nr,m×N_{\theta ,m}个bin,每个区域大小不同,每个Si,j,m定义如下:

2.3 区域地面拟合

        此后,每个bin通过R-GPF分配一个估计的局部地面;然后,将部分接地点合并。在这封信中,我们使用了主成分分析(PCA)而不是RANSAC。当然,与PCA相比,RANSAC往往对离群值敏感度较低。然而,使用PCA比使用RANSAC显示出更快的速度和可接受的性能;因此,基于PCA的估计更适合作为预处理过程。此外,实验表明,基于PCA的方法至少比基于ransac的方法快两倍。

        给定一个bin,设C∈R3×3为单位空间中点云的协方差矩阵;三个特征值λα和对应的三个特征向量vα计算如下:

        其中α = 1,2,3,且假设λ1≥λ2≥λ3。那么,对应于最小特征值v3的特征向量是最有可能表示到地平面的法向量的。因此,设n = v3 =[a b c]T;然后,平面系数可以计算为d=-n^{^{T}}\bar{p},其中\bar{p}表示单位空间的平均值。

        为了简单起见,设所有bins上的第n个bin为Sn,其个数等于,如果Sn的基数足够大,则选择最低高度的点作为初始种子。实际上,每个bin中高度最低的点最有可能属于地面。设\bar{z_{init}}为所选种子点的总数Nseed的z值的平均值;则得到初始估计接地点集\hat{G}^{_{n}^{0}},如下所示:

        其中z(·)返回一个点的z值,zseed表示高度边缘。

       由于我们的方法是迭代的,设在第l次迭代时估计的接地点为\hat{G}^{_{n}^{l}},然后利用\hat{G}^{_{n}^{l}}中的点,通过(4)求得\hat{G}^{_{n}^{l}}的法向量记为n_{n}^{l}。然后,计算平面系数d_{n}^{l},其中\bar{p}_{n}^{l}表示\hat{G}^{_{n}^{l}}的均值。最后,\hat{G}^{_{n}^{l+1}}的公式如下:

        请注意,原始的R-GPF和本文的主要区别是,我们的涉及到使用自适应初始种子选择来防止R-GPF收敛到局部最小值。有时,由于多径问题或激光雷达信号的反射,会在实际地面下获取错误的云点,如图3(a)所示。观察到这种现象主要发生在Z1,因为反射只发生在信号较强的区域。这些异常值妨碍R-GPF估计正确的地面。

       为了解决这一问题,我们利用了只有Z1的接地点的z值,主要分布在−hs附近,hs表示传感器高度。因此,在估计\hat{G}^{_{n}^{0}}时,如果zk低于Mh·hs,则Sn中属于Z1的pk被过滤掉,其中Mh <−1是高度裕度。对于不属于Z1的Sn,自适应阈值随着m的增大而减小,以避免可能来自下坡的点(实际上是TP)的不当滤波。

2.4 地面似然估计

        因此,有必要稳健地判断\hat{G}_{n}是否属于实际情况。为此,提出了一种基于区域的二元分类概率检验方法GLE。为此,Patchwork利用GLE来提高整体精度,排除由非地面点组成的初始非预期平面。

        设L(θ |X)为GLE,其中θ表示Patchwork的所有参数,X表示密度函数f为连续概率分布的随机变量。假设每个bin彼此独立。则L(θ |X)表示为

        根据我们的先验知识,每个\hat{G}_{n}成为接地点的可能性由垂直度、高度和平整度定义,分别表示为φ(·)、ψ(·)和φ(·),如下所示:

        随后在垂直度、高度和平整度三个方向上设置不同滤波器进行处理(省略……)


3. 代码下载位置

代码链接


4. 复现过程--相关配置安装

4.1 ros安装

        测试时使用的时VMware虚拟机,安装ubuntu20.04.

        关于ros的安装,谁装谁迷糊,不过 鱼香ros 你值得拥有!

        然后用小乌龟测试一下是否安装成功!

4.2 readme

        然后按照里面的readme,在终端中安装下面内容,我使用的是ubuntu20.04

(if you use ubuntu 20.04)
sudo apt-get install ros-noetic-jsk-recognition
sudo apt-get install ros-noetic-jsk-common-msgs
sudo apt-get install ros-noetic-jsk-rviz-plugins

       然后按照下面步骤编译一下这个包,看自己虚拟机几核,我是8个然后就是-j8。也可以不加-j8,直接catkin_make

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
git clone https://github.com/LimHyungTae/patchwork.git
cd .. 
catkin_make -j8 

编译后的结果如下图所示

修改数据集路径

数据集文件夹的格式

然后,在终端中输入下面命令,然后结果如图。

source devel/setup.bash

再次输入,readme中的启动命令,回车运行。

roslaunch patchwork offline_kitti.launch

5.结果

https://live.csdn.net/v/339771icon-default.png?t=N7T8https://live.csdn.net/v/339771

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值