一、前言
视觉同步定位和映射 (vSLAM) 是指计算摄像机相对于周围环境的位置和方向,同时映射环境的过程。
您可以使用单眼摄像头执行 vSLAM。但是,深度无法准确计算,估计的轨迹未知,并且随着时间的推移而漂移。要生成无法从第一帧开始三角测量的初始地图,必须使用单眼相机的多个视图。更好、更可靠的解决方案是使用 RGB-D 相机,它由一个 RGB 彩色图像和一个深度图像组成。
处理 RGB-D 图像数据以构建室内环境地图并估计相机的轨迹。
二、处理管道概述
RGB-D vSLAM 的管道与单目视觉同时定位和映射示例中的单目 vSLAM 管道非常相似。主要区别在于,在地图初始化阶段,3-D 地图点是从一对由一个彩色图像和一个深度图像组成的图像创建的,而不是由两帧彩色图像组成的。
三、下载并浏览输入图像序列
此示例中使用的数据来自 TUM RGB-D 基准。可以使用 Web 浏览器或运行以下代码将数据下载到临时文件夹。创建两个图像数据存储对象以分别存储颜色和深度图像。请注意,颜色和深度图像在数据集中以不同步的方式生成。因此,我们需要根据时间戳将彩色图像与深度图像相关联。
四、地图初始化
管道首先初始化包含三维世界点的地图。此步骤至关重要,对最终 SLAM 结果的准确性有重大影响。初始 ORB 特征点是使用辅助程序检测和提取特征从第一个彩色图像中提取的。它们对应的 3-D 世界位置可以使用从特征点的像素坐标和深度值计算出来.
五、初始化地点识别数据库
循环检测是使用词袋方法执行的。表示为对象的视觉词汇表是离线创建的,其 ORB 描述符是从数据集中的大量图像中提取的,闭环过程以增量方式构建一个数据库,表示为倒置对象,该数据库存储基于 ORB 特征包的可视单词到图像映射。
六、数据管理和可视化
使用第一对颜色和深度图像初始化地图后,可以存储第一个关键帧和相应的地图点,跟踪过程使用每个 RGB-D 图像执行,并确定何时插入新关键帧。
如果当前帧要成为关键帧,请继续执行本地映射过程。否则,请启动下一帧的跟踪。
最后,对基本图应用姿态图优化以校正漂移。基本图是通过删除共可见性图中少于匹配项的连接在内部创建的。姿势图优化后,使用优化的姿势更新地图点的三维位置。
七、与地面真相比较
您可以将优化的相机轨迹与地面实况进行比较,以评估精度。下载的数据包含一个文件,该文件存储了每帧相机姿势的基本事实。数据已以MAT文件的形式保存。您还可以计算轨迹估计值的均方根误差 (RMSE)。
八、深度图像的密集重建
给定改进的相机姿势,您可以将相关深度图像中的所有有效图像点重新投影回 3-D 空间以执行密集重建。