第十三讲 建图

单目稠密建图

在稠密重建中,我们需要知道每一个像素点(或大多数像素点)的距离,有三种解决方法:

  1. 使用单目相机,通过移动相机之后进行三角化测量像素的距离。(这种方式又称为移动视觉的立体视觉,Moving View Stereo)。
  2. 使用双目相机,利用左右目的视差计算像素的距离,与多目原理相同。

1、2两种方式又称为立体视觉(Stereo Vision):立体视觉的重建质量十分依赖于环境纹理。(该问题无法在现有的算法流程上加以改进和解决的)

  1. 使用RGB-D相机直接获得像素距离。

极线搜索与块匹配

计算小块间差异的方法:SAD(差的绝对值之和,Sum of Absolute Difference)、SSD(平方和,Sum of Squared Distance)、NCC(归一化互相关,Normalized Cross Correlation)去均值的SAD、去均值的SSD等……

高斯分布的深度滤波器

估计像素点的深度,可建模为一个状态估计问题。所以有滤波器和非线性优化两种求解思路。而SLAM实时性要求较高,前端已经占据了不少的计算量,所以在建图中,我们通常采用计算量较少的滤波器方式。

假设深值服从高斯分布

  1. 估计稠密深度的一个完整过程:
  2. 假设所有像素的深度满足某个初始的高斯分布
  3. 当新数据产生时,通过极线搜索和块匹配确定投影点的位置
  4. 根据几何关系计算三角化后的深度及不确定性
  5. 将当前观测融合进上一次的估计中,若收敛则停止计算,否则返回第2步。

RGB-D稠密重建

利用RGB-D进行稠密建图的好处:

  1. 利用RGB-D相机可以完全通过传感器中硬件测量得到深度估计,而无须像单目和双目中那样通过消耗大量的计算资源来估计。
  2. RGB-D的结构光或飞时原理,保证了深度数据对纹理的无关性。即使是纯色的物体,只要它能够反射光,我们就能测量到它的深度。

根据地图形式的不同,存在着若干种不同的主流建图方式:

  1. 最直观、最简单的方式:根据估算的相机位姿,将RGB-D数据转化为点云(Point Cloud),然后进行拼接,最后得到一个由离散的点组成的点云地图。
  2. 如果我们希望估计物体的表面,在1)的基础上,使用三角网格(Mesh)、面片(Surfel)进行建图。
  3. 如果我们想要知道地图的障碍物信息并在地图上导航,亦可通过体素(Voxel)建立占据网格地图(Occupancy Map)。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