A review of visual SLAM methods for autonomous driving vehicles

2023-05-16

自主驾驶车辆的视觉SLAM方法回顾

原论文在文章末尾。

摘要:

自主驾驶车辆在不同的驾驶环境中都需要精确的定位和测绘解决方案。在这种情况下,同步定位和测绘(SLAM)技术是一个很好的研究解决方案。光探测和测距(LIDAR)和摄像头传感器通常用于定位和感知。然而,通过十年或二十年的演变,激光雷达-SLAM方法似乎没有什么变化。与基于激光雷达的方案相比,视觉SLAM具有很强的场景识别能力,并具有成本低和易于安装的优点。事实上,在自动驾驶领域,人们正试图用摄像头取代激光雷达传感器,或在摄像头的基础上集成其他传感器。基于视觉SLAM的研究现状,本综述涵盖了视觉SLAM技术。特别是,我们首先说明了视觉SLAM的典型结构。其次,对视觉和基于视觉的(即视觉-惯性、视觉-激光雷达、视觉-激光雷达-IMU)SLAM的最先进研究进行了全面回顾,并将我们以前的工作与公共数据集上的知名框架的定位精度进行了比较。最后,讨论了视觉SLAM技术在自动驾驶汽车应用中的关键问题和未来发展趋势。

问题和方案:

与大多数开发的视觉SLAM方法所测试的室内或室外移动机器人不同,自主驾驶车辆有更复杂的参数需要考虑,特别是当车辆在城市环境中自主驾驶时。例如,环境区域的规模较大,有动态的障碍物,从而使视觉SLAM方法的性能不够准确和稳健(Cadena等人,2016a)。误差积累、光照变化和快速运动等问题导致了估算的问题。为了解决这些与自主驾驶车辆相关的问题,人们考虑了各种方法。如基于特征点/直接/半直接/点线融合的视觉测距(VO)的算法。和扩展卡尔曼滤波(EKF)/基于图形的优化算法进行姿态估计(Takleh等人,2018)。另外,基于视觉的多传感器融合方法在提高自主系统的精度方面也引起了极大的关注。

文章安排:

就基于视觉的SLAM系统而言,除了制图模块,传感器数据的收集,如相机或惯性测量单元(IMU)、VO和视觉惯性测距(VIO)系统都在前端完成,而优化、闭环则在后端完成。再定位总是被认为是提高视觉SLAM系统精度的一个附加模块(Taketomi等人,2017)。在本文中,对视觉SLAM方法进行了回顾。主要从视觉SLAM系统的定位精度方面考虑,尽可能详细地研究了可能应用于自动驾驶场景的方法,包括纯视觉SLAM方法、视觉-惯性SLAM方法和视觉-激光雷达-惯性SLAM方法,并将我们以前的工作与公共数据集上的知名方法的定位精度进行了比较。这篇综述提供了视觉SLAM技术的详细调查,可以作为自主驾驶汽车领域新研究人员的友好指南。同时,它也可以被认为是有经验的研究人员寻求未来工作的可能方向的字典。本文的其余部分结构如下。首先,我们介绍了视觉SLAM系统的原理,在第二节中评论了相机传感器、前端、后端、闭环和建图模块的职责。其次,在第3节中说明了视觉、视觉-惯性、视觉-激光雷达和视觉-激光雷达-IMU SLAM方法的最先进研究。第三节讨论了视觉SLAM技术在自动驾驶汽车应用中的关键问题和未来发展趋势。最后,在第5节中得出结论。

视觉SLAM的原则


视觉SLAM的原理视觉SLAM系统的经典结构可以分为五个部分。相机传感器模块、前端模块、后端模块、闭环模块和建图模块。如图1所示,相机传感器模块负责收集图像数据,前端模块负责跟踪相邻两帧之间的图像特征,实现初始的相机运动估计和局部建图,后端模块负责从前端进行数值优化并进一步进行运动估计,闭环模块负责通过计算大尺度环境下的图像相似度来消除累积误差,建图模块负责重建周围环境(Gao等,2017)。

“2.1. Camera sensors”

