搬来一个自动驾驶相关 我就一个打酱油小弟哈

自动驾驶的发展需要研究和开发准确可靠的自定位方法。其中包括视觉里程计方法,在这种方法中,精度可能优于基于GNSS的技术,同时也适用于无GPS信号的区域。本文深入回顾了视觉和点云里程计SOTA方法,并对其中一些技术在自动驾驶环境中的性能进行了直接比较。评估的方法包括相机、激光雷达和多模态方法,并从共同的角度比较了基于特征知识和基于学习的算法。

在过去十年中,自动驾驶一直是许多技术和科学研究的主题。它的许多好处,如提高乘客安全性、舒适性和便利性、更好的交通流量、无人驾驶交通和降低了燃料消耗,吸引了负责自动驾驶汽车技术进步的大型制造商的投资。对于任何自动驾驶智能体,自定位的能力在每个导航任务中都是必不可少的。尽管GNSS(全球导航卫星系统)接收器通常是现代车辆自定位的主要来源,但大众市场设备提供的精度和可靠性远远低于自动驾驶车辆所需的水平。因此,由于定位误差、信号延迟和服务质量问题的不确定性,自动驾驶车辆不会强依赖于卫星数据[1]。而且这一问题在城市场景中进一步加剧[1],由于此场景中卫星能见度有限、多径效应、干扰和其他误差。人类驾驶员自己的视觉感知能力弥补了所有这些限制。以同样的方式,自动驾驶汽车可以配备传感器,当与适当的里程计技术一起使用时,传感器可以提供类似人类水平的精确的相对定位。

里程计可以被定义为使用局部传感器的数据来估计一个特定的起始点,估计一段时间内车辆的姿态变化。通常,这些方法试图通过传感器(如车轮编码器、RADAR、惯性测量单元(IMU)、LiDAR)来恢复车辆的位置和方向,这些传感器在现代车辆中越来越普遍。同样重要的是,要认识到这些传感器类型不是限制死的,因为里程计方法可以是多模态的,即不同的传感器可以通过一个算法一起使用。随着相机和激光雷达在现代车辆中的使用越来越普遍,基于视觉和点云的里程计正在成为关键的方法。与GNSS不同,这些传感器不需要外部信号。此外,这些技术比车轮里程计更为稳健,并且易于通过IMU或GPS进行补充[2]。

随着政府对驾驶员辅助和自动驾驶安全功能的需求增加,自动驾驶相关领域的研究也在增加。参与感知领域的里程计对开发此类系统至关重要。本研究提供了视觉、点云和多模态里程计的概述,并将这些类别与一个共同的基准进行了比较,同时考虑了在完全相同的条件下获得的实际结果。此外,深度学习(DL)技术的兴起使得有必要评估其相对于传统方法的发展现状。这项工作背后的另一个动机是使用一个众所周知的数据集(KITTI-360[3])创建一个最先进的视觉、基于点云和多模态方法的无偏见基准。基准测试在具有挑战性的情况下测试不同的算法,以验证所调研技术的优势和局限性。本文件还讨论了一些当前的问题,这些问题可以帮助研究人员超越常见的视觉里程限制,例如恶劣的天气条件、计算能力限制和动态目标的存在。

本调研主要贡献是:

(1)视觉里程计相关和有前景的工作的分类和理论讨论,从基于特征和外观的技术到利用深度学习能力的最新工作;基于点云的里程计,包括基于知识和学习的方法;同时还分析了不同类型的传感器融合。在相同场景下,使用通用评估程序对这些技术进行了分析;

(2)对几种开源算法进行基准测试的大量实验,特别关注动态环境、开放空间、亮度变化、密集植被、转向机动和高速等具有挑战性的情况;

(3)识别自运动估计的当前挑战,例如对场景外观的依赖性、高计算负载和移动目标的存在。分析和量化这些条件对不同类型所述方法性能的影响;

(4)识别自运动估计的当前挑战,例如对场景外观的依赖性、高计算负载和移动目标的存在。分析和量化这些条件对不同类型所述方法性能的影响;

视觉里程计

现有的 VO 方法可以分为两类: 基于知识的方法和基于学习的方法。前者利用相机的几何关系来评估运动,而后者则基于机器学习技术,依赖于大量的数据来获得姿态预测能力。如下图所示,基于知识的方法可以分为三个子组: 基于外观的、基于特征的和混合的,这取决于如何使用视觉组件来生成里程计估计值。

 基于知识的技术 

基于特征的方法侧重于这样一个前提,即每帧中的关键点或区域可以用来确定相机的运动。这些关键点由角、边、线和斑点组成,这些图像模式在强度、颜色或纹理方面与周围环境不同,因此更可能在多个图像中匹配良好[2] ,[4] ,[5]。对于特征提取,通常采用 SIFT [6]、 SURF [7]、 ORB [8]和 BRISK [9]。基于特征的VO对于几何失真和照明不一致都有相当强的鲁棒性[10]。然而,由于这些方法高度依赖于正确的对应关系,因此只选取图像中的某些点,就会丢弃一些有价值的信息,因此必须尽量减少异常值的存在。下图描述了基于特征的算法所使用的pipline。


因为这些pipline通常遵循结构化的pipline,其中涉及特征检测和匹配阶段(或特征跟踪) ,然后是运动估计,最后是优化步骤。尽管这些步骤通常是横向的,但是每种技术提出它们的方式都是不同的。

