视觉SLAM十四讲 第13讲 建图

1、单目SLAM的深度估计
2、实验完成单目SLAM
3、RGBD重建中的几种地图

  • 机器人上的 SLAM,希望地图能够用于定位、导航、避障和交互,特征点地图不能满足这些需求。

文章目录

      • 0. 引言( 地 图 的 五 个 作 用 \color{red}{地图的五个作用}
      • 13.2 单目稠密重建
        • 1、立体视觉
        • 2、单目稠密重建技术
        • 3、实践-单目稠密重建
        • 4、实验3中存在的问题与解决
      • 13.5 更常用的稠密建图--RGBD
        • 1、点云地图
        • 2、八叉树地图 octomap库

0. 引言( 地 图 的 五 个 作 用 \color{red}{地图的五个作用}

  • 定位。 基本功能,视觉里程计通过局部地图定位,回环检测通过全局地图定位;
  • 导航。我们需要知道点的能通过与否。稀疏地图无法完成,需要建立稠密地图;
  • 避障。类似导航。 需稠密地图;
  • 重建。稠密地图,甚至带纹理;
  • 交互。 语义地图。AR\VR;
    视觉SLAM十四讲 第13讲 建图_第1张图片

13.2 单目稠密重建

1、立体视觉

  • 单目稠密重建需要每一个像素点的距离,可以通过方法获得。
  • 视觉SLAM十四讲 第13讲 建图_第2张图片
  • 前两者得到的估计不如RGBD可靠,但可以应用在室外,RGBD 易受光照等影响,但目前仍更常见。

2、单目稠密重建技术

(1)引出

视觉SLAM十四讲 第13讲 建图_第3张图片

(2)极线搜索

视觉SLAM十四讲 第13讲 建图_第4张图片

  • 极线搜索:对于在第一张图像中的某个像素,可能存在的深度范围是【最小,无穷大】,对应在新的一帧在某一个极线上,
  • 如何确定是极线上的哪个点?
  • 在特征点方法时,利用了特征匹配确定,但像素点没有使用描述子,无法直接确定,因此类似于直接法比较像素的相似度。

(3)块匹配技术引出

  • 由于单个像素比较亮度值不太可靠,因此比较像素块,对块进行匹配。
  • 去像素点p附近的w*w小块,对比灰度不变性,对比方法有多种:
  • 视觉SLAM十四讲 第13讲 建图_第5张图片
  • 视觉SLAM十四讲 第13讲 建图_第6张图片

(4)块匹配技术中常用的NCC的问题 以及 深度滤波器技术 解决

  • 问题?
  • NCC分布可能出现多个峰值,但真实深度对应的肯定只有1个。
  • 像素深度估计,可建模为状态估计,通过非线性优化和滤波解决。(由于前端用了非线性优化计算量较大,此处采用的是滤波方法)
  • 视觉SLAM十四讲 第13讲 建图_第7张图片
  • 具体过程??详细步骤???未列出视觉SLAM十四讲 第13讲 建图_第8张图片

3、实践-单目稠密重建

4、实验3中存在的问题与解决

(1)问题

  • 缺乏工程技巧

(2)像素梯度问题

  • 视觉SLAM十四讲 第13讲 建图_第9张图片
  • 即:明显梯度的小块将具有良好的区分度;梯度不明显的像素,由于在块匹配时没有区分性,难以有效地估计其深度。
  • 也就是说对物体纹理的依赖性
  • 结论
  • 当像素梯度与极线夹角较小时,极线匹配的不确定性大;而当夹角较大时,匹配的不确定性变小

(3)逆深度问题

  • 实验中,假设了深度满足高斯分布,实际不是。
  • 场景可能存在距离非常远,乃至无穷远处的点,导致分布并不是像高斯分布那样,形成一个对称的形状。它的尾部可能稍长,而负数区域则为零
  • 因此采用逆深度解决。
  • 正深度改成逆深度亦不复杂。只要在前面出现深度的推导中,将 d 改成逆深度 d−1 即可。

(4)块匹配前的预处理

  • 在块匹配之前,做一次图像到图像间的变换亦是一种常见的预处理方式。
  • 视觉SLAM十四讲 第13讲 建图_第10张图片
  • 视觉SLAM十四讲 第13讲 建图_第11张图片

(5)运行效率问题:并行计算像素点

  • 视觉SLAM十四讲 第13讲 建图_第12张图片

(6)其他问题

视觉SLAM十四讲 第13讲 建图_第13张图片

13.5 更常用的稠密建图–RGBD

  • 转成点云,构建点云地图;
  • 三角网格mesh建图;(可估计物体表面)
  • 通过体素voxel构建栅格地图(可用于导航)

1、点云地图

  • 包含信息:x,y,z \ x,y,z,彩色信息
  • 注意进行简单滤波和降采样
  • 视觉SLAM十四讲 第13讲 建图_第14张图片

点云地图的缺陷 大

  • 视觉SLAM十四讲 第13讲 建图_第15张图片
  • 视觉SLAM十四讲 第13讲 建图_第16张图片

2、八叉树地图 octomap库

视觉SLAM十四讲 第13讲 建图_第17张图片

  • 为何我们说点云占体积,而八叉树比较节省空间呢?
  • 在八叉树中,我们在节点中存储它是否被占据的信息。然而,不一样之处,在于当某个方块的所有子节点都被占据或都不被占据时,就没必要展开这个节点。例如,一开始地图为空白时,我们就只需一个根节点,而不需要完整的树。当在地图中添加信息时,由于实际的物体经常连在一起,空白的地方也会常常连在一起,所以大多数八叉树节点都无需展开到叶子层面。所以说,八叉树比点云节省了大量的存储空间。
  • 0,1表示占据?由于噪声的影响采用概率形式
  • 视觉SLAM十四讲 第13讲 建图_第18张图片

你可能感兴趣的:(视觉SLAM十四讲)