《视觉SLAM十四讲 第2版》学习笔记 第1讲
前言
开始是成功的左括号。——Hoohoo
最近开始学习CV领域,因为老师想让我做医学影像的三维重建,依我理解,医学影像的三维重建就是面绘制、体绘制之类的,使用VTK、ITK工具包完成,也询问了一些学长等专业人士,得知这边并不好出成果,好出成果的就是切割、MRI之类的,我并没有很大的兴趣,而且老师希望我继续做,我只能曲线救国,先学学重建之类的知识,也就是计算机视觉这方面的,而非专一的医学影像方向。
并且一定要学习的话,反正都是从0开始,就先学着吧!
最近在看的一篇论文,十年前的一篇开山之作,就是SLAM中的前端技术,所以在推荐下,就开始学习高翔等著的《视觉SLAM十四讲 从理论到实践》第2版。
学习笔记
第一讲是预备知识,介绍本书的基本信息。
SLAM: Simultaneous Localization and Mapping (同时定位与地图构建)的缩写。指搭载特定传感器的主体,在没有环境先验信息情况下,于运动过程中建立环境的模型,同时估计自己的运动。如果传感器主要是相机,则称为“视觉SLAM”。
所需前备知识:
-
高等数学、线性代数(!!!)、概率论
-
C++语言基础
-
Linux基础
需要用到的主要库:Eigen
、OpenCV
、PCL
、g2o
、Ceres
等。
习题
-
有线性方程 Ax = b,当我们知道 A, b,想要求解 x 时,如何求解?这对 A 和 b 需 要哪些条件?提示:从 A 的维度和秩角度来分析。
- 当R(A) = R(A,b) = n时,有唯一解。
- 当R(A) = R(A,b) < n时,有多解。
- 当R(A) < R(A,b) 时,无解。
// 其中R()为秩的个数,n为未知数的个数。
-
高斯分布是什么?它的一维形式是什么样子?它的高维形式是什么样子?
高斯分布又称为正态分布===
-
你知道 C++ 的类吗?你知道 STL 吗?你使用过它们吗?
知道一些类,使用过STL。
-
你以前怎样书写 C++ 程序?(你完全可以说只在 VC6.0 下写过 C++ 工程,只要你 有写 C++ 和 C 语言经验就行。)
刚开始使用
CodeBlock
写C语言,后来使用Clion
,前段时间做VTK,也用过一段时间Visual Studio
。 -
你知道 C++11 标准吗?其中哪些新特性你之前听说过或使用过?有没有其他的标准?
====
-
你知道 Linux 吗?你有没有至少使用过其中之一(安卓不算),比如 Ubuntu?
知道。用过MacOS、Windows、CentOS、Federa、Ubuntu。
-
Linux 的目录结构是什么样的?你知道哪些基本命令,比如 ls, cat 等等?
Linux下的目录结构主要是由
/
延伸。一些命令:
ls
、ll
、mkdir
、rm
、tar
、vim
、pwd
、which
… -
如何在 Ubuntu 中安装软件(不打开软件中心的情况下)?这些软件被安装在什么地方?当我只知道模糊的软件名称(比如我想要装一个 eigen 名称的库),我应该如何安装它?
apt-get install
,=== -
*花一个小时学习一下Vim,因为你迟早会用它。你可以在终端中输入vimtutor阅 读一遍所有内容。我们不需要你非常熟练地操作它,只要在学习本书的过程中使用它 键入代码即可。不要在它的插件上浪费时间,不要想着把 vim 用成 IDE,我们只用 它做文本编辑的工作。
Vim!!!