自动驾驶车辆在不同的驾驶环境中需要精确的定位和建图解决方案。在这种背景下,SLAM技术是一个很好的解决方案。LIDAR和相机传感器通常用于定位和感知。然而,经过十年或二十年的发展,激光雷达SLAM方法似乎没有太大变化。与基于激光雷达的方案相比,视觉SLAM具有低成本和易于安装的优点,具有较强的场景识别能力。事实上,人们正试图用相机代替激光雷达传感器,或者在自动驾驶领域中基于相机集成其他传感器。基于视觉SLAM的研究现状,本文对视觉SLAM技术进行了综述。特别是,论文首先说明了视觉SLAM的典型结构。其次全面回顾了视觉和基于视觉(即视觉-惯性、视觉-LIDAR、视觉-LIAR-IMU)SLAM的最新研究,并将论文之前工作的定位精度与公共数据集上的知名框架进行了比较。最后,讨论了用于自动驾驶车辆的视觉SLAM技术的关键问题和未来发展趋势。
随着机器人技术和人工智能(AI)技术的发展,自动驾驶车辆(汽车)已成为工业界和学术界的一个热门话题(Badue等人,2021)。为了安全导航,它需要为周围环境创建一个准确的表示,并估计其中的自车状态(即自车定位)。传统的定位方法基于GPS或实时动态(RTK)定位系统(Cadena等人,2016b)。然而,由于信号反射、时间误差和大气条件,GPS的测量误差限制在十几米以内,这对于车辆导航来说是不可接受的,尤其是当车辆在隧道和城市峡谷场景中行驶时(Cheng等人,2019)。RTK能够通过固定校准基站的内部校正信号来校正这些误差,但这种系统依赖于成本较高的附加基础设施(Infotip Service GmbH,2019)。SLAM方法被认为是自动驾驶车辆定位和导航的良好解决方案,它可以实时估计移动车辆的姿态,同时构建周围环境的地图(Durrantwhyte和Bailey,2006)。根据传感器类型的不同,SLAM方法主要分为两类:LIDAR SLAM和视觉SLAM。由于激光雷达SLAM比视觉SLAM启动得早,因此在自动驾驶仪的应用中相对成熟(Debeunne和Vivet,2020a)。与相机相比,激光雷达传感器对光照和夜间的变化不太敏感。此外,它还可以提供具有更大视野(FOV)的3D地图信息。然而难以负担的成本和大规模的长开发周期导致激光雷达传感器难以普及。相比之下,视觉SLAM具有信息丰富、易于安装的优点,并且使系统更便宜、更轻。目前视觉SLAM系统可以在微型个人计算机(PC)和嵌入式设备中运行,甚至可以在智能手机等移动设备中运行(Klein和Murray,2009)。
与室内或室外移动机器人不同,自动驾驶车辆具有更复杂的参数,尤其是当车辆在城市环境中自动驾驶时。例如,环境的面积更大,有动态障碍,因此视觉SLAM方法的性能不够准确和鲁棒(Cadena等人,2016a)。诸如误差累积和照明变化以及快速运动等问题导致有问题的估计。已经考虑了各种方法来解决与自动驾驶车辆相关的这些问题。例如用于视觉里程(VO)的基于特征点/直接/半直接/点线融合的算法(Singandhupe和La,2019),以及用于姿态估计的扩展卡尔曼滤波器(EKF)/基于图的优化算法(Takleh等人,2018)。同时,基于视觉的多传感器融合方法也为提高自主系统的精度而引起了极大的关注。
在基于视觉的SLAM系统中,除了建图模块之外,传感器数据的收集(如相机或惯性测量单元(IMU)、VO和视觉惯性里程计(VIO)系统)在前端完成,而优化、闭环在后端完成。重定位始终被认为是提高视觉SLAM系统准确性的附加模块(Taketomi等人,2017)。本文综述了视觉SLAM方法。这主要是从视觉SLAM系统的定位精度方面考虑的,并且已经尽可能详细地研究了可能应用于自动驾驶场景的方法,包括纯视觉SLAM方法、视觉-惯性SLAM方法和视觉-LIDAR-惯性SLAM方法,并且将论文先前工作的定位精度与公共数据集上的已知方法进行了比较。这篇综述对视觉SLAM技术进行了详细的综述,可以为自动驾驶汽车领域的新研究人员提供友好的指南。此外,它可以被视为一本词典,供有经验的研究人员在未来的工作中寻找可能的方向。
视觉SLAM系统的经典结构可分为五个部分:相机传感器模块、前端模块、后端模块、回环模块和建图模块。如图1所示,相机传感器模块负责收集图像数据,前端模块负责跟踪两个相邻帧之间的图像特征,以实现初始相机运动估计和局部建图,后端模块负责前端的数值优化和进一步的运动估计,回环模块负责通过计算大规模环境中的图像相似度来消除累积误差,建图模块负责重建周围环境(Gao等人,2017)。
根据传感器类型的不同,常见的视觉传感器主要可分为单目、双目、RGB-D和事件摄像机。摄像机传感器如图2所示。
市场上流行的视觉传感器制造商和产品如下,但不限于:
MYNTAI:S1030系列(带IMU的双目摄像头)、D1000系列(深度摄像头)、D1200系列(适用于智能手机);
Stereolabs ZED:Stereolab ZED相机(深度范围:1.5至20米);
Intel:200系列、300系列、Module D400系列、D415(主动红外双目、滚动快门)、D435(主动红外双目、全局快门)、D4 35i(集成IMU);
微软:Azure Kinect(适用于带IMU的麦克风)、Kinectc-v1(结构光)、Kinect-v2(TOF);
Occipital Structure:Structure Camera (应用于ipad);
三星:第2代和第3代动态摄像头和基于事件的视觉解决方案(Son等人,2017b)。
视觉SLAM的前端被称为视觉里程计(VO)。它负责基于相邻帧的信息粗略地估计相机运动和特征方向。为了获得具有快速响应速度的精确姿态,需要有效的VO。目前,前端主要可分为两类:基于特征的方法和直接方法(包括半直接方法)(Zou等人,2020)。本节主要回顾VO的基于特征的方法。关于半直接和直接方法在后文。
基于特征点的VO系统运行更稳定,对光和动态目标相对不敏感。具有高尺度和良好旋转不变性的特征提取方法可以大大提高VO系统的可靠性和稳定性(Chen等人,2019)。1999年,Lowe(2004)提出了尺度不变特征变换(SIFT)算法,该算法在2004年得到了改进和发展。整个算法分为三个步骤来完成图像特征点的提取和描述。(i) 通过高斯差分金字塔方法构建尺度空间,并通过高斯微分函数识别感兴趣的点。(ii)确定每个候选的位置和比例,然后找出关键点。(iii)将指向特征指定给关键点以获得描述子。
SIFT消耗大量计算。SURF(Herbert等人,2007)是SIFT的改进。它解决了SIFT运算量大、实时性差的缺点,保持了SIFT算子的优良性能。尽管如此,SURF算法在应用于实时SLAM系统时具有更大的局限性。在保证性能的基础上,提出了一种更加注重计算速度的特征提取算法。2011年,Viswanathan(2011)提出了一种基于模板和机器学习方法的局部角点检测方法,即FAST角点检测法。FAST算法将要检测的像素作为圆心,当具有固定半径的圆上的其他像素与圆心的像素之间的灰度差足够大时,该点被认为是角点。然而,FAST角点不具有方向和尺度信息,它们不具有旋转和尺度不变性。2012年,Rublee等人(2012)提出了基于FAST角点和BRIEF描述符的定向FAST和旋转BRIEF(ORB)算法。该算法首先在图像上构建图像金字塔,然后检测FAST关键点并计算关键点的特征向量。ORB的描述符采用了二进制字符串特征BRIEF描述符的快速计算速度(Michael等人,2010),因此ORB计算速度比具有实时特征检测的fast算法更快。此外ORB受噪声影响较小,具有良好的旋转不变性和尺度不变性,可应用于实时SLAM系统。2016年,Chien等人(2016)比较并评估了用于VO应用的SIFT、SURF和ORB特征提取算法。通过对KITTI数据集的大量测试(Geiger等人,2013),可以得出结论,SIFT在提取特征方面最准确,而ORB的计算量较小。因此,作为计算能力有限的嵌入式计算机,ORB方法被认为更适合自动驾驶车辆的应用。
VO的其他图像特征描述子如下所列,但不限于DAISY(Tola等人,2010)、ASIFT(Morel和Yu,2009)、MROGH(Fan等人,2011a)、HARRIS(Wang等人,2008)、LDAHash(Fan等,2011b)、D-BRIEF(Trzcinski和Lepetit,2012)、Vlfeat(Vedali和Fulkerson,2010),FREAK(Alahi等人,2012),Shape Context(Belongie等人,2002)、PCA-SIFT(Ke和Sukthantar,2004)。
后端接收前端估计的摄像机位姿,并优化初始位姿,以获得全局一致的运动轨迹和环境图(Sunderhauf和Protzel,2012)。与前端的多样化算法相比,当前后端算法的类型主要可分为两类:基于滤波器的方法(如扩展卡尔曼滤波器(EKF)Bailey等人,2006)和基于优化的方法(例如因子图Wrobel,2001)。它们的描述如下:
基于滤波器的方法,该方法主要使用贝叶斯原理基于先前状态和当前观测数据来估计当前状态(Liu,2019)。典型的基于滤波器的方法包括扩展卡尔曼滤波器(EKF)(Bailey等人,2006)、无迹卡尔曼滤波器(UKF)(Wan和Merwe,2000)和粒子滤波器(PF)(Arnaud等人,2000)。以典型的基于EKF的SLAM方法为例,它在小规模环境中的应用相对成功。然而,由于协方差矩阵是存储的,其存储容量随着状态量的平方而增加,因此在大型未知场景中的应用总是受到限制。
基于优化的方法,基于非线性优化(图优化)方法的核心思想是将后端优化算法转换为图的形式,以不同时刻的主题位姿和环境特征为顶点,顶点之间的约束关系由边表示(Liang等人,2013)。构建图形后,使用基于优化的算法来求解目标的位姿,以便顶点上要优化的状态更好地满足相应边上的约束。在执行优化算法之后,对应的图是目标运动轨迹和环境图。目前,大多数主流的视觉SLAM系统使用非线性优化方法。
回环的任务是允许系统基于传感器信息识别当前场景,并在返回原始位置时确定该区域已被访问,从而消除SLAM系统的累积误差(Newman和Ho,2005)。对于视觉SLAM,传统的回环检测方法主要使用单词包(BoW)模型(Galvez LoPez和Tardos,2012),实现步骤为:(i)通过对从图像中提取的局部特征的K-means聚类,构建包含K个单词的单词列表。(ii)根据每个单词的出现次数将图像表示为K维数值向量。(iii)判断场景的差异,并识别自动驾驶车辆是否已到达所识别的场景。
自动驾驶汽车的一个基本组成部分是建立环境地图并在地图上定位的能力。建图是视觉SLAM系统的两项任务之一(即定位和建图),它在自动驾驶的导航、避障和环境重建中发挥着重要作用。一般来说,地图的表示可以分为两类:度量地图和拓扑地图。度量地图描述了地图元素之间的相对位置关系,而拓扑地图强调了地图元素间的连接关系。对于经典的SLAM系统,度量地图可以进一步分为稀疏地图和密集地图,稀疏地图仅包含场景中的少量信息,这适合于定位,而密集地图包含更多信息,这有利于车辆根据地图执行导航任务。
与前文描述的VO子系统类似,根据利用图像信息的方法,纯视觉SLAM系统可分为两类:基于特征的方法和直接方法。基于特征的方法是指通过提取和匹配特征点来估计相邻帧之间的相机运动和构建环境地图。这种方法的缺点是提取特征点和计算描述符需要很长时间。因此,一些研究人员建议放弃关键点和描述符的计算,然后产生直接方法(Zou等人,2020)。此外,根据传感器的类型,视觉SLAM可以分为单目、双目、RGB-D和基于事件相机的方法。根据地图的密度,可分为稀疏、密集和半密集SLAM,介绍如下:
基于特征的方法:2007年,Davison等人(2007)提出了第一个实时单目视觉SLAM系统,Mono-SLAM。实时特征patch方向估计的结果如图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和Tardos,2017)。该版本支持回环检测和重定位,具有实时地图重用功能,此外,改进的框架还打开了双目相机和RGB-D相机之间的接口。图3(d)的左列显示了ORB-SLAM2的双目轨迹估计和特征提取。图3(d)的右栏显示了RGB-D相机在室内场景中的关键帧和密集点云建图效果。图片中连续的绿色小方块构成了关键帧的轨迹,RGB-D相机构建的密集3D场景地图围绕着关键帧。
基于直接的方法:2011年,Newcombe等人(2011b)提出了基于直接方法DTAM的单目SLAM框架。与基于特征的方法不同,DTAM采用基于逆深度的方法来估计特征的深度。通过直接图像匹配计算相机的位姿,并通过基于优化的方法构建密集地图(图4(a))。2014年,Jakob等人(2014)提出了LSD-SLAM(图4(b)),这是直接方法在单眼视觉SLAM框架中的成功应用。该方法将面向像素的方法应用于半密集单目SLAM系统。与基于特征的方法相比,LSD-SLAM的灵敏度较低,但当相机内参和照明变化时,系统很脆弱。2017年,Forster等人(2017)提出了SVO(半直接视觉里程计)。它使用稀疏直接法(也称为半直接法)来跟踪关键点(图4(c)的底部),并基于关键点周围的信息来估计位姿。图4(c)顶部显示了室内环境中稀疏地图的轨迹。由于半直接方法跟踪稀疏特征,既不计算描述符,也不处理密集信息,因此SVO具有较低的时间复杂度和较强的实时性。2016年,Engel等人(2018)提出了DSO,该方法还使用半直接方法以确保在更快的操作速度下获得更高的精度。然而,它们只是视觉里程计。由于缺少后端优化模块和回环模块,系统的跟踪误差会随着时间累积。图4(d)显示了DSO(单目视觉里程计)的3D重建和跟踪效果。直接法具有计算速度快、对弱特征条件不敏感等优点。然而,它基于灰度级不变的强烈假设,因此它对照明的变化非常敏感。相反特征点方法具有良好的不变性。2020年,Zubizarreta等人(2020)提出了一种直接稀疏映射方法DSM,这是一种基于光度学束调整(PBA)算法的全单目视觉SLAM系统。表1总结了最先进的视觉SLAM框架的主要特点及其优缺点。除上述典型框架外,还研究了其他相关工作,如(i)稀疏视觉SLAM;(ii)半密集视觉SLAM;(iii)密集视觉SLAM。正如你所看到的,视觉SLAM领域有很多成就,论文只是对流行的方法进行了回顾。即使视觉SLAM提供了良好的定位和建图结果,所有这些解决方案都有优点和缺点。在这项工作中,总结了“基于稀疏的方法”、“基于密集的方法”和“基于特征的方法”的优缺点,“基于直接的方法”,“单目方法”,”双目方法“,”RGB-D方法“和”事件相机方法“可在表2中找到。
IMU传感器可以提供一个很好的解决方案,以解决当相机移动到具有挑战性的环境中(较少的纹理和/或照明变化)时跟踪失败的问题,另一方面,视觉传感器可以弥补IMU的累积漂移。这种视觉和IMU的结合被称为黄金搭档。由于相机和IMU的互补功能,在无人驾驶等领域具有良好的发展前景(Sun和Tian,2019)。VI-SLAM的主要方法是将IMU信息结合到视觉SLAM系统的前端,该系统也称为视觉惯性里程计(VIO)系统。通常,VI-SLAM系统可分为两类:基于滤波器的方法和基于优化的方法:
基于特征的方法: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(鲁棒视觉惯性里程表)(Bloesch等人,2015)(图5(c))和MSCKF-VIO(Ke等人)(图6(d))也是近年来基于过滤方法的优秀作品;
基于优化的方法:就基于优化的VI-SLAM系统而言,最经典的框架是OKVIS。2015年,Leutinegge等人提出了OKVIS,它使用IMU测量值来预测当前状态、空间点和二维图像特征,以构成重投影误差。预测的IMU状态量和优化的参数构成IMU误差项,然后再投影误差与IMU误差相结合以进行优化。2017年,Tong等人(2017)提出了VINS-Mono,它被视为一种优秀的单目VI-SLAM系统,前端采用光流方法,后端采用基于滑动窗口的非线性优化算法(Cheng等人,2021b)。此外,VINS-Mono的初始化方法值得注意,它采用了不相交方法(以及VI-ORBSLAM Mur Artal和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。
为了直观地理解上述SLAM方法的定位效果,在配备Intel Core i7-9700 CPU、16 GB RAM和Ubuntu18.04+Melodic操作系统的同一机载计算机上测试了一些典型算法,并将其与我们之前的一项工作(Cheng等人,2021a)进行了比较。如Cheng等人(2021a)所述,基于传统的高斯-牛顿(G-N)线性迭代策略,提出了一种改进的信赖域迭代策略,然后将该策略集成到VI-ORBSLAM框架中(Mur-Artal和Tards,2017),以实现更快的初始化和更高的定位精度。信任区域迭代策略的模型如图7所示。它结合了最速下降算法和G-N算法,用信任模型逼近目标函数。当解被认为是当前点附近模型函数的最小值时,则在每个迭代步骤中求解最小化子问题。
需要估计的初始参数包括比例因子、速度、重力以及加速度计和陀螺仪的偏差。为了使所有变量都可观察到,纯ORB-SLAM系统需要执行几秒钟。该方法的具体步骤如下:首先,执行视觉初始化过程,包括ORB提取、地图初始化和初始位姿估计。其次,采用IMU预集成技术对IMU相机进行频率对准,生成关键帧。第三,提出了一种改进的基于信赖域的迭代策略,用于陀螺偏差估计,并对重力方向进行了细化。最后,在先前估计的基础上估计加速度计偏差和视觉尺度。论文之前工作的管道如图8所示。
EuRoC数据集V2_01_easy序列上算法的2D轨迹如图9所示。可以看到,与GT相比,每个算法的测试结果都有不同程度的偏差,论文算法的轨迹(红线)更接近GT(黑虚线),而VI-ORBSLAM(蓝线)的漂移最大。X、Y、Z方向的位置变化曲线如图10所示。欧拉角(即横摇、俯仰、偏航)的比较曲线如图11所示。表4显示了在整个11个序列中测试的同一CPU平台(i7-9700 CPU)中的定量均方根误差(RMSE)结果和帧速率,因为所有算法都采用多线程,所以表4的第三列报告了处理图像流时的帧速率。图12和图13分别提供了平移误差的RMSE和累积分布函数(CDF),图14和图15分别提供了定向误差的RMSE和累积分布功能(CDF)。可以知道,论文之前的工作,一个快速单目视觉惯性系统,具有改进的迭代初始化策略方法,在几乎所有序列中实现了最佳的定位精度。实际上,由于出色的初始化过程,论文的方法在六个序列和七个序列上提供了最佳的定向性能,即使系统无法提取ORB特征,系统也可以快速重新启动工作。
视觉和激光雷达有各自的优点,例如视觉可以从环境中获得大量的纹理信息,并且具有很强的场景识别能力,而LADAR不依赖光,可靠性好,距离测量精度更高。因此,在自动驾驶领域,集成视觉和激光雷达的SLAM系统可以提供更智能、更可靠的环境感知和状态估计解决方案。它遵循具有三个主要步骤的经典SLAM架构:(i)数据处理步骤;(ii)估计;(iii)全局建图步骤。根据视觉和激光雷达在SLAM系统中的不同比例,视觉激光雷达SLAM方案可分为三类:视觉引导方法、激光雷达引导方法和视觉激光雷达相互校正方法。
视觉引导方法:视觉SLAM,特别是对于单目视觉SLAM而言,总是无法有效地提取特征点的深度信息,而LIDAR是这方面的专家。为了弥补视觉SLAM的缺点,研究人员试图将LIDAR数据融合到视觉SLAM系统中。视觉引导SLAM的代表作是LIMO(Graeter等人,2018)。该方法将激光雷达获得的空间点云投影到图像平面上,以估计视觉特征的尺度,然后将激光雷达恢复的视觉特征尺度和从相机位姿估计得到的特征尺度构造误差项作为后端优化的约束。Shin等人(2018b)提出了一种使用LIDAR获取视觉SLAM的稀疏深度点云的方法,由于相机的分辨率远高于LIDAR,该方法存在大量像素没有深度信息的问题。为了解决这个问题,De Silva等人(2018)在计算两个传感器之间的几何变换后,采用了高斯回归模型来插值缺失的深度值。该方法使用激光雷达直接初始化图像中检测到的特征,其效果与使用RGB-D传感器的方法相同。还有一些研究将激光雷达集成到视觉SLAM中,以提高解决方案的应用价值,例如降低成本、提高性能和增强系统鲁棒性。一些研究在建图阶段使用视觉SLAM的姿态估计进行点云标注。Zhang等人(2018b)提出了一种基于一维激光雷达测距仪的单目视觉SLAM方法,该方法在低成本硬件上实现了有效的漂移校正,并用于解决单目SLAM中经常出现的尺度漂移问题。Scherer等人(2012)采用无人机建图河流沿线的水道和植被,使用视觉里程测量和IMU相结合的融合框架来估计状态,并使用激光雷达检测障碍物并建图河流边界,但这种方法产生了包含遮挡点的点云,这在一定程度上降低了状态估计的准确性。Huang等人(2019)解决了这一问题,并提出了一种包括遮挡点检测和共面点检测机制的直接SLAM方法。
LIDAR引导方法:在LIDAR引导的方法方面,它采用视觉信息来提高回环检测的准确性,或者在姿态估计阶段构建LIDAR特征变换误差和视觉重投影误差的联合优化函数来提高位姿估计的鲁棒性,例如Bai等(Bai等人,2016)使用卷积神经网络提取特征以实现回环检测,并通过设置匹配范围有效避免环路闭合场景的失配,并通过特征压缩确保SLAM系统的实时性能。Liang等人(2016)使用扫描匹配和基于ORB特征的回环检测技术来改善基于LIDAR的SLAM的弱性能。Zhu等人(2018)提出了一种使用视觉回环检测的3D激光SLAM方法,该方法通过使用视觉词汇袋的关键帧技术来实现回路检测。此外,迭代最近点(ICP)方法(Arun等人,1987)也可以通过激光雷达和视觉融合进行优化。Pande等人(2011)使用视觉信息来估计刚体变换,然后提出了一个广义ICP框架。
视觉-激光雷达相互校正方法:上述研究方法大多使用单一SLAM方法,并使用另一个传感器作为辅助设备。也有一些研究试图将两种SLAM方法结合起来,以相互纠正。VLOAM(Zhang和Singh,2015)是视觉激光雷达相互校正的经典实时方法。该方法使用激光雷达扫描圆内的视觉里程计估计的相机位姿来校正激光点云。点云运动失真,使用在相邻扫描校正之后从LIDAR点云估计的相对位姿来校正视觉估计姿态,并将校正后的点云映射到局部地图以进行后续位姿优化。Seo和Chou(2019)提出了一种并行SLAM方法,该方法同时使用激光雷达SLAM和视觉SLAM,其特征在于在后端使用两种模式的测量残差来优化后端。Jiang等人(2019)使用LIDAR约束和特征点约束来定义图优化的成本函数,并构建了2.5D地图以加快回环检测过程。目前,基于视觉LIDAR融合的SLAM方法的研究成果和实际应用比视觉惯性融合少,需要进一步探索和研究。
目前,多传感器融合方法(如视觉-LIDAR-IMU融合SLAM)被认为适用于L3级别的自动驾驶,并引起了许多学者的关注。基于激光雷达的SLAM系统可以获得广泛的环境细节,但在缺乏结构信息的场景(尤其是自动驾驶场景)中很容易失败。例如,长长的走廊或开阔的广场。基于视觉的方法在具有丰富纹理信息的场景中表现良好,并且很容易重新识别场景(Shin等人,2020)。但它对照明、快速移动和初始化过程的变化非常敏感。因此,激光雷达和视觉传感器经常与IMU融合,以提高系统的准确性和鲁棒性。IMU可以消除点云的运动失真,并在缺乏特征的环境中持续一段时间,同时可以帮助视觉系统恢复尺度信息。目前,关于视觉-LIDAR-IMU融合SLAM的研究成果很少(Debeunne和Vivet,2020b)。一些学者尝试使用视觉-IMU融合系统(即视觉-惯性系统,VIS)和LIDAR-IMU融合系统(如LIDAR-惯性系统,LIS),因为这两个单独的模块进一步融合,以形成性能更好的视觉-LIDAR-IMU融合系统(LIDAR-视觉-惯性系统,LVIS)(Chen等人,2018)。本文还介绍了激光-IMU融合SLAM方法的研究情况。
基于LIDAR-IMU融合的方案分为两类:松耦合和紧耦合方案。典型的松耦合方案是LOAM,(图16(a))和LeGO-LOMA(Shan和Englot,2018),其中IMU测量信息未用于优化步骤。与松耦合方案相比,紧耦合方案处于开发阶段,这通常大大提高了系统的准确性和鲁棒性。在当前公开的紧密耦合系统中,LIO-Mapping(Ye等人,2019)使用VINS-Mono中的优化过程来最小化IMU残差和LIDAR测量误差。由于LIO建图旨在优化所有测量值,因此系统的实时效果较差。Zou等人提出了LIC融合,如图16(b)所示。它融合了点云中提取的LiDAR特征和稀疏视觉特征,蓝色和红色的LiDARR点分别是平面和边缘特征,估计的轨迹用绿色标记。为了节省计算资源,LIO-SAM(图16(c))引入了滑动窗口优化算法,使用因子图方法联合优化IMU和LIDAR的测量约束。LINS(图16(e)),专门为地面车辆设计,使用基于误差状态的卡尔曼滤波器迭代修正待估计的状态量。Zhang和Singh(2018)提出了一种紧密耦合的LVIO(激光雷达视觉惯性里程表)系统,该系统使用从粗到精的状态估计方法,从IMU预测开始进行粗略估计,然后由VIO和LIO进一步细化。目前,LVIO算法是KITTI数据集上测试精度最高的算法。Zoo等人(2019)基于MSCKF框架实现了时空多传感器的在线校准。不幸的是,Zhang和Singh(2018)和Zoo等人(2019)实施的代码目前不是开源的。Shan等人(2021)于2021发布了最新的可视化LIDAR-IMU紧耦合方案:LVI-SAM(图16(d))。为了提高系统的实时性能,它使用了平滑和建图算法。作者将视觉IMU和激光雷达IMU视为两个独立的子系统。当检测到足够多的特征点时,这两个子系统将链接在一起。当其中一个子系统检测不到时,这两个子系统可以独立分离,因为不会相互影响。表5总结了近年来视觉-惯性SLAM框架中的主要算法。
尽管如前所述,视觉SLAM在自动驾驶车辆的定位和地图绘制方面取得了巨大成功,但现有技术还不够成熟,无法完全解决当前的问题。当前基于视觉的定位和建图解决方案仍处于起步阶段。为了满足复杂城市环境中的自动驾驶要求,未来的研究人员面临许多挑战。这些技术的实际应用应被视为一个系统的研究问题。此外,SLAM系统只是自动驾驶车辆复杂系统的组成部分,自动驾驶系统不能完全依赖SLAM系统,还需要配备控制、目标检测、路径规划和决策等模块。本节讨论了自动驾驶车辆应用的视觉和基于视觉的SLAM的当前关键问题以及未来发展趋势的总体观察和推断。
实时性能:自动驾驶车辆的应用要求视觉SLAM系统尽可能快速地响应。在视觉算法的情况下,10 Hz的频率被认为是车辆在城市道路上维持自动驾驶所需的最小帧速率。一方面,已经提出了一些视觉算法来显式优化实时性能,另一方面,可以通过具有更高规格性能的硬件(如GPU)来进一步改进。此外,考虑到系统的准确性和鲁棒性,应考虑各种环境动态(例如场景变化、移动障碍物和照明不变量。目前,在特定场景下,如自动代客泊车(APV),摄像头最常用于实现自动驾驶的障碍物检测或避让和车道保持;
定位:城市道路场景的自动驾驶仍处于L2和L3之间的技术攻关阶段,其中一个关键问题是车辆的位置精度很粗糙。论文观察到,高质量的自动驾驶离不开精确的位置,即使在未建图的环境中,车辆也能在厘米级的位置上导航。仅依靠精度约为10米的传统GPS接收机无法实现这种精度,通常安装昂贵的差分GPS(DGPS)接收机来实现这一点,但它引入了冗余,而视觉SLAM算法本身可用于精确定位。如本文所述,研究了实现相对定位的其他独立于GPS的方法,如视觉-惯性融合方法、视觉-LIDAR融合方法和视觉-LIDAR-IMU融合方法,由IMU引入的漂移误差将指数地影响精度。在视觉LIDAR融合方法方面,由于缺乏自身的航位推算(DR)传感器(如编码和IMU传感器),自动驾驶车辆的定位鲁棒性无法保证。就视觉LIDAR-IMU融合方法而言,据论文所知,目前还没有成熟的基于视觉的融合SLAM算法成功应用于真实世界的自动驾驶车辆,但近年来正在研究许多优秀的融合方法。随着激光雷达传感器成本的降低,我们认为视觉激光雷达IMU融合方法是自动驾驶车辆高精度定位的最终方案;
测试:目前现实世界中的实施还不充分,这可以归因于当地立法和缺乏用于自动驾驶测试的开发车辆。在这里,论文观察到,几乎所有最近呈现的视觉SLAM作品都在公共数据集(例如KITTI、EuROC、TUM等)上进行了测试。诚然,它们是用于算法验证的绝佳数据集,但这些算法最终在真实世界环境中的表现仍有待验证。此外,对这些数据集的测试还将测试环境限制在捕获数据集的位置,这可能不是其他国家或城市的算法的有效指标。缺乏真实世界实现的另一个原因似乎是由于视觉SLAM算法的较高计算要求,这表明在线实现将需要具有足够和专用并行处理硬件的计算机。通常的移动计算机(如笔记本电脑)不具备桌面GPU的并行计算能力。Nvidia的DRIVE PX2(Nvidia Corporation,2017a)等商用自动驾驶计算机价格昂贵,通常无法在预算内进行开发。令人鼓舞的是,最近出现了具有改进的视觉算法的高性能和低成本嵌入式设备,例如,Nvidia Jetson和快速VO(即前端或部分视觉SLAM)方法的优化可以促进这些实现;
未来发展趋势:由于视觉SLAM的复杂模块(例如前端、后端、回环和建图等)增加了硬件平台的计算负担,高性能移动计算平台通常限制了上述视觉SLAM算法在自动驾驶中的应用。基于多代理的视觉SLAM技术似乎能够克服这个问题。目前,基于多智能体的可视化SLAM通常用于无人机,如果它安装在自动驾驶汽车上进行移动计算,移动计算机平台只负责处理前端数据,而后端优化和建图的过程则由远程服务器通过5G/6G通信网络来处理,我们相信,这将大大加快视觉SLAM在未来自动驾驶车辆中的应用;
最近研究的可用性对解决视觉SLAM问题有很大贡献。这项工作回顾了各种类型的视觉SLAM和/或基于视觉的SLAM方法及其在自动驾驶中的应用。目前视觉SLAM在自动驾驶汽车中的应用被认为还不成熟,但这仍然引起了广泛的关注。由于自动驾驶公共数据集的易获取性,视觉SLAM算法总是易于验证,并鼓励对新算法的研究。然而,尽管数据集的可用性促进了新的视觉SLAM算法的提出,但目前城市道路环境中的真实世界视觉SLAM应用仍然存在不足。此外,数据集评估的结果往往与本地真实世界环境中的性能的完整指示不符,因此,自动驾驶车辆的应用有望出现实用的视觉SLAM。通过回顾最先进的视觉SLAM算法,可以确认当前视觉SLAM系统的趋势是轻量化和多智能体协作,鼓励将其应用于低功耗硬件,如嵌入式设备,并且多传感器融合算法被认为是自动驾驶车辆中视觉SLAM应用的核心。综上所述,自动驾驶领域仍存在各种问题,特别是视觉SLAM和自动驾驶车辆的结合需要探索。尽管如此,公众对自动驾驶汽车和即将推出的高性能移动计算机的日益认可无疑将在不久的将来激发视觉SLAM的实际应用。
[1] A review of visual SLAM methods for autonomous driving vehicles