根据传感器的不同类型,常见的视觉传感器主要可分为单目、双目、RGB-D和事件相机。摄像机的传感器如图2所示。 (a). 单目摄像头,单目摄像头具有成本低、布局简单的优点。然而,地标的深度不能被很好地估计,这在地图构建过程中存在尺度模糊的问题(Haomin等,2016)。此外,当相机静止(无平移)或只有纯旋转时,无法获得像素距离。(b). 双目相机,与单目相机相比,双目SLAM可以在静态状态下依靠相机的测量值来计算像素深度,也被证明在户外环境下比单目SLAM更稳健。然而,深度测量的范围受到基线长度和分辨率的限制,参数配置和校准的过程也很复杂,因为相机需要处理双重图像信息,对中央处理单元(CPU)来说,计算成本更高。(c). RGB-D相机,与单目和双目相机不同,RGB-D相机可以通过红外结构光和/或飞行时间(TOF)直接获得像素深度,避免了复杂的计算。TOF的理论是,通过测量激光的飞行时间来计算距离。然而,由于测量范围狭窄,而且极易受到阳光的干扰,RGB-D相机被认为不适合户外应用,如自动驾驶场景。(d). 事件相机,事件相机具有140分贝的高动态范围,而其他相机则达不到60分贝,此外,它还具有高时间分辨率、低功耗、不受运动模糊的影响。文献(Gallego等,2019)介绍说,事件相机不是以固定的速率捕捉图像,而是以异步方式测量每像素的亮度变化。因此,事件相机在高速和高动态条件下的测距有更好的表现。事件相机可分为动态视觉传感器(Lichtsteiner等,2008;Son等,2017a;Posch等,2009;Hofstatter等,2010)、动态线条传感器(Posch等,2007)、动态和主动像素视觉传感器(Brandli等,2014)和基于时间的异步图像传感器(Posch等,2010)。

市场上流行的视觉传感器制造商和产品列举如下,但不限于此。

• MYNTAI: S1030 Series (stereo camera with IMU), D1000 Series (depth camera), D1200 Series (apply to smart phones).

• Stereolabs ZED: Stereolabs ZED camera (Depth Range: 1.5 to 20 m).

• Intel: 200 Series, 300 Series, Module D400 Series, D415 (Active IR Stereo, Rolling shutter), D435 (Active IR Stereo, Global Shutter), D435i (Integrated IMU).

• Microsoft: Azure Kinect (Apply to microphone with IMU), Kinectc-v1(structured-light), Kinect-v2 (TOF).

• Occipital Structure: Structure Camera (apply to ipad).

• Samsung: Gen2 and Gen3 dynamic cameras and event-based visual solution (Son et al., 2017b).”

“2.2. Front end”

视觉SLAM的前端被称为视觉测距(VO)。它负责根据相邻帧的信息大致估计摄像机的运动和特征方向。为了以快速的响应速度获得准确的姿态,一个高效的VO是必要的。目前,前端主要可以分为两类:基于特征的方法和直接方法(包括半直接方法)(Zou等人,2020)。在本节中,我们主要回顾基于特征的VO方法。关于半直接法和直接法,如SVO(Forster等人,2017)和DSO(Engel等人,2018)在第3.1.2节描述。基于特征点的VO系统运行更稳定,对光线和动态物体相对不敏感。具有高尺度和良好旋转不变性的特征提取方法可以极大地提高VO系统的可靠性和稳定性(Chen等,2019)。

1999年,Lowe(2004)提出了尺度不变特征变换(SIFT)算法,该算法在2004年得到了改进和发展。整体算法分为三个步骤来完成图像特征点的提取和描述。

(i). 通过高斯差分金字塔方法构建标度空间,通过高斯差分函数识别兴趣点。

(ii). 确定每个候选点的位置和尺度,然后定位这些关键点。

(iii). 为关键点分配指向性特征,得到描述子。

SIFT特征对旋转、缩放和光照变化进行非变形,但它消耗了大量的计算量。Speeded Up Robust Features (SURF)(Herbert等人,2007)是SIFT的一个改进。它解决了SIFT计算量大和实时性差的缺点,同时也保持了SIFT运算器的优良性能。尽管如此,SURF算法在应用于实时SLAM系统时有较大的局限性。在保证性能的基础上,提出了一种更加注重计算速度的特征提取算法。2011年,Viswanathan(2011)提出了一种基于模板和机器学习方法的局部角检测方法,即特征来自加速段测试(FAST)角检测方法。FAST算法以待检测的像素为圆心,当固定半径的圆上的其他像素与圆心的像素之间的灰度差足够大时,该点被认为是一个角点。然而,FAST角点没有方向和尺度信息,它们不具有旋转和尺度不变性。2012年,Rublee等人(2012)提出了基于FAST角点和BRIEF描述符的Oriented FAST and Rotated BRIEF(ORB)算法。该算法首先在图像上建立一个图像金字塔,然后检测FAST关键点并计算出关键点的特征向量。ORB的描述符采用了二进制字符串特征BRIEF描述符(Michael等人,2010)的快速计算速度,所以ORB的计算速度比FAST算法的实时特征检测速度快。此外,ORB受噪声影响小,具有良好的旋转不变性和尺度不变性,可以应用于实时SLAM系统。2016年,Chien等人(2016)对VO应用中的SIFT、SURF和ORB特征提取算法进行了比较和评估。通过对KITTI数据集(Geiger等人,2013)的大量测试,可以得出结论:SIFT提取特征的准确性最高,而ORB的计算量较小。因此,作为计算能力有限的嵌入式计算机,ORB方法被认为更适合于自动驾驶汽车的应用。