在运动估计中,最常用的方法包括特征-特征匹配(2D-2D) ,它利用了纵向几何的约束。纵向约束与从不同角度看到的相同特征有关,其中 P1和 P2是图像坐标上图像1和图像2中同一点的坐标,E 是本质矩阵。通过选择一组匹配,可以计算出运动参数(E 中隐含的) ,从而使纵向约束带来的误差最小化。

 ORB-SLAM2[12]是 VO 和SLAM中流行的算法。它是 ORB-SLAM [13]用于单目、多目和 RGB-D 相机的扩展。这种开源方法通常被认为是视觉里程计的基准。作为一种 SLAM 技术,该算法由三个线程组成: 跟踪和局部建图,里程计模块和闭环。运动估计是利用关键帧和局部地图上跟踪的 ORB 特征计算出来的,特别强调多步光束法平差。VISO2[14]是2011年的另一个流行算法,它可以使用立体相机构建环境的3D 地图。这种方法应用了著名的立体匹配方法将稀疏的特征集与使用卡尔曼滤波器的里程计方法相结合[15]。此外,Cvisic和 Petrovi [16]-[18]的工作在基于视觉特征的方法领域具有特殊的相关性,因为他们的结果使视觉方法的精度更接近基于 LiDAR 技术的精度水平。在[16]中,作者提出了一个立体里程计算法,其主要重点是仔细选择和跟踪特征(SOFT)和这些步骤对自运动估计的影响。旋转和平移分别计算,以提高整个系统的性能。对于旋转,Nister 的5点[19]以单目方式使用,以概率地减少异常值和不完善的立体设备标定的有害影响,同时利用旋转以后使用3点计算平移。此外,该算法的一个扩展被提出来积分 IMU,用卡尔曼滤波器估计旋转集成。第一个估计有助于进一步去除异常值和减轻计算成本的5点算法,使用 P3P [20]和 Ransac [21]替代。当通过视觉里程计计算旋转时,Kalman 会更新。后来,Cvisic和 Petrovi用一个附加的建图线程扩展了 SOFT,从而产生了 SOFT-SLAM [17]。这种方法最初是为自动驾驶飞行器设计的,侧重于计算效率。SLAM 集成了 SOFT 可视里程计pipline,并通过一个建图模块完成,该建图模块增加了 SLAM 的特性,如闭环和全局一致性约束。这些增加的能力使得这种技术在 KITTI 数据集[22]中的定位精度优于其最先进的替代方案,如 ORB-SLAM2和 LSD-SLAM [23]。最近,Cvisic 等人[18]重新审视了 KITTI 里程数据集的标定参数。在最后的工作中,作者提出了一种新的一次性标定多相机 KITTI 装置参数的方法,该方法可以获得较小的重投影误差,直接影响 VO 算法的精度。将调整后的参数应用于 ORB-SLAM2、 SOFT 和 VISO2,平移误差平均提高了28% ,旋转误差平均提高了46% 。

另一方面,基于特征的技术通过仅集中在少数几个选定的点来丢弃图像数据的重要部分。此外,这些技术可能需要额外的计算成本在匹配或跟踪操作和离群点去除。反过来,基于外观的 VO 技术利用捕获帧中的所有信息,而不仅仅是使用关键点。这些方法通过分析图像像素的强度并最小化光度误差来估计相机的姿态,这依赖于一帧中的像素在考虑移动传感器的同时保持其在第二帧中的强度的一致性原则[5]。通过这种方法,可以减轻由重复模式引起的混叠效应,并确保在有限纹理的场景中更加稳健,因为在这些场景中很难检测到好的特征(例如,雾或沙质环境)。基于外观的技术避免了提取和匹配特征以及运行异常去除算法所需的时间。另一方面,与基于特征的 VO 相比,它们对光照变化和相机突变运动敏感。基于外观的方法,也称为直接方法,一般分为基于区域匹配或基于光流的方法。前者通过在连续帧中对齐某些相应区域来估计相机的运动,但是在场景中存在动态目标的情况下,除了容易受到局部极小解的影响外,还会出现失效问题。另一方面,基于光流的技术利用环境场景的光流来估计基于运动模型的相机运动的6自由度(DoF)。下图在直接技术的通用pipline中汇总了两种方法。

为了减轻基于特征和基于外观的方法的缺点,以及聚合每种方法的附加值,还可以采用来自每个领域的不同方法。这些被称为混合技术[5]。

2017年,恩格尔等[24]提出了直接稀疏里程计法(DSO)。这个方法包括一个直接和稀疏的方案,因此不需要特征提取和配对操作。这种方法通过不断优化光度误差在一个有限的框架窗口。然而,与典型的直接方法相比,该方法同时对所有参数进行优化,包括自运动、相机标定和三维点的反深度。通过考虑完全误差,而不是仅仅考虑特定迭代的误差,该策略限制了异常值的影响。作者得出结论,有了合适的硬件(全局快门、精密镜头和高帧频) ,直接方法在精度方面可以超过几何/间接方法,这些方法在过去十年里一直主导着研究兴趣。传统(或几何)方法已经有了良好的基础,尽管这些方法在其演化过程中产生了合理的结果,但在复杂性增加的环境中,它们仍然被证明是脆弱的。事实上,仅仅依靠这些类型的技术变得极具挑战性,因为通过手工制定来捕捉现实世界的复杂性是极其困难的。

基于学习的技术  

如在不同领域所见,数据驱动的基于学习的方法可以获得对场景的高层次理解,而不需要明确的建模,只要他们在足够大的代表性数据集上进行训练[25]。此外,相机标定参数不需要事先知道; 平移可以用正确的尺度估计,系统对图像噪声的鲁棒性更强[26]。因此,近年来 VO 的范式发生了转变,倾向于采用基于学习的方法。典型的数据驱动技术通常由多个具有不同功能的子网组成,例如深度估计、特征提取和自运动估计[25]。它们可以用来补充传统的pipline,也可以用来构建端到端的体系结构,如下图所示。

