摘要自动驾驶车辆在不同的驾驶环境中需要精确的定位和建图解决方案。在这种背景下,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原理视觉SLAM系统的经典结构可分为五个部分:相机传感器模块、前端模块、后端模块、回环模块和建图模块。如图1所示,相机传感器模块负责收集图像数据,前端模块负责跟踪两个相邻帧之间的图像特征,以实现初始相机运动估计和局部建图,后端模块负责前端的数值优化和进一步的运动估计,回环模块负责通过计算大规模环境中的图像相似度来消除累积误差,建图模块负责重建周围环境(Gao等人,2017)。 ![]() 相机传感器根据传感器类型的不同,常见的视觉传感器主要可分为单目、双目、RGB-D和事件摄像机。摄像机传感器如图2所示。 ![]() 市场上流行的视觉传感器制造商和产品如下,但不限于:
前端视觉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)。它们的描述如下:
回环回环的任务是允许系统基于传感器信息识别当前场景,并在返回原始位置时确定该区域已被访问,从而消除SLAM系统的累积误差(Newman和Ho,2005)。对于视觉SLAM,传统的回环检测方法主要使用单词包(BoW)模型(Galvez LoPez和Tardos,2012),实现步骤为:(i)通过对从图像中提取的局部特征的K-means聚类,构建包含K个单词的单词列表。(ii)根据每个单词的出现次数将图像表示为K维数值向量。(iii)判断场景的差异,并识别自动驾驶车辆是否已到达所识别的场景。 建图自动驾驶汽车的一个基本组成部分是建立环境地图并在地图上定位的能力。建图是视觉SLAM系统的两项任务之一(即定位和建图),它在自动驾驶的导航、避障和环境重建中发挥着重要作用。一般来说,地图的表示可以分为两类:度量地图和拓扑地图。度量地图描述了地图元素之间的相对位置关系,而拓扑地图强调了地图元素间的连接关系。对于经典的SLAM系统,度量地图可以进一步分为稀疏地图和密集地图,稀疏地图仅包含场景中的少量信息,这适合于定位,而密集地图包含更多信息,这有利于车辆根据地图执行导航任务。 SOTA研究视觉SLAM与前文描述的VO子系统类似,根据利用图像信息的方法,纯视觉SLAM系统可分为两类:基于特征的方法和直接方法。基于特征的方法是指通过提取和匹配特征点来估计相邻帧之间的相机运动和构建环境地图。这种方法的缺点是提取特征点和计算描述符需要很长时间。因此,一些研究人员建议放弃关键点和描述符的计算,然后产生直接方法(Zou等人,2020)。此外,根据传感器的类型,视觉SLAM可以分为单目、双目、RGB-D和基于事件相机的方法。根据地图的密度,可分为稀疏、密集和半密集SLAM,介绍如下:
![]()
![]() ![]() ![]() 视觉-惯性SLAMIMU传感器可以提供一个很好的解决方案,以解决当相机移动到具有挑战性的环境中(较少的纹理和/或照明变化)时跟踪失败的问题,另一方面,视觉传感器可以弥补IMU的累积漂移。这种视觉和IMU的结合被称为黄金搭档。由于相机和IMU的互补功能,在无人驾驶等领域具有良好的发展前景(Sun和Tian,2019)。VI-SLAM的主要方法是将IMU信息结合到视觉SLAM系统的前端,该系统也称为视觉惯性里程计(VIO)系统。通常,VI-SLAM系统可分为两类:基于滤波器的方法和基于优化的方法:
![]()
![]() 测试和评估为了直观地理解上述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特征,系统也可以快速重新启动工作。 ![]() ![]() ![]() ![]() ![]() ![]() 视觉-LIDAR SLAM视觉和激光雷达有各自的优点,例如视觉可以从环境中获得大量的纹理信息,并且具有很强的场景识别能力,而LADAR不依赖光,可靠性好,距离测量精度更高。因此,在自动驾驶领域,集成视觉和激光雷达的SLAM系统可以提供更智能、更可靠的环境感知和状态估计解决方案。它遵循具有三个主要步骤的经典SLAM架构:(i)数据处理步骤;(ii)估计;(iii)全局建图步骤。根据视觉和激光雷达在SLAM系统中的不同比例,视觉激光雷达SLAM方案可分为三类:视觉引导方法、激光雷达引导方法和视觉激光雷达相互校正方法。
Visual-LIDAR-IMU 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问题有很大贡献。这项工作回顾了各种类型的视觉SLAM和/或基于视觉的SLAM方法及其在自动驾驶中的应用。目前视觉SLAM在自动驾驶汽车中的应用被认为还不成熟,但这仍然引起了广泛的关注。由于自动驾驶公共数据集的易获取性,视觉SLAM算法总是易于验证,并鼓励对新算法的研究。然而,尽管数据集的可用性促进了新的视觉SLAM算法的提出,但目前城市道路环境中的真实世界视觉SLAM应用仍然存在不足。此外,数据集评估的结果往往与本地真实世界环境中的性能的完整指示不符,因此,自动驾驶车辆的应用有望出现实用的视觉SLAM。通过回顾最先进的视觉SLAM算法,可以确认当前视觉SLAM系统的趋势是轻量化和多智能体协作,鼓励将其应用于低功耗硬件,如嵌入式设备,并且多传感器融合算法被认为是自动驾驶车辆中视觉SLAM应用的核心。综上所述,自动驾驶领域仍存在各种问题,特别是视觉SLAM和自动驾驶车辆的结合需要探索。尽管如此,公众对自动驾驶汽车和即将推出的高性能移动计算机的日益认可无疑将在不久的将来激发视觉SLAM的实际应用。 参考[1] A review of visual SLAM methods for autonomous driving vehicles |
|