RGB-D SLAM with Structural Regularities 论文笔记

RGB-D SLAM with Structural Regularities 论文笔记

摘要

提出了一种专为结构化环境设计的 RGB-D SLAM 系统,旨在依靠从周围提取的几何特征来提高跟踪和映射精度。除了点之外,结构化环境还提供了丰富的几何特征,例如线和平面,我们利用这些特征来设计 SLAM系统的跟踪和映射组件。

对于跟踪部分,我们基于曼哈顿世界(MW)的假设探索这些特征之间的几何关系。我们提出了一种基于点、线和平面的解耦细化方法,以及在额外的姿态细化模块中使用曼哈顿关系。对于映射部分,以较低的计算成本重建从稀疏到密集的不同级别的映射。我们提出了一种实例网格化策略,通过独立地网格化平面实例来构建密集地图。

  • 基于 MW 的解耦姿态估计的概念,我们通过将点和线特征与平面相结合以及与曼哈顿关系进行额外的姿态细化步骤来改进平移估计。
  • 基于平面实例网格的重建方法,从稀疏点云生成环境的紧凑表示。

系统总览

在这里插入图片描述

从 RGB-D 帧中提取点、线和平面特征。首先以解耦的方式估计旋转和平移,然后再进行细化。平面段用于创建基于网格的环境重建。

A. 扩展特征集合

在我们的方法中,我们使用ORB特性[27],它可以快速提取和匹配。在低纹理环境中,很难提取足够的点来进行鲁棒姿态估计,因此我们用直线扩展特征集,用LSD[28]方法提取直线,如LBD[29]所述。

此外,在室内环境中经常会发现非纹理平面区域,从深度图中提取的平面实例是扩展点和线的有价值的线索。采用连通构件分析法[30]进行平面检测。它们用Hessian法线形式π =(n, d)表示,其中n = (nx, ny, nz)是平面的法线,表示平面的方向,d是相机原点到平面的距离。

a) 点和线:

提取帧Fi中的2D点特征xj = (uj, vj)和线段lj = (xj,start, xj,end)后,利用相机内参和深度图反向投影点和线,得到3D点xj和3D线lj。

深度图并不总是正确的,特别是在深度不连续的地方,例如对象边界。因此,需要一种鲁棒的三维直线拟合方法。首先,我们计算与检测线段相交的非零深度值像素的数量。如果数值超过一定阈值,RANSAC将对3D线Lj进行估计,去除潜在的离群值。

b) 法线和平面:

平滑法线是通过使用积分图像对深度图像中10×10像素的面片内的切向向量求平均来计算的。 在平面检测之后,我们使用 [6] 的策略将观察到的平面与地图中存在的平面相关联。为了将观察到的平面与地图中的平面匹配,我们首先检查它们的法线之间的角度。如果它低于阈值 θn,我们检查它们之间的点到平面距离。与观察平面具有最小距离并且也低于距离阈值 θP 的平面与观察平面匹配。

此外,我们还在地图平面之间保持平行和垂直关系[6],以在跟踪过程中利用额外的约束。这些是由平面法线之间的角度决定的。由于它们只提供方向约束,我们不考虑它们的距离。

B. 解耦姿态估计和细化

为了减少帧之间的误差传播,我们建立在单目架构 [structure SLAM] 的基础上,该架构基于 MW 假设计算旋转运动。然后通过特征估计相应的平移运动,并从上一步计算固定旋转。在这项工作的前端,我们使用优化的线进行旋转估计和平面进行平移估计。

与使用点线局部地图一起优化平移和旋转的[Structure-SLAM] 不同,我们利用局部地图中的平面并利用这些平面的几何关系(平行和垂直)作为约束,这提高了系统的准确性

追踪

与传统的姿态估计方法不同,我们将 6D 相机姿态解耦为旋转和平移。

基于 MW 假设,我们获得了 MW 和相机 ci 之间的旋转运动 Rci m。这样,旋转估计就不会受到最后一帧或最后一个关键帧的位姿的影响,有效地减少了漂移。之后,点、线和平面特征以及初始旋转矩阵用于平移估计,它仅由 3 个自由度 (DoF) 组成。