对网络进行训练的方法是,将输出与监督信号对接,或根据调整和微调网络参数的cost函数对输出进行评估。

Yang 等[27]提出了深度虚拟立体里程计(DVSO) ,它用一个基于深度学习的框架来补充 DSO。这项工作的核心是通过网络扩展 DSO 的能力,从而产生精确的深度估计,从而减少尺度漂移。提出的全卷积网络(FCN) StackNet 生成一对深度图,用于模拟虚拟立体平台。通过比较反向扭曲的产出和原始输入,以自监督的方式进行训练。这种技术在基于里程学习的方法中很常见,因此可以避免使用真值,而这些真值的获取成本很高。StackNet 的预测深度图被添加到原始 DSO 通用优化问题的预测深度图中,作为额外的几何约束。深度视觉里程计法迄今未能取代传统的方法。然而,这项工作超越了基于学习的替代方案,更接近于传统的最先进的技术。实际上,在 KITTI 选择的一组序列中,DVSO 比 ORB-SLAM2的平移误差略有提高,提高了2.2% 。此外,虽然 DVSO 不是一个端到端的视觉里程计架构,如 DeepVO [28] ,在 KITTI 数据集中 DVSO 的翻译误差是9.3倍。

2020年,同样是 DVSO 的作者,Yang等人[29]提出了Deep Depth,Deep Pose和Deep Uncertainty,也被称为 D3VO。D3VO 的总体结构与 DVSO 和 DSO 略有不同。在 D3VO 中,深度是由一个称为 DepthNet 的卷积网络估计的,它也预测与估计相关的不确定性。反过来,相机的姿态是由另一个叫做 PoseNet 的深度卷积网络估计出来的,除了变换之外,PoseNet 还可以平衡当前帧和之前帧的照度,这两个帧共同构成了一对网络输入,以减少由于光照变化而产生的误差。不确定性在此均衡过程中尤为重要,因为它有助于检测容易违反帧间光度一致性原则的非朗伯反射表面。DepthNet 和 PoseNet 都是以自监督和联合方式进行训练的。姿态预测基于以前的工作DVSO和DSO补充了一个直接跟踪前端模块和一个全局光束法平差后端模块。在轨迹精度方面,结果略高于DVSO(在选定的 KITTI 序列中为10%)。

与以前的方法不同,由 Wang 等人[28]提出的 DeepVO 是一种端到端的监督方法,其重点是学习具有适当几何意义的特征提取,并隐式建模一系列帧上的运动动力学。一对连续的图像被叠加并作为输入传递给卷积神经网络(CNN) ,生成一个输入对的简洁描述,然后被馈送给一个递归神经网络(RNN) ,允许捕捉视频的连续属性。尽管如此,与DVSO 和 D3VO 不同,其结果有些令人不满意。然而,这种方法允许非调优相关模型,它可以作为端到端DL方法的概念验证。事实上,计算机视觉中大多数常用的DL结构,如 CNN 和 RNN,并不适合 VO。这项工作可以作为一个起点,催化新的 VO 应用研究。ESP-VO [30]通过计算姿态估计的不确定性扩展了这项工作,这对传感器融合特别有用。按照类似的路径,PoseCon-vGRU [31]是一种端到端的可比方法。PoseCon-vGRU 利用 DeepVO 的时间效率,使用堆叠的门控循环单元(GRU)代替长短期内存模块(LSTM)。LSTM 和 GRU 是特定类型的 RNN,它们通过学习和在内部存储与保持或不保持内部状态相关的内容来捕获连续输入之间的长期关系。这种类型的结构是特别重要的视觉里程计,给予时间几何约束的序列框架。在 PoseConverGRU 中,GRU 是首选的,因为它们在性能方面非常接近于 LSTM,但是用更少的参数和更少的时间实现类似的结果。尽管如此,虽然取得了比 DeepVO 略好的结果,但改善并不显着,因此导致相同的结论。

DeepAVO [32]是另一种基于光流的 DL 方法,其依赖于基于学习的光流提取器 PWC-Net [33]。它每个图像象限提供四分支网络,以利用局部视觉线索。卷积块注意模块(CBAM)[34]机制被纳入到特征编码器之前的姿态估计。这种机制作为一个mask,提取相关的特征,集中在不同运动的像素,丢弃前景和模糊的目标。同样依靠 PWC-Net,Zhao等[35]预测光流,计算相机姿态的相对变换,并通过三角测量重建场景的一些三维结构。然后,这些结构被用来标定来自平行神经网络的深度预测,解决姿态和深度预测之间尺度不一致的问题。这是一个阻碍学习过程和结果的问题,因此笔者将姿势分支和深度分支的训练过程进行了划分,利用两者的输出相互补充,形成一致性。

ClusterVO[36]是一种动态感知的 VO 技术,它可以在检索相机轨迹和被检测目标轨迹的同时分割动态目标。运动估计部分基于关键帧和滑动窗口优化(部分类似于 ORB-SLAM2)。VLocNet [37]提出了一种应用于视觉里程计的基于辅助学习的方法。除了一个 VO 专用网络,作者提出了另一个模块来估计车辆的全局姿态,在两个任务之间共享特征,因为这两个任务在性质上非常相似。这种做法促进了一个更一致的学习和较少的易感性过度拟合。该技术在 VLocNet++ [38]中通过包含一个场景分割任务得到了进一步的扩展。

