Advertisement

论文笔记_S2D.77_2013_TOR_使用RGBD相机的3D建图(RGBD SLAM V2)

阅读量:

目录

基本情况

摘要

介绍

系统流程

特征提取

运动估计

EMM:Environment Measurement Model

回环检测

图优化

建图OctoMap

参考


基本情况

  • 出处:Endres F, Hess J, Sturm J, et al. 3-D mapping with an RGB-D camera[J]. IEEE transactions on robotics, 2013, 30(1): 177-187.(其他叫法: RGBD SLAM版本二)
  • 本文基于Felix Endres及其团队于2012年开发完成的RGBD SLAM版本二框架,在Kinect等传感器架构的基础上进行了改进优化

摘要

在本文中,我们介绍了一种创新的建图系统,它利用RGB-D相机可靠生成高精度3D地图.该方法无需依赖任何额外传感器或导航装置.基于Microsoft Kinect经济实惠轻便且支持多模态感知的RGB-D传感器,我们的系统可部署于小型家用机器人,如扫地机器人以及四旋翼无人机等飞行器.此外,该系统还可实现自由式三维模型的人工重建.除了系统的本身功能外,我们还在标准化的数据集库上进行了全面测试.通过分析特征提取参数、视觉特征数量及验证策略等多个关键因素的影响,我们深入探讨了系统的性能边界.实验结果表明,该系统在应对快速相机运动及低质量环境方面表现稳定可靠,同时具备足够的实时性支持在线操作.作为完全开源解决方案,该系统已获得机器人领域广泛应用

介绍

同时定位与映射问题(SLAM)是过去十年中机器人领域最为活跃的研究课题之一。

在该项研究中, 我们报道了基于RGB-D相机生成的丰富色彩与深度图像组成的 RGB-D SLAM 系统之一. 相比于先前的研究, 在本工作中我们引入了几项功能模块, 并重点优化了算法以增强系统的健壮性和精确度. 特别强调的是, 在改进的基础上实现了更高的定位精度和更低的计算延迟.

我们建议采用环境测量模型(EMM) 作为评估依据,并基于特征对应和迭代最接近点(ICP)算法估算的变换(相机位姿)进行验证。

实验证明,在复杂运动轨迹和高难度场景中精确追踪机器人姿态。 以使其他研究人员能够方便地使用我们的软件,并对其实现进行优化改进,我们基于开放源代码许可证发布了所呈现的系统。 代码及其完整的安装指南可通过网络获取。

系统流程

系统划分为前后端部分。前端即为视觉里程记录系统。从每一幅RGB图像中提取特征,并计算对应的描述符。随后利用RANSAC算法与ICP方法计算两幅相邻帧之间的运动估计值,并提出了一种环境测量模型(EMM)来评估估计运动的有效性。后端实施回环检测过程,在此基础上基于g2o优化库对位姿图进行优化处理,并通过该优化获得精确的轨迹数据,并用于地图构建过程中的建模工作;建图采用八叉树地图octomap的方式构建环境空间结构

特征提取

源码中可以选择SIFT、SURF及ORB特征。其中SIFT需在GPU上运行,而ORB和SURF则均基于OpenCV在CPU上实现。

不同特征的error和耗时比较:

有GPU时SIFT综合表现最好。 综合实时性、硬件成本和准确率来看,ORB较好。

运动估计

在每一轮迭代过程中,我们采用关键特征进行高效计算以获得RANSAC算法的初始值,并基于最小二乘对应点之间的马氏距离进行优化。

两者之间的主要区别在于,在计算过程中考虑到各个维度的差异性,并引入了协方差矩阵这一因素

EMM:Environment Measurement Model

常用的判断运动估计是否可接受的技术手段是基于inlier的比例分析。具体而言,在计算得到的inlier数量与总样本数的比例中,如果低于预设的最小比例,则拒绝该运动估计。

但是,在图像处理领域中存在两种典型的问题:一是运动模糊现象(Motion Blur),二是缺乏纹理细节的场景(Areas Without Textural Information)。这两种情况都会导致inlier的数量显著减少。

某些关键点在一帧中呈现时,另一帧可能会被其他关键点遮挡。研究者建议采用该方法以更加稳健地判断估计值是否被拒绝。

再来看一个假设:在执行transformation的过程中,在空间上对应的深度测量值应该属于同一表面区域之内。

Following the application of transformation estimates, spatially corresponding depth measurements originate from the same underlying surface location.

该研究证实了测量值yi与yj之间的差异符合高斯分布。其中协方差矩阵(由论文 Accuracy and Resolution of Kinect Depth Data提供计算方法)表示噪声。与图中不同的是,在这种情况下测量值yi与yj之间的差异服从均值为零、与噪声相关的高斯分布。

