视觉slam十四讲 pdf_《视觉SLAM十四讲》学习笔记

ce7d2c83f9a61720c7b0465068d88b88.png

声明:以下内容均出自高翔《视觉SLAM十四讲》(第二版),其中加入了一些自己的理解和思考。新手刚接触 SLAM,如有不对的地方还请大家指正。

  1. 什么是 SLAM ?
  • SLAM 是 Simultaneous Localization and Mapping 的缩写,即“同时定位与建图”。它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动中建立环境的模型,同时估计自己的运动。
  • 如果这里的传感器主要为相机,那就成为“视觉 SLAM”。此时,SLAM 要做的事就是根据一张张连续运动的图像,推断出相机的运动以及周围环境的信息。
  • SLAM 的核心是“定位”与“建图”。

2. 3D 重建包括单目(Monocular)重建、双目(Stereo)重建和 RGB-D 重建。其中,RGB-D 相机除了可以采集到彩色图片,还能测出每个像素与相机之间的距离。(RGB-D 相机可以主动向物体发射光并接收返回的光,从而测出物体与相机之间的距离。)

3. 经典的视觉 SLAM 框架包含以下四个部分:

  • 前端视觉里程计(Visual Odometry,VO):在对相机拍摄到的图片进行读取和预处理之后,前端的主要任务是估算相邻图像间相机的运动,以及局部地图的样子。
  • 后端非线性优化(Nonlinear Optimization):后端接受不同时刻视觉里程计测量的相机位姿,以及回环检测的信息,对它们进行优化,得到全局一致的轨迹和地图。
  • 回环检测(Loop Closure Detection):回环检测判断传感器是否到达过先前的位置。如果检测到回环,它会把信息提供给后端进行处理。
  • 建图:根据估计的轨迹,建立与任务要求对应的地图。

4. 视觉里程计关心的是相邻图像之间的相机运动,它只计算相邻时刻的运动,而和过去的信息没有关联。

假设我们已经有了一个视觉里程计,它估计出了所有相邻图像间的相机运动。那么此时:

  • 只要我们把相邻时刻的运动“串起来”,就构成了传感器的运动轨迹,从而解决了定位问题;
  • 同时,根据每个时刻的相机位置,可以计算出各像素点对应的空间点的位置,就得到了地图。

然而,由于噪声的存在,视觉里程计每次在估计相邻图像间相机的运动时,都会带有一定的误差。又由于视觉里程计的马尔可夫性,先前时刻的误差将会传递到下一时刻,导致经过一段时间后,由视觉里程计估计得到的位姿和地图将不可避免地出现累积漂移。(累积漂移的存在,将导致我们无法建立一致的地图。)

那么如何解决这个问题呢?这个时候就需要 SLAM 系统中另外两个部分的帮助 —— 后端优化和回环检测。

5. 如前所述,由前端估计出的相机位姿和地图往往带有一定的噪声。那么后端优化要解决的问题,就是如何从这些带有噪声的数据中估计整个系统的状态,以及这个状态估计的不确定性有多大。(这里的状态既包括机器人自身的轨迹,也包含地图。)

前端和后端是如何协同作用的:在 SLAM 框架中,前端给后端提供待优化的数据,以及这些数据的初始值。而后端则负责整体的优化过程,它往往面对的只有数据,而不必关心这些数据到底来自什么传感器。在视觉 SLAM 中,前端和计算机视觉领域更为相关(比如图像的特征提取与匹配),后端则主要是滤波与非线性优化算法。

6. 回环检测主要解决位置估计随时间漂移的问题。怎么解决呢?

假设实际情况下传感器经过一段时间的运动后回到了原点,但是由于漂移,它的位置估计值却没有回到原点。怎么办呢?如果有某种手段,让机器人知道“回到了原点”这件事,或者把“原点”识别出来,我们再把位置估计值“拉”过去,就可以消除漂移了。这就是所谓的回环检测。
在检测到回环后,我们会把“A 与 B 是同一点”这样的信息告诉后端优化算法。然后,后端根据这些新的信息,把轨迹和地图调整到符合回环检测结果的样子。这样,如果我们有充分而且正确的回环检测,就可以显著地减小累积误差,得到全局一致的轨迹和地图。

视觉回环检测实质上是一种计算图像数据相似性的算法。

7. 建图是指构建地图的过程。地图是对环境的描述,但这个描述并不是固定的,一组空间点的集合可以称为地图,一个漂亮的 3D 模型也是地图。因此,建图并没有一个固定的形式和算法。

稀疏地图不需要表达所有的物体(例如,可以只表达环境中的一些路标(landmark)),而稠密地图则着重于建模所有看到的东西。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值