到目前为止,视觉方法景观已经被传统的基于特征的方法所主导,如 ORB-SLAM2和 SOFT-SLAM。最近,直接的公式化方法已经取得了有趣的成果,而作者也开始观察到一种趋势,即整合基于学习的子模块,以补充更传统的架构,如 DVSO 和 D3VO。与此同时,许多端到端的自运动估计方法已经出现,尽管结果令人失望,但在道路交通环境复杂性的抽象方面仍然有很大的潜力。

基于点云的里程计

点云帧通常以点云的形式表示,点云由一组直接以世界坐标给出的3D点组成,而VO则是以像素/图像坐标给出点。激光雷达传感器的工作原理是测量发射和反射的激光线的飞行时间或相移。要创建环境的3D点云,需要多次执行此操作以覆盖整个扫描区域。基于点云的里程计方法的分类不像 VO 方法那样简单。将这些工作分类的最简单的方法是将它们分为以下几类: 基于知识的,使用标准和传统算法的,以及基于学习的,使用机器和深度学习技术的。

Jonnavithula 等[39]帮助定义激光里程计算法的基本步骤: (1)预处理,(2)特征提取,(3)对应搜索,(4)转换估计和(5)后处理(如下图所示)。 

基于知识的技术  

ICP [41]在90年代有了第一个版本,可以被认为是基于 LiDAR 的里程计领域最有影响力的算法之一。在其最基本的版本中,该方法通过两个步骤找到两个点云之间的转换: 数据关联和转换估计。数据关联步骤旨在找到两个点云之间的对应点,这可以使用最近邻方法来完成。第二步通过计算每个点云的质心并对齐,然后利用单值分解(SVD)计算点云的旋转,最小化点对之间的距离。该算法进行多次迭代,直到找到一个局部最小值。ICP 的基本概念被用于各种最先进的方法,例如 CT-ICP [42] ,这是 KITTI 自动驾驶基准上表现最好的里程计系统之一。ICP 算法考虑了传感器运动引起的点云畸变,使得 ICP 算法能够实时工作,就像在自动驾驶场景中发生的那样。这个公式使这种方法对传感器的高频运动具有鲁棒性,这是该方法的主要强项。该算法估计每个激光雷达扫描的初始和最终位置,同时通过插值执行弹性扫描匹配。与类似的方法不同,最终姿态不一定对应于下一次滑动的初始姿态,提供弹性和鲁棒性,以应对传感器运动中更突然的变化。同时,该方法提供了一个完整的建图模块和一个新的闭环过程。通过剪切特定阈值之间的 z 坐标,地图的点被插入到二维高程网格中,只有当传感器在 z 轴上的运动相对稳定时,这种方法才有效。当构建一个新的网格时,使用旋转不变的2D 特征将其与旧网格进行匹配。当一个匹配被验证,ICP 被用来细化二维变换获得一个6自由度的闭环约束。

最近的另一种依赖于 ICP 基础的方法是 MULLS (多度量线性最小二乘)[43] ,它提供了一个高效、低漂移的3D SLAM 系统。这种架构是专门设计的独立于激光雷达的规格,不需要转换的激光雷达数据环或Range图像。首先对几何特征点进行提取和编码,区分地面、立面、柱子等几类特征点。下一步涉及多度量线性最小二乘 ICP 的自运动估计,基于选定的特征,这是修改,以提高准确性和效率。这种变化有四个基本步骤。首先,在每个特征类别中确定点对应关系。然后,在考虑点强度等因素的情况下,计算每个对应关系的权重。然后,根据点对应关系和计算出的权值,计算出变换估计。最后,作者使用统计指标来评价注册过程的质量。下图描述了在 LiDAR 收集的点云上执行的 MULLS 注册过程的一个例子。

另一项在这个领域具有高度相关性的工作是 LOAM [44]。该方法同时解决了不同频率下的里程计和周边建图问题。里程函数以较高的节奏运作,并产生较低的保真度估计。同时,建图模块在生成和细化全局地图的同时,速度较慢并调整里程估计值。对于里程计,在初始阶段提取点云特征,将点云特征选取并分组为尖锐边缘和平面表面斑块。沿着激光雷达扫描,假设传感器的恒定角速度和线速度,捕获的点逐渐投影到前一帧。当特征被提取和匹配时,ICP 的一个变体会产生新的估计。当扫描完成后,建图模块细化对齐,完成建图并产生更高精度的姿态估计,再次传递回里程计模块。

其他的工作,比如 LeGOLOAM [45]和 ELO [46] ,使用了 LOAM 的变体,这些变体专门设计为在保持或改进原始性能的同时具有较低的运行时间。LeGOLOAM 是轻量级和地面优化 LOAM 的缩写,其开发目的是为了在计算能力较低且没有悬挂的车辆上实现(这会加剧点云失真)。基本的工作原理依赖于分割点云,去除小的集群和保留点,可能代表大的目标,如树干和道路表面,并保存在一个range图像中。然后从这些range图像中提取特征,分为地面特征和非地面特征。关于里程计算法本身,由于地面优化过程,跨帧特征匹配变得更快。正如预期的那样,这种方法提高了 LOAM 的效率,使用的特性减少了72% 。ELO[46]是最近由zheng等人提出的。对于 LOAM 这样的方法来说,以基于树的形式对点云进行编码是很常见的,这种方法虽然在搜索方面很有效,但在大规模的点云中会受到一定的限制。为了最大限度地提高效率,该方法提出将激光雷达测量结果投影到球面图像上,直接恢复点之间的邻域。问题在于,在自动驾驶汽车中,激光雷达传感器捕获了大量的地面点,而这些地面点在球面几何学的投影中变得过于遥远。作为一种利用这些点的方式,地面点投影在一个自上而下的鸟瞰角度。通过对地面点和非地面点的合理分割,以及适当的二维投影,使得帧匹配搜索方法的应用更加有效。关于运行时间,作者认为 ELO 在一台普通笔记本电脑上可以达到169帧率。事实上,这项工作记录的运行时间比 KITTI 里程计基准中十个最高位置的平均值低21倍。尽管在提高效率方面做出了努力,但 ELO 的性能与MULLS 等其他方法相当。

