Visual SLAM algorithms: a survey from 2010 to 2016

原文见文章末尾

摘要:

SLAM是simultaneous localization and mapping的缩写,它是一种在未知环境中估计传感器运动和重建结构的技术。特别是,使用相机的同步定位和建图(SLAM)被称为视觉SLAM(vSLAM),因为它只基于视觉信息。vSLAM可以作为一种基本技术用于各种类型的应用,在计算机视觉、增强现实和机器人领域的文献中都有讨论。本文旨在从技术和历史的角度,对不同研究界最近提出的vSLAM算法进行分类和总结。特别是,我们主要关注2010年至2016年提出的vSLAM算法,因为主要的进展发生在这一时期。技术类别总结如下:基于特征的、直接的和基于RGB-D相机的方法。

Introduction

同步定位和建图(SLAM)是一种获得未知环境的三维结构和环境中传感器运动的技术。这项技术最初是为了实现机器人学中的机器人自主控制而提出的[1]。然后,基于SLAM的应用已经广泛地变得广泛,如基于计算机视觉的在线3D建模,基于增强现实(AR)的可视化,以及自动驾驶汽车。在早期的SLAM算法中,集成了许多不同类型的传感器,如激光测距传感器、旋转编码器、惯性传感器、GPS和相机。此类算法在以下论文中得到了很好的总结[2-5]。近年来,只使用相机的SLAM被积极讨论,因为传感器的配置很简单,技术难度也比其他的高。由于这种SLAM的输入仅是视觉信息,因此该技术被特指为视觉SLAM(vSLAM)。特别是,它们适用于AR系统中的相机姿态估计,因为系统的配置可以很简单,比如安装了相机的平板电脑或智能手机。AR系统的一个重要要求是实时响应,以无缝和互动地合并真实和虚拟物体。为了在轻量级手持设备上用有限的计算资源实现响应,文献中提出了各种低计算成本的vSLAM算法。这种vSLAM算法的应用并不限于AR系统。例如,它对机器人学中的无人自主飞行器(UAV)也很有用[7]。即使vSLAM算法在不同的研究群体中被提出用于不同的目的,但它们基本上共享技术核心思想的整体部分,并且可以相互用于实现不同的目的。因此,我们对这些算法进行了分类和总结,作为一篇调查报告。

在本文中,我们回顾了实时vSLAM算法,该算法在2010年代有了显著的发展。一般来说,vSLAM的技术难度高于其他基于传感器的SLAM,因为与通常用于机器人技术的360°激光传感相比,相机可以从有限的视野中获得较少的视觉输入。从这种输入中,需要不断地估计摄像机的位置,同时重建未知环境的三维结构。使用单目相机的vSLAM的早期工作是在2000年基于跟踪和建图特征点。这被称为 "基于特征的方法"。为了应对无纹理或无特征的环境,人们提出了不检测特征点而直接使用整个图像进行跟踪和映射的vSLAM。这被称为 "直接方法"。随着低成本RGB-D传感器(如微软Kinect)的出现,同时具有单目图像及其深度的vSLAM算法也被提出。因此,本文介绍的现有vSLAM算法是按照基于特征的、直接的和基于RGB-D相机的方法来分类的。本文对于想要开始学习vSLAM的基本框架、各算法之间的差异以及从2010年到2016年的进展的读者会有帮助。此外,本文还讨论了剩余的技术问题,以作为进一步的研究课题,并提供了几种比较不同算法的基准方法,以便读者能够对下一步的研究方向有一些看法。

本文的其余部分组织如下:在第2节和第3节中,介绍了vSLAM的要素和vSLAM的相关技术,包括视觉测绘。在第4、5、6节中,总结了现有的vSLAM算法,分别介绍了基于特征、直接和基于RGB-D的vSLAM算法。在第7节中,讨论了vSLAM算法的剩余技术问题。在第8节中,介绍了用于评估vSLAM算法性能的数据集。最后,我们在第9节中提出结论。请注意,到2011年为止,已经有关于vSLAM算法的调查论文提出[8, 9]。这些论文对于理解我们对较新算法的调查也是有用的。

“2 Elements of vSLAM”

“2.1 Basic modules”

该框架主要由以下三个模块组成。

1、初始化

2、跟踪

3、建图