“2.3. Back end”

后端接收由前端估计的摄像机姿态,并优化初始姿态以获得全局一致的运动轨迹和环境图(Sunderhauf和Protzel,2012)。与前端的多样化算法相比,目前后端算法的类型主要可以分为两类。基于滤波器的方法(如扩展卡尔曼滤波器(EKF)Bailey等人,2006),和基于优化的方法(如因子图Wrobel,2001)。它们的描述如下。

(a). 基于滤波器的方法,这种方法主要是利用贝叶斯原理,根据以前的状态和当前的观测数据来估计当前的状态(刘,2019)。典型的基于滤波的方法包括扩展卡尔曼滤波(EKF)(Bailey等人,2006)、无痕卡尔曼滤波(UKF)(Wan和Merwe,2000)和粒子滤波(PF)(Arnaud等人,2000)。以典型的基于EKF的SLAM方法为例,它在小规模环境中的应用是比较成功的。但是,由于是存储协方差矩阵,其存储容量随状态量的平方而增加,对大的未知场景的应用始终受到限制。

(b). 基于优化的方法,基于非线性优化(图优化)方法的核心思想是将后端优化算法转化为图的形式,以被摄体姿态和不同时刻的环境特征为顶点,顶点之间的约束关系用边表示(Liang等,2013)。图建成后,基于优化的算法被用来解决被摄体的姿势,使顶点上要优化的状态更好地满足相应边上的约束。优化算法执行后,相应的图就是主体的运动轨迹和环境图。目前,大多数主流的视觉SLAM系统使用非线性优化方法。

“2.4. Loop closing”

闭环的任务是让系统根据传感器信息识别当前场景,并在返回原地时确定该区域已经被访问过,也就是消除SLAM系统的累积误差(Newman and Ho, 2005)。对于视觉SLAM来说,传统的闭环检测方法主要采用Bag-of-Words(BoW)模型(Galvez-LoPez and Tardos, 2012),实现的步骤是:

(i). 针对从图像中提取的局部特征,通过K-means聚类构建一个包含K个词的词表。

(ii). 根据每个词的出现次数,将图像表示为一个K维数字向量。

(iii). 判断场景的差异,并识别自动驾驶汽车是否已经到达所识别的场景。

“2.5. Mapping”

自主车辆的一个基本组成部分是建立环境地图并在地图上定位的能力。制图是视觉SLAM系统(即定位和建图)的两项任务之一,它在自主驾驶的导航、避障和环境重建方面发挥着重要作用。一般来说,地图的表示可以分为两类:公制地图和拓扑地图。公制地图描述的是地图元素之间的相对位置关系,而拓扑地图强调的是地图元素之间的连接关系。对于经典的SLAM系统,公制地图可以进一步分为稀疏地图和密集地图,稀疏地图只包含场景中的少量信息,适用于定位,而密集地图包含更多的信息,有利于车辆根据地图执行导航任务。

“3. State-of-the-art studies”

“3.1. Visual SLAM

与第2.2节中描述的VO子系统类似,根据利用图像信息的方法,纯视觉SLAM系统可以分为两类:基于特征的方法和直接方法。基于特征的方法是指对相邻帧之间的摄像机运动进行估计,并通过提取和匹配特征点构建环境图。这种方法的缺点是需要很长的时间来提取特征点和计算描述符。因此,一些研究者建议放弃对关键点和描述符的计算,那么直接法就应运而生(Zou等人,2020)。此外,根据传感器的类型,视觉SLAM可以分为单眼、双眼、RGB-D和基于事件相机的方法。根据地图的密度,可以分为稀疏、密集和半密集的SLAM,它们的介绍如下。

“3.1.1. Feature-based method”基于特征