其他一些工作也应该提到。例如,F-LOAM [47]试图通过将 LOAM 的迭代过程转化为两阶段失真补偿方法来减少计算负担。该算法还利用了局部光滑度较高的边缘特征和平面光滑度较低的特征,有利于匹配。通过这样的努力,该方法在低功耗嵌入式计算单元上实现了20Hz 的周期频率。ISC-LOAM [48]类似于 F-LOAM,但是使用点云的强度值和它们的几何形状来进一步提高循环闭合的能力。R-LOAM [49]通过将 LOAM 框架与关于引用目标的先前知识相结合,以不同的方式对这种改进进行了处理。它需要事先了解障碍物的三维模型及其在全局坐标系上的位置。然而,这种表述使 R-LOAM 不适合于自动驾驶环境。

基于学习的技术  

一种不同类型的方法涉及使用深度学习技术来解决里程计问题。由于来自range传感器的数据是无序和稀疏的,这是具有挑战性的应用典型的卷积为基础的 DL 模块。因此,一些使用 DL 技术的方法将3D 点云转换成其他格式,如range图像。LO-Net [50]是一种使用这种方法检索传感器里程估计的算法。LO-net 首先从点云格式传递到矩阵,将点投影到圆柱坐标系中。然后,对于每个点,计算其各自的法向量。将包含当前时刻法向量和前一次激光雷达扫描法向量的矩阵传递给Siamese神经网络(SNN) ,后者将输出合并并提供给卷积网络,用于估计自运动参数。整个网络都是以监督的方式进行训练的。此外,该算法还包含场景中动态目标的掩模估计模块和建图块,通过扫描-建图匹配进一步细化估计。DeepLO [51]是另一种方法,它首先将入射的点云投影到二维空间中。投影表示被一对包含点云顶点和法线的2D图所替代,而且没有精度损失。从当前时刻和前一时刻的顶点建图被传递到一个完全卷积网络,从中提取各自对的特征向量。这同样适用于法线的图,它们被并行地提供给另一个类似的网络。然后将两个合成的特征向量相加并传递给第三个神经网络,该神经网络预测运动参数。这个网络可以训练,在监督的方式,辅助序列真值,或在无监督的方式,通过一个误差函数,其中包括一个版本的 ICP。LodoNet [52]也值得一提,因为它使用 SIFT 将3D 数据转换成二维表示和每种形式的特征提取,从而在连续扫描之间获得关键点对。然后,这些通信被输入一个卷积神经网络pipline,提取匹配的关键点对(MKPs)。MkPs 可以精确地返回到3D空间,并输入一个为激光雷达里程计设计的卷积神经网络。另一项利用神经网络的工作是 PWCLO-net [53]。该算法以端到端的方式从原始的3D 点云中学习 LiDAR 里程计,不需要将点云投影到2D 表示中。网络的输入是两个点云,由一个孪生特征金字塔编码,提取每个点云的层次特征。然后,利用一个注意力cost体积来关联两个点云,生成包含点相关信息的点嵌入特征。利用嵌入掩模从这些特征中获取姿态变换,同时去除动态元素。

其他最近使用深度学习的相关工作是 PSF-LO [54] ,它使用参数化的语义特征来促进注册任务,并使用动态和静态目标分类器; 以及 CAE-LO [55] ,与以前的方法一样,使用无监督的深度学习并使用紧凑的2D 球形环投影。DMLO [56]也是一项有趣的工作,通过将姿态估计分解为两部分来使特征匹配适用于 LiDAR 里程计: 使两个扫描之间的匹配网络和刚性变换估计运算变换估计运算。SuMa++ [57]扩展了 Behley 等人以前的工作[58] ,并对自定位问题有不同的方法。通过分析语义surfel-based的地图变化来估计机器人的位置,同时检测和去除动态目标,提高姿态估计的精度。每个扫描的激光雷达帧被转换成一个二维投影。然后,通过点云分割网络RangeNet++ [59]对每个帧进行分割,因为每个点都属于一个语义标签。在此步骤之后,图像被转换回一个更新世界地图的3D 投影。本节提供了基于点云的里程计的一般概念的概述。文章还分析了这一领域的几个工作,以及它们的独特性,从知识到基于学习的方法,这些方法正在变得越来越流行,就像视觉里程计一样。

多模态里程计

自动驾驶汽车行驶的道路环境是非常复杂的。自动驾驶车可以通过结合不同的传感器(如相机、激光雷达和IMU) ,接近人类的感知能力,从多模态感知中受益。随着这些传感器开始被汽车制造商广泛采用,这种方法正变得越来越重要。

数据融合策略  