为了启动vSLAM,有必要定义一定的坐标系,以便在未知环境中进行相机姿势估计和三维重建。因此,在初始化过程中,首先要定义全局坐标系,并将环境的一部分作为全局坐标系的初始地图进行重建。初始化之后,进行跟踪和映射,以不断估计摄像机的位置。在跟踪过程中,重建的地图在图像中被跟踪,以估计图像相对于地图的相机姿态。为了做到这一点,首先通过图像中的特征匹配或特征跟踪获得图像和地图之间的二维到三维的对应关系。然后,通过解决透视-点(PnP)问题,从对应关系中计算出摄像机的姿势[10, 11]。应该注意的是,大多数vSLAM算法都假定摄像机的固有参数是事先校准过的,因此它们是已知的。因此,摄像机的姿态通常等同于摄像机在全局坐标系中的平移和旋转的外在参数。在建图中,当相机观察到之前没有进行建图的未知区域时,通过计算环境的三维结构来扩展地图。

2.2 用于稳定和准确的vSLAM的附加模块

2.2 用于稳定和准确的vSLAM的附加模块

根据应用的目的,以下两个附加模块也包含在vSLAM的算法中。

- 重新定位

- 全局地图优化

当由于摄像机快速运动或某些干扰导致跟踪失败时,就需要重新定位。在这种情况下,有必要重新计算摄像机相对于地图的姿态。因此,这个过程被称为 "重新定位"。如果重新定位没有被纳入到vSLAM系统中,那么在跟踪丢失后,系统就不再工作,这样的系统就没有实际意义了。因此,文献中讨论了一种快速而有效的重定位方法。请注意,这也被称为机器人学中的绑架机器人问题。另一个模块是全局地图优化。地图一般包括根据摄像机运动距离而累积的估计误差。为了抑制这种误差,通常要进行全局地图优化。在这个过程中,通过考虑整个地图信息的一致性来完善地图。当地图被重新访问,如在摄像机移动后再次捕获起始区域时,可以计算出代表从开始到现在的累积误差的参考信息。然后,来自参考信息的循环约束被用作全局优化中抑制误差的约束条件。闭环检测是一种获取参考信息的技术。在闭环中,首先通过将当前图像与先前获得的图像进行匹配来搜索闭环。如果检测到环路,就意味着摄像机捕捉到了先前观察到的一个视图。在这种情况下,摄像机移动过程中发生的累积误差可以被估计出来.请注意,闭环检测程序可以通过使用与重新定位相同的技术来完成。基本上,重新定位是为了恢复摄像机的姿势,而回路检测是为了获得几何上一致的地图。位姿图优化已被广泛用于通过优化相机位姿来抑制累积误差[12, 13]。在这种方法中,摄像机位姿之间的关系被表示为一个图,建立一致的图来抑制优化中的误差。捆绑调整(BA)也被用来通过优化地图和摄像机的姿势来最小化地图的重投影误差[14]。在大环境中,采用这种优化程序可以有效地减少估计误差。在小环境中,由于累积误差较小,可以不用闭环检测就进行BA。

“2.3 Summary”

如上所述,vSLAM算法的框架由五个模块组成:初始化、跟踪、建图、重定位和全局地图优化。由于每个vSLAM算法的每个模块都采用了不同的方法,一个vSLAM算法的特点高度依赖于所采用的方法。因此,了解vSLAM算法的每个模块以了解其性能、优势和限制是很重要的。应该注意的是,使用追踪和建图(TAM)而不是使用定位和建图。TAM最早用于平行跟踪和建图(PTAM)[15],因为定位和建图不是以传统方式同时进行的。追踪是在每一帧中由一个线程进行的,而建图则是在一定时间内由另一个线程进行的。在PTAM被提出后,大多数的vSLAM算法都遵循TAM(追踪和建图)的框架。因此,本文使用了TAM。

3 相关技术

vSLAM、视觉里程计和来自运动的在线结构是为估计未知环境中的相机运动和三维结构而设计的。在本节中,我们将解释它们之间的关系。

3.1 视觉里程计

里程计是利用传感器(如车轮编码器)来估计传感器位置随时间的顺序变化,以获取传感器的相对运动。基于摄像头的里程测量称为视觉里程计(VO),也是文献中活跃的研究领域之一[16, 17]。从技术角度来看,vSLAM和VO是高度相关的技术,因为这两种技术基本上都是估计传感器的位置。根据机器人学的调查论文[18, 19],vSLAM和VO之间的关系可以表示如下。

“vSLAM = VO + global map optimization”

