vslam论文6:Structure PLP-SLAM: Efficient Sparse Mapping and Localization using Point, Line and Plane

Abstract

本文提出了一种利用点和线进行鲁棒摄像机定位的视觉SLAM系统,同时对环境进行分段平面重建(PPR),实时提供结构图。与单目相机并行跟踪和映射的最大挑战之一是在重建几何原语时保持尺度的一致性。这进一步引入了捆绑调整 (BA) 步骤图优化的困难。我们通过对重构的线和平面提出几次运行时优化来解决这些问题。除了单目设置之外,我们的系统还能够使用深度和立体传感器运行。我们提出的SLAM紧密地结合了语义和几何特征,以提高前端姿态跟踪和后端地图优化。我们在各种数据集上详尽地评估我们的系统,并表明我们在轨迹精度方面优于最先进的方法。

PLP-SLAM 的代码开源

https://github.com/PeterFWS/Structure-PLP-SLAM

I. INTRODUCTION

我们的结构PLP-SLAM算法的贡献有三个方面:

(1)我们首先提出了一种模块化的多特征单目SLAM系统,该系统除了标准特征点外,还利用了线检测、跟踪和建图、实时分段平面重建和联合图优化。

(2) 我们表明,闭环可以通过校正的线图有效地完成,并提出了一个基于预构建的点线图的重定位模块。

(3) 我们为 RGB-D 和立体相机提出了我们系统的扩展。这使得我们的框架具有通用性和传感器不可知性,同时在SLAM中紧密结合语义特征。此外,我们的 SLAM 框架被设计为对噪声输入具有鲁棒性,以减少对基于 CNN 的语义平面检测的预测的依赖。

由于点、线和平面被紧密地集成为基本特征,我们的系统不受限制到小规模场景。

II. METHOD

在本节中,我们描述了我们建立在 OpenVSLAM 之上的单目 SLAM 系统,它是 ORBSLAM2 的导数,具有高可用性和可扩展性。然后我们重点介绍我们的贡献和添加模块。

A. Structure-based Monocular SLAM

SLAM系统的核心模块之一是地图的联合优化和束调整(BA)中的相机姿势。由于我们的目标是除了特征点之外集成更高级别的特征,我们需要对 3D 线进行适当的高效表示以及用于迭代优化的相应雅可比矩阵。我们通过只在3D点和3D平面之间添加一个约束来整合平面,因为平面基元的重投影误差的定义是模糊的,因为它们对某些平移和旋转的不变性。

1)利用线段:我们使用LSD提取2D线段,并通过LBD描述符跨帧匹配它们。LSD 的参数通过隐藏参数调整和长度拒绝策略优化,以在计算效率和准确性之间最佳权衡,如 PL-VINS 中所述。按照同样的想法,我们实现了比 OpenCV 的原始实现快 3 倍的线段提取。然后,我们对线段使用两种类型的表示:

两个端点的简单表示:对于地图中 3D 线段的可视化,我们使用两个端点。这带来了微不足道的图像平面上的3D端点投影的优势可用于使用LBD描述符快速检索3D-2D线匹配。它还允许我们跟踪部分遮挡的行,即使其中一个端点落在图像截锥之外。需要注意的是,3D 端点的选择对非线性优化没有影响,因为我们对 BA 使用另一个 3D 线表示,如下所述。

Plucker坐标与正交表示:¨一条三维直线可以用Plucker¨坐标的6D向量表示为L = (mT,dT)T,其中向量m(也称为运动向量)是包含直线L的解释平面的法线,d表示直线方向,如图2 (b)所示。注意,这是一个无限的三维直线表示,其中m和d在实现中不需要是单位向量。这样,就可以通过类似于三维点的变换矩阵,将三维直线从世界坐标变换为相机坐标,然后投影到图像平面上:

{xs,ye}为从LSD中提取的线段的二维起点和终点。该误差项在BA中用于优化3D线条和相机姿势。然而,Plucker坐标仍然是过度参数化的,因为它在满足Klein二次约束m>d = 0的齐次坐标中表示具有5自由度的三维直线。为了在迭代优化过程中更新Plucker坐标,我们将其转换为最小4DOF标准正交表示,并在优化步骤后转换回来。标准正交表示与Plucker坐标之间的转换在,[52]中给出。我们使用g20实现包调整。

线的双视图三角化:在三维中重建直线Lw可以通过从两个图像视图中正投影匹配的二维线段l1和l2得到两个三维平面,并使这两个平面相交来实现:

然而,三角化的三维线是两个相交的三维平面之间的无限大的线,如图2 (c)所示。为了估计三维端点以进行可视化和匹配,可以使用下面讨论的端点修剪方法。

终点修剪和异常值拒绝:可以使用参考关键帧对应的2D线段来估计3D直线的端点,如图2 (d)所示。端点修剪在[25]、[52]中被引入,只是作为一种独立的可视化方法。在这个除了对重投影误差进行χ 2分布检验外,我们还进一步利用迭代局部BA中的端点修剪进行异常值拒绝和地图剔除。它作为正深度检查(如Zc > 0)的一部分进行整合,并评估优化完成后3D端点的位置∆X相对于场景中值深度的绝对变化是否小于比值(0.1)。如果不是这样,则3D线是一个异常值(可能是由于不匹配或当3D线位于靠近极平面时具有两视图模糊的三角化)。实验中,我们发现这使得BA对离群点更加高效和鲁棒,重建的线云保持准确、紧凑和干净,可以从图1和图4中观察到。此外,端点修剪还用于在环路关闭期间纠正线形图(参见第II-C节)。

图3:三维平面解译:(a)空间相干优化三维平面拟合示例。我们通过给定的实例平面分割初始化平面。

请注意,如果两个平面被错误地分割为一个平面(例如:由于纹理相似),之后由于我们在3D中的部邻域图内的图切割(如图所示),它们被分离。(b)三维点的可能分布。

2)利用三维平面结构:由于三维信息有限,单目SLAM的三维平面重建具有挑战性。同时,如果我们试图重建从单个图像(不限于垂直布局)观察到的所有可能的平面实例,则曼哈顿世界(MW)假设不一定成立。

为了重建平面,我们利用SLAM后端三维点与三维平面的两两关系,并利用几何关系最小化三维距离,如图3 (b)所示。这里我们采用无限平面表示π = (n >;D) >[19],其中n为平面法线,D为到世界原点的距离。

通过拟合一组实时三角化的稀疏和噪声三维点来重建三维平面实例。我们通过使用PlaneRecNet[46]预测输入图像的实例平面分割来初始化属于单个平面的点集(仅在关键帧上)。然而,为了应对神经网络可能出现的误分类,特别是对SLAM基准的未见数据进行误分类,重构采用顺序RANSAC[38]结合Graph-cut的内部局部优化[1]的方式进行。这样,我们局部优化了空间,如图3 (a)所示。为此,我们将平面拟合问题表述为最优二值标注问题[18],其能量项为:

式(6)中Π = fΠjv 2vg为平面模型对三维点V的分配,V表示邻接图中三维顶点的集合。在这里,我们使用公式(7)中的三维点到平面的距离作为几何误差度量:

此外,在Eq.(7)中,参数Πv 2 f0;1g表示标签。在这里,当一个3D点被标记为内点(靠近平面)或被标记为离群点(远离平面)时,一元能量没有任何损失。Eq.(6)的第二项表示空间正则化[18],惩罚图中具有不同标签的邻居。如果括号内的指定条件成立,δ(·)为1,否则为0。邻域图N采用快速近似近邻算法[30],按照预定义的球面半径r (= 2d)构造,均匀采样最小样本(3个点构成一个平面)。λ是一个平衡这两项的参数,在我们的实验中设置为0.6。