2007年,Davison等人(2007)提出了第一个实时单眼视觉SLAM系统,Mono-SLAM。图3(a)中显示了实时特征模块方向估计的结果。在后端使用EKF算法来跟踪从前端获得的稀疏特征点,并使用相机位姿和地标点方向作为状态量来更新其平均值和协方差。同年,Klein和Murray(2007)提出了一个并行的跟踪和绘图系统,PTAM。它实现了跟踪和制图工作的并行化。图3(b)显示了特征提取和建图的过程,它首次区分了前端和后端,并通过非线性优化方法,提出了关键帧机制。关键图像被串联起来以优化运动轨迹和特征方向。随后的许多视觉SLAM系统设计也都采用了类似的方法。2015年,Mur-Artal等人(2015)提出了ORB-SLAM,这是一种相对完整的基于关键帧的单眼SLAM方法。与PTAM的双线程机制相比,该方法将整个系统划分为三个线程:跟踪、建图和闭环检测。需要注意的是,特征提取和匹配(左栏)、地图构建和循环检测的过程都是基于ORB特征(右栏)。图3(c)是单目摄像头在高校道路环境下的实时特征提取过程(左栏)和轨迹跟踪与建图结果(右栏)。2017年,Mur-Artal等人提出了ORB-SLAM2(Murartal and Tardos, 2017)的后续版本,它支持循环检测和重定位,具有实时地图重用的功能,此外改进后的框架还开放了双目相机和RGB-D相机的接口。图3(d)的左列显示了ORB-SLAM2的双眼轨迹估计和特征提取。图3(d)的右列显示了室内场景中RGB-D相机的关键帧和密集点云映射效果。图中连续的绿色小方块构成了关键帧的轨迹,而RGB-D相机构建的密集3D场景地图则围绕着它。

“3.1.2. Direct based method”直接法

2011年,Newcombe等人(2011b)提出了一个基于直接方法的单眼SLAM框架,即DTAM。与基于特征的方法不同,DTAM采用了基于反深度的方法来估计特征的深度。通过直接的图像匹配计算摄像机位姿,并通过基于优化的方法构建密集图(图4(a))。2014年,Jakob等人(2014)提出了LSD-SLAM(图4(b)),这是直接法在单眼视觉SLAM框架中的一个成功应用。该方法将面向像素的方法应用于半密集的单眼SLAM系统。与基于特征的方法相比,LSD-SLAM的敏感度较低,但当相机的内部参数和照度发生变化时,该系统是脆弱的。2017年,Forster等人(2017)提出了SVO(Semi-direct Visual Odometry)。它使用稀疏直接法(也称为半直接法)来跟踪关键点(图4(c)的底部),并根据关键点周围的信息来估计姿势。图4(c)的顶部显示了室内环境中的稀疏地图的轨迹。由于采用半直接方法跟踪稀疏特征,既不计算描述符,也不处理密集信息,SVO的时间复杂度低,实时性强。2016年,Engel等人(2018)提出了DSO,它也采用了半直接法,以更快的运行速度保证更高的精度。然而,正如第2.1节中提到的,他们只是视觉测距。由于缺乏后端优化模块和闭环模块,系统的跟踪误差将随着时间的推移而累积。图4(d)显示了DSO(单眼视觉里程表)的三维重建和跟踪的效果。直接法具有计算速度快和对弱特征条件不敏感的优点。然而,它是基于灰度等级不变的强烈假设,所以它对照度的变化非常敏感。相反,特征点方法具有良好的不变性特征。2020年,Zubizarreta等人(2020)提出了一种直接稀疏映射方法,即DSM,它是一种基于光度束调整(PBA)算法的全单眼视觉SLAM系统。在EuRoC数据集(V1_03_困难序列)上测试的定性例子见图4(e)。事实证明,它既能减少估计轨迹和地图误差,同时又能避免不一致的地图点重复。表1总结了最先进的视觉SLAM框架的主要特征和优点与缺点。除上述典型框架外,还有其他相关工作的研究,

如:

(1). 稀疏视觉SLAM:CubemapSLAM,ProSLAM,ENFT-SLAM,OpenVSLAM,TagSLAM,UcoSLAM

(ii). 半密集视觉SLAM:CNN-SVO,EVO(基于事件相机)。

(iii). 密集视觉SLAM:MLM-SLAM,Kinect融合,DVO,RGBD-SLAM(v2),RTB-MAP,动态融合、体积变形、弹性融合、Infini TAM、捆绑融合、KO-融合、SOFTSLAM

其他工作可以列举如下,但不限于RKD-SLAM和RGB-D SLAM 。Maplab、PointNVSNet(Xu等人,2019)、MID-Fusion和MaskFusion