A.旋转估计

无漂移旋转估计方法不是直接逐帧跟踪摄像机,而是通过将室内环境建模为MW来估计每帧与曼哈顿坐标系之间的旋转Rcm,从而减少逐帧跟踪产生的漂移。

曼哈顿坐标系可以通过Rk+1,m与摄像机的起始帧对齐。一般将初始帧的坐标视为世界帧坐标系,即R1,m = RTm,w。我们可以通过使用世界坐标来获取位姿:

在这里插入图片描述

其中Rm,w表示世界到MW的关系,由MW初始化步骤得到,Rk+1,m表示MW到第(k +1)个坐标系的关系。这两个矩阵是通过球体平均移位方法[24]计算的,其中法线和归一化消失方向被投影到当前旋转估计的切面上。然后在切平面上执行平均移位步骤,生成新的中心,并将它们作为新的估计返回到球面上。我们请读者参考[24]和[26],以了解更多关于球体mean-shift方法的细节。为了处理只有一个或根本没有平面被检测到的困难场景,我们向单位球提供精细3D线的消失方向和平面的表面法线,在这些具有挑战性的条件下,这是一种比[26],[1]更稳健的方法。

B.平移估计

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

在这里插入图片描述

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

对于线,从二维端点p start和p end得到归一化的线函数,如下所示:

在这里插入图片描述

(这里应该是两个点坐标叉乘,两点叉乘得到直线方程的系数矩阵)

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

在这里插入图片描述

(这个其实就是线的重投影误差公式)

为了得到一个用于优化的平面π的最小化参数,我们将其表示为q(π) = (φ,ψ,d ),其中φ和ψ是法线的方位角和仰角,d是到Hessian形式的距离。

在这里插入图片描述

因此,帧中的观察平面πk和对应的地图平面πx之间的误差函数为:

在这里插入图片描述

假设观测值遵循高斯分布,最终的非线性最小二乘成本函数t*可以写成(7)式,其中λPK,j,λPK,Px和λk,πx分别是点、线和平面的逆协方差矩阵,ρp,ρl和ρ1π分别是稳健的Huber成本函数。

在这里插入图片描述

这里,使用LevenbergMarquardt算法来确定解决方案。

C. 位姿细化

最后两个步骤假设场景是一个好的曼哈顿模型,然而几个一般的室内环境并不严格遵守MW假设,导致精度下降。因此,在通过解耦的旋转和平移策略获得初始姿态之后,细化模块[1]微调姿态以补偿与MW或不稳定的初始估计的偏差。

在细化步骤中,为了减少从帧到帧姿态估计的漂移,由先前关键帧构建的局部地图被用于基于地图到帧策略来优化姿态[7]。

我们的地图有点、线、面地标,投影到当前帧中搜索匹配。此外,我们探索局部地图中的平面和当前帧中检测到的平面之间的关系。这些平面之间的平行和垂直约束被描述为(8),

在这里插入图片描述

建图

关键帧和3D要素构建了一个共视图,其中每当新关键帧和新要素可用时,节点和边都会更新。(类似ORB-SLAM2,新增了3D要素)

A. 稀疏建图

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

B.平面实例式网格划分

在前一部分中获得的稀疏地图区分了平面和非平面实例的信息。因此,我们使用基于实例的网格化策略构建了一个更密集的地图。室内场景可以分为平面区域和非平面区域。像地板、墙壁和天花板这样的平面区域通常具有很大的范围,然而密集的像素信息不会增加质量,并且是高度冗余的。因此,我们没有使用surfel或TSDF,而是将平面区域视为包含少量固定数量元素的实例,这些元素与其大小无关。

特别是,我们将平面实例输入到网格划分模块,该模块独立地对它们进行网格划分。首先,属于一个平面的点被组织成一个kd树数据结构。与非结构化输入不同,我们的方法需要更少的时间来搜索最近的邻居。然后,我们使用贪婪曲面三角剖分(GST) [33]来构建实例式网格,该网格旨在处理平面曲面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值