数据融合依赖于从不同的传感器收集数据将允许从周围捕获更丰富和冗余的信息,这反过来又能够降低状态估计的不确定性。这种方法还有助于减少个别传感模式的失败成本,从而提高系统的鲁棒性。例如,视觉里程计可能会受到光照变化、照明条件差和无纹理环境的影响; 激光雷达难以应对高速公路或长隧道等宽阔的开放空间,以及恶劣的天气条件; 如果不定期调整,IMU 的轨迹估计往往漂移得非常快。因此,拥有不止一种模式应该可以弥补最终的短期或长期失败。在多模态方法中,可以根据合并在系统框架上下文中发生的瞬间对数据融合进行分类(如下图)。

在早期融合中,在任何预处理之前,通常通过将一个或多个传感器投影到另一个传感器的输入空间,在原始阶段合并数据。这种方法通常具有较低的计算成本,但高度依赖于传感器间的空间和时间标定[60]。后期融合意味着数据的后处理合并。这是最常见的策略,因为它需要更低的复杂性和更高的模块化。然而,它带来了更高的计算费用,并阻碍了每种数据类型的潜在有价值的中间特征的使用[60]。最重要的,在后期融合中的局限性仅仅依赖于姿态估计,它赋予融合层一个抽象级别,在某些情况下可能会受到限制。最后,中间融合是更加全面的技术,因为它可以以许多可能的方式部署,这取决于系统的体系结构,特别是如果是基于DL 的。由于数据经过一定的处理后进行融合,因此也称为特征级融合。在里程计的上下文中,可以对数据如何被用来生成系统的输出进行分类。例如,激光雷达测量可以补充图像,同时估计自运动与视觉里程计或反之亦然,或两种类型的里程计可以分开操作,融合在更高的系统框架抽象层[61]。遵循第一种方法的系统通常表示为紧耦合,而其他系统称为松耦合[62]。在这种情况下,图像和点云通常是里程测量法估计的主要来源,而 IMU 和全球定位系统提供便利的先验和/或轨迹漂移校正。

目前的数码相机技术,相比其他传感器,使相机具有非常有竞争力的价格和更小的尺寸和重量。相机通过提取颜色和纹理信息来记录周围场景的高分辨率图像,这对于检测轮廓和物体特别有效,而且,对于 VO 来说,可以识别在连续帧中容易跟踪的感兴趣点。然而,相机是非常依赖于环境条件和照明,面临着一些问题,规模恢复。反过来,激光雷达传感器可以检索自然深度信息,并通常提供更宽的空间覆盖。channel的数量通常在16到128之间,刷新频率可能在5到20Hz 之间变化。然而,雨、雾和雪会对激光雷达的性能造成高达25%的负面影响[63],因此考虑这些现象非常重要。一些研究,如在[60],[64],证明了激光束的波长影响天气条件的不利影响。

在合并来自不同传感器的数据时,标定也是一个关键的方面,特别是在紧耦合系统中。每个传感器具有内部和外部标定参数,捕捉传感器的内部几何特性,并将世界帧与设备帧相关联。此外,传感器必须联合标定,以便由不同传感器检测到的完全相同特征的多个检测结果转换到系统公共帧中完全相同的位置(理想情况下)。最常见的技术使用具有众所周知尺寸的物理目标。这些结构必须具有易于检测的特征,并根据每种传感器模式进行分割。每个传感器分割的特征构成了一组物理约束,允许通过参数优化估计它们之间的旋转和平移。例如,在[65]中,作者仅使用一个简单的任意平面多边形进行相机-LiDAR 标定,而在[66]中,作者提出了一个具有四个锥形孔和金属反射镜的矩形块,以允许相机,LiDAR 和雷达的外部标定。[67]作者编制了一套公开可用的传感器外部标定工具包,同时也提出了一些实际的考虑,有时在标定传感器。在[68]-[71]中可以找到一些额外的技术,主要用于相机-激光雷达融合,以及用于多相机和相机-IMU 融合的 kalibr 工具包,其使用来自[72]-[76]的技术。

Multi-scale detection 

其中第一个运动估计是由启发于 DSO 的基于直接贴片的方法产生的[24]。通过应用滑动窗口优化技术,保证局部一致性和实时性,进一步提高了估计精度。如果最新的帧是关键帧候选,则从相应的 LiDAR 扫描中提取特征并加入到全局图中,然后允许在从扫描到建图的过程中再进行一个细化步骤。这个步骤允许使用整个激光雷达的覆盖角度,而不仅仅是相应的拍摄角度。后端模块负责地图维护,包括闭环和姿态图优化器,以减少长途旅行中的累积漂移。此外,DV-LOAM 提出了一个有见地的消融研究。结论表明,这项工作所采用的直接和基于补丁的可视化 LiDAR 里程测量方法比单纯的 LiDAR 里程测量方法具有更高的精度,因为它依赖于图像来检测点云中不易区分的边缘。此外,它还受益于直接深度测量增强图像,这使得该方法即使在图像模糊时也能工作。

从 LOAM 的同一作者,V-LOAM [77]旨在减轻 LOAM 对平滑运动的依赖。相机集成到 V-LOAM 允许视觉里程测量作为激光雷达里程测量之前的估计和处理快速运动。类似于 LOAM 的架构,V-LOAM 也使用双频模型。视觉块计算姿态转换的速度更快,使用一种特征匹配方法,它依赖于图像点,其深度或者直接由激光雷达测量,或者通过三角测量获得。同时,当每个激光雷达扫描完成时,假设线性运动不变,新的点云不会失真。这些点被记录在一个由激光里程块维护的局部地图中,如 LOAM 中。注册允许生成自运动估计,纠正影响视觉估计的漂移。此外,LiDAR-camera 组合还支持短期光照爆发期间的操作。

