vslam论文25: 结构约束的RGB-D SLAM(ICRA 2021)

摘要

       本文提出了一种专门为结构化环境设计的RGB-D SLAM系统,旨在通过从周围提取的几何特征来提高跟踪和制图精度。除了点之外,结构化环境还提供了大量的几何特征,如线和平面,我们利用这些特征来设计SLAM系统的跟踪和映射组件。对于跟踪部分,我们基于曼哈顿世界(MW)的假设探索这些特征之间的几何关系。我们提出了一种基于点、线和面的解耦优化方法,以及在附加的姿态优化模块中使用曼哈顿关系。在建图部分,以较低的计算成本重建了从稀疏到密集的不同层次的建图。提出了一种基于实例的网格划分策略,通过独立划分平面实例来构建密集映射。姿态估计和重建方面的整体性能在公共基准上进行了评估,与最先进的方法相比,性能有所提高。

开源:https://github.com/yanyan-li/PlanarSLAM

论文地址:2010.07997.pdf (arxiv.org)

一、引言

vslam论文25: 结构约束的RGB-D SLAM(ICRA 2021)_第1张图片

图1:RGB-D SLAM系统。(a)典型结构化场景示例,2D特征及正交线、面分割。(b)点云,包括点、线、面。(c) CPU上的实时网格。

       在本文中,我们以我们的单目StructureSLAM为基础,提出了一个专为处理结构化环境而设计的鲁棒RGB-D SLAM系统,同时改进了跟踪和映射。图1展示了这种结构化场景的组成部分,包括点、线和平面段。根据Structure-SLAM的解耦策略,首先估计无漂移旋转矩阵,然后估计三自由度平移矩阵。

       初始旋转和平移通过map-to - frame策略进行细化。与[1],[11],[12]不同的是,我们将平面特征合并到基于Manhattan的框架中,该框架用于估计初始平移向量,并在精化模块中保留Manhattan关系作为约束。在此基础上,提出了一种高效的网格划分模块,基于稀疏映射中得到的平面区域重构场景结构。

总之,我们的贡献是:

(1)基于基于mw的解耦姿态估计的概念,我们通过将点和线特征与平面相结合以及与曼哈顿关系相结合的额外姿态优化步骤来改进平移估计.

(2)我们提出了一种基于平面实例的网格重建方法,从稀疏的点云生成紧凑的环境表示。

(3)实时RGB-D SLAM的通用框架,其中这些组件用于在结构化环境下高精度地进行定位和映射。

三、所提出的框架

       给定来自结构化环境的RGB-D帧序列,我们的方法的目标是重建3D场景,同时估计每帧的6D相机姿势。

A.扩展特征集

       在我们的方法中,我们使用ORB特征[27],它可以快速提取和匹配。在低纹理环境中,很难提取足够的点来进行鲁棒姿态估计,因此我们使用LSD[28]方法提取的线条扩展特征集,如LBD[29]所述。此外,在室内环境中发现非纹理平面区域是很常见的,其中从深度图中提取的平面实例是扩展点和线的有价值的线索。平面检测采用连通分量分析法[30]。用海森标准范式,其中为平面的法线,表示其方向,d为相机原点到平面的距离。

a)点与线:提取帧Fi中的二维点特征和线段lj = 后,我们可以利用相机的内在参数和深度图对点和线进行反向投影,得到三维点xj和三维线Lj。深度图并不总是正确的,特别是在深度不连续时,例如物体边界。因此需要一种鲁棒的三维直线拟合方法。首先,我们计算与检测到的线段相交的深度值为非零的像素的数量。如果数量超过一定阈值,则通过RANSAC估计3D线Lj以去除潜在的异常值。

b)法线和平面:平滑法线的计算方法是将深度图像中的切向量取平均值,并使用积分图像在一个10 × 10像素的patch内进行计算。在平面检测后,我们使用[6]的策略将观察到的平面与地图中存在的平面关联起来。为了将观察到的平面与地图上的平面相匹配,我们首先检查它们法线之间的角度。如果它低于阈值θn,我们检查它们之间点到平面的距离。与观测平面的距离最小且小于距离阈值θP的平面与观测平面匹配。在实验中,θn和θP分别设为10度和0.1 m。此外,我们还在地图平面之间保持平行和垂直关系[6],以便在跟踪过程中利用额外的约束。这些是由平面法线之间的夹角决定的。因为它们只提供方向约束,所以我们不考虑它们的距离。

B.解耦姿态估计和细化

       为了减少帧之间的误差传播,我们建立了基于MW假设计算旋转运动的单目结构[1]。然后根据特征估计相应的平移运动,从上一步算出固定的旋转。在这项工作的前端,我们使用优化的线进行旋转估计,平面进行平移估计。与Structure-SLAM[1]使用点线局部地图来同时优化平移和旋转不同,我们利用局部地图中的平面,并利用这些平面的几何关系(平行和垂直)作为约束,这提高了系统的精度,如图4和表1所示。