可以看出,在视觉SLAM领域有很多成就,我们只是提供了一个流行方法的回顾。即使视觉SLAM提供了良好的定位和建图结果,这些解决方案都有优点和缺点。在这项工作中,"基于稀疏的方法"、"基于密集的方法"、"基于特征的方法"、"基于直接的方法"、"单眼方法 "''双眼法''、''RGB-D法''和''事件相机法。''的优点和缺点被总结出来。它可以在表2中找到。视觉SLAM的确定在技术上具有挑战性。单眼视觉SLAM存在尺度模糊、必要的初始化和尺度漂移等问题(Strasdat等人,2010)。尽管立体相机和RGB-D相机可以解决尺度和初始化的问题,但一些障碍是不容忽视的,如快速运动、大计算、小视场、遮挡、动态场景、特征损失和光线变化。这些问题限制了视觉SLAM在自动驾驶领域的应用。目前,许多研究人员试图将不同的传感器集成到VSLAM系统中进行应用。典型的多传感器融合方法是视觉-惯性、视觉-激光雷达(Yang,2019;Ma等人,2019)、视觉-激光雷达-IMU(Guilln等人,2017;Zhang等人,2019)。

“3.2. Visual-inertial SLAM视觉惯性slam”

IMU传感器可以提供一个很好的解决方案,以解决摄像机移动到具有挑战性的环境(纹理和/或光线变化较少)时跟踪失败的问题,另一方面,视觉传感器可以弥补IMU的累积漂移。这样的视觉和IMU的组合被称为黄金搭档。由于摄像头和IMU的功能互补,在无人驾驶等领域有很好的发展前景(Sun and Tian, 2019)。VI-SLAM的主要方法是将IMU信息结合到视觉SLAM系统的前端,这也被称为视觉-惯性测距(VIO)系统。一般来说,VI-SLAM系统可以分为两类:基于过滤器的方法和基于优化的方法。

3.2.1. 基于特征的方法

2007年,Mourikis和Roumeliotis(2007)提出了多状态约束卡尔曼滤波(MSCKF),它是最早的基于扩展卡尔曼滤波(EKF)算法的知名的视觉-惯性SLAM系统。与纯视觉测距相比,MSCKF(图5(a))可以在一定时间内适应更剧烈的运动和纹理损失,具有更高的鲁棒性。2012年,Stephan(2012)提出了SSF(图5(b)),它是一个基于松散耦合方法的EKF的时间延迟补偿的单传感器和多传感器融合框架。2013年,Li和Mourikis(2013)指出了MSCKF在状态估计过程中的不一致性。2017年,Paul等人(2017)提出了MSCKF2.0,其准确性、一致性和计算效率都有了很大的提高。此外,ROVIO(Robust Visual Inertial Odometry)(Bloesch等人,2015)(图5(c))和MSCKF-VIO(Ke等人)(图5(d))也是近年来基于滤波方法的优秀作品。

3.2.2. 基于优化的方法

在基于优化的VI-SLAM系统方面,最经典的框架是OKVIS(Open Keyframe-based Visual-Inertial SLAM)(Leutenegger等,2015)(图6(a))和VINS-Mono,106(图6(b))。2015年,Leutenegge等人提出了OKVIS,它使用IMU测量值来预测当前状态、空间点和二维图像特征,以构成重投影误差。预测的IMU状态量和优化的参数构成IMU误差项,然后将重投影误差与IMU误差项相结合进行优化。2017年,Tong等人(2017)提出了VINS-Mono,它被认为是一个优秀的单眼VI-SLAM系统,其中前端采用光流方法,后端采用基于滑动窗的非线性优化算法(Cheng等人,2021b)。此外,VINS-Mono的初始化方法值得注意,它采用了disjoint方法(以及VI-ORBSLAM Mur-Artal and Tards, 2017),首先初始化纯视觉子系统,然后估计IMU(加速度计和陀螺仪)的偏差、重力、刻度和速度。通过KITTI和EuRoC数据集的测试,VINS-Mono被证明具有与OKVIS相当的定位精度,在初始化和闭环阶段更加完整和稳健。2019年,VINS-Mono团队提出了双目版本,并整合了GPS信息,即VINS-Fusion(Tong等人,2019)。如图6(c)所示,由于加入了GPS测量,在室外环境中取得了良好的定位和测绘效果,也被认为在自动驾驶汽车领域有良好的应用。2020年,Campos等人(2020)提出了一个基于特征的紧密集成的视觉-惯性SLAM系统,ORB-SLAM3。它是最新的成果,通过最大后验(MAP)算法实现了更有效的初始化过程,并实现了多图功能,该功能依赖于一种新的地点识别方法,并提高了召回率。此外,该系统能够用单眼、双眼和RGB-D相机执行视觉、视觉惯性和多地图SLAM。户外场景的实验结果如图6(d)所示。ORB-SLAM3的管道与ORB-SLAM2相似,整个系统由三个线程组成。跟踪、局部映射和循环关闭(即循环和地图合并)线程。此外,ORB-SLAM3可以在视觉信息不佳的情况下长期存活,当它迷失时,它会启动一个新的地图,在重访映射区域时将与之前的地图无缝合并。表3总结了近年来视觉-惯性SLAM框架中的主要算法。目前,基于优化的VI-SLAM方法已经成为主流。除上述方法外,还有其他最先进的工作可以总结如下,但不限于BASALT、Kimera、ICE-BA、Maplab、StructVIO。RKSLAM。基于事件相机的VI-SLAM系统可以列举如下,但不限于此。基于深度学习的方法可以在Jared Shamwell等人(2019)中看到,它展示了一个网络,在没有IMU内在参数或IMU和相机之间的外在校准的情况下执行VIO。文献(Lee等人,2019)提供了一个网络来避免相机和IMU传感器之间的校准。

 后面是视觉-雷达-imu结合的slam,就没有列出来,感兴趣的可以看原论文。