与 V-LOAM 不同,由 J.Graeter 等[78]提出的 LIMO 利用激光雷达测量以紧耦合的方式补充摄像机图像的深度信息。从图像帧中选取突出点,丢弃位于汽车和行人上的突出点,以避免动态物体的影响。这是通过深度学习语义分割来完成的。将激光雷达点云投影到图像上,通过平面拟合插值计算每个特征点的邻域深度。融合阶段还包括前景和地面分割。通过匹配特征,姿态变换估计由应用光束法平差的改进后端块生成和调整。在这一块中,特别强调仔细选择关键帧和地标,以及使用修剪后的最小二乘法加强模块,以减少异常值的存在。

一种进一步的方法是来自C.Chow等人的紧耦合可视激光雷达 SLAM (TVL-SLAM)[79] ,其中视觉和 LiDAR 模块独立运行,直到来自两者的数据合并时流水线中的某个点,从而构成中间融合情况。关于里程测量领域,视觉前端在视觉残差旁边生成初步的姿态估计。这一估计有助于激光前端残差的计算。融合发生在一个大规模的最佳化问题中,其输入是两个模块的残差。在最后一步中,模块之间的内部和内部一致性由一组约束来确保,这些约束包括视觉标志重投影误差、扫描到地图配准和交叉约束,因为两个前端代表相同的环境。此外,该算法还具有传感器之间的外部标定技术和拒绝运动目标的多步技术。KAIST 数据集[80]的测试由拥挤道路环境中的具有挑战性的场景组成,由于其多模态特征(仅 TVL-SLAM LiDAR 和 ORB-SLAM2的准确性分别提高了88% 和78%),证明了 TVL-SLAM 的优越性能。

Wisth 等[62]最近提出了一种紧耦合的 LiDAR-Visual-IMU 里程测量结构。状态估计被表述为一个具有多传感器因素的大规模姿态图最佳化问题。视觉地标的深度是通过 LiDAR 点的投影计算的,如[78] ,或通过立体匹配; 点云不失真到最接近的图像时间戳,以确保时间同步,使用 IMU 的运动先验; 平面/线特征提取类似于[44] ,这减少了90% 的点为了效率的目的。实验表明对宽阔空间、黑暗隧道、密集的树叶和突然的运动具有相当强的鲁棒性。此外,姿态图公式允许不同的模式独立地影响系统,强调性能一致性的情况下,其中一个传感器的故障。

Ramezani 等人的工作组成了一个不同类型的方法,其主要焦点是通过惯性导航系统(INS)估计药剂里程。通过使用多状态约束卡尔曼滤波器来传播智能体的运动状态。同时,在设置中集成了立体装置,允许通过二维和三维特征匹配方法给车辆运动增加额外的约束,限制了 IMU 估计的漂移。本节提供了几个例子,说明如何组合来自不同传感器的数据,以获得更准确的结果和更健壮的体系结构。通过与单一模式方法的直接比较,上述许多技术显示了汇总不同模式和处理数据冗余的重要性。下表汇总所有参考的里程计技术以及各自的分类、类型和相关关键点。

 视觉里程计基准

到目前为止,在里程计领域的一些最相关和创新的工作已经被简要地描述和评论,包括视觉,基于点云,多模态方法。因此,本节将包含对一些暴露问题的一个关键的分析技术,支持的结果由作者获得的 KITTI 里程数据集。KITTI 数据集[22]包括总共22个视觉序列,记录在一辆车上的激光雷达和 GPS/IMU 数据,在常见的道路交通环境中采集,其中11个包括各自的真值。此外,KITTI 还提供了一个比较多种算法的评估工具,并在计分板上对它们进行排名。结果根据三个指标进行评估: i) trel,序列长度为100米至800米的平均相对平移误差(百分比) ; ii) rrel,在轨迹上的 deg/100米的旋转误差; iii)以毫秒为单位的运行时间。表2和表3中的数据对应于 KITTI 里程计基准训练和评估序列中最佳技术的评估。

通过以下分析表,值得注意的是,不管它们的模式或技术性如何,顶部位置之间几乎没有隔离。

事实上,上表中的前三个位置获得了低于0.5% 的树状图,并且每种方法对应于不同的传感模式,即多传感器,视觉和仅激光雷达。其余的地方都大致包括在0.70% 到0.90% 的范围内,除了最后两个,它们是 DL 端到端架构。类似地,在上表中,前五个位置构成了一个非常小的错误范围,大约为0.06%,同样来自每个模态的代表。

还可以观察到,与基于学习的技术相比,传统技术占主导地位。事实上,在过去的几年中,只有在轨迹精度方面有了很小的改进。最终,重点将有所改变,以进一步强化里程计系统,并使其计算效率更高。与运行时或算法分配的数据不同,量化和度量鲁棒性并非易事。对这些技术进行测试的最常见方法是在包含有挑战性场景的数据集中对它们进行评估。虽然 KITTI 被广泛使用,因此适合进行比较,但其他一些数据集,如 KAIST [80]包括更具挑战性的序列。在这方面,多模态系统取得了更好的结果,如 KAIST 的c.Chou 等79和d.wish 等[62]的实验所显示的,这些实验针对针对特定传感器模式的不利条件评估了他们各自的工作,都经受住了测试,并且没有显示出整体退化的迹象,不像视觉或仅激光雷达方法。在效率方面,ELO 脱颖而出无与伦比,同时在准确性方面也表现得非常有竞争力。另一方面,像 TVL-SLAM 这样的复杂方法需要增加计算量,因为它们需要依靠并行运行的多个模块来实现这样的精度和鲁棒性,其中一些可能是需要的,例如优化和建图模块。这种架构的一个可能的解决方案是增强单个功能块,例如将 ELO 或类似的方法集成到激光里程计前端。

