视觉SLAM十四讲 第13讲 建图
1、单目SLAM的深度估计
2、实验完成单目SLAM
3、RGBD重建中的几种地图
- 机器人上的 SLAM,希望地图能够用于定位、导航、避障和交互,特征点地图不能满足这些需求。
文章目录
0. 引言()
- 定位。 基本功能,视觉里程计通过局部地图定位,回环检测通过全局地图定位;
- 导航。我们需要知道点的能通过与否。稀疏地图无法完成,需要建立稠密地图;
- 避障。类似导航。 需稠密地图;
- 重建。稠密地图,甚至带纹理;
- 交互。 语义地图。AR\VR;
13.2 单目稠密重建
1、立体视觉
- 单目稠密重建需要每一个像素点的距离,可以通过方法获得。
- 前两者得到的估计不如RGBD可靠,但可以应用在室外,RGBD 易受光照等影响,但目前仍更常见。
2、单目稠密重建技术
(1)引出
(2)极线搜索
- 极线搜索:对于在第一张图像中的某个像素,可能存在的深度范围是【最小,无穷大】,对应在新的一帧在某一个极线上,
- 如何确定是极线上的哪个点?
- 在特征点方法时,利用了特征匹配确定,但像素点没有使用描述子,无法直接确定,因此类似于直接法比较像素的相似度。
(3)块匹配技术引出
- 由于单个像素比较亮度值不太可靠,因此比较像素块,对块进行匹配。
- 去像素点p附近的w*w小块,对比灰度不变性,对比方法有多种:
(4)块匹配技术中常用的NCC的问题 以及 深度滤波器技术 解决
- 问题?
- NCC分布可能出现多个峰值,但真实深度对应的肯定只有1个。
- 像素深度估计,可建模为状态估计,通过非线性优化和滤波解决。(由于前端用了非线性优化计算量较大,此处采用的是滤波方法)
- 具体过程??详细步骤???未列出
3、实践-单目稠密重建
4、实验3中存在的问题与解决
(1)问题
- 缺乏工程技巧
(2)像素梯度问题
- 即:明显梯度的小块将具有良好的区分度;梯度不明显的像素,由于在块匹配时没有区分性,难以有效地估计其深度。
- 也就是说对物体纹理的依赖性
- 结论
- 当像素梯度与极线夹角较小时,极线匹配的不确定性大;而当夹角较大时,匹配的不确定性变小
(3)逆深度问题
- 实验中,假设了深度满足高斯分布,实际不是。
- 场景可能存在距离非常远,乃至无穷远处的点,导致分布并不是像高斯分布那样,形成一个对称的形状。它的尾部可能稍长,而负数区域则为零
- 因此采用逆深度解决。
- 正深度改成逆深度亦不复杂。只要在前面出现深度的推导中,将 d 改成逆深度 d−1 即可。
(4)块匹配前的预处理
- 在块匹配之前,做一次图像到图像间的变换亦是一种常见的预处理方式。
(5)运行效率问题:并行计算像素点
(6)其他问题
13.5 更常用的稠密建图–RGBD
- 转成点云,构建点云地图;
- 三角网格mesh建图;(可估计物体表面)
- 通过体素voxel构建栅格地图(可用于导航)
1、点云地图
- 包含信息:x,y,z \ x,y,z,彩色信息
- 注意进行简单滤波和降采样
点云地图的缺陷 大
2、八叉树地图 octomap库
- 为何我们说点云占体积,而八叉树比较节省空间呢?
- 在八叉树中,我们在节点中存储它是否被占据的信息。然而,不一样之处,在于当某个方块的所有子节点都被占据或都不被占据时,就没必要展开这个节点。例如,一开始地图为空白时,我们就只需一个根节点,而不需要完整的树。当在地图中添加信息时,由于实际的物体经常连在一起,空白的地方也会常常连在一起,所以大多数八叉树节点都无需展开到叶子层面。所以说,八叉树比点云节省了大量的存储空间。
- 0,1表示占据?由于噪声的影响采用概率形式