“4. Discussions”

尽管视觉SLAM在自主驾驶车辆的定位和测绘方面取得了巨大的成功,但如前所述,现有的技术还不够成熟,无法完全解决眼前的问题。目前基于视觉的定位和测绘解决方案仍处于起步阶段。为了满足复杂城市环境中的自主驾驶要求,未来的研究人员面临着许多挑战。这些技术的实际应用应被视为一个系统的研究问题。此外,SLAM系统只是自动驾驶汽车复杂系统中的一个组成部分,自动驾驶系统不能完全依赖SLAM系统,还需要配备控制、目标检测、路径规划、决策等模块。在这一节中,我们对目前自动驾驶汽车应用中的视觉和基于视觉的SLAM的关键问题以及未来的发展趋势做了一些整体的观察和推论。在这一节中,我们对目前自主驾驶汽车应用中的视觉和基于视觉的SLAM的关键问题,以及未来的发展趋势做了一些讨论。

(a) 实时性能。自动驾驶车辆的应用要求视觉SLAM系统尽可能快地做出反应。在视觉算法的情况下,10赫兹的频率被认为是车辆在城市道路上维持自主驾驶的最小期望帧率(Bojarski等人,2016)。一方面,有一些视觉算法被提出来明确优化实时性能(Jaimez等人,2017;Holzmann等人,2016),另一方面,它们可以通过具有更高规格性能的硬件如图形处理单元(GPU)来进一步改进。此外,考虑到系统的准确性和鲁棒性,应该考虑到各种环境动态(如场景变化、移动的障碍物和光照不变量(An等,2017;Kim和Kim,2016;Liu等,2017))。目前,在特定的场景下,摄像头最多用于实现障碍物检测或规避以及自主驾驶的车道保持,如自主代客泊车(APV)(Lovegrove等人,2011)。

(b) 定位:城市道路场景的自动驾驶仍处于L2和L3的技术攻关阶段,其中一个关键问题是车辆的定位精度比较粗糙。我们观察到,高质量的自动驾驶离不开精确的位置,即使是在没有地图的环境中,车辆也要进行导航,精确到厘米级。这种精度仅靠传统的GPS接收机是无法实现的,其精度约为10米,通常需要安装昂贵的差分GPS(DGPS)接收机来实现,但它引入了冗余,而视觉SLAM算法本身可以被用于精确定位。正如本文所回顾的,研究了其他独立于GPS的方法来实现相对定位,如视觉-惯性融合方法(第3.2节),视觉-激光雷达融合方法(第3.3节),以及视觉-激光雷达-IMU融合方法(第3.4节)。就视觉-惯性融合方法而言,除非IMU是高度精确的,否则IMU引入的漂移误差将指数级地影响精度。就视觉-激光雷达融合方法而言,由于缺乏自身的惯性导航(DR)传感器(如编码和IMU传感器),自主驾驶车辆的定位稳健性得不到保证。在视觉-激光雷达-IMU融合方法方面,据我们所知,目前还没有成熟的基于视觉的融合SLAM算法成功应用于现实世界中的自主驾驶车辆,但最近几年有许多优秀的融合方法正在被研究。随着激光雷达传感器成本的降低,我们认为视觉-激光雷达-IMU融合方法是自主驾驶车辆高精度定位的最终方案。