开源方法的基准

为了扩展以前的方法[82] ,对里程计进行结构良好和无偏倚的评估。一些开放源码的方法被选择。这些技术是针对从 KITTI-360数据集[3]中提取的一组具有挑战性的序列进行测试的,这些序列从安静的住宅街道上的常规驾驶到繁忙的高速公路都有所不同。

KITTI-360是著名的 KITTI [22]自动驾驶数据集的继承者。它通过增加传感器,如一对鱼眼摄像头和一个额外的激光扫描仪,以及更长和更复杂的驱动器,改进了以前的迭代。通过这种方法,提取了11个序列,并在下表中进行了简要描述。

每个序列 ID 的前两位数字对应于 KITTI-360数据集中的驱动器。这些序列构成了各种各样的环境,特别是挑战里程计算法和评估相应的限制。一些挑战包括高亮度变化,存在许多动态目标,传感器堵塞,和广泛开放的空间,等等。

所选择的评估场景被用来测试一些视觉里程计方法在不同的情况下同化在不同条件下的最先进的表现,同时讨论每种模式的局限性。选择了一些最流行和性能最好的算法:

视觉和Lidar里程计相关推荐

  1. 视觉和Lidar里程计SOTA方法一览!(Camera/激光雷达/多模态)

    点击下方卡片,关注"自动驾驶之心"公众号 ADAS巨卷干货,即可获取 点击进入→自动驾驶之心[SLAM]技术交流群 后台回复[SLAM综述]获取视觉SLAM.激光SLAM.RGBD ...

  2. 基于LiDAR里程计和先验地图的定位方法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:robot L | 来源:知乎 https://zhuanlan.zhihu.com/p/157 ...

  3. ICRA 2021|用于LiDAR里程计和建图的Poisson表面重建

    Poisson Surface Reconstruction for LiDAR Odometry and Mapping 作者:Ignacio Vizzo, Xieyuanli Chen, Nive ...

  4. 【点云论文速读】基于优化的视觉惯导里程计与GPS的紧耦合的融合方案

    转载自:https://mp.weixin.qq.com/s/Y-h7eto1Zc_Mkzlh653vpg [点云论文速读]基于优化的视觉惯导里程计与GPS的紧耦合的融合方案 原创 dianyunPC ...

  5. 视觉惯导里程计VIO综述

    最近阅读了VIO中的一些论文,在这里做个汇总方便以后查阅,如有问题欢迎指正. 一.背景 VIO(Visual Inertial Odometry)视觉惯导里程计,VINS(Visual Inertia ...

  6. 【SLAM】LIO-SAM解析——获得高频的lidar里程计TransformFusion(6)

    系列文章链接: [SLAM]LIO-SAM解析--流程图(1) [SLAM]LIO-SAM解析--数据预处理imageProjection(2) [SLAM]LIO-SAM解析--特征提取featur ...

  7. 浙大开源 | VID-Fusion: 用于精确外力估计的鲁棒视觉惯性动力学里程计

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 摘要 近年来,四旋翼飞行器在航空运输中受到了极大的关注.在这些情况下,外力的精确估计与6自由度(D ...

  8. CodeVIO:紧耦合神经网络与视觉惯导里程计的稠密深度重建(ICRA2021 Best Paper Finalist)...

    作者丨左家星@知乎 来源丨https://zhuanlan.zhihu.com/p/382746788 编辑丨3D视觉工坊 大家好!在这篇文章里我将为大家简要介绍我们在ICRA2021上发表的论文&q ...

  9. CodeVIO:基于可学习优化密集深度的视觉惯性里程计(ICRA2021)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 (Xingxing Zuo, Nate Merrill, Wei Li, Yong Liu, Marc ...

最新文章

  1. LeetCode刷题记录12——232. Implement Queue using Stacks(easy)
  2. 【iOS-cocos2d-X 游戏开发之十三】cocos2dx通过Jni调用Android的Java层代码(上)
  3. Linux网络编程 | 零拷贝 :sendfile、mmap、splice、tee
  4. MarkdownPad官方网站
  5. 拥抱.NET Core系列:依赖注入(1)
  6. 飞畅科技-工业以太网交换机市场发展情况介绍
  7. android 仿ios timepicker,android:TimePicker仿照IOS時間選擇器,可自定義選擇器
  8. 限速牌的单位是什么_成熟的造车新势力应该是什么样的?
  9. rsync本地模式讲解04
  10. vue-cli创建项目实例
  11. 使用DataStudio连接本地虚拟机中的opengauss数据库
  12. 计算空间点到直线的距离
  13. win7 win10 配置共享文件夹
  14. 加速器在模拟器中的尝试
  15. 【Redis】《Redis 开发与运维》笔记-汇总
  16. 和我一起学Python
  17. Mac下AndroidStudio无法识别安卓手机问题解决
  18. swal()弹出删除确认框
  19. 他们为什么离开微软? 创业热情驱动
  20. 【java之汉字转拼音】

热门文章

  1. 大数据分析Python和R语言的优缺点
  2. 程序员成长之旅——Delphi实现一个简单的科学计算器
  3. 一个ABC眼中的中国创业环境
  4. s6和thinkpad x1音频对比 (APX 音频分析仪)
  5. el-table样式总结—持续更新
  6. Java(网络编程)
  7. 装系统提示:Error1962:No operating system found.解决办法在此
  8. 免费报名参加“大数据时代的大数据分析与展现”技术分享会
  9. 三创数据分析题库及个人作答
  10. 文明-根达亚文明:根达亚文明