视觉slam十四讲

一. SLAM框架

SLAM流程图

1. 视觉里程计(Visual Odometry, VO)

  • 估算相邻图像间相机的运动 + 局部地图的样子
  • 涉及图像的特征提取与匹配等(计算机视觉)
  • 只计算相邻时刻,出现累计漂移(Accumulating Drift)

2. 后端优化(Optimization)

  • 处理SLAM过程中噪声的问题
  • 主要为滤波与非线性优化算法
  • 最大后验概率估计(Maximum-a-Posteriori, MAP)

3. 回环检测(Loop Closing)

  • 解决位置估计随时间漂移的问题(让机器人经过一段时间运动后回到原点)
  • 判断机器人是否曾经到达过先前的位置

4. 建图(Mapping)

  • 构建地图的过程
  • 度量地图(Metric Map) + 拓扑地图(Topological Map) 地图类型

二. 李群与李代数

李群-李代数转换关系

1. 李群

  • 群:一种集合加上一种运算的代数结构
  • 一般线性群 GL(n)
  • 特殊正交群 SO(n)
  • 特殊欧氏群 SE(n)
  • 李群:具有连续(光滑)性质的群

2. 李代数

  • 每个李群都有与之对应的李代数。描述了李群的局部性质。
  • 由一个集合V,一个数域F和一个二元运算[,]组成。(V, F, [,])

李群-李代数转换公式

三. 相机成像原理

相机成像原理

四. 视觉里程计

1. 特征提取和匹配

1.1 特征点

  • 特征点在相机运动之后保持稳定
  • 特征点:关键点(位置、朝向、大小等) + 描述子(向量,描述了关键点周围像素的信息)

1.2 特征提取

  • SIFT(充分考虑了光照、尺度、旋转等变化;极大的计算量)
  • ORB(实时)

1.3 特征匹配

  • 暴力匹配(Brute-Force Matcher)
  • 快速近似最近邻(FLANN)

2. 2D-2D:对极几何

3. 3D-2D:PnP

3.1 直接线性变换(DLT)

DLT

  • R T 12个未知数,直接线形求解;
  • 最少需要六对匹配点;

3.2 P3P

P3P

  • 只利用三个点的信息(给定配对点多于3组时,难以利用更多的信息)
  • 如果3D或2D点受噪声影响,或者存在误匹配,则算法失效

3.3 BA(Bundle Adjustment)

  • 将相机位姿与空间点位置都看作优化变量,最小化重投影误差

3.4 EPnP

EPnP

4. 3D-3D:ICP

4.1 SVD方法

4.2 非线形优化方法