(c) 测试:目前,现实世界的实施是不充分的,这可以归功于地方立法和缺乏用于自动驾驶测试的开发车辆。在这里,我们观察到几乎所有最近提出的视觉SLAM作品都是在公共数据集(如KITTI、EuROC、TUM等)上测试的。诚然,这些数据集对于算法的验证是很好的,但是这些算法最终在真实世界的环境中会有怎样的表现还有待验证。此外,在这些数据集上的测试也将测试环境限制在数据集捕获的地方,它可能不是这些算法在其他国家或城市的有效指标。另一个缺乏现实世界实施的原因似乎是由于视觉SLAM算法的计算要求较高,这表明在线实施将需要一台具有足够和专用的并行处理硬件的计算机。常见的移动计算机,如笔记本电脑,并不具备桌面GPU的并行计算能力。商业化的自动驾驶计算机,如Nvidia的DRIVE PX2(NVIDIA公司,2017a)非常昂贵,一般来说,预算有限的开发项目无法负担得起。令人鼓舞的是,最近出现了高性能和低成本的嵌入式设备,其视觉算法得到了改进,如Nvidia Jetson(英伟达公司,2017b)和快速VO(即前端或视觉SLAM的部分)方法的优化(Jaimez等人,2017;Jaimez和Gonzalez-Jimenez,2015;Steinbrcker等人,2011;Sun等人,2018;吴等人,2017)可以催化这些实现。

(d)未来的发展趋势。由于视觉SLAM的复杂模块(如前端、后端、闭环和建图等),增加了硬件平台的计算负担,高性能移动计算平台往往限制了上述视觉SLAM算法在自主驾驶中的应用。基于多代理的视觉SLAM技术似乎能够克服这一问题。目前,基于多代理的视觉SLAM通常用于空中无人机,如果将其安装在自主车辆上进行移动计算,移动计算机平台只负责处理前端数据,而后端优化和映射的过程则由远程服务器通过5G/6G通信网络传输数据来解决,我们相信这将大大加快视觉SLAM在未来自主驾驶车辆上的应用。

5. 结论

最近的研究对解决视觉SLAM的问题有很大的贡献。这项工作回顾了各种类型的视觉SLAM和/或基于视觉的SLAM方法,以及它们在自动驾驶中的应用。目前,视觉SLAM在自动驾驶汽车中的应用被认为是不成熟的,但这仍然引起了广泛的关注。由于自主驾驶的公共数据集容易获得,视觉SLAM算法总是容易被验证,新算法的研究也被鼓励。然而,尽管数据集的可用性促进了新的视觉SLAM算法的提出,但目前在城市道路环境中的真实世界视觉SLAM应用仍然存在不足。此外,数据集的评估结果往往偏离了当地真实环境中性能的完整指示,因此一个实用的视觉SLAM有望在自动驾驶汽车的应用中出现。通过回顾最先进的视觉SLAM算法,可以确认目前视觉SLAM系统的发展趋势是趋向于轻量级和多代理合作,鼓励应用于嵌入式设备等低功率硬件,而多传感器融合算法被认为是视觉SLAM在自动驾驶汽车中应用的核心。综上所述,自主驾驶领域仍然存在各种问题,尤其是视觉SLAM和自主驾驶汽车的结合需要探索。然而,公众对自动驾驶汽车的认可度越来越高,而高性能移动计算机的出现无疑会在不久的将来激发视觉SLAM的实际应用。

文章链接:

Elsevier Enhanced Readerhttps://reader.elsevier.com/reader/sd/pii/S0952197622001853?token=E53610F0BCFD8EF8FA5D6121585F3CB04CA0EEE3D62FF04769C12D5164AFB8C373D18BDD768347A3A6C5924ED1BF4292&originRegion=us-east-1&originCreation=20220625125045

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

A review of visual SLAM methods for autonomous driving vehicles 的相关文章