这两种技术的主要区别在于建图中的全局建图优化。换句话说,VO等同于第2.1节中的模块。在VO中,地图的几何一致性只在地图的一小部分被考虑,或者只计算相机的相对运动而不进行建图。另一方面,在vSLAM中,通常会考虑地图的整体几何一致性。因此,为了 建立一个几何上一致的地图,在最近的vSLAM算法中会进行全局优化。vSLAM和VO之间的关系也可以从论文[20, 21]和论文[22, 23]中找到。在论文[20, 22]中,首先提出了一个关于VO的技术。然后,通过在VO中加入全局优化,提出了vSLAM技术[21, 23]。

“3.2 Structure from motion”

更高级相机运动和环境的三维结构的技术。

来自运动的结构(SfM)是一种以批量方式估计摄像机运动和环境的三维结构的技术[24]。在论文[25]中,有人提出了一种在线运行的SfM方法。作者将其命名为实时SfM。从技术角度看,vSLAM和实时SfM之间没有明确的区别。这可能就是为什么最近的论文中没有 "实时SfM "这个词。正如本节所解释的,vSLAM、VO和实时SfM有许多共同的组成部分。因此,我们在本文中介绍了所有这些技术,并没有对这些技术进行区分。

“4 Feature-based methods”

文献中存在两种类型的基于特征的方法:基于过滤器的方法和基于BA的方法。在本节中,我们将解释这两种方法并进行比较。尽管有些方法是在2010年之前提出的,但我们在这里解释了它们,因为它们可以被视为其他方法的基本框架。

4.1“MonoSLAM”

第一个单目vSLAM是由Davison等人在2003年开发的[26, 27]。他们将其命名为MonoSLAM。MonoSLAM被认为是基于滤波器的vSLAM算法中的一个代表性方法。在MonoSLAM中,摄像机的运动和未知环境的三维结构同时使用扩展卡尔曼滤波器(EKF)来估计。6个自由度(DoF)的相机运动和特征点的三维位置在EKF中被表示为一个状态向量。在预测模型中假设均匀运动,并使用特征点跟踪的结果作为观测。根据摄像机的运动,新的特征点被添加到状态向量中。

请注意,初始地图是通过观察一个定义了全局坐标系的已知物体而创建的。综上所述,MonoSLAM由以下部分组成。

- 地图初始化是通过使用一个已知的物体完成的。

- 使用EKF估计相机运动和特征点的三维位置。

这种方法的问题是计算成本与环境的大小成正比增加。在大环境中,由于特征点的数量很大,所以快门矢量的大小也很大。在这种情况下,很难实现实时计算。

“4.2 PTAM”

为了解决MonoSLAM的计算成本问题,PTAM[15]将跟踪和建图分成CPU上的不同线程。这两个线程是平行执行的,因此建图的计算成本不会影响跟踪。因此,在优化中需要计算成本的BA可以在建图中使用。这意味着,跟踪可以实时估计摄像机的运动,而建图则以计算成本估计特征点的精确三维位置。PTAM是第一个将BA纳入实时vSLAM算法的方法。在发布PTAM之后,大多数vSLAM算法都遵循这种多线程方法。在PTAM中,初始地图是用五点算法[28]重建的。在跟踪过程中,建图的点被投射到图像上,利用纹理匹配进行2D-3D的对应。根据这些对应关系,可以计算出摄像机的位置。在建图中,新的特征点的三维位置是在某些被称为关键帧的帧上用三角法计算出来的。PTAM的重要贡献之一是在vSLAM中引入了这种基于关键帧的建图。当测量到输入帧和其中一个关键帧之间有较大的差距时,输入帧被选为关键帧。大的差异基本上是精确三角测量所需要的。与MonoSLAM不同的是,特征点的三维点是用部分关键帧的局部BA和所有关键帧的全局BA与地图进行优化。另外,在跟踪过程中,PTAM的较新视觉采用了重新定位算法[29]。它使用一个随机的基于树的特征分类器来搜索输入帧的最近的关键帧。总之,PTAM是由以下四个部分组成的。

  1. - 地图的初始化是由五点算法[28]完成的。

  2. - 相机的位姿是由地图点和输入图像之间的匹配特征点来估计的。

  3. - 通过三角测量估计特征点的三维位置,并通过BA对估计的三维位置进行优化。

  4. - 追踪过程是通过随机的基于树的搜索来恢复的[29]。