四、跟踪

       与传统的姿态估计方法不同,我们将6D相机的姿态解耦为旋转和平移。基于MW假设,我们得到了MW与相机ci之间的旋转运动Rcim。这样,旋转估计不会受到最后一帧或最后一个关键帧的姿态的影响,有效地减少了漂移。然后,使用点、线、面特征以及初始旋转矩阵进行平移估计,平移估计仅由3个自由度(DoFs)组成

A.旋转估计

       无漂移旋转估计方法不是直接从帧到帧跟踪摄像机,而是通过将室内环境建模为MW来估计每帧与曼哈顿坐标帧之间的旋转Rcm,从而减少了帧到帧跟踪产生的漂移。如图1所示,通过Rk+1;m可以将Manhattan坐标帧对齐到摄像机的起始帧。一般将第一帧的坐标作为世界帧,即。所以我们可以通过使用

       其中Rm;w表示世界到MW的关系,由MW初始化步骤和Rk+1得到;m表示MW到第(k +1)帧的关系。这两个矩阵通过球体mean-shift方法计算[24],其中法线和归一化消失方向被投影到当前旋转估计的切平面上。然后在切平面上执行均值移位步骤,生成新的中心并将其作为新的估计值反投影到球体上。我们请读者参考[24]和[26]了解球均值移位法的更多细节。

       为了处理仅检测到一个或根本没有检测到平面的困难场景,我们将精细3D线的消失方向和平面的表面法线同时馈送给单位球体,在这些具有挑战性的条件下,这是一种比[26],[1]更健壮的方法。

B.平移估计

       在估计旋转后,用点、线、面来估计平移。我们将上一帧的3D点重新投影到当前帧中,并根据重新投影的误差定义误差函数,如下:

       其中Π(·)为投影函数。由于上一步已经得到了旋转矩阵Rk;j,所以我们固定了旋转,只使用(2)对应的雅可比矩阵来估计平移。

       对于直线,我们从二维端点得到归一化的直线函数如下

       然后,我们根据l与关键帧中匹配的3D直线投影的3D端点之间的点线距离[4],建立误差函数。对于每个端点Px,误差函数可记为:

C. 位姿细化 

       最后两个步骤假设场景是一个很好的曼哈顿模型,然而一些一般的室内环境并没有严格遵守MW假设,导致精度下降。因此,在通过解耦的旋转和平移策略获得初始姿态后,细化模块[1]对姿态进行微调,以补偿与MW或不稳定初始估计的偏差。在细化步骤中,为了减少帧与帧之间的姿态估计漂移,采用map-to - frame策略,利用之前关键帧构建的局部地图对姿态进行优化[7]。与[6],[7],[31]类似,我们也使用关键帧来构建局部地图,尽管我们的地图有点、线和平面地标,这些地标被投影到当前帧中以搜索匹配。此外,我们探索了局部地图中的平面与当前帧中检测到的平面之间的关系。这些平面之间的平行和垂直约束描述为(8),

式中是世界坐标到相机坐标的变换。对于垂直平面,它们的平面法线被旋转90度()来构造误差函数。将这两个误差函数合并为(7),在细化模块中构建一个联合优化函数。 

五、建图

       本节描述SLAM框架中使用的基于关键帧的3D映射策略。关键帧和3D特征建立了一个共同可见性图,每当有新的关键帧和新特征可用时,节点和边缘就会更新。

A. 稀疏建图

vslam论文25: 结构约束的RGB-D SLAM(ICRA 2021)_第2张图片

图3:系统提供的不同层次的地图。最上面一排:ICL-NUIM办公室;下一行:TUM RGB-D的结构-非纹理附近;

       如图3所示,通过从关键帧中提取点-线-面特征重构稀疏映射模块。将第一帧设置为第一关键帧,并且通过由此检测到的地标初始化全局地图。当在新的关键帧中检测到新的点,线和面时,它们将首先保存到局部地图中,而这些点,线和面不在全局地图中。然后我们检查局部地图中地标的质量,然后在剔除不好的地标后将可靠的地标推送到全局地图中。与点和线的匹配方法不同,对于新关键帧中的每个检测平面,我们首先使用第三节中描述的策略检查它是否与地图中的平面相关联。如果我们找到一个关联,我们将新平面的3D点添加到全局地图中的关联平面中,并使用体素网格过滤冗余以再次获得紧凑的点云。如果进入的平面与全局映射中的任何平面都没有关联,我们将其作为新平面添加到映射中

B.平面实例网格划分

       在前一节中获得的稀疏映射仍然不足以用于涉及机器人与环境交互的应用程序,但它提供了关于平面和非平面实例的信息。因此,我们使用基于实例的网格策略构建一个更密集的映射。室内场景可分为平面区域和非平面区域。像地板、墙壁和天花板这样的平面区域通常有很大的范围,但是密集的像素信息不会增加质量,而且是高度冗余的。因此,我们不使用surf或TSDF,而是将平面区域视为包含少量固定数量的独立于其大小的元素的实例。

       特别地,我们将平面实例输入到网格划分模块中,它将独立地对它们进行网格划分。首先,将属于一个平面的点组织成kd-tree数据结构。

       与非结构化输入不同,我们的方法需要更少的时间来搜索几个最近的邻居。然后,我们使用贪婪表面三角剖分(GST)[33]来构建一个实例网格,该网格旨在处理平面。请注意在我们的实验中,三角剖分选择邻居的初始搜索半径设为5m,乘法器设为5,修改最终搜索半径以适应平面区域上不同的点密度。

