视觉SLAM十四讲第一讲

之前看过一遍,但是过一段时间之后就会忘记,所以这次做一个记录,将学习中遇到的问题和总结的一些东西记录下来,以供后续的回顾和学习。
第一讲 预备知识
SLAM 是 Simultaneous Localization and Mapping 的缩写,中文译作“同时定位与地图构建”。
它是指搭载特定传感器的主体,在没有环境先验信息的情况下,于运动过程中建立环境的模型,同时估计自己的运动。如果这里的传感器主要为相机,那就称为“视觉 SLAM”。
加粗的地方就是定义中的条件,也是一个优秀的SLAM系统应该做到的基础。所以SLAM 的目的是解决“定位”与“地图构建”这两个问题。也就是说,一边要估计传感器自身的位置,一边要建立周围环境的模型。
全书内容主要分为两个部分。

  1. 第一部分为数学基础篇,我们会以浅显易懂的方式,铺垫与视觉 SLAM 相关的数学知识,包括:
    • 第 1 讲是前言,介绍这本书的基本信息,习题部分主要包括一些自测题。
    • 第 2 讲为 SLAM 系统概述,介绍一个 SLAM 系统由哪些模块组成,各模块的具体工作是什么。实践部分介绍编程环境的搭建过程以及 IDE 的使用。
    • 第 3 讲介绍三维空间运动,你将接触到旋转矩阵、四元数、欧拉角的相关知识,并且在Eigen 当中使用它们。
    • 第 4 讲为李群和李代数。即便你现在不懂李代数为何物,也没有关系。你将学到李代数的定义和使用方式,然后通过 Sophus 操作它们。
    • 第 5 讲介绍针孔相机模型以及图像在计算机中的表达。你将用 OpenCV 来调取相机的内外参数。
    • 第 6 讲介绍非线性优化,包括状态估计理论基础、最小二乘问题、梯度下降方法。你会完成一个使用 Ceres 和 g2o 进行曲线拟合的实验。
  2. 第二部分为 SLAM 技术篇。我们会使用第一部分所介绍的理论,讲述视觉 SLAM 中各个模块的工作原理。
    • 第 7 讲为特征点法的视觉里程计。该讲内容比较多,包括特征点的提取与匹配、对极几何约束的计算、PnP 和 ICP 等。在实践中,你将用这些方法去估计两个图像之间的运动。
    • 第 8 讲为直接法的视觉里程计。你将学习光流和直接法的原理,然后实现一个简单的直接法运动估计。
    • 第 9 讲为后端优化,主要为对 Bundle Adjustment 的深入讨论,包括基本的 BA,以及如何利用稀疏性加速求解过程。你将用 Ceres 和 g2o 分别书写一个 BA 程序。
    • 第 10 讲主要讲后端优化中的位姿图。位姿图是表达关键帧之间约束的一种更紧凑的形式。我们会介绍 SE(3) 和 Sim(3) 的位姿图,同时你将使用 g2o 对一个位姿球进行优化。
    • 第 11 讲为回环检测,主要介绍以词袋方法为主的回环检测。你将使用 dbow3 书写字典训练程序和回环检测程序。
    • 第 12 讲为地图构建。我们会讨论如何使用单目进行稠密深度图的估计(以及这是多么不可靠),然后讨论 RGB-D 的稠密地图构建过程。你会书写极线搜索与块匹配的程序,然后在 RGB-D 中遇到点云地图和八叉树地图的构建问题。
    • 第 13 讲是工程章,你将搭建一个双目视觉里程计框架,综合运用先前学过的知识,实现它的基本功能。这个过程中,你会碰到一些问题,例如优化的必要性、关键帧的选择等。我们会在 Kitti 数据集上测试它的性能,讨论一些改进的手段。
    • 第 14 讲主要介绍当前的开源 SLAM 项目以及未来的发展方向
    总结:第一讲主要是一些介绍性描述,因为之前看过一遍,对这些还算熟悉。
    本书所有源代码均托管在 GitHub 上:
    https://github.com/gaoxiang12/slambook2

你可能感兴趣的:(SLAM,计算机视觉)