与MonoSLAM相比,在PTAM中,系统可以通过将跟踪和建图分割到CPU上的不同线程来处理成千上万的特征点。目前已经提出了许多扩展的PTAM算法。Castle等人开发了一个多图版本的PTAM[30]。Klein等人开发了一个手机版的PTAM[31]。为了在手机上运行PTAM,输入图像的分辨率、地图点和关键帧的数量都有所减少。此外,他们考虑了BA中的滚动快门失真,以获得准确的估计结果,因为滚动快门由于成本低廉,通常被安装在大多数手机相机中。由于PTAM只能重建环境的稀疏三维结构,第三线程可以用来重建环境的密集三维结构[32, 33]。

4.3 MonoSLAM和PTAM的比较

文献[34]讨论了MonoSLAM中基于EKF的建图和PTAM中基于BA的关键帧建图之间的区别。根据该文献,为了提高vSLAM的精度,增加地图中的特征点数量是非常重要的。从这个角度来看,基于BA的方法比基于EKF的方法更好,因为它可以处理大量的点。

4.4 全局地图优化技术

如上所述,整个地图的几何一致性是通过使用关键帧的BA来保持的。然而,一般来说,由于关键帧和地图中的点的相机姿态等参数数量众多,BA存在局部最小问题。如第2节所述,位姿图优化是在闭环检测中避免这一问题的解决方案。在闭环过程中,首先使用循环约束来优化摄像机的姿势。在优化了摄像机的姿势后,BA被用来优化特征点的三维位置和摄像机的位姿。对于闭环,采用了一种基于视觉信息的方法[35]。他们使用基于词袋的图像检索技术来检测与当前视图相似的一个关键帧[36]。在vSLAM系统中[35],一个立体摄像机被选作视觉传感器。在这种情况下,坐标系的尺度是固定的和已知的。然而,在单目vSLAM的情况下,存在一个尺度模糊的问题,如果不执行全局BA,尺度可能会在相机移动过程中发生变化。在这种情况下,就会出现尺度漂移问题,每一帧的坐标系的尺度可能不一致。为了纠正尺度漂移,摄像机的位姿应该在7个DoF中进行优化。Strasdat等人[37]提出了一种基于相似性变换的7DoF相机位姿优化方法。作为PTAM的扩展,ORB-SLAM[38]包括BA、基于视觉的闭环检测和7 DoF姿势图优化。据我们所知,ORB-SLAM是最完整的基于特征的单眼vSLAM系统。ORB-SLAM被扩展到立体vSLAM和RGB-D vSLAM[39]。

4.5 总结

图1是基于特征的方法的总结。MonoSLAM是在2003年开发的[26]。追踪和建图都是按顺序同时使用EKF。PTAM是在2007年开发的[15]。他们提出将跟踪和建图分离到CPU的不同线程中。这种多线程的方法能够处理地图中成千上万的特征点。在大环境中,由于BA中的局部最小值问题,很难获得地图和摄像机位姿的全局最优。为了避免这个问题,可以在BA之前使用闭环检测和位姿图优化。ORB-SLAM[38]包括多线程跟踪、建图和闭环检测,并且使位姿图优化和BA对地图进行优化,这可以被认为是单目vSLAM的一体化包。由于ORB-SLAM是一个开源项目,我们可以很容易地在我们的本地环境中使用这整个vSLAM系统。在本节中,我们介绍了基于特征点的vSLAM算法。基于特征点的vSLAM算法通常采用手工制作的特征检测器和描述符,可以在丰富的纹理环境中提供稳定的估计结果。然而,使用这种手工制作的特征,很难处理弯曲的边缘和其他复杂的线索。在一些特殊情况下,如缺乏纹理环境,线状特征被用作图像特征[40, 41]。此外,特征点和小边缘被结合起来以实现对运动模糊的输入图像的稳健估计[42]。

“5 Direct methods”

与上一节中的基于特征的方法相比,直接方法直接使用输入图像,没有使用手工制作的特征检测器和描述符进行任何抽象。它们也被称为无特征方法。一般来说,在直接方法中使用光度一致性作为误差测量,而在基于特征的方法中则使用几何一致性,如图像中特征点的位置。在本节中,我们将介绍一些主要的直接方法。

5.1 DTAM