随机推荐

  • java assert什么意思

    assert 意为断言的意思 xff0c 这个关键字可以判断布尔值的结果是否和预期的一样 xff0c 如果一样就正常执行 xff0c 否则会抛出AssertionError assert 的使用 xff1a span class token
  • throw和throws的区别

    throws xff1a 用来声明一个方法可能产生的所有异常 xff0c 不做任何处理而是将异常往上传 xff0c 谁调用我我就抛给谁 用在方法声明后面 xff0c 跟的是异常类名 可以跟多个异常类名 xff0c 用逗号隔开 表示抛出异常
  • 1024有感

    2022 10 24 1024节日快乐 xff01 好好学习 xff0c 天天向上 x1f600
  • 互联网项目一般几轮测试

    第一轮测试 xff1a 要覆盖所有测试用例 所有功能都要跑一遍 第二轮测试 xff1a 重点功能的测试 还要把第一轮测试发现的问题 xff0c 根据开发修改完成的结果 xff0c 进行验证 最后一轮是回归测试 xff1a 验证所有bug是否
  • IDEA pom文件 ctrl alt l无法格式化

    File gt Manage IDE settings gt Restore Default settings 恢复IDEA默认设置后 xff0c 即可格式化pom文件
  • 科里奥利力简单清晰的推导

    看到一个比较好的科里奥利力推导方法 xff1a 如果你不太理解科里奥利力 xff0c 可以看一下我的这篇文章 xff1a 对科里奥利力的理解 本文参考 xff1a 1 黄永义 科里奥利力简单而清晰的导出 J 广西物理 2015 36 04
  • java实体类命名

    Entity xff1a 与数据库表结构一一对应 xff0c 通过Dao层向上传输数据源对象 Dto xff08 Data Transfer Object xff09 xff1a 数据传输对象 xff0c Service或Manager向外
  • 字节的高低位互换

    蝶式交换法 unsigned char Reverse byte unsigned char data data 61 data lt lt 4 data gt gt 4 data 61 data lt lt 2 amp 0xcc data
  • 没有Build文件夹的情况下(最新的vue-cli3没有)怎么关闭掉ESlink

    这里写目录标题 一般的注释掉Build中的方法最新的vue cli3没有build文件夹怎么办 一般的注释掉Build中的方法 在build文件夹 gt webpack base conf js中注释以下代码 和在IntelliJ IDEA
  • 使用zed摄像头跑ORB_SLAM2

    zed ros wrapper安装 首先对zed ros wrapper安装 xff1a 具体操作步骤及代码的参考链接 xff1a https github com stereolabs zed ros wrapper git mkdir
  • 【linux网络编程学习笔记】第二节:创建TCP通信(双向)(socket、bind、listen、accept、connect、recv、send、shutdown、server\client)

    Work won 39 t kill but worry will 劳动无害 xff0c 忧愁伤身 上一篇章中创建了TCP的客户端的服务器 xff0c 但是只能单向发送 xff0c 本章节主要讲解如何进行双向互发消息 xff0c 实现的过程
  • 航模电池及稳压降压模块—毕设简记

    航模电池及稳压降压模块简介 简述 准备给设计的控制系统选一块航模电池 xff0c 需要关注什么参数 xff1f 控制系统的传感器需要5V供电 直流减速电机需要12V供电 单片机需要7 12V供电 xff0c 这么多供电该怎么处理 xff1f
  • Laplance算子(二阶导数)

    理论 xff1a 在二阶导数的时候 xff0c 最大变化处的值为0 即边缘是零 xff0c 通过二阶导数计算 xff0c 依据此理论我们可以计算图像的二阶导数 xff0c 提取边缘 Laplance算子 二阶导数我不会 xff0c 别担心
  • yolo3_pytorch 训练voc数据集和训练自己的数据集并进行预测(github代码调试)

    训练voc数据集的步骤 xff1a xff1a 首先下载voc数据集 xff0c 将数据集放在从github中下载的项目中VOCdevkit目录中 xff08 直接将数据集拉入到项目中 xff0c 替代目标文件即可 xff09 源码下载 x
  • ros的通信机构

    ros的通信是在os层之上 xff0c 基于TCP IP协议实现 os层 xff08 操作系统层 xff09 对于开发者来讲 xff0c 是不需要关系的 中间层 xff1a TCPROS UDPROS 这是基于TCP IP协议进行重新封装的
  • 视频追踪(meanshift和camshift算法)

    import numpy as np import cv2 as cv opencv实现meanshift的api cv meanShift probImage window criteria 参数一 xff1a roi区域 xff0c 目
  • 国产的Arduino Mega 2560 R3改进版串口1丝印标注错误

    Mega 2560有四个串口 xff1a 分别是串口0 xff0c 串口1 xff0c 串口2 xff0c 串口3 而串口1的丝印标注反了 在板子中烧录如下代码 xff0c 则串口1的TX应该不断的有输出 xff0c RX没有 void s
  • Visual Studio实现光流法(opencv and Eigen)

    环境问题 xff1a 首先是在vs中安装opencv和eigen两个库 安装eigen库所推荐的链接 xff1a VS2019正确的安装Eigen库 xff0c 解决所有报错 xff08 全网最详细 xff01 xff01 xff09 Ma
  • Deformable DETR环境配置和应用

    准备工作 xff1a Deformable DETR代码路径如下 xff1a GitHub fundamentalvision Deformable DETR Deformable DETR Deformable Transformers
  • A review of visual SLAM methods for autonomous driving vehicles

    自主驾驶车辆的视觉SLAM方法回顾 原论文在文章末尾 摘要 xff1a 自主驾驶车辆在不同的驾驶环境中都需要精确的定位和测绘解决方案 在这种情况下 xff0c 同步定位和测绘 xff08 SLAM xff09 技术是一个很好的研究解决方案