Review-3D-Lidar-Localization

1. 3D-激光雷达定位方法汇总

本次调查的目的是回顾和介绍与三维激光雷达定位相关的工作,比较文献中报道的不同结果,并讨论各自的优缺点。

2. 3D Registration Based Methods

通常与离线构建的地图结合使用,这些方法的优越性在于使用点云配准的方法。虽然这些方法非常精确,但当只依赖于激光雷达数据时,它们的速度太慢,无法实现实时处理。

点云配准主要用于两种情况 - 一是将激光扫描与局部地图进行配准 - 二是连续的激光扫描之间的配准,计算相对位姿

2.1. ICP(Iterative Closest Point)

多年来,ICP算法一直是解决点云配准问题的标准。

通过以优化迭代的方式最小化目标点云和源点云之间的误差测量,来获得两组点云之间的相对变换关系。

其变体还有:

  • point-to-line ICP
  • point-to-plane
  • Generalized ICP

在最近的[50]中,提出了一种集成了激光雷达传感器物理知识并改进了ICP算法的测距法,采用了一种新颖的下采样和点匹配抑制方法:激光雷达扫描的下采样是使用一个正常协方差滤波器(NCF)完成的,该滤波器只保留精确正态点。

2.2. NDT

然而,ICP算法最终被3D正态分布变换(NDT)算法所超越[14], [51]。与ICP算法类似,对源点云和目标点云之间的变换矩阵进行迭代优化,不同的是,被最小化的误差不是两个点云的点对距离,而是首先将点云转换为概率密度函数(PDF),然后基于预先计算的体素中点的平均值和协方差来计算。此PDF可与牛顿迭代法一起使用,以查找它们之间的空间转换。

2.3. IMLS-SLAM

在一个更经典的SLAM方法中,作者在[20]中提出了一个名为IMLS-SLAM的3步算法

  • 首先是动态对象删除,简化为扫描和小簇删除的聚类
  • 第二步是采用基于每个点的可观察性的采样策略,以便对扫描进行降采样
  • 然后最后是匹配步骤,其中使用Implicit移动最小二乘法(IMLS)表示

2.4. CLS-SLAM

Collar Line Segments(CLS)结构是一种有用的预处理方法,它可以达到较高的精度:在[38]中,通过从邻近环的邻近点之间采样线段,可以从激光雷达扫描提取线狀点云,然后使用迭代方法对这些线狀点云进行对准:

  • 首先,计算生成的直线的中心点
  • 然后,这些点被用来查找在连续扫描之间的转换,方法是,对目标点云和已有点云的线狀点云进行配准,其中两组线狀点云之间用中心点的距离来关联

2.5. DLO

有时,降低激光雷达数据的维度也可以产生合理的结果,例如在[40]中,激光扫描被投影到带有占据栅格和高度值的2.5D网格地图中。这个网格映射相当于灰度图像,它用于基于图像测量误差来进行配准,就像通常对相机数据所做的那样。

3. 3D Features Based Methods

灵感来源于流行的基于二维特征提取和匹配的方法,这些方法在三维空间中设计相关的特征,然后用于计算相对位移。这些方法的精度和实时性较好,但在处理机动粗糙和高速运动时,效果较差。这些方法可以被看作是稀疏方法,因为他们只使用在部分的激光雷达点云数据

针对非道路环境,[19]提出了并命名为CPFG-SLAM的方法,其灵感来自于ICP和NDT算法,并依赖于3D特征和概率网格地图。利用网格中的最近邻而不是空间最近邻点,可以更有效地将点云匹配并注册到网格地图中。期望最大化(EM)算法用于估计姿态,最终优化问题使用Levenberg-Marquardt算法求解。

其他定位方法尝试利用环境中存在的主要几何形状:在[21]和[22]中,平面提取算法与帧对帧技术相结合,以生成车辆的位姿估计

3.1. LOAM

目前,在KITTI Odom排行榜上居领先位置,在[25]中提出的方法首先基于点的平滑度和遮挡度提取平面角点特征。这些特征与后续扫描的点的patch匹配,然后使用Levenberg-Marquardt方法求解激光雷达的运动