这样就可以采用概率论中的p值检验方法来判定估计值是否应被拒绝然而研究发现该检验方法存在一定的敏感性不足即其对微小误差的反应不够强烈

因此使用另一种方法

分别用蓝色和红色表示Cam A与Cam B观测到的点。通过将相机A采集的点映射至相机B,并在观察点中识别出inliers, outliers, occluded:

上图中yi和yj属于同一个点,并归类为inlier。yk不在A的视野范围内,则未被考虑,并因此不被视为观察到的点。

2. 投影之后的yq在相机B 的视角中被yk挡住,看不到,因此算作occluded。

至于yp,位于连接yq与相机A光心的一条直线上,并被归类为异常值(值得注意的是, yp与yk不同而 yp位于相机 A的画面范围内但 相机 A实际上测得 的是 yq 的深度)

在代码实现中(misc.cpp第913行之后有两个函数,其中一个用于p值检验的方法),作者是按照如下步骤进行操作:首先计算inlier、outlier和occluded的数量;然后根据结果判断是否拒绝该数据点。

observedPoints = 内点 + 外点 + 阻挡点. 其中, I表示内点的数量, O表示外点的数量, C表示阻挡点的数量. 如果内占总比例(I/(I+O+C)) < 25%,则直接舍弃;否则, 对于内占内外之比(I/(I+O))设定一个阈值标准;当该比例低于该阈值时, 则舍弃该数据

回环检测

不同于是现有方法的 Bag-of-Words 模型, 本文提出的回归机制建立在 最小生成树 的基础之上, 并利用了 随机森林 的 随机回环机制:

基于描述符间的距离计算得出结果后

图优化

只优化位姿图,不优化三维点。

使用g2o图优化库

未被EMM拒绝的运动( motion ),以两帧相机位姿为优化顶点,在运动上施加约束条件,并纳入优化边。

检测到的回环,也加入优化顶点和边

g2o优化边的误差函数:

xi和xj代表优化变量(顶点位姿的估计值)。Zij代表约束条件,并指出它涉及xi与xj之间的变换关系。e表示xi和xj满足约束的程度如何。其中Ω是关于约束条件以及其信息矩阵(协方差矩阵的逆)所构成的内容。这个信息矩阵实际上度量的是优化边的质量。

其中信息矩阵具体在代码中,是这么计算的:

复制代码
    odom_edge.informationMatrix = Eigen::Matrix<double,6,6>::Identity() / time_delta_sec;//e-9;
    
    代码解读

即单位矩阵除以两帧之间的时间间隔

具体这个误差项 e 是如何构建的呢 ?在g2o::SE3edge.cpp中这么写:

解释一下这个误差函数:

我们认为 帧2( from)的位姿态 Tj 是帧1(to)的位姿 Ti 经过 Tij 得到的 ,也就是

Ti * Tij = Tj

也就是

Tij = Ti -1 * Tj

即一个位姿与其逆运算作用于另一个位姿的结果可表征两者之间的相对变化;那么我们希望比较边上的measurement值与Tij之间差异同样能够采用类似的方法进行处理

delta : Δ = measurement-1 * Ti-1 * Tj

注意,Ti其实完整写法是Twi, w代表世界坐标系

采用这样的回环检测方式,在实际应用中可能会出现误判的情况。将这些约束条件融入图优化过程后可能会导致地图产生扭曲现象。经过第一次收敛后的图优化阶段时,在处理过程中发现存在错误的回环时就会删除这些错误对应的优化边

如何判定回环是否为错误? 通过设定相应的误差函数(该误差函数不够科学),当计算出的误差超过该设定时,则认为该回环属于错误。

建图OctoMap

关于OctoMap的系列综述——半闲居士的博客...正在上传…重新上传取消

将一个立方体均分为八分之一的小立方体。这些小立方体会继续细分下去,并无止境。

每个小立方体对应八叉树的一个节点,因此成为八叉树地图

每个小立方体记录着其占位概率的逻辑斯蒂回归模型,在观察结果表明某单元格频次增加时会更新其占位概率值;如果没有任何一次观察显示某个小立方体被占用,则无需进一步展开该节点

OctoMap的优点: 利于导航 ; 易于更新 ;存储方式比较省空间

参考

从基于RGB-D相机实现的版本2 RGBD-SLAM算法谈起

三维映射系统基于RGB-D相机技术实时生成高精度的空间模型数据集

全部评论 (0)

还没有任何评论哟~