Newcombe等人提出了一种完全直接的方法[43],称为DTAM。在DTAM中,跟踪是通过比较输入图像和由重建地图生成的合成视图图像来完成的。这简单地等同于图像和地图的三维模型之间的注册,并且在DTAM中有效地在GPU上实现。建图是通过使用多基线立体声[44]来完成的,然后,通过考虑空间连续性[45]来优化地图,这样就可以计算出所有像素的三维坐标。最初的深度图是用像PTAM一样的立体测量法创建的。总之,DTAM是由以下三个部分组成的。

  1. - 地图初始化是由立体测量完成的。

  2. - 相机的运动是由重建地图的合成视图生成来估计的。

  3. - 深度信息是通过多基线立体测量来估计每个像素的深度,然后通过考虑空间连续性来进行优化。

DTAM算法为实现手机上的实时处理进行了优化[46]。基本上,这些方法[43, 46, 47]是为快速和在线三维建模而设计的。应该注意的是,Stühmer等人之前提出了一种估计每个像素的深度信息的变量方法[47]。他们使用类似于DTAM的成本函数进行建图。然而,在这个方法中,PTAM[15]被用于跟踪。因此,跟踪是基于特征的方法,而不是一个完全直接的方法。

5.2 LSD-SLAM

LSD-SLAM是直接方法中的另一种领先方法。LSD-SLAM的核心思想遵循半密集VO的思想[20]。在这种方法中,与重建全部区域的DTAM相比,重建目标只限于有强度梯度的区域。这意味着它忽略了无纹理区域,因为很难从图像中估计出准确的深度信息。在建图中,首先将随机值设置为每个像素的初始深度值,然后,根据光度测量的一致性对这些值进行优化。由于这种方法不考虑整个地图的几何一致性,所以这种方法被称为视觉里程计。2014年,半密集VO被扩展到LSDSLAM[21]。在LSD-SLAM中,前文所述的闭环检测和7 DoF姿势图优化被添加到半密集视觉测绘算法中[20]。总之,LSD-SLAM是由以下四个部分组成的。

- 随机值被设定为每个像素的初始深度值。

- 相机的运动是通过重建地图的合成视图生成来估计的。

- 重建的区域被限制在高强度的梯度区域。

- 采用7DoF位姿图形优化来获得几何上一致的地图。

基本上,这些半密集的方法[20, 21]可以用CPU实现实时处理。此外,他们通过考虑手机的CPU架构,优化了手机的LSD-SLAM算法[48]。在文献[48]中,他们还评估了LSD-SLAM算法对低分辨率输入图像的准确性。LSD-SLAM被扩展到立体相机和全向相机[49, 50]。

5.3 SVO和DSO

Forster等人提出了半直接VO(SVO)[51]。尽管跟踪是通过特征点匹配完成的,但建图是通过直接方法完成的。在基于特征的方法中,特征描述符和Lucas-Kanade追踪器[52]被用来寻找对应关系。与基于特征的方法相反,摄像机的运动是通过最小化特征点周围的测光误差来估计的。这种方法可以被看作是DTAM和LSD-SLAM的稀疏版本。最近,Engel等人提出了直接稀疏测距法(DSO)[53]。与SVO相比,DSO是一种完全直接的方法。为了抑制累积误差,DSO从几何学和光度学的角度尽可能地消除了误差因素。在DSO中,输入图像被分成几个区块,然后,选择高强度的点作为建图的候选点。通过使用这种策略,点被分散到整个图像中。此外,为了实现高度精确的估计,DSO同时使用几何和光度的相机校准结果。应该注意的是,DSO只考虑局部的几何一致性。因此,DSO被归入VO,而不是vSLAM。

5.4 总结

图2显示了直接方法的总结。直接方法可以根据地图密度进行分类。密集方法[43, 47]产生一个密集的地图,计算出每个关键帧的每个像素的深度值。这些方法对于使用GPU的实时3D建模非常有用。与密集方法相比,半密集[21]和稀疏[51,53]方法侧重于基于传感器姿势跟踪的应用。这些方法可以在CPU上实时运行。

6 RGB-D vSLAM

最近,基于结构光的RGB-D相机[54],如微软Kinect[55],变得便宜而小巧。由于这种相机可以实时提供3D信息,这些相机也被用于vSLAM算法中。

6.1 与单目vSLAM的区别