LOAM系列文献

  • [25] J. Zhang and S. Singh, “Loam: Lidar odometry and mapping in realtime.”
  • [26] T. Shan and B. Englot, “Lego-loam: Lightweight and groundoptimized lidar odometry and mapping on variable terrain,” in 2018 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2018, pp. 4758–4765.
  • [27] X. Ji, L. Zuo, C. Zhang, and Y. Liu, “Lloam: Lidar odometry and mapping with loop-closure detection based correction,” in 2019 IEEE International Conference on Mechatronics and Automation (ICMA), Aug 2019, pp. 2475–2480.
  • [28] J. Lin and F. Zhang, “A fast, complete, point cloud based loop closure for lidar odometry and mapping,” 09 2019

4. 3D Deep Learning Based Methods

最近,使用Deep Learning解决定位问题的做法越来越流行。二维相机图像首先被用来尝试和预测一对目标[5]、[6]、[7]、[8]之间的里程数,其结果或多或少是可以接受的,但仍然没有超过目前的技术水平。最近,更多的工作已经探索使用激光雷达,而结果似乎更有希望。

深度学习方法:

  • 端到段的深度学习方法使用原始点云作为输入,直接预测车辆的位移作为输出
  • 使用深度学习替换传统配准流程中的某个子模块

4.1. 端到端

[13]的想法是,尝试把这个挑战带回到图像域,而不是试图在3D pointcloud 中直接解决它,为了简化输入到网络中的数据,激光雷达扫描的点云首先投影到2D空间,从而产生全景深图像,然后输入到一个简单的2分支卷积网络,试图恢复出车辆在两个输入帧之间的位移和方向变化。结果表明,与目前的研究水平相比,作者的研究成果低于平均水平

4.1.1. DeepPCO

全景深度图像(Panoramic depth images)、是激光雷达数据的一种常用表示方法,另一种利用到全景深度图像的方法是DeepPCO [17],投影的激光雷达帧被送入一个2branch的网络,其中第一个分支预测车辆的平移,而第二个分支预测车辆的旋转。

4.1.2. Deeplo

另一种尝试简化投射到二维空间的输入数据的方法是[18]中提出的方法:激光雷达帧投影使用球形坐标系系统生成两个新的二维表示:

  • a vertex map (representing the location (x,y,z) of each point)
  • a normal map (representing the values of the normals of each point)

提出的网络由残差块组成,有两个主要分支:

  • 第一个名为VertexNet,它将顶点map作为输入,并用于预测后续帧之间的平移
  • 第二个分支名为NormalNet,以normal map作为输入,用于预测两个后续帧之间的旋转

为了以端到端的方式训练完整的网络,作者提出了两种不同的训练方案,基于标记数据的可用性,采用两种不同的损失函数:

  • 首先是一个经典的有监督的损失,将标记数据与网络预测进行比较,以优化网络的权重
  • 其次是无监督损失,即不需要标签数据,使用ICP算法引导网络进行正确的运动预测

4.2. 基于3D场景分割

在[32]、[31]、[33]、[34]等一系列最终形成最终的三维分段方法,[35]的论文中,作者探索了如何利用简单的卷积网络从点云中高效提取和编码段,希望能解决定位和建图相关的任务。

该方法的主要特点是:数据驱动的3D Segment 描述符,采用由卷积层和全连通层组成的网络来提取。

这个描述符提取网络使用两部分组成的loss function来训练:

  • 分类损失
  • 重建损失

最后利用k-NN算法找到提取的分段及其对应的候选,这使得解决localization任务成为可能。

注意,3D SegMap描述符是一个通用描述符,也可以用于解决其他任务如对象分类

4.2.1. LO-Net (Remove Dynamic Obj)

当试图还原两帧之间的运动时,前面讨论的大多数方法将不可避免地受到场景中的动态对象(汽车、行人等)的影响,remove这些动态的对象可以提高里程的精度。但是,在有监督下进行检测并从场景中删除动态对象会增加复杂性,从而导致更高的处理时间和不稳定的结果。

为了以无监督的方式解决这一问题,[37]的作者提出了训练一个用于动态mask预测任务的encoder-decoder branch,这是通过优化几何一致性损失函数来实现的。

