处理RGB-D图像数据以构建室内环境地图并估计相机的轨迹

简介: 视觉同步定位和映射 (vSLAM) 是指计算摄像机相对于周围环境的位置和方向,同时映射环境的过程。您可以使用单眼摄像头执行 vSLAM。但是,深度无法准确计算,估计的轨迹未知,并且随着时间的推移而漂移。要生成无法从第一帧开始三角测量的初始地图,必须使用单眼相机的多个视图。更好、更可靠的解决方案是使用 RGB-D 相机,它由一个 RGB 彩色图像和一个深度图像组成。

一、前言
视觉同步定位和映射 (vSLAM) 是指计算摄像机相对于周围环境的位置和方向,同时映射环境的过程。

您可以使用单眼摄像头执行 vSLAM。但是,深度无法准确计算,估计的轨迹未知,并且随着时间的推移而漂移。要生成无法从第一帧开始三角测量的初始地图,必须使用单眼相机的多个视图。更好、更可靠的解决方案是使用 RGB-D 相机,它由一个 RGB 彩色图像和一个深度图像组成。
处理 RGB-D 图像数据以构建室内环境地图并估计相机的轨迹。

二、处理管道概述
RGB-D vSLAM 的管道与单目视觉同时定位和映射示例中的单目 vSLAM 管道非常相似。主要区别在于,在地图初始化阶段,3-D 地图点是从一对由一个彩色图像和一个深度图像组成的图像创建的,而不是由两帧彩色图像组成的。

1.png

三、下载并浏览输入图像序列
此示例中使用的数据来自 TUM RGB-D 基准。可以使用 Web 浏览器或运行以下代码将数据下载到临时文件夹。创建两个图像数据存储对象以分别存储颜色和深度图像。请注意,颜色和深度图像在数据集中以不同步的方式生成。因此,我们需要根据时间戳将彩色图像与深度图像相关联。
2.png

四、地图初始化
管道首先初始化包含三维世界点的地图。此步骤至关重要,对最终 SLAM 结果的准确性有重大影响。初始 ORB 特征点是使用辅助程序检测和提取特征从第一个彩色图像中提取的。它们对应的 3-D 世界位置可以使用从特征点的像素坐标和深度值计算出来.

五、初始化地点识别数据库
循环检测是使用词袋方法执行的。表示为对象的视觉词汇表是离线创建的,其 ORB 描述符是从数据集中的大量图像中提取的,闭环过程以增量方式构建一个数据库,表示为倒置对象,该数据库存储基于 ORB 特征包的可视单词到图像映射。

六、数据管理和可视化
使用第一对颜色和深度图像初始化地图后,可以存储第一个关键帧和相应的地图点,跟踪过程使用每个 RGB-D 图像执行,并确定何时插入新关键帧。
如果当前帧要成为关键帧,请继续执行本地映射过程。否则,请启动下一帧的跟踪。
3.png

最后,对基本图应用姿态图优化以校正漂移。基本图是通过删除共可见性图中少于匹配项的连接在内部创建的。姿势图优化后,使用优化的姿势更新地图点的三维位置。

七、与地面真相比较
您可以将优化的相机轨迹与地面实况进行比较,以评估精度。下载的数据包含一个文件,该文件存储了每帧相机姿势的基本事实。数据已以MAT文件的形式保存。您还可以计算轨迹估计值的均方根误差 (RMSE)。
4.png

八、深度图像的密集重建
给定改进的相机姿势,您可以将相关深度图像中的所有有效图像点重新投影回 3-D 空间以执行密集重建。
5.png

目录
相关文章
|
机器学习/深度学习 传感器 算法
【交互式阈值二进制图像】采用彩色或单色图像通过交互/手动方式阈值单色图像或彩色图像的单个色带研究(Matlab代码实现)
【交互式阈值二进制图像】采用彩色或单色图像通过交互/手动方式阈值单色图像或彩色图像的单个色带研究(Matlab代码实现)
|
存储 前端开发 算法
激光SLAM:ALOAM---后端lasermapping地图栅格化处理与提取
不同于前端的scan-to-scan的过程,ALOAM的后端是scan-to-map的算法,具体来说就是把当前帧和地图进行匹配,得到更准确的位姿同时也可以构建更好的地图.由于是scan-to-map的算法,因此计算量会明显高于scan-to-scan的前端,所以后端通常处于一个低频的运行频率,但是由于scan-to-map的精度往往优于scan-to-scan.因此后端也有比前端更高的精度.为了提高后端的处理速度,所以要进行地图的栅格化处理
激光SLAM:ALOAM---后端lasermapping地图栅格化处理与提取
|
6月前
|
计算机视觉 索引
【OpenCV】—ROI区域图像叠加&图像混合
【OpenCV】—ROI区域图像叠加&图像混合
|
6月前
|
存储 计算机视觉 流计算
【OpenCV】计算视频的光流并跟踪物体calcOpticalFlowPyrLK
【OpenCV】计算视频的光流并跟踪物体calcOpticalFlowPyrLK
255 0
|
6月前
|
传感器 人工智能 搜索推荐
用 ChatGPT 4.0 实现获取并保存 RealSense 相机的深度图像,处理colorizer,histogram equalization配置,解决深度图像颜色分布异常问题
用 ChatGPT 4.0 实现获取并保存 RealSense 相机的深度图像,处理colorizer,histogram equalization配置,解决深度图像颜色分布异常问题
102 0
用 ChatGPT 4.0 实现获取并保存 RealSense 相机的深度图像,处理colorizer,histogram equalization配置,解决深度图像颜色分布异常问题
|
6月前
[Halcon&图像] 图像、区域和轮廓相互转化
[Halcon&图像] 图像、区域和轮廓相互转化
286 1
|
6月前
|
文字识别 Python
Halcon 学习笔记五:几何定位+仿射变换+测量
Halcon 学习笔记五:几何定位+仿射变换+测量
613 0
|
机器学习/深度学习 人工智能 算法
OpenCV-差分法实现绿叶识别(图像差分+颜色通道)
OpenCV-差分法实现绿叶识别(图像差分+颜色通道)
183 0
|
存储 编解码 供应链
Baumer工业相机堡盟相机如何使用CameraExplorer软件查看相机图像相关参数如Binning像素合并、ROI图像剪切、PixelFormat像素格式功能等
Baumer工业相机堡盟相机如何使用CameraExplorer软件查看相机图像相关参数如Binning像素合并、ROI图像剪切、PixelFormat像素格式功能等
236 0
|
存储 数据可视化 索引
校正图像亮度不均匀问题并分析前景对象
校正图像亮度不均匀问题并分析前景对象
114 0