英语原文共 12 页,剩余内容已隐藏,支付完成后下载完整资料
PL-SLAM:基于点线特征的双目SLAM系统
Ruben Gomez-Ojeda, Francisco-Angel Moreno, Davide Scaramuzza, and Javier Gonzalez-Jimenez
摘要:传统的双目视觉SLAM是依靠点特征来估计相机的运动轨迹,建立环境地图。但是在纹理特征较少的环境中,通常很难找到大量有效可靠的点特征,导致这种算法的性能下降。本文提出的PL-SLAM是一种基于点线特征的双目视觉SLAM系统,可以在更广泛的场景中稳定运行,特别是在特征点较少或分布不均匀的情况下。PL-SLAM在所有实际应用的过程中同时利用点特征与线特征如视觉里程计、关键帧选择、光束平差法等。我们还结合了两种特征的描述能力形成一种新的词袋方法为闭合回路的过程做出了贡献。此外,生成的地图在三维元素方面更加丰富和多样,可以用来推算有价值的高级场景结构如平面、空白空间、地平面等(本文未涉及)。我们的方案已经用几个流行的数据集(如KITTI和EuRoC)进行了测试,并与最先进的方法(如ORB-SLAM)进行了比较,在大多数保持实时运行的实验中显示出优越的性能。为了对社会有益,我们将发布PL-SLAM的C 代码的开源版本。
关键词:双目视觉SLAM;线特征;光束平差法;闭环回路
一、引言
近年来,视觉同步定位与构图(SLAM)正朝着全自动化车辆(移动机器人、自动驾驶汽车或无人机)所需的可靠性方向发展,SLAM问题包括对给定的一组位姿(位置和方向)的车辆轨迹进行估计,同时建立环境地图。除了自我定位之外,构建地图还可以用于避障、目标识别、任务规划等[1]。
作为第一级分类,SLAM系统可分为拓扑和度量两个方面[2],[3],[4],[5]。在本文中,我们着重于后者,它考虑到环境的几何信息,并建立了一个具有物理意义的环境地图[6],[7]。这些方法可进一步分类为基于直接法和基于特征的系统。直接法是在相同点在不同视角的成像平面中的灰度值是不变的假设下,通过最小化相邻帧之间的光度误差来估计相机的运动(这种方法的例子可以在[8],[9],[10]找到),在这项工作中,我们沿着相邻帧提取并跟踪一组图像特征(通常是关键点)就像基于特征的方法。然后,通过最小化相应观察特征和从先前帧投影的特征之间的投影误差来估计相机姿态[11],[12]。当重新访问地图的某个位置(闭合回路)时,会进行一个SLAM中关键的步骤,系统会校正地图中的不一致和累积轨迹的趋势[11]。
值得注意的是,上述方法的性能通常会在低纹理环境中降低,在这种环境中通常很难找到足够数量的点特征。在这种情况下,位姿估计的精度会下降,有时甚至是系统完全失效。然而,许多这样的低纹理环境含有丰富的线段特征的平面元素,因此可以从它们中提取线段特征。我们将这两种类型的特征(关键点和线段)相互补充,组合成更高精度和鲁棒性的SLAM系统。此外,如图1(c)所示,由三维点和线段组成的结果地图比仅由点组成的地图可以从环境中提供更多的结构信息。因此,执行位置识别、语义映射或任务规划等高级别任务时,可以从中推断出更丰富的信息。
图1,线段特征在室外(a)和室内环境(b)中都很常见。除了改进相机定位以外,由于室内环境中有丰富的线段特征,所以图(c)的信息更丰富。
然而,这些好处是以检测和匹配线段图像的更多计算量为代价的[13],虽然有效地解决了特定的线段问题:部分遮挡、线段断开,但这使得特征跟踪与匹配以及地图和姿态优化的残差计算复杂化。这也就是为什么文献中提出的基于线特征的SLAM或从运动到结构(SFM)的解决方案数量如此有限的原因。此外,我们发现的少数解决方案只在高度结构化的环境中运行可靠,而在应用于更现实的环境(如KITTI或EuRoC数据集中记录的那些环境)时却显示出不可靠的结果。在这项工作中,我们通过比较线段特征的长度和方向来舍弃异常值,从而解决线段特定的跟踪和匹配问题,而对于残差计算,我们用地图的端点坐标代替线段。因此,由图像平面上这些端点的投影与观察到的端点相关联的有限条线段之间的距离来计算观察到的线段与其对应直线之间的残差。这样,我们就能够构建一个无缝地包含点和线的特征一致的成本计算。
这两种特征在机器人导航过程中也被用于闭环回路检测鲁棒性,其遵循了一种新的词袋方法,该方法结合了利用每一种特征的优点进行位置识别。总之,我们在文献[19]中提出的视觉里程表方法的基础上,提出了一种新颖的多用途双目视觉SLAM系统,即PL-SLAM,它结合了点和线段特征来执行实时机器人定位和构图。论文的主要贡献有:
(1)第一个开源SLAM系统,实时采用点和线段特征,由此能够在更广泛的环境中运行,同时生成丰富的几何地图。
(2)从零开始一个新的点对点的集束调整过程,其还无缝的考虑到点与线两种特征。
(3)文献[20]中提出的一种同时考虑了点和线段的描述的扩展词袋方法,以改善闭环回路。
二、相关工作
传统的基于特征的SLAM方法是沿着相邻帧跟踪关键点,然后最小化一些误差计算(通常基于重投影误差)来估计机器人的位姿。在最成功的方案中,我们可以重点聚焦于FAST SLAM[21]、PTAM[22]和ORB-SLAM[12],ORB-SLAM依赖于对ORB特征[23]的快速和连续跟踪,以及对点特征的连续观测的局部BA。然而,在低纹理的场景中,由于缺乏可重复的、可靠的特征,这些方法往往会失败或降低其准确性,从而阻碍了特征跟踪过程。对基于关键点的视觉SLAM技术进行详尽的调查[24],接下来,我们回顾基于关键点的可选图像特征的SLAM系统的发展现状:即边缘、直线或线段。
文献[25]中提出了一种将线特征融合到单目扩展卡尔曼滤波SLAM系统(EKF-SLAM)中的算法。在本文中,闭环检测依赖于一种假设与检验方法,该方法通过连接多个接近的关键点来实现实时性。如文献[26]所述,其他的研究采用边缘标志作为单目SLAM的特征,它不仅包括关键点情况下的局部平面信息,而且还考虑了局部边缘线段,因此引入了新的有价值信息作为边缘元素的方向。在这项工作中,他们为这类特征导出了合适的模型,并在粒子滤波系统中使用,实现了实时的性能。文献[10]还引入了结合亮度角落的边缘元素,以提高在低或高频纹理环境中的鲁棒性。
另一种基于模型的方法结合了从线段得出的界标方向的先验信息。因此,文献[27]中的方法提出了一种单目二维SLAM系统,该系统利用地面上的垂直线和水平线特征估计运动和地图。为此,他们提出了垂直线和水平线的两种不同参数化:垂直线表示为平面上的二维点(投影线和平面之间的交点),而水平线表示为投影在平面上的两个端点。最后,将提出的模型应用到EKF-SLAM系统中。文献[28]中提出了另一种基于模型的方法,作者介绍了结构线条在标准EKF-SLAM系统扩展中的应用,在曼哈顿世界的假设下,通过计算结构线条的消失点来估计结构线条的主方向。然而,值得注意的是,所有这些方法都仅限于非常结构化的场景和平面运动,因为它们仅基于线特征。
文献[15],[30]中的工作提出了一种通用方法,比较了八种不同的坐标参数化对单目EKF-SLAM的影响,包括使用点和线特征。然而,这些系统只能通过分析和统计工具进行验证,这些工具假定已经存在已知的数据关联,并且与我们的方案不同,它们没有实现可以检测和跟踪线段的完整的前端。
最后,在最近的文献[31]中提出了另一种构建基于3D线特征的SLAM系统的技术。为此,作者采用了两种不同的线段表示法:初始化和三维投影的普吕克直线坐标,以及后端优化的正交表示法。但是,不管是源代码是否可获得,使用的数据集都不包含任何基本事实,因此无法与我们的方案进行比较。
三、 PL-SLAM概述
PL-SLAM系统的总体结构如图2所示,接下来
图2,双目视觉PL-SLAM系统方案。
1、环境地图
该地图由一组关键帧(KFs)、检测到的地图点和地图线、共视图和生成树组成。
关键帧包含观察到的立体特征和其描述符以及3D相机位姿的信息,计算后的视觉描述符在后面的视觉词汇计算详细描述。
对于地图点和地图线,我们保存观察到的列表和每个检测到的点线的最具代表性的描述符。此外,对于点,我们还保留其估计的三维位置,而对于线段,我们保留其方向和端点的估计三维坐标。
最后,如文献[32]所示,共视性信息由一个图来建模:每个节点代表一个关键帧,关键帧之间的边只有在它们共享最少数量的路标时才被创建,在这项工作中,它被设置为20个路标(参见图3中的示例)。类似地,为了执行更快的闭合回路的优化,我们形成所谓的本质图,它比共视图密度小,因为当两个关键帧共享100多个路标观测值时,它们之间会创建一条边。最后,环境地图还包含一个生成树,它由包含所有关键帧的图中最小化的关联表示。
图3,在序列lt-frist的共视图中,绿线表示了连接关键帧的边缘。
2、特征跟踪
我们通过前面工作中的双目视觉里程算法进行特征跟踪[19]。简而言之,我们从一系列关键帧中跟踪图像特征(点和段),并计算它们的三维位置和协方差矩阵表示的相关不确定性。然后,将3D路标投影到新的相机位姿,并且将投影误差最小化,以获得相机姿态增量和与该估计相关联的协方差。这个过程在每一个新帧中重复,直到一个新的关键帧被插入到地图中。关于该特征跟踪过程的进一步讨论将在后面正式讨论。一旦将关键帧插入环境地图,有两个过程将并行运行:局部构图和闭环检测。
3、局部构图
局部构图过程中在共视图的最后一个关键帧和与最后一个关键帧相关联的关键帧之间寻找一个新的特征匹配。通过这种方式,我们建立了当前关键帧的所谓局部地图,其中包括与当前关键帧共享至少20个路标观测的所有关键帧以及它们观测到的所有路标。最后,对局部地图中的所有元素(关键帧位姿和路标位置)进行优化。该程序的详细说明将在第五节中介绍。
4、闭环回路
在与局部构图并行的情况下,如第六节所述,通过提取每个图像的视觉描述符,基于词袋方法来执行闭环回路检测。摄像机运动期间捕获的所有视觉描述符的帧都存储在数据库中,该数据库随后用于查找与当前帧相似的帧一个。只有当关键帧周围的局部序列也相似时,最佳匹配才被认为是闭环回路候选。最后,估计当前关键帧与闭环回路候选者之间的相对SE(3)变换,如果找到适当的估计,则通过利用位姿来优化(PGO)的过程校正闭环回路中涉及的所有关键帧位姿。
值得注意的是,双目视觉里程计系统在每一帧运行,而局部构图和闭环回路检测程序(在分离的线程中)只有在插入新的关键帧时才启动,从而使我们的系统能够达到实时性能。在不太可能的情况下,在局部构图和闭环回路检测线程完成之前发现新的关键帧,两个线程都将停止,局部构图将从以前的构图恢复并更新。
四、 特征跟踪
本节介绍了我们先前工作的最重要方面[19],其中涉及相邻帧之间的视觉里程估计,以及关键帧选择策略。基本上,点和线段都是沿着一系列关键帧进行跟踪的(见图1),然后通过最小化投影误差来计算相机的三维运动。
(1)点特征
在这项工作中,我们使用了著名的ORB方法[23],因为其在关键点检测方面有出色性能,以及它所提供的描述符的二进制特性,使得关键点匹配快速、高效成为可能。为了减少局外点的数量,我们只考虑测量左图像中的最佳匹配对应右图像中的最佳匹配的,即它们是相互最佳匹配。最后,我们还过滤出那些在描述空间中与第二个最佳匹配的距离小于与最佳匹配距离的两倍的匹配,以确保这些匹配足够有意义。
(2)线特征
线段检测(LSD)[33]被用于提取线段,提供了高精度和重复性。对于特征匹配和帧到帧跟踪,我们使用条带描述符(LBD)方法提供的二进制描述符来增加线段[34],该方法允许我们基于线的局部环境来查找线之间的对应关系。我们检查两个候选特征是否相互最佳匹配的方法以及特征是否足够有意义的方法与点特征类似。最后,我们利用线段提供的有效几何信息,筛选出具有不同方向和长度的匹配线。
(3)运动估计
一旦我们建立了两个立体框架之间的对应关系,我们就将关键点和线段从第一个框架投影到下一个框架。然后,将线和关键点投影误差用高斯牛顿法最小化,迭代估计摄像机的自我运动。为了处理异常值,我们采用Pseudo-Huber的损失函数,并执行两步最小化,如文献[35]的方案。最后,我们得到了两个相邻帧之间的增量运动估计,其可由以下正态分布建模:
(4)关键帧选择
为了确定何时在地图中插入新的关键帧,我们遵循了文献[36]中的方法,该方法利用了相对运动估计的误差。因此,根据等式(1),我们通过以下表达式将协方差矩阵的不确定性
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[235864],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。