整个网络(名为LO-Net)可以结合几何一致性损失、里程回归损失和交叉熵损失以端到端的方式进行训练,用于正则化目的

4.3. 模块替换

除了使用直接Lidar Frames直接学习定位车辆的模型,其他的方法尝试学习经典Pipline中的误差模型等。换句话说,可以使用深度学习的方法来纠正里程测量值,从而得到功能强大且灵活的可插拔模块

4.3.1. L3-Net

在[39]的作者提出了学习偏差校正项,旨在改进以激光雷达数据为输入的经典状态估计器的结果。采用高斯过程模型对6个odometry误差进行了相互独立的建模,精心选择的输入参数集中在误差影响最大的3个自由度

在[41],提出了一种更高级的方法叫L3-Net,与bias correction 主题相关,作者提出一个网络,目的是学习传统定位系统与真值之间的残差,而不是直接预测两帧之间的变换矩阵。

相关的特征首先被提取并输入到一个miniPointNet中,以生成它们的相关特征描述符,然后在解空间(x,y,z)构造一个cost volume,并使用3D卷积神经网络进行调整。

此外,一个RNN branch被添加到网络结构,以保证位移预测的平滑性

4.3.2. Deep-ICP(NEW,端到端)

同样的作者在[42],[43]中提出了L3-Net的一个更完整和更一般的变体,并命名为DeepICP,这里,使用pointnet++提取特征,然后使用权重层过滤,只保留最相关的,与前面的方法类似,特征描述符使用一个miniPointNet结构计算,然后输入到相应的点生成层(point generation layer),在目标点云中生成相应的关键点。为了恢复出相对变换的最终值,结合两个损失函数,希望对局部相似性和全局几何约束进行编码。

4.3.3. CAE-LO

最近,提出了一种新的解决方案CAE-LO,其中:

  • 使用了一个无监督卷积自动编码器,以多尺度的方式从激光雷达的球形投影中提取特征
  • 一个自动编码器用于生成特征描述符,用来进行基于RANSAC的帧与帧之间的对应点的匹配
  • 如果知道了两组点云之间的点对匹配关系,则可以使用ICP进行解析求解

4.3.4. Locnet(看看)

在[23]中,再次尝试简化输入的数据,提出了一种基于点云环状分布的手工旋转不变表示方法(RIR)。作者称,正是由于这种表示方法,全局定位问题被重新表述为 an identity verification problem。

这个问题通过使用siamese网络称LocNet来解决,它以2个后续的RIR作为输入,目标是优化一个对比损失函数[61],LocNet的输出是一个降维特征向量,在后续的全SLAM管道中使用,其中使用MCL[62]和ICP算法求解最终的粗到细的变换。

4.3.5. LORAX

在[29]中,提出了LORAX算法,这种方法引入了超点的概念,超点是位于球内的点的子集,它描述了一个局部平面,被投影到2D空间以形成2D深度maps。这些depth maps然后使用一系列的测试进行过滤,只留下相关的超点,然后使用PCA和深度自动编码器对其进行编码。然后根据欧氏距离对特征候选之间进行匹配,然后进行粗配准步骤,其中使用了涉及RANSAC的迭代方法。最后,为了对配准步骤的结果进行微调,采用了ICP算法来提高整个配准过程的精度。

5. 评价和测试

请注意,我们只考虑不涉及任何 loop closure的结果。虽然Loam仍然占据着排行榜的前面,但可以明显看出,涉及深度学习的方法正变得越来越精确。基于深度学习的方法被证明会产生非常有前途的结果,并且似乎代表了正确的路径,以便在未来解决这个挑战,基于三维特征检测与匹配的方法在实际应用中已被证明是最先进的方法。

DeepICP报告的平均结果优于其他的训练方法,然而,由于两个主要原因,我们很难把它们称为最先进的方法:

  • (DeepICP)大约需要2秒钟来配准每一帧
  • 这些方法在测试数据集上的结果尚未见报道,在测试数据集上的良好结果将证明,这些方法不仅适用于深度神经网络已经看到的数据,而且能够用于真实数据