目录
本文主要内容是: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∪=P。其中还包括车辆、墙壁、街道树木、行人等。
接下来,估计的地面点可以定义为,由于估计会不可避免地包含固有误差,一些实际上来自非地面物体的点可以包含在中,反之亦然,总之,和表示如下:
其中,和也同时满足∪=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×个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;然后,平面系数可以计算为,其中表示单位空间的平均值。
为了简单起见,设所有bins上的第n个bin为Sn,其个数等于,如果Sn的基数足够大,则选择最低高度的点作为初始种子。实际上,每个bin中高度最低的点最有可能属于地面。设为所选种子点的总数Nseed的z值的平均值;则得到初始估计接地点集,如下所示:
其中z(·)返回一个点的z值,zseed表示高度边缘。
由于我们的方法是迭代的,设在第l次迭代时估计的接地点为,然后利用中的点,通过(4)求得的法向量记为。然后,计算平面系数为,其中表示的均值。最后,的公式如下:
请注意,原始的R-GPF和本文的主要区别是,我们的涉及到使用自适应初始种子选择来防止R-GPF收敛到局部最小值。有时,由于多径问题或激光雷达信号的反射,会在实际地面下获取错误的云点,如图3(a)所示。观察到这种现象主要发生在Z1,因为反射只发生在信号较强的区域。这些异常值妨碍R-GPF估计正确的地面。
为了解决这一问题,我们利用了只有Z1的接地点的z值,主要分布在−hs附近,hs表示传感器高度。因此,在估计时,如果zk低于Mh·hs,则Sn中属于Z1的pk被过滤掉,其中Mh <−1是高度裕度。对于不属于Z1的Sn,自适应阈值随着m的增大而减小,以避免可能来自下坡的点(实际上是TP)的不当滤波。
2.4 地面似然估计
因此,有必要稳健地判断是否属于实际情况。为此,提出了一种基于区域的二元分类概率检验方法GLE。为此,Patchwork利用GLE来提高整体精度,排除由非地面点组成的初始非预期平面。
设L(θ |X)为GLE,其中θ表示Patchwork的所有参数,X表示密度函数f为连续概率分布的随机变量。假设每个bin彼此独立。则L(θ |X)表示为
根据我们的先验知识,每个成为接地点的可能性由垂直度、高度和平整度定义,分别表示为φ(·)、ψ(·)和φ(·),如下所示:
随后在垂直度、高度和平整度三个方向上设置不同滤波器进行处理(省略……)
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/339771https://live.csdn.net/v/339771