Ⅰ简介
摘要
在本文中,我们提出了一种新的绘图系统,可以使用RGB-D摄像机稳健地生成高精度的三维地图。我们的方法不需要其他传感器或里程计。凭借微软Kinect等低成本,轻量级RGB-D传感器,我们的方法适用于小型家用机器人,如真空吸尘器,以及四轮机等飞行机器人。此外,我们的系统还可以用于详细的三维模型的徒手重建。除了系统本身,我们对公开可用的基准数据集进行了全面的实验评估。我们分析和讨论了几个参数的影响,如选择功能描述符,可视功能的数量和验证方法。实验结果表明,我们的系统可以稳健地处理具有挑战性的场景,例如快速摄像机运动和功能差的环境,同时足够快速进行在线操作。我们的系统完全可以作为开源使用,并已被机器人社区广泛采用。
关键词 - 本地化,映射,开源,RGB-D,同时定位和映射(SLAM)。
同步定位和映射(SLAM)问题是过去十年中机器人社区中最活跃研究的问题之一。机器人工作空间地图的可用性是自动执行若干任务(包括本地化,计划和导航)的重要要求。特别是对于在复杂,动态环境中工作的移动机器人,例如,在工厂楼层或医院中完成运输任务,重要的是他们可以仅使用车载传感器快速生成(并维护)其工作空间的3D地图。例如,操纵机器人需要详细的工作空间模型以进行无碰撞的运动规划,而飞行器需要详细的地图进行定位和导航。虽然以前许多3D绘图方法依赖于昂贵且沉重的激光扫描仪,但基于结构光的RGB-D相机的商业发布提供了一种有吸引力的,强大的替代方案。在这项工作中,我们将描述利用RGB-D相机提供的密集色彩和深度图像的第一个RGB-DSLAM系统。与之前的工作相比,我们引入了几个扩展,旨在进一步提高稳健性和准确性。特别地,我们建议使用环境测量模型(EMM)来验证由特征匹配和迭代最近点(ICP)算法估计的变换。在广泛的实验中,我们展示了我们的RGB-D SLAM系统允许我们
在具有挑战性的情况下,在长轨迹上准确跟踪机器人姿势。为了让其他研究人员能够使用我们的软件,重现结果并对其进行改进,我们在开源许可下发布了所提供的系统。代码和详细的安装说明可在线获取[1]。
Ⅱ.Related Work
轮式机器人通常依赖于2D激光范围扫描仪,其通常在高频下提供非常精确的环境几何测量。为了计算观测之间的相对运动,大多数现有的SLAM(以及仅定位)系统使用迭代最近点(ICP)算法的变体[2],[3],[4]。特别适用于人造环境的变体使用点到线度量[5]。最近的方法表明,使用两个激光测距扫描仪和ICP可以估计机器人姿态的毫米精度[6]。 ICP的缺点包括依赖于良好的初始猜测以避免陷入局部最小值并且缺乏对匹配的整体质量的测量。使用平面定位和可移动激光范围扫描仪的方法,例如,在具有平移 - 倾斜单元的移动基座上或在操纵器的尖端处,允许2D传感器在3D中的精确定位。结合IMU,这也可用于创建直升机[7]的地图。 Visual SLAM方法[8],[9],[10],也被称为“结构和运动估计”[11],[12]使用相机作为传感器计算机器人的运动和地图。立体相机通常用于从各个图像的纹理区域中的视差获得稀疏距离信息。与基于激光的SLAM相比,Visual SLAM系统通常从相机图像中提取稀疏关键点。视觉特征点的优点是比典型的几何结构更具特色,这简化了数据关联。流行的通用关键点检测器和描述符包括SIFT [13],SURF [14]和ORB [15]。描述符可以很容易地与不同的关键点检测器组合。在我们的实验中,我们使用最初为描述符提出的检测器。对于SURF,检测时间在运行时间中占主导地位,因此我们结合Shi和Tomasi [16]提出的关键点检测器进一步分析了描述符,这比检测器中提出的检测器更快(尽管价格更低,重复性更低)。 [14]。我们在第IV-B节中比较了SLAM系统中上述描述符的性能。最近推出的RGB-D相机,如Microsoft Kinect或ASUS Xtion Pro Live,为激光扫描仪提供了有价值的替代品,因为它们以低廉的价格,尺寸和重量提供密集的高频深度信息。深度传感器投射红外光谱中的结构光,其由具有小基线的红外相机感知。由于结构光传感器对照明敏感,因此它们通常不适用于直射阳光。飞行时间(TOF)相机对阳光不太敏感,但分辨率较低,噪声较大,校准难度较大,而且成本较高。第一个科学出版的RGB-D SLAM系统由Henry等人提出。 [17]他们将视觉特征与GICP结合使用[18]来创建和优化姿势图。遗憾的是,软件和用于评估的数据都没有公开,因此不能进行直接比较。 KinectFusion [19]是一种令人印象深刻的表面重建方法,它基于一个体素网格,包含到表面的截断符号距离[20]。每个测量值直接融合到体素表示中。与我们采用的帧到帧比较相比,这减少了漂移,但是缺乏通过闭环来从累积漂移中恢复的能力。实现了实时性能,但需要高性能的图形硬件。体素网格的大小对内存使用具有立方影响,因此KinectFusion仅适用于小工作空间。 Kintinuous [21]克服了通过使用当前相机姿势虚拟移动体素网格来实现此限制。从重建体积中移出的部分是三角形的。然而,到目前为止,系统无法处理循环闭包,因此可能无限期地漂移。我们的实验表明轨迹估计的质量相当。曾等人。 [22]表明,使用八叉树存储距离值可以大大减少体素网格的内存需求。胡等人。 [23]最近提出了一种SLAM系统,该系统在具有和不具有可用深度的束调整之间切换,这使得其对于缺乏深度信息(例如,由于距离限制和阳光)更加鲁棒。我们的系统是专为Kinect型传感器设计的第一个SLAM系统之一。与其他RGB-D SLAM系统相比,我们对整个系统进行了广泛的评估[24],并自由地提供了一个开源实现来刺激科学的比较和进展。虽然许多讨论的方法具有良好的执行能力,但很难比较,因为评估数据不可用。因此,我们提倡使用公开可用的基准并开发了TUM RGB-D基准[25],该基准提供了具有不同困难的几个序列。 它包含每个序列的传感器轨迹的同步地面实况数据,使用高精度运动捕捉系统捕获。 每个序列由约500至5,000个RGB-D帧组成。
III. APPROACH
- 系统架构概述
通常,基于图形的SLAM系统可以分为三个模块[26],[27]:前端,后端和最终地图表示。前端处理传感器数据以提取几何关系,例如在不同时间点的机器人和地标之间的几何关系。前端特定于所使用的传感器类型。除了将运动本身测量为例如车轮编码器或IMU的传感器之外,机器人的运动需要根据一系列观察来计算。根据传感器类型,可以应用不同的方法来计算两个观测值之间的运动。在RGB-D相机的情况下,输入是RGB图像IRGB和深度图像ID。我们通过从IRGB中提取高维描述符向量d∈R64来确定地标,并将它们与y∈R3一起存储,它们相对于观测姿势x∈R6的位置。为了处理例如通过传感器噪声引入的固有不确定性,SLAM系统的后端构造表示几何关系及其不确定性的图。该图结构的优化可用于获得所表示的机器人轨迹的最大似然解。利用已知的轨迹,我们可以将传感器数据投影到一个公共坐标系中。然而,在大多数应用中,需要任务特定的地图表示,因为直接使用传感器数据将是非常低效的。因此,我们根据RGB-D数据创建三维概率占用图,该图可以有效地用于导航和操纵任务。所示系统的示意图如图3所示。以下部分描述了系统的图示部分。
- 运动估计
我们的SLAM系统的前端使用传感器输入,其形式为地标位置Y = y1,.... yn。计算几何关系zij,它允许我们估计机器人在状态xi和xj之间的运动。视觉特征通过提供相似性度量来简化地标的数据关联。为了匹配一对关键点描述符(di,dj),计算它们在描述符空间中的距离。对于SIFT和SURF,建议的距离是欧式距离。然而,Arandjelovi'c和Zisserman建议使用Hellinger内核来比较SIFT特征,他们报告了对象识别的实质性改进。我们实施了两种距离测量并简要讨论第IV-B节对准确性的影响。对于ORB,使用汉明距离。然而,就其本身而言,距离不是作为匹配距离的关联标准,描述符可以有很大差异。由于特征空间的高维度,因此学习拒绝阈值的映射通常是不可行的。正如Lowe所提出的,我们求助于特征空间中最近邻居和第二近邻之间的比率。假设关键点仅匹配另一个图像中的另一个关键点,第二个最近邻居应该远离更远。因此,可以有效地使用最近和第二最近邻居之间的比率的阈值来控制假阴性和假阳性之间的比率。为了对抗假阳性匹配,我们在估计两个帧之间的转换时使用RANSAC [29],这被证明对个体不匹配非常有效。我们从三个特征对应中快速初始化转换估计。通过使用基于相应特征之间的马氏距离的阈值θ计算内点来验证变换。为了在严重缺失深度值的情况下提高稳健性,我们还包括无需深入读取验证的功能。特别是在几乎没有可能的匹配或许多类似特征的情况下,利用可能的特征匹配是至关重要的。因此,我们以允许的比率对匹配进行阈值处理。如Chum等人所提出的那样,通过降低阈值θ来递归地重新估计变换是非常有益的。 [30]。结合最小数量匹配特征的阈值,这种方法在许多情况下都很有效。
对于较大的人造环境,该方法的有效性受到限制,因为这些通常包含重复结构,例如相同类型的椅子,窗户或重复壁纸。 通过这样的相同实例给出足够的相似特征,两个图像之间的相应特征匹配导致估计伪造变换。 最小匹配数量的阈值有助于防止具有少量特征的对象的随机相似性和重复,但是我们的实验表明,将阈值设置得足够高以排除系统错误关联的估计值会导致在没有提到含糊不清的情况下的性能损失。 因此,第III-C节中提出的替代验证方法是一种非常有益的扩展。
我们在RANSAC的每次迭代中使用最小二乘估计方法[31]来根据建立的3D点对应来计算运动估计。为了将测量的强烈各向异性不确定性考虑在内,可以通过最小化马氏距离而不是对应关系之间的欧氏距离来改善变换估计。 Henry等人也独立提出了该方法。 [17]在他最近的工作中称为两帧稀疏束调整。我们通过在运动估计之后应用g2o(参见第III-E节)来实现这一点。我们优化了仅包含两个传感器姿态和先前确定的内点的小图。然而,在我们的实验中,这个额外的优化步骤仅显示了总体轨迹估计的略微改进。我们还研究了包括其他研究人员应用的全局图优化中的地标。与我们的期望相反,我们只能实现微小的改进。由于地标的数量远远高于姿势的数量,因此优化运行时间显着增加。
- 环境测量模型
给定高百分比的内点,可以假设所讨论的运动估计方法是成功的。然而,低百分比不一定表示不成功的变换估计并且可能是帧之间的低重叠或少数视觉特征的结果,例如,到期 运动模糊,遮挡或缺乏纹理。 因此,使用特征对应的ICP和RANSAC都缺乏可靠的故障检测。
因此,我们开发了一种验证变换估计的方法,与所使用的估计方法无关。 我们的方法利用结构化密集深度数据的可用性,特别是包含密集的自由空间信息。 我们建议使用基于波束的环境测量模型(EMM)。 EMM可用于惩罚姿势估计,在该估计下,考虑到感测过程的物理特性,传感器测量是未必会发生的。 在我们的例子中,我们使用光束模型来惩罚一个深度图像的观察点应该被另一个深度图像的一个点遮挡的变换。
EMM已经在2D蒙特卡罗定位和SLAM方法[32]的背景下进行了广泛研究,其中它们用于根据当前观察确定粒子的可能性。基于光束的模型主要用于2D测距仪,例如激光测距扫描仪,其中范围读数使用地图中的光线投射进行评估。虽然这通常在2D占用网格图中完成,但是Oßwald等人已经提出了这种基于波束的模型的最近适应性,用于在3D体素图中定位。 [33]。不幸的是,EMM不能轻易地适应我们的目的。首先,由于输入数据的大小,在每个时间步长中计算甚至部分3D体素图在计算上是昂贵的。其次,由于波束模型只为每个波束提供概率密度[32],我们仍然需要找到一种方法来决定是否接受基于观测的变换。由此产生的概率密度值得到了预期不构成绝对的质量标准。单个梁的密度的乘积也不是。例如,完美匹配的值将根据范围值而不同。在蒙特卡罗方法中,概率密度用作确定粒子权重的似然值。在重采样步骤中,该重量用作颗粒之间质量的比较测量。这不适用于我们的上下文,因为我们不对一个测量的几个转换候选者进行比较。
因此,我们需要计算绝对质量测量。 我们建议使用类似于统计假设检验的程序。 在我们的例子中,正在测试的零假设是假设在应用变换估计之后,空间对应的深度测量源自相同的下层表面位置。
为了计算两个深度图像I0D和ID的对准的空间对应关系,我们将I0D的点y0i投影到ID中以获得点yi(表示没有素数)。 图像栅格允许快速关联到相应的深度读数yj。 由于yj是相对于传感器姿态给出的,因此它隐含地表示一个光束,因为它包含有关自由空间的信息,即原点和测量之间的空间。 不会投影到ID的图像区域或没有有效深度读取的像素上的点将被忽略。
对于所考虑的点,我们根据Khoshelham和Elberink [34]给出的协方差方程对测量噪声进行建模,我们从中为每个点yj构造协方差矩阵Σj。 相应地表示第二深度图像中的点的传感器噪声。 为了将点的协方差矩阵变换为另一个传感器姿势的坐标系,我们使用R(即估计变换的旋转矩阵)旋转它,即,
从第二帧给出观察yj的观察概率yi可以被计算为
由于观测结果是独立的,给定真正的障碍物位置z,我们可以将右侧重写为
利用高斯对称性,我们可以这样写:
积分中包含的两个正态分布的乘积可以重写[35],因此我们得到
这里,
(6)中积分的第一项相对于z是恒定的,这允许我们将其移出积分
由于我们没有关于p(z)的先验知识,我们认为它是均匀分布。 由于它是常数,因此p(z)的值变得独立于z,我们可以将它移出积分。 我们将在下面看到,尽管选择了不合适的先验[36],后验分布仍然是适当的分布。 剩下的积分只包含z上的正态分布,并且通过概率密度函数的定义,减少到1,只留下
非正式地说,没有关于真正障碍的先验知识也意味着我们没有关于测量的先验知识。 这可以通过扩展归一化因子来显示
并使用与上述相同的推理,我们获得
结合(14)和(10),我们得到最终结果
我们可以将所有数据关联的上述三维分布组合成3N维正态分布,其中N是数据关联的数量。 假设独立测量结果
这里是包含N个单独项的列向量,并且Σ包含在(块)对角线上相应的协方差矩阵Σij。
请注意,上述公式不包含[32]中给出的短读数的附加术语,因为我们期望在映射期间存在静态环境并且想要惩罚这种范围读数,因为它是我们未对准的主要指示。 相反,投射在相应深度值后面的范围读数是常见的,例如,当从不同视角观察障碍物后面时。 “被遮挡的异常值”,因此忽略远远落后于相关光束的点(例如,超过三个标准偏差)。 然而,我们确实想要使用“遮挡内部”的正信息,即在相关光束后面紧密投射的点,这实际上证实了变换估计。 在检查统计特性时必须小心,因为这有效地使内部数据加倍。 图4说明了相关观察的不同情况。
然后,通过测试χ23N分布(具有3N自由度的卡方分布)的ΔY的马哈拉诺比斯距离的p值,可以使用标准假设检验来拒绝某个置信水平的变换估计。 然而,在实践中,该测试对变换估计中的小误差非常敏感,因此几乎没有用处。 即使在小的不对中情况下,在给定模型下,深度跳跃的异常值也是非常不可能的,并且会导致拒绝。 因此,我们应用一种随变换误差更平稳变化的度量。
类似于稳健统计数据,如中位数和中位数绝对偏差,我们使用假设检验对个体观察的分布(15),并计算异常值的分数作为拒绝转换的标准。 假设完美对准和独立测量,可以从正态分布的累积密度函数计算在例如三个标准偏差内的内部分数。 内点的分数与异常值的绝对值无关,因此平滑退化以增加变换中的误差,同时保持直观的统计意义。 在我们的实验(第IV-D节)中,我们表明在该分数上应用阈值可以有效地减少高度错误的变换估计,这将极大地降低地图的整体质量。
- 视觉里程计和回环检测
在连续帧之间应用例如在部分III-B中描述的过程估计过程提供视觉测距信息。但是,个别估计是有噪声的,特别是在功能较少或大多数功能远离甚至超出范围的情况下。通过另外估计对直接前任之外的帧的变换来组合若干运动估计,实质上提高了准确度并减少了漂移。成功的变换估计到更早的帧,即循环闭合,可以大大减少累积误差。当然,这会增加计算费用与估计数量的线性关系。对于多核处理器,这在一定程度上得到了缓解,因为各个帧到帧的估计是独立的,因此可以并行化。然而,新帧与所有前任帧的比较是不可行的,并且估计有效变换的可能性受到视场的重叠,关键点检测器的可重复性和关键点描述符的鲁棒性的强烈限制。
Fig. 5. 序列“fr1 / fl oor”的姿势图。 顶部:转换估计连续前导和随机取样帧。底部:使用测地邻域对先前找到的匹配进行额外利用。 在两次运行中,处理了用于帧到帧匹配的相同总候选帧数。 在具有挑战性的“机器人SLAM”数据集中,平均误差减少了26%。
因此,我们需要一种更有效的策略来选择用于估计变换的候选帧。大量图像中的图像识别主要在图像检索系统[37]的背景下进行了研究,但也适用于大规模的SLAM [38]。虽然这些方法可能需要跨越数百公里的数据集,但它们需要一个简单的训练步骤来构建有效的数据结构。由于传感器的限制,我们专注于室内应用,并提供一种有效,直接的实现算法,以建议帧 - 框架匹配的候选者。我们采用了三种不同候选人的策略。首先,我们将运动估计应用于n个前辈。为了有效地减少漂移,我们其次在前一帧的测地(图)邻域中搜索循环闭包。我们从姿势图计算出有限深度的最小生成树,其中顺序前驱作为根节点。然后,我们从树中删除n个前一个前导,以避免重复,并从树中随机绘制k帧,偏向早期帧。因此,我们引导搜索之前找到的潜在成功估算。特别是,当机器人重新访问一个地方时,一旦发现一个循环闭包,这个过程就会通过优先考虑采样中的循环闭合附近的候选来利用关于循环的知识。
为了找到大的循环闭包,我们从一组指定的关键帧中随机抽取l帧。 当一个框架无法与前一个关键帧匹配时,该框架将添加到该组关键帧中。 以这种方式,用于采样的帧的数量大大减少,而关键帧之间的帧的视图总是与至少一个关键帧重叠。
图5显示了在没有和使用测地邻域的采样的情况下构建的姿势图之间的比较。 找到的循环闭包的扩展清晰可见。 顶部图形是通过匹配n = 3个直接前导和k = 6个随机采样的关键帧创建的。 底部图形是使用n = 2,k = 5和l = 2个来自测地区域的采样帧创建的。 表I示例性说明了我们的实验子集的参数化。 这些参数的选择对系统的性能至关重要。 简而言之,功能丰富的序列可以设置低值,就像“fr1 / desk”一样。 对于较长的序列,需要增加值。
- 图优化
由SLAM前端计算的传感器姿势之间的成对变换估计形成姿势图的边缘。 由于估计误差,边缘不形成全局一致的轨迹。 为了计算全局一致的轨迹,我们使用g2o框架[39]优化姿势图,该框架执行可以表示为图形的非线性误差函数的最小化。 更确切地说,我们最小化的误差函数形式为
找到最佳轨迹,这里 是传感器位姿的矢量。 此外,术zij和Ωij分别表示与位姿xi和xj相关的约束的均值和信息矩阵,即由前端计算的成对变换。 最后,e(xi,xj,zij)是矢量误差函数,其测量位姿xi和xj满足约束zij的程度。 当xi和xj与约束完全匹配时为0,即位姿的差异与估计的变换完全匹配。
在大循环闭合的情况下,即当重新访问地图的已知部分时,全局优化尤其有益,因为图中的循环闭合边缘减少了累积误差。不幸的是,运动估计步骤中的大误差会妨碍图的大部分的准确性。这主要是在特征的系统错误关联领域中的问题,例如,由于对象的重复出现。对于发现几个虚假变换的挑战性数据,在图优化之后获得的轨迹估计可能是高度失真的。第III-C节中提出的验证方法大大提高了错误转换估计的速率。但是,在每种情况下都无法保证转换的有效性。优化后图形的残差允许确定边缘的不一致性。因此,我们在等式17的加数上使用阈值来在初始收敛之后修剪具有高误差值的边缘并继续优化。图10显示了这种方法的有效性,特别是与EMM结合使用时。
- 地图表示
到目前为止描述的系统计算全局一致的轨迹。 使用此轨迹,我们可以将原始点测量投影到公共坐标系中,从而创建世界的点云表示。 将传感器视点添加到每个点,可以创建表面图。 然而,这样的模型是高度冗余的并且需要大量的计算和存储器资源,因此点云通常是二次采样的,例如使用体素网格。
为了克服点云表示的局限性,我们使用3D占用网格图来表示环境。 在我们的实现中,我们使用基于八叉树的映射框架OctoMap [40]。 体素以高效的树结构进行管理,这导致紧凑的存储器表示,并且固有地允许以多种分辨率进行地图查询。 概率占用估计的使用还提供了应对噪声测量和姿势估计误差的手段。 与基于点的表示形成对比的一个关键优势是自由空间和未映射区域的显式表示,这对于避免碰撞和探索任务是必不可少的。
深度图像中的存储器有效2.5D表示不能用于存储完整的映射。 使用显式3D表示,添加到点云图的每个帧在内存中需要大约3.6兆字节。 根据我们实验中使用的基准数据构建的未过滤的地图需要两到五千兆字节。 相比之下,分辨率为2cm的相应OctoMaps的范围仅为4.2到25兆字节。 如果地图是二进制存储的(即,仅“自由”对“占用”),则可以进一步减少到平均几百千字节。
在缺点方面,OctoMap的创建需要更多的计算资源,因为每个深度测量都被放射到地图中。 每帧所需的时间高度依赖于体素大小,因为每条光线的遍历体素数随着分辨率而增加。
单个核心上的体素大小为5cm时,每100,000个点的光线投射大约需要一秒钟。 在5mm分辨率下,如图1所示,在所提到的硬件上对单个RGB-D帧进行光线投射大约需要25秒。 因此,对于体素图的在线生成,我们需要降低分辨率并仅投射云的一部分。 在我们的实验中,使用10cm的分辨率和16的子采样因子允许30Hz更新地图并产生适合于在线导航的地图。 然而,注意,在通过大环闭合获得的过去轨迹的主要校正的情况下,不能有效地更新体素图。 因此,在大多数应用中,在发生此类事件时(重新)创建地图是合理的。
IV. EXPERIMENTAL EVALUATION(实验评估)
对于旨在在真实世界应用中具有强大功能的3D SLAM系统,有许多参数和设计选择会影响整体性能。 为了确定每个参数对我们系统整体性能的影响,我们采用了RGB-D基准[25]。 在下文中,我们首先描述基准数据集和错误度量。 随后,我们通过实验的定量结果分析了所提出的系统。 注意,所呈现的结果是从fl ine获得的,处理每个记录的帧,这使得定性结果独立于所使用的硬件。 但是,所提出的系统也已成功用于在线映射。 我们使用了3.40GHz的Intel Core i7 CPU和用于所有实验的nVidia GeForce GTX 570显卡。
- RGB-D基准数据集
RGB-D基准测试提供了使用两个Microsoft Kinect和一个Asus Xtion Pro Live传感器捕获的几个序列的RGB-D数据集。 通过高精度运动捕捉系统捕获的传感器轨迹的同步地面实况数据可用于所有序列。 基准测试还提供评估工具,用于在给定估计轨迹的情况下计算多个误差度量。 我们在我们的实验中使用绝对轨迹误差(ATE)的根平方来测量估计轨迹与地面实际轨迹的偏差。对于轨迹估计 和相应的ground truth X,它被定义为
即,相应的地面实况和估计的姿势之间的欧几里德距离的均方根。 为了使误差度量独立于表示轨迹的坐标系,使轨迹对齐,使得上述误差最小。 使用时间戳建立姿势的对应关系。
地图误差和特定数据集的轨迹误差很大程度上取决于给定的场景和各个误差函数的定义。在这项工作中选择的误差度并不直接评估地图的质量。 但是,可以合理地假设地图中的误差与轨迹的误差直接相关。
数据序列涵盖了广泛的挑战。 “fr1”序列组包含例如快速运动,运动模糊,快速变化的照明条件和短期缺乏显着视觉特征。但总的来说,这种情况具有大小和丰富的功能。图6显示了我们的系统为“fr1 / desk”序列创建的体素图。为了强调我们系统的稳健性,我们进一步对“机器人SLAM”类别的四个序列进行评估,其中Kinect安装在Pioneer 3机器人上。除了上述困难之外,这些序列还结合了许多代表高度挑战性输入的特性。该工作室位于工业大厅内,几乎没有独特的视觉特征。由于大厅的大小和Kinect的相对较短的最大范围,序列包含几乎没有深度测量的任何视觉特征的延伸。此外,出现相同类型的对象的重复实例可能容易导致错误的关联。有些物体,如电缆和三脚架,具有非常薄的结构,因此它们仅在RGB图像中可见,但在深度图像中不会出现,导致具有错误深度信息的特征。重复出现的杆具有螺旋形图案,类似于理发杆,表示从不同角度观察时的垂直运动。序列还包含短时间的传感器中断。序列的期望属性是发现循环闭合的可能性。请注意,即使序列包含车轮里程计并且运动大致限于平面,我们也不会在所呈现的实验中使用任何其他信息。有关数据集的更多信息可以在基准测试的网页上找到1。图2显示了“fr2 / pioneer_slam”序列的地面真实轨迹的2D投影以及我们的方法的相应估计以及计算的ATE均方根误差。
最近,在MIT Stata中心捕获的RGB-D数据集已经可用2。 我们的系统对该数据集的229m长序列获得的结果在表I中给出。
表I用本系统获得的详细结果。 除了“FR2 / LARGE NO LOOP”之外,我们的系统实现了比[21]中提出的相应最佳结果更好的轨迹重建。 我们的系统也对最近的MIT STATA DATASET的229M长的数据表感到满意。
- 视觉特征
精度和运行时性能最具影响力的选择之一是使用的特征检测器和描述符。我们评估了SIFT,SURF,ORB以及ShiTomasi探测器与SURF描述符的组合。我们在实现中使用OpenCV实现,除了SIFT,我们采用基于GPU的实现[41]。图7中的图显示了“fr1”数据集的性能比较。比较结果清楚地表明,每个功能都为不同的用例提供了权衡。 ORB以及Shi-Tomasi和SURF的组合对于具有有限计算资源的机器人或者需要实时性能的应用(即,传感器速率为30Hz)可能是很好的选择。在“fr1”数据集上具有大约15cm的平均误差,这些选项的提取速度以降低的准确性和鲁棒性为代价,这使得它们仅适用于良性情况或者具有额外的感测,例如测距。相比之下,如果GPU可用,SIFT显然是最佳选择,因为它提供最高的准确度(中值RMSE为0.04m)。
另一个有影响的选择是每帧提取的特征数量。 对于SIFT,增加每帧提取的特征数量可提高精度,直到每帧大约600到700个特征。 使用更多功能时,无法获得对准确性的显着影响。
在我们的实验中,我们还评估了匹配SIFT和SURF描述符与Hellinger距离而不是欧氏距离的性能影响,正如最近在对象识别的背景下提出的[28]。 在我们的实验中,我们可以观察到改进的特征匹配导致一些数据集的改进高达25.8%。 但是,对于使用过的数据集中的大多数序列,改进并不重要,因为误差主要是除了错误特征匹配的影响之外的影响。 由于距离测量的变化既不会明显增加运行时间也不会显着增加内存需求,我们建议采用Hellinger距离。
- 图优化
图优化后端是我们SLAM系统的关键部分。 它显着减少了轨迹估计的漂移。 但是,在某些情况下,图形优化也可能扭曲轨迹。 造成这种情况的常见原因是由于场景中的重复结构导致的错误的“循环闭合”,或者由于系统错误的深度信息导致的高度错误的变换估计,例如,在薄结构的情况下。 通过检测与其他估计不一致的变换,可以实现增强的鲁棒性。 我们通过基于从g2o获得的马哈拉诺比斯距离优化后修剪边缘来做到这一点,该距离测量优化之前和之后的各个转换估计之间的差异。 最近发表了类似的优化边缘折扣方法[42],[43]。
图10显示了对“fr2 / slam”序列的边缘修剪的评估,其中包含几个提到的缺陷。 右边的方框显示,通过修剪错误的边缘可以显着提高精度。 从绿色框中可以看出,使用拒绝方法,SLAM前端中的EMM以及SLAM后端中边缘的修剪可以实现最佳性能。
图10.在具有挑战性的场景(“Pioneer SLAM”)中,EMM的应用导致SLAM结果大大改善。 基于统计误差修剪图形边缘也证明是有效的,特别是与EMM组合时。 该图已经从240次运行中生成,并显示了所命名技术的连续应用。 这些运行表示所需EMM内部分数(如图9b所示),特征数(600-1200)和匹配候选(18-36)的各种参数化。
由于优化的主要计算成本在于求解线性方程组,我们研究了所用求解器的效果。 g2o提供三个求解器,其中两个基于Cholesky分解(CHOLMOD,CSparse),一个实现预条件共轭梯度(PCG)。 在准确性和计算时间方面,CHOLMOD和CSparse与初始猜测相比,不如PCG。 特别是在初始化良好的情况下,PCG的运行时间会急剧减少。 在在线操作中,这通常由先前的优化步骤给出,除非大的闭环导致图形的形状发生重大变化。 因此,PCG是在线操作的理想选择。 然而,对于fl ine优化,CHOLMOD和CSparse的结果更可靠。 对于所提出的实验,我们使用CSparse优化fl ine的姿势图。
- 环境测量模型(EMM)
在本节中,我们描述了第III-C节中提出的环境测量模型(EMM)的实现,并评估了鲁棒性的增加。
我们的系统试图估计捕获的RGB-D帧到先前帧的选择的变换。 在计算这样的变换之后,我们通过将三西格玛规则应用于(15)来计算内点,异常值和遮挡点的数量。 如上所述,在马氏距离为3的情况下投射的点数被计为内点。 如果将异常值投影到相应的测量值之后,则将异常值分类为被遮挡。
我们的系统试图估计捕获的RGB-D帧到先前帧的选择的变换。 在计算这样的变换之后,我们通过将3σ准则应用于(15)来计算内点,异常值和遮挡点的数量。 如上所述,在马氏距离为3的情况下投射的点数被计为内点。 如果将异常值投影到相应的测量值之后,则将异常值分类为被遮挡。
投影点和光束之间的数据关联不对称。 如图4所示,投射到另一帧的图像区域之外的点没有关联,然而在反转过程中,它可以被投影点遮挡或遮挡。 因此,我们评估新图像中的点到旧帧的深度图像的投影,反之亦然。 为了减少对运行时和内存的要求,我们对深度图像进行子采样。 在所提出的实验中,我们仅使用深度图像的每第8行和每列构建我们的点云,有效地将要存储的云减少到80乘60的分辨率。这也降低了测量之间的统计依赖性。 在我们的实验中,双向EMM评估的平均运行时间为0.82ms。
我们使用内部I的数量以及内部和异常值的总和I + O来计算点云对齐的质量q,其中. 为了避免接受几乎没有重叠的变换,我们还要求内点至少是观察点的25%,即内点,异常值和遮挡点。
为了评估使用EMM拒绝变换的效果,我们首先使用“fr1”数据集上的质量q的八个最小值重复运行系统。 为了避免根据特定的参数设置报告结果,我们显示了许多具有不同参数设置的试验的统计数据。 从0.25到0.9的q阈值导致相对于基线的微小改善(没有EMM)。 姿势图的边缘数量仅最小程度地减少,并且由于额外的计算,整体运行时间略微增加。 对于高于0.95的阈值,鲁棒性降低。 虽然大多数试验未受影响,但系统在许多试验中表现更差。
类似于此发现,基于图中的马哈拉诺比斯距离的修剪边缘不会改善“fr1”数据集的结果。 我们从这些实验中得出结论,“fr1”数据集中的误差并非源于单个未对准,因为可以使用其他更高精度的对准。 在这种情况下,基于EMM的拒绝将不会提供实质性的增益,因为它只能过滤估计值。
相反,对“机器人SLAM”类别的四个序列的相同评估导致大大提高的准确性和鲁棒性。 由于前一节中描述的属性,拒绝不准确的估计和错误的关联显着减少了最终轨迹估计中的误差。 如图9b所示,EMM的使用将质量测量的阈值的平均误差降低至0.9。
V. CONCLUSION
在本文中,我们介绍了一种用于RGB-D传感器的新型3D SLAM系统,例如Microsoft Kinect。 我们的方法从彩色图像中提取视觉关键点,并使用深度图像以3D方式对其进行定位。 我们使用RANSAC来估计相关关键点之间的转换,并使用非线性优化来优化姿势图。 最后,我们生成了一个可用于机器人本地化,导航和路径规划的体积三维环境贴图。
为了提高变换估计的可靠性,我们引入了基于波束的环境测量模型,该模型允许我们评估帧到帧估计的质量。我们的方法高度准确地估计了基于这种质量测量的方法,我们的方法可以有力地应对高度挑战的场景。 我们基于公开可用的RGB-D基准对所有组件和参数进行了详细的实验评估,并对不同类型场景中的预期误差进行了表征。 我们还提供了有关RGB-D SLAM系统属性的详细信息,这些属性对其性能至关重要。
为了让其他研究人员能够重现我们的结果,改进它们并在它们的基础上进行构建,我们已经完全发布了运行和评估RGB-D SLAM系统作为开源的所有源代码。
图9.评估所提出的系统对“机器人SLAM”数据集(a)的序列的准确性。 针对各种质量阈值的RGB-D基准的“机器人SLAM”场景评估所提出的环境测量模型(EMM)。 横轴上的值0.0表示没有使用EMM的情况。 EMM的使用大大减少了误差(b)。
图8.使用SIFT特征评估所提出的系统对“fr1”数据集序列的准确性。 该图是使用不同参数集从288次评估运行生成的。 所有序列的帧速率相似。 上述实验的中值帧率为13.0Hz,最小值为9.1Hz,最大值为16.4Hz。
图7.关于特征类型的精度(左)和运行时(右)的评估。 关键点检测器和描述符在准确度和处理时间之间提供不同的权衡。 计时不包括图优化。 上述结果在“fr1”数据集的九个序列上计算,每个序列具有四个不同的参数化。