通过使用RGB-D相机,可以直接获得环境的三维结构及其纹理信息。此外,与单目vSLAM算法相比,坐标系的尺度是已知的,因为三维结构可以在度量空间中获得。基于深度(D)的vSLAM的基本框架如下。迭代最接近点(ICP)算法[56]已被广泛用于估计摄像机的运动。然后,通过结合多个深度图来重建环境的三维结构。为了将RGB纳入基于深度的vSLAM,提出了许多应用方案,如下所述。应该注意的是,大多数消费类深度相机是为室内使用而开发的。它们将红外图案投射到环境中来测量深度信息。在室外环境中很难检测到发射的红外图案。此外,深度测量的范围也有限制,如RGB-D传感器可以捕获1至4米的环境。

6.2 KinectFusion

Newcombe等人在2011年提出KinectFution[57]。在KinectFusion中,一个体素空间被用来表示环境的三维结构。环境的三维结构通过结合体素空间中获得的深度图来重建,摄像机的运动由ICP算法使用估计的三维结构和输入的深度图来估计,这是基于深度的vSLAM。KinectFusion是在GPU上实现的,以实现实时处理。Kahler等人在移动设备上实现了KinectFusion的实时处理[58]。为了降低计算成本,他们在建图过程中使用了体素块散列。RGB-D vSLAM受到数据量的影响。在文献[59]中,他们通过统一共面点来减少数据量。

6.3 SLAM++

Salas-Moreno等人提出了一个物体级的RGB-D vSLAM算法[60]。在这个方法中,几个三维物体被提前注册到数据库中,这些物体在一个在线过程中被识别。通过识别三维物体,估计的地图被细化,三维点被三维物体取代以减少数据量。作为一种类似的算法,Tateno等人提出了一种用于RGB-D SLAM的实时分割方法[61]。分割后的物体被贴上标签,然后,这些物体可以被用作识别目标。

6.4 关于RGB-D VO和全局地图优化的技术

对于跟踪,RGB图像也被用于RGBD vSLAM算法中。在文献[62, 63]中,通过跟踪连续帧之间的特征点来估计相机的相对运动。然后使用跟踪的特征点估计出一个平移矩阵,这个平移矩阵由ICP算法使用深度图来完善。另一方面,基于光度一致性的摄像机运动跟踪方法已经被提出[22, 23, 64]。这种基于光度一致性的摄像机运动跟踪也采用了基于单目摄像机的稠密vSLAM方法[20, 21, 43]。为了获得一个几何上一致的地图,在RGB-D vSLAM算法中使用了姿势图优化和变形图优化。Kerl等人使用位姿图优化来减少累积误差[23]。这种位姿图优化与单目vSLAM算法中的循环检测几乎相同。Whelan等人将位姿图优化用于摄像机运动细化,将变形图优化用于地图细化,分别是[65]。与其他工作[23]不同的是,估计的地图也被细化。在[66]中,变形图优化经常用于某些帧,摄像机运动是通过RGB-D图像和重建的模型之间的匹配来估计。他们展示了几何上一致的模型,可以尽可能多地使用变形图优化来获取。请注意,RGB-D SLAM API在消费者设备中提供,如谷歌Tango2和结构传感器3。特别是,Google Tango通过结合内部传感器信息提供了一个稳定的估计结果。

7 未解决的问题

在实际情况中,vSLAM面临一些问题。在这一节中,我们列出了以下问题:纯旋转运动、地图初始化、估计相机的内在参数、滚动快门失真和尺度模糊性。

7.1 纯旋转

当用户在手持式增强现实应用中移动设备时,有时会发生纯旋转运动。这是一个问题,因为在单眼vSLAM的纯旋转运动中无法观察到差异。为了解决这个问题,在文献[67, 68]中,不同的投影模型被用来处理一般的相机运动和纯粹的旋转运动。例如,基于同位素的跟踪被用于纯旋转运动,而6DoF相机跟踪被用于其他相机运动。作为另一种方法,两种类型的三维点表示法被用于依赖摄像机运动的地方[69]。可以用大悬殊观察到的点被表示为三维点,而不能用大悬殊观察到的点被表示为三维射线。在跟踪过程中,3D射线信息也被用来估计摄像机的运动。他们使用三维射线和输入图像中的特征点之间的距离作为重投误差。请注意,纯粹的旋转运动在RGB-D vSLAM中不是一个问题。这是因为跟踪和建图过程可以通过使用获得的深度图来完成。另一方面,基于单目相机的vSLAM在纯旋转运动中不能继续建图.

"7.2 地图初始化"

"7.3 估算相机的固有参数"

"7.4 滚动快门失真"

"7.5 刻度模糊"

以上待补全。

8 基准测试

为了实现vSLAM算法之间的公平比较,基准测试显然是很重要的,其方法在最近几年已经被讨论。在此,我们介绍一些基准数据集如下。TrakMark提供了具有6DoF相机运动和内在相机参数的图像序列[83]。在TrakMark中,图像序列被分为三个场景:虚拟化环境、室内环境和室外环境5。TrakMark假设用于评估AR/MR研究界的vSLAM算法的性能。他们还从AR/MR研究的角度提出了一个评估标准。在AR/MR应用中,图像空间误差是最重要的,因为如果虚拟物体叠加到图像上是自然的就可以了。在TrakMark中,他们采用了虚拟物体的投影误差(PEVO)作为评价vSLAM算法的标准[84]。在这个标准中,使用估计的和理想的相机姿势将虚拟点投影到输入图像上,然后,在图像空间中测量距离。

Martull等人新近提供了一个立体数据集,该数据集遵循Tukuba数据集[85]。Tukuba立体数据集已被用于评估立体算法。他们使用计算机图形创建了新的Tukuba立体数据集。数据集中提供了图像序列、相机姿势和每一帧的深度图。图像序列是用不同的相机轨迹和照明条件创建的。TUM RGB-D基准数据集提供具有6DoF相机位姿的RGB-D图像序列[86]。摄像机的位姿是通过运动捕捉系统获得的,这可以被认为比vSLAM更准确。他们提出了相对位姿误差(PRE)和绝对轨迹误差(ATE),分别用于评估局部和整体误差。KITTI数据集是为评估驾驶场景中的视觉系统而设计的,包括许多类型的数据[87]。在该数据集中,提供了视觉里程计数据集。使用RTK-GPS获得地面真实相机的位置。在KITTI数据集网页6中,列出了评估结果。LSD-SLAM和ORB-SLAM算法的结果可以在该网页上找到。

与其他数据集相比,SLAMBench提供了一个框架,用于从精度和能耗方面评估vSLAM算法[88]。此外,KinectFusion的实现也包含在SLAMBench的不同选项中(C++,OpenMP,OpenCL,和CUDA)。自2008年以来,国际混合和增强现实研讨会(ISMAR)一直在组织现场基准测试,这被称为 "跟踪竞赛"。在跟踪竞赛中,参赛者需要使用自己的vSLAM系统完成组织者给出的特定任务。与基于数据集的评估不同,参赛者可以根据当前的跟踪结果来控制相机的移动。因此,跟踪竞赛可以将vSLAM算法作为一个互动系统进行评估。

9结论

在本文中,我们主要介绍了2010年至2016年的最新vSLAM算法。基本上,vSLAM算法由初始化、相机运动估计、三维结构估计、全局优化和重新定位组成。最近,直接方法是单目vSLAM的活跃研究领域。近年来,RGB-D vSLAM也得到了发展,因为许多消费型RGBD相机可以以低廉的价格获得。在AR/MR研究界,实际问题已经得到了解决。即使vSLAM算法自2003年以来已经被开发,vSLAM仍然是一个活跃的研究领域。为了了解不同方法之间的差异,应该对这些模块进行比较。表1显示了代表性方法的总结。每种算法都有不同的特点。我们需要通过考虑应用的目的来选择一个合适的算法。本文重点讨论了最近仅使用相机的vSLAM算法。作为另一种方法,使用视觉和惯性数据的SLAM算法被称为视觉-惯性SLAM。通过结合视觉和惯性数据,我们可以得到更稳定的估计结果。另外,在文献[77,82]中,他们正在使用传感器信息来解决比例估计和滚动快门失真补偿。目前,智能手机和平板电脑设备有摄像头、GPS、陀螺仪和加速度计。在未来,我们相信传感器融合是实现稳健和实用的vSLAM系统的一个方向。为了学习vSLAM算法的要素,我们提供了ATAM7,这是一个为初学者准备的vSLAM工具箱[89]。它包括单眼vSLAM算法,包括来自棋盘的真实比例估计。用户可以很容易地安装和修改ATAM,因为其源代码被设计成结构良好,并且只依赖于OpenCV[90]和cvsba[91]。

https://ipsjcva.springeropen.com/track/pdf/10.1186/s41074-017-0027-2.pdficon-default.png?t=M5H6https://ipsjcva.springeropen.com/track/pdf/10.1186/s41074-017-0027-2.pdf

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值