六、实验

       我们在两个众所周知的公共数据集ICL-NUIM[34]和TUM RGBD[35]基准上评估了所提出的SLAM系统,并将其性能与其他最先进的方法(如ORB-SLAM2[7]、PSSLAM[6])进行了比较,这些方法都是基于特征的方法,但在接下来的实验中删除了全局束调整模块。基于MW假设的方法,如LPVO[11]和L-SLAM[12]。DVO-SLAM[18]是一种直接的方法,InfiniTAM[32]使用GPU进行基于RGB和深度图像的实时跟踪和映射。

       在ICL-NUIM数据集上重建模型,并与其他流行的密集重建方法进行比较。

       最后,为了证明我们的系统随着时间的推移具有鲁棒性,我们还对来自TAMU[3]数据集的序列进行了测试,该数据集包含覆盖大面积室内区域的长序列。所有实验都是在Intel酷睿i7-8700 CPU (@3.20GHz)下进行的,没有使用任何GPU。ICLNUIM数据集[34]提供了两个室内环境的合成场景,一个客厅和一个办公室场景。

       这些场景包含大面积的低纹理表面,如墙壁、天花板、地板等。每个场景有四个序列。我们在所有序列上计算我们的方法。

A. ICL-NUIM RGB-D数据集

表1

vslam论文25: 结构约束的RGB-D SLAM(ICRA 2021)_第3张图片

表1显示,基于平移RMSE (ATE),我们的方法在8个序列中的3个序列上获得了最佳性能。 

vslam论文25: 结构约束的RGB-D SLAM(ICRA 2021)_第4张图片

图4:ICLNUIM和TUM RGB-D序列旋转相对位姿误差(RPE)比较 

       此外,图4显示了ORB-SLAM、PS-SLAM和我们的方法的相对位姿误差。我们的方法在相对平移和旋转方面明显优于其他两种方法。 

B. TUM RGB-D数据集

表2 

vslam论文25: 结构约束的RGB-D SLAM(ICRA 2021)_第5张图片

       每个操作花费的时间统计如表2所示,其中我们在特征提取和细化模块中使用不同的CPU线程来处理点、线和平面。

C.大规模序列 

       TAMU数据集[36]提供了大规模的室内序列(恒定照明)。虽然它不提供地面真实的相机姿势,但起点和终点是相同的,可以通过计算最终位置误差来评估总体漂移。如图5所示,序列Stair-C中的轨迹是两个楼层之间的一个环路,我们的方法在整个轨迹长度上比ORBSLAM2的漂移提高了34.7%。类似的情况也可以在走廊a和入口大厅发现。在补充材料中提供了更多的定性结果。

vslam论文25: 结构约束的RGB-D SLAM(ICRA 2021)_第6张图片

图5:本文提出的方法与TAMU数据集中的ORB-SLAM2之间的稀疏重建和轨迹的定性结果。 

D.重建精度

       我们从ICL-NUIM中重建模型,并将结果与最先进的映射方法进行比较,如表III所示。重建结果的精度定义为预测模型与地基真值模型之间的平均差值[34]。我们将提出的映射模块与RGB-D SLAM[37]、ElasticFusion[9]、InfiniTAM[38]和SuperpixelFusion[10]进行了比较。

表3

vslam论文25: 结构约束的RGB-D SLAM(ICRA 2021)_第7张图片

       SuperpixelFusion方法受限于使用ORB-SLAM进行姿态估计,而我们的方法在低纹理环境下也能很好地工作。InfiniTAM在kt2中获得了最好的结果,但在kt0和kt3序列上表现较差,这可能是由于大的低纹理区域。ElasticFusion显示了类似的行为。我们的方法重建的地图比其他方法更精确,但InfiniTAM和ElasticFusion提供的模型比我们的地图更完整,因为我们忽略了小物体,即使基于点、线和面的特征覆盖了大部分像素。值得注意的是,所有的融合方法,除了SuperpixelFusion和我们的,都依赖于基于GPU的加速。

七、结论

       我们提出了一种基于点、线、面的RGB-D SLAM系统。使用MW假设进行旋转估计,使用点、线和平面特征进行平移估计,我们实现了最先进的性能。此外,一种新的基于实例的网格划分方法可以有效地重建环境中的平面区域。由此产生的密集地图允许在机器人和AR/VR应用程序中与环境进行交互。在未来,我们希望扩展平面重建,将环境中的非平面部分网格化,以允许更复杂场景的完整重建。

你可能感兴趣的:(视觉SLAM论文阅读,c++,平面,学习,计算机视觉,笔记)