A Review of Visual-Inertial Simultaneous Localization and Mapping from Filtering-Based and Optimization-Based Perspectives
摘要:视觉惯性同时定位与建图(VI-SLAM)是机器人学中的热门研究课题。 由于其在鲁棒性方面的优势,VI-SLAM在定位和建图领域具有广泛的应用,包括移动机器人,自动驾驶汽车,无人驾驶飞行器和自主水下航行器。本研究提供了有关VI-SLAM的全面调查。 在简短介绍之后,本研究首次从基于过滤和基于优化的角度审视VI-SLAM技术。它总结了过去10年基于后端方法,相机类型和传感器融合类型的最新研究。 还引入了关键VI-SLAM技术,例如特征提取和跟踪,核心理论和循环闭包。还调查了代表性的VI-SLAM方法和着名的VI-SLAM数据集的性能。 最后,本研究通过实验有助于比较基于过滤和基于优化的方法。VI-SLAM方法的比较研究有助于理解其操作原理的差异。 基于优化的方法实现了出色的定位精度和较低的内存利用率,而基于过滤的方法在计算资源方面具有优势。此外,本研究还提出了VI-SLAM的未来发展趋势和研究方向。 它提供了对VI-SLAM技术的详细调查,可以作为SLAM领域新手的简要指南,也是经验丰富的研究人员寻找未来工作的可能方向。
1. Introduction
同时定位和地图创建(SLAM)技术最早由Smith [1,2],这是在机器人与传感器定位本身施加建设未知环境基于传感器数据周围的实时地图的目标提出。多年来,使用不同的传感器出现了新的方法,如声纳[3],激光雷达[4]和相机[5]。这些方法创建了新的数据表示,从而创建了新的地图。 Durrant-Whyte和Bailey [6,7]系统地回顾了SLAM技术。由于CPU和GPU技术的最新进展,视觉SLAM方法的兴趣日益增加,因为与其他传感器相比,低成本相机提供了丰富的视觉信息。有具有改进的SLAM技术的发展许多极好的视觉SLAM方法,如MonoSLAM [5],PTAM [8],RatSLAM [9],DTAM [10],KinectFusion [11],并且ORB的SLAM [12] 。 SLAM技术在过去30年中经历了三次重大迭代[13]。如今,SLAM技术蓬勃发展并且健壮;机器人技术迫切需要实时,高精度的SLAM技术。
由于若干原因,将摄像机和IMU数据融合以用于定位和环境感知的视觉惯性同时定位和映射(VI-SLAM)已变得越来越流行。 首先,该技术用于机器人技术,特别是涉及微型飞行器(MAV)自主导航的广泛研究和应用。 其次,增强现实(AR)和虚拟现实(VR)正在迅速增长。 第三,无人技术和人工智能已经大大扩展。
在过去的几十年里,对SLAM进行了大量研究,包括概述和教程。 经典概述是[6,7]; 然而,它们并没有反映出最新的SLAM技术。 大多数概述[19-23]也只关注视觉SLAM或视觉里程计,而不涉及VI-SLAM技术。 因此,本研究从基于过滤和基于优化的角度提供了VI-SLAM技术的概述。 提出了特征提取和跟踪,核心理论和循环闭包,这些是VI-SLAM方法的关键技术。 这项工作还总结了过去10年的研究和著名的VI-SLAM数据集,并通过实验比较了基于过滤和基于优化的方法。 最后,介绍了潜在的发展趋势和即将出台的研究方向。
2. Filtering-Based Methods
根据传感器融合类型,VI-SLAM方法还可以进一步分类为松散或紧密耦合。 表1列出了过去10年中最先进的VI-SLAM研究。本研究主要根据其后端优化类型将VI-SLAM方法划分为基于过滤和基于优化的方法。松耦合方法[24,25]通常仅融合IMU来估计方向和可能的位置变化,而不是完整的姿势。相反,紧耦合方法[26,27]将相机和IMU的状态融合在一起成为运动和观察方程,然后执行状态估计。 由于计算机技术的进步,紧密耦合的方法目前构成了主要的研究重点。
2.1. Feature Extraction and Tracking
2.1.1. Feature Extraction
跟踪是VI-SLAM系统中的一个重要组成部分,它取决于跟踪摄像机像素。 VI-SLAM跟踪策略如表2所示。
特征检测旨在识别特征并确定它们在图像中的位置。 VI-SLAM中使用的特征主要是Harris [78],FAST [79],ORB [80],SIFT [81]和SURF [82]。 特征检测使用描述符来描述关键点邻域。 在几个点上总结了获得图像中的特征的方式:(1)对应于一阶导数的局部最大值的像素点,(2)两个或更多个边缘的交点,(3)速率的点 梯度值和梯度方向的变化高,(4)角点处的一阶导数最大而二阶导数为零的点。
Brito [83]评估了不同的最先进的兴趣点匹配方法的应用,包括SURF,SIFT,ORB,BRISK和FREAK,旨在进行三维场景的投影重建。 SLAM系统中还集成了新功能,例如平面特征[84,85],直线或边缘特征[86-88]。 重要的是,Yang [85]将单目序列翻译成3D平面图,并提出了低纹理环境的语义单目平面SLAM。
2.1.2. Feature Tracking
在SLAM系统中有四种常用的跟踪像素的方法:描述符匹配[28],基于滤波器的跟踪[75],光流跟踪[26]和直接像素处理[77]。 描述符和特征的原理是相同的。 基于滤波器的跟踪包括卡尔曼滤波器,粒子滤波器和均值平移方法。 这些方法对当前帧中的目标区域进行建模,并通过在下一帧中找到与模型最相似的区域来预测位置。 光流是估计运动状态的有效手段,例如导航期间的速度,姿势和位移。 光流涉及图像亮度模式中的明显移动并表示图像变化。
根据计算类型,光流也可分为三种方法,即差异[89],相关[90]和基于相位的方法[91]。 其中,块匹配算法最常用于SLAM。 然而,它具有缺点,例如缺乏亚像素精度和图像变形后匹配度的降低。 为了解决这些问题,同时应用图像金字塔以提高计算速度[92]。
2.2. Dynamic and Observational Models
基于滤波的SLAM方法在动态和观测模型中使用线性或非线性模型。 然而,非线性模型主要用于基于滤波的VI-SLAM方法,其动态模型表示为
其中u t是控制向量,w t是过程噪声,w t~N(0,Q t),Q t是方差。 IMU状态表示为16维向量。
其中IW q T是从世界帧旋转到IMU帧的四元数,W p TI和W v TI分别对应于世界坐标系的旋转和速度。 b g T和b a T分别对应于陀螺仪偏置和加速度计偏置。
基于过滤的经典方法框架如表3所示。传播和更新步骤对基于过滤的方法很重要。 非线性观测和预测方程模型表示为
基于过滤的VIO的工作主要集中在协方差矩阵,特征处理和EKF更新。 传播的协方差矩阵表示为
更新方程表示为
2.3. Filtering-Based VIO and VI-SLAM
MSCKF[28]是一个经典的VI-SLAM系统。它也是基于多状态约束EKF的视觉惯性导航系统。它采用测量模型来表示当从多个相机姿势观察到静态特征时出现的几何约束。该算法提取并匹配SIFT特征,并在过滤器状态下维持30个摄像机姿势。
此外,Li [27,36]证明了在滤波器中计算雅可比矩阵的标准方法不可避免地通过模拟测试导致不一致和精度损失,这表明MSCKF和FLS [93]的偏航误差位于 ±3σ界限表示不一致。因此,他们提出了对MSCKF算法的修改,这确保了正确的可观察性,而不会产生额外的计算成本。 Clement [53]比较了MSCKF和滑动窗口滤波器(SWF)。其结果表明,SWF比MSCKF更准确,对调谐参数更不敏感。 然而,MSCKF在计算上更便宜,具有良好的一致性,并且随着跟踪更多特征而提高了准确性。与基于特征的方法相比,Tanskanen [50]结合了EKF滤波器的优势和最小化的光度误差来提出仅使用CUP的直接VIO。越来越多的研究也开始将VI-SLAM技术应用于移动电话和清洁机器人等小型设备[41,46]。
Bloesch [51]提出了一种单目VIO-ROVIO,用于直接检测亮度误差,从图像匹配中获得准确,稳健的跟踪。该模型还使用FAST角来识别候选特征区域。 多层图像金字塔用于提取添加了边缘特征的多层特征。 过滤器功能的工作过程如图1所示。
其中w是辐射增强变换矩阵,m是平均强度误差。初始化时50个特征的平均图像处理时间为29.72 ms,而系统可以20 Hz平滑运行。此外,基于迭代扩展的VIO 提出了卡尔曼滤波器[63]。
S-MSCKF可以看做MSCKF的一个双目版本。该软件采用同步双目图像和IMU测量,并生成实时6DOF相机姿态估计。它使用FAST角[79]来增加KLT光流[94]的速度和跟踪特征。 此外,循环匹配可用于移除在特征跟踪和立体匹配期间生成的异常值。 由于它们的应用平台和风景不同,很难仅仅使用精确度来比较这些VI-SLAM方法。 因此,本研究调查了Appendis A中基于过滤和基于优化的VI-SLAM方法。
机器人技术中稳健且准确的状态估计仍然具有挑战性。 如果系统可以基于先前的映射获得准确的姿态估计,则系统适应性将得到改善。 因此,Schneider [15]提出了一种名为Maplab的VI-SLAM系统,它包括创建,处理和混合多个地图的集成功能。系统可扩展性适用于研究,为系统挖掘组件的选择提供了评价方法。 此外,已经发现Maplab从图像中提取BRISK [95]和FREAK [96]并融合IMU数据以进行定位和绘图。可以将单独的切片组合成单个全局图,以校正测距和定位的漂移。ROVIOLI [63]是Maplab的前端,用于定位和映射;系统模块和数据流如图2所示。匹配窗口已经被证明可以提高基于集成陀螺仪测量的效率和鲁棒性。 该系统可以轻松扩展当前框架中的新算法,例如多线程地图构建,语义SLAM和定位。
结合基于滤波和基于优化的方法的优点的方法也引起了广泛关注.Quan [97]提出了使用卡尔曼滤波器作为辅助的单目VI-SLAM。 为了实现位置识别并减少轨迹估计漂移,作者在后端构建了基于因子图的非线性优化。 使用反馈机制来保证前端和后端的估计准确性。

循环闭合基本上是场景识别的问题,由于现实世界中各个地方的不同外观,这是困难的。 为了解决这个问题,Galvez-López[109]提出了DBoW2来获得具有BRIEF和FAST特征的二元包模型。虽然与使用SIFT或SURF的算法相比,该算法在特征提取方面更有效且更健壮,但是描述符缺乏 旋转和比例不变性,它只能在2D环境中使用。 为了解决这个问题,Mur-Artal [12]使用了一个基于DBoW2和ORB的词袋模型,包括隐私信息。
基于深度学习的循环闭包方法不断出现[110-112]。 与基于外观的方法相比,它们对环境变化更加稳健。 然而,设计在VI-SLAM系统中实时运行的神经网络架构仍然具有挑战性。 在机器人区域覆盖问题中,目标是在合理的时间量内探索和建图给定的目标区域,这需要使用最小冗余的重叠轨迹来提高覆盖效率。但是,在没有循环闭合的情况下,系统估计将不可避免地随时间漂移。 有效的区域覆盖和良好的SLAM导航性能代表了相互竞争的目标。 在这种情况下,需要主动SLAM算法来考虑区域覆盖和导航不确定性性能,以有效地探索目标感兴趣区域[113]。 Thrun [114]在访问新地点(勘探)和通过重新访问已知区域(开采)来减少不确定性之间找到了平衡,为随机勘探或纯粹开采提供了更有效的替代方案。
3.2. Optimization-Based VI-SLAM Algorithms
OKVIS(https://github.com/ethz-asl/okvis)[43-45]是一个出色的基于关键帧的VI-SLAM系统; 将IMU和重投影误差项组合成一个成本函数来优化系统。旧的关键帧被边缘化以维持一个有限大小的优化窗口,确保实时操作。 作为初始化和匹配的第一步,他们使用获得的IMU测量来传播最后的姿势,以获得状态的初步不确定估计。 表4中调查了基于优化的VI-SLAM算法的优化策略。
为了避免由相对运动积分的参数化引起的重复约束,提出了预积分以减少计算。 这种方法首先由Lupton [35]描述,其中通过预先积分约束在两帧之间改变IMU数据。 预积分原理如图4所示。在Forster [47]将其应用于VI-SLAM框架以减少偏差之后,进一步发展了预积分理论。
将IMU数据融合到经典视觉SLAM中的系统也引起了广泛的关注.Usenko [56]提出了一种立体直接VIO,它结合了IMU和立体声LSD-SLAM [115]。他们制定了一个联合优化问题来恢复包含相机姿态的完整状态 ,平移速度和所有帧的IMU偏差。 Concha [55]设计了第一个可以在标准CPU下实时运行的直接紧耦合VIO算法,但没有引入初始化。
VIORB [60]是一个基于ORB-SLAM的单目紧耦合VI-SLAM,包含ORB稀疏前端,图优化后端,循环闭包和重定位。该方法首先仅使用单目视觉进行初始化,并在几秒钟后对比例,重力方向,速度,加速度计和陀螺仪偏差进行特定初始化。 VIORB提出了一种新颖的IMU初始化方法,分为以下四个步骤:(1)陀螺仪偏差估计,(2)尺度和重力近似(不考虑加速度计偏差),(3)加速度计偏差估计(比例和重力方向细化) ,和(4)速度估算。 在插入新的关键帧之后,本地地图模块使用局部BA来优化最新的N个关键帧以及在这N个关键帧上观察到的所有点。 然后,基于关键帧的时间序列检索局部地图。 固定窗口连接第N + 1个关键帧和共同可见性图。局部地图中的关键帧如图5所示。除单目和IMU融合方法外,还研究了双目和RGBD与IMU融合的SLAM [54],58]。
VINS-mono(https://github.com/HKUST-Aerial-Robotics/VINS-Mono)是一款出色的VI-SLAM方法,其前端使用KLT光流[94]跟踪Harris角落,而后端使用滑动窗口进行非线性优化。 整个系统包括测量处理,估计初始化,没有重定位的局部束调整,循环闭合和全局姿态优化。 有关系统框架,请参见图6。 Fisheye相机模型用于前端,基本矩阵的异常值被RANSAC方法拒绝。 相机和IMU之间的校准误差小于0.02 m,旋转误差小于1°[76]。 此外,该方法已成功应用于AR [18]。
此外,与深度学习和新传感器相结合的方法伴随着人工智能和计算机视觉的兴起。 Clark [68]提出了一种端到端的VIO,它具有良好的结果,结合了传感器融合和深度学习。 但是,此系统中未使用循环闭包和建图。 Vidal [69]在VIO中使用事件相机代替亮度帧,以在低光和高动态场景中获得良好的效果。 CNN-SLAM [116]用基于CNN的方法取代了LSD-SLAM中的深度估计和图像匹配,以结合语义信息。
4. Comparisons between Filtering-Based and Optimization-Based Methods
4.1 Details
Different VI-SLAM methods are designed for different applications and it is hard to comprehensively evaluate them. To deeply compare filtering-based and optimization-based methods, this section provides the experiments of representative methods on EuRoC datasets using conditions that emulate state estimation for a flying robot. Because VIORB does not have open source code, this study uses an implementation from Jing Wang (https://github.com/jingpang/LearnVIORB).
不同的VI-SLAM方法针对不同的应用而设计,很难对它们进行全面评估。 为了深入比较基于过滤和基于优化的方法,本节提供了使用模拟飞行机器人状态估计的条件对EuRoC数据集进行代表性方法的实验。 由于VIORB没有开源代码,因此本研究使用了Jing Wang(https://github.com/jingpang/LearnVIORB)的实现。
Experiments are performed on an Intel Core i7-6700 × 8@3.40GHz computer with 16 Gb RAM.The EuRoC datasets consist of 11 visual inertial sequences recorded onboard a micro-aerial vehicle while it is manually piloted around three different indoor environments. Within each environment, the sequences increase qualitatively in difficulty with increasing sequence number. For example,MH_01 is “easy”, while MM_05 is a more challenging sequence in the same environment, introducing things such as faster motions and, poor illumination.
实验在具有16 Gb RAM的Intel Core i7-6700×8,3.40GHz计算机上进行.EuRoC数据集由在微型飞行器上记录的11个视觉惯性序列组成,同时在三个不同的室内环境中手动驾驶。 在每个环境中,序列在难度上随着序列数的增加而定性增加。 例如,MH_01是“简单的”,而MM_05在同一环境中是一个更具挑战性的序列,引入诸如更快的运动和不良照明之类的事物。
To account for the nondeterministic nature of the multithreading, we run each sequence five times and show the median result for accuracy. In order to compare these methods equally, the mapping thread of VIORB is closed and the camera frequency of all methods is set to 20 Hz.
为了解释多线程的不确定性,我们运行每个序列五次并显示准确性的中值结果。 为了同等地比较这些方法,关闭VIORB的映射线程,并将所有方法的摄像机频率设置为20 Hz。
4.2 Experiments
Experiment results are shown in Tables 5–7. In Table 5, when all eight logical cores are in use, the CPU utilization load is 100%. This study uses the elevation tool evo (https://github.com/MichaelGrupp/evo) to calculate the root mean square error of experiment results according to the ground truth. Notably, VIORB cannot obtain the full trajectory result on the V2_03_difficult dataset. In Table 7, memory utilization is represented as a percentage of the available RAM on the given
platform.
实验结果如表5-7所示。 在表5中,当使用所有八个逻辑核时,CPU利用率负载为100%。 本研究使用提升工具evo(https://github.com/MichaelGrupp/evo)根据实际情况计算实验结果的均方根误差。 值得注意的是,VIORB无法在V2_03_diff困难数据集上获得完整的轨迹结果。 在表7中,内存利用率表示为给定平台上可用RAM的百分比。
This section experiments representative optimization-based and filtering-based methods,which are all proposed in recent years. As shown in Table 5, the CPU utilization of ROVIO is the lowest among five methods, and filtering-based methods are better than optimization-based methods. The camera type of ROVIO, VINS-mono, and VIORB is monocular, while the camera type of S-MSCKF and OKVIS is stereo. The stereo VI-SLAM methods use more computing resources than monocular VI-SLAM methods, whether filtering-based or optimization-based. Importantly,filtering-based methods have advantages over optimization-based methods on CPU utilization.As shown in Table 6, VINS-mono obtains the best accuracy with a 0.079 m average root mean square error. OKVIS and VIORB have advantages in terms of memory utilization (according to Table 7),which implies that they are robust for system management. Optimization-based methods have more potential than filtering-based methods in terms of localization accuracy and memory utilization. In summary, optimization-based methods achieve excellent localization accuracy and lower memory utilization, while filtering-based methods have advantages in terms of computing resource. How to
find the right balance between competing requirements and accuracy can be challenging.
本节实验了基于代表优化和基于过滤的方法,这些方法都是近年来提出的。如表5所示,ROVIO的CPU利用率是五种方法中最低的,基于过滤的方法优于基于优化的方法。 ROVIO,VINS-mono和VIORB的相机类型是单眼,而S-MSCKF和OKVIS的相机类型是双目。双目VI-SLAM方法比单目VI-SLAM方法使用更多的计算资源,无论是基于过滤还是基于优化。重要的是,基于过滤的方法优于基于优化的CPU利用率方法。如表6所示,VINS-mono获得最佳精度,平均均方误差为0.079 m。 OKVIS和VIORB在内存利用方面具有优势(根据表7),这意味着它们对于系统管理是健壮的。在定位精度和内存利用率方面,基于优化的方法比基于过滤的方法具有更大的潜力。总之,基于优化的方法实现了出色的定位精度和较低的内存利用率,而基于过滤的方法在计算资源方面具有优势。如何在竞争要求和准确性之间找到适当的平衡可能具有挑战性。
5. Development Trends
5.1. SLAM with Deep Learning
目前,SLAM方案中使用的图像特征的语义水平太低,使得特征可区分性较弱; 由当前方法构造的点云图不区分不同的对象。 深度学习将开发SLAM技术,可用于构建语义地图以促进人机交互。 Rambach [117]通过训练有素的短期记忆模型提出了一种深度学习的视觉惯性相机姿态估计方法。 Shamwell [118]提出了一种无监督的深度神经网络方法,用于融合RGB-D图像和绝对轨迹估计的惯性测量。
尽管SLAM中的语义问题研究仍处于初期阶段,但将语义与SLAM相结合将使机器人能够通过使用类别,关系和环境属性的语义概念构建一致的地图来更有效地获得姿势。 此外,SLAM系统的新地图可以有效地存储和显示信息,例如SkiMap [119]和Road-SLAM [120]。 地图的不断更新和维护仍然是该领域的障碍。
5.2. Hardware Integration and Multi-Sensor Fusion
SLAM系统的轻量化和小型化特性使其能够在小型设备(如嵌入式系统或手机)上良好运行。 Microsoft Hololens,Intel RealSense和Google Tango [121]取得了优异的成绩。 VI-SLAM的定制硬件可以实现机器人的功能,AR / VR设备可以应用于运动,导航,教学和娱乐。 因此,对SLAM小型化和减轻重量的强烈需求,预示着嵌入式SLAM的未来[122]。
单个传感器不能充分地感测环境信息,并且状态估计是高度不确定的。 多传感器融合可以解决这些问题,提高系统定位和环境映射的准确性.VI-SLAM技术是多传感器融合的一个例子。 预计SLAM中多传感器融合的研究和应用将会增长,[123,124]就是证明。
5.3. Active SLAM on Robots
相关的SLAM问题代表了机器人技术中的被动估计问题。然而,控制机器人运动问题的主要目的是控制机器人以最小化机器人地图表示和定位的不确定性。在传统方法中,SLAM是被动的并且通常在预先计划或人为控制的轨迹上执行。完全自主的机器人必须在给定高级命令的情况下计划运动,例如,来自人类主管的任务级命令以探索给定区域。在这个例子中,机器人应该相应地计划以完成给定的任务,并且不需要人类主管的详细输入[113]。因此,积极的SLAM [125]引起了逐渐的关注。主动SLAM算法在使机器人能够识别可能的位置,计算所访问的每个有利位置以及选择最有效的行动计划方面表现出良好的效果。因此,SLAM技术应该包含诸如路径规划[126],任务规划[127]和目标识别[128]等技术。参考文献[129,130]有助于积极的SLAM并将其结合起来,使机器人更加智能和实用。此外,集成SLAM技术的不同分支(例如,基于过滤和优化的方法以及松散且紧密耦合的方法)的优点将极大地提高系统的鲁棒性和准确性。
5.4. Applications on Complex Dynamic Environments
SLAM算法通常假设静态环境。 然而,移动机器人的实际工作环境通常涉及行人和车辆的空间位置随时间的变化。 这些动态功能可以提供有关环境变化的有用信息。 识别环境中的静态和动态特征以及有效地定位和映射机器人是重要的。Saarinen [131]为在工业动态环境中实现自动驾驶汽车的长期运行做出了贡献,并提出了一种新颖的3D正态分布变换占用图。 此外(为了确保更有效的实际应用),非结构化地形的季节性天气变化需要更强大的SLAM系统来处理复杂的动态环境。 多机器人协作SLAM [132]具有高精度和高效率的优点,并且正在成为一个共同的研究领域。
6. Conclusions
VI-SLAM技术是机器人和计算机视觉领域中一个流行而复杂的研究课题。 本研究提供了VI-SLAM技术的概述,并总结了过去10年的方法。 从过滤和基于优化的角度介绍了最先进的VI-SLAM方法。 介绍了这些方法的各自框架,关键技术和优点。此外,系统地提出了VI-SLAM中的中心技术,包括特征提取和跟踪,预集成和循环闭合。 本研究调查了代表性的VI-SLAM方法和着名的VI-SLAM数据集的性能。 通过实验在基于过滤和基于优化的方法之间进行比较,这表明基于过滤的方法在计算资源方面具有优势,而基于优化的方法实现了优异的定位精度和较低的存储器利用率。 该研究还预测了SLAM的即将到来的发展趋势和研究方向,这些方向有可能使该技术具有实质性。