增量合并和细化。为了处理可能较大的平面,我们在本地映射线程中添加了合并机制。两个平面合并需要满足以下两个条件:一是法线近似平行:(本文设为0.8);二是几何上彼此接近:。然后根据RANSAC循环中的模型残差阈值Π更新新的平面方程。在此之后,通过最小化点平面距离,将所有相关点地标投影到平面上:

自适应几何阈值:前面方程中引入的一些参数需要根据不同的环境进行调整。这些参数的例子有公式(7)中的d,用于合并平面的参数Td,用于停止RANSAC循环的模型残差Π。为了避免依赖于案例的参数调优,我们遵循[38]的工作,采用自适应参数设置策略,根据参考关键帧观察到的局部地图的场景深度动态调整上述阈值。

B.纯运动BA和局部BA

在这项工作中,通过两种不同的束调整:仅运动的BA和局部的BA,使点和线的重投影误差最小化。总成本函数为:

 由于平面是通过SVD统计拟合到最优位置的,因此如上节II-A.2所述,相关的3D点被投影到平面上。

在那里我;j;k;z分别为摄像机视图数、3D点数、3D平面数、3D线数。在Eq.(8)中,第一项表示特征点的标准重投影误差,第二项表示由Eq.(3)解释的直线重投影误差。此外,6自由度相机姿态表示为李代数se(3), 4自由度直线表示为正交表示。ρh为Huber鲁棒代价函数,Ωij;Ωiz是与检测到特征点或线段的尺度(图像金字塔)相关的协方差矩阵。在这项工作中,我们只利用原始图像分辨率中提取的线段,因此Ωiz = I2×2。

点的解析雅可比矩阵是众所周知的,而直线的雅可比矩阵可以用链式法则解析计算,并推导出[3]、[25]、[55]。

C.环检测、环闭合和全局BA

单眼SLAM的环路检测目的是在找到最佳验证的环路候选(关键帧)后估计7自由度相似变换Sim(3):

 在这项工作中,我们没有像在[13]中所做的那样,通过使用LBD描述符重建BoW (Bag of Words)词汇表来解决位置识别问题。相反,我们使用从ORB特性[32]构建的给定DBoW词汇表[11]进行循环检测。然后根据式(9)计算三维直线相似变换[2]:

其中两个相似变换由相同的比例因子,旋转和平移矩阵表示。因此,我们能够像在[31]中描述的Loop Fusion步骤中校正3D点云一样,以类似的方式校正3D线形图(由Plucker坐标表示)。随后,我们在相似变换上优化了Essential图,这使得闭环误差沿图分布,并校正了尺度漂移[39]。

然后根据观测到的参考关键帧的校正对三维地图点和线进行变换。这一过程如图1所示。为了获得最优解,我们在一个单独的线程中执行全局BA[33],并使用端点修剪来重新估计3D线端点,并作为地图剔除方法。

D.重定位

基于特征的SLAM中现有的方法使用BoW全局描述符[11]进行图像检索,然后使用EPnP的O(n)闭型解[26]初始化迭代优化,因为运行时间要求很关键。因此,简单地用EPnPL代替EPnP[43],就像在单PL-SLAM[35]中所做的那样,并没有显著的改善。在这项工作中,我们使用具有点和线重投影误差的BA,以提供更好的相机姿势。请注意,我们对直线的正交表示进行了优化,而不是像[35]中那样强制端点对应(本着EPnPL的精神),这意味着我们的方法自然更有效,并避免了非线性优化过程中直线的移动模糊性。

我们报告了我们在TUM RGB-D[40]和ICL-NUIM[14]数据集上进行的单目SLAM和RGB-D SLAM实验。

III. EXPERIMENTS AND RESULTS

由于篇幅有限,我们仅对EuRoC MAV进行定性评价[4],请参见图1和图4。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值