酸菜鱼的SLAM之旅(5)

2019年3月27日:视觉里程计 - 直接法

keyword:直接法、光流法、g2o

直接法

特征点法的一些问题:

  • 关键点的提取和描述子的计算很耗时
  • 只使用特征点丢弃了大部分可能有用的图像信息
  • 相机有时候会运动到特征缺失的地方,找不到足够的匹配点来计算相机的运动

解决问题的思路:

  • 保留特征点,但只计算关键点,不计算描述子,使用光流法(Optical Flow)来跟踪特征点的运动。这样仍然使用特征点,只是将匹配描述子替换成光流跟踪,估计相机运动使用与特征点法相同的算法(对极几何、PnP或ICP)。
  • 只计算关键点,不计算描述子,使用直接法(Direct Method)来计算特征点在下一时刻图像的位置。
  • 不计算关键点和描述子,直接根据图像灰度的差异,直接计算相机运动。

后两种方法都根据图像的像素灰度信息来计算相机运动,称为直接法

两种方法特性比较

  • 特征点法:
    • 特征点看作固定在三维空间的不动点
    • 根据投影位置,最小化重投影误差(Reprojection error)来优化相机运动
    • 需要知道空间点在两个相机中投影的精确像素位置(对特征进行匹配和跟踪)
    • 计算量大,精确
    • 只能重构稀疏特征点(稀疏地图)

  • 直接法:
    • 通过最小化光度误差(Photometric error)求点与点之间的对应关系,不计算关键点和描述子
    • 根据像素的亮度信息(场景中的明暗变化)估计相机的运动
    • 分为稀疏、稠密、半稠密三种,具有恢复稠密或半稠密结构的能力
    • 避免了特征的计算时间和特征缺失的情况,但不够精确

光流

光流是一种描述像素随着时间,在图像之间运动的方法。计算部分像素运动的称为稀疏光流,计算所有像素的称为稠密光流。

Lucas-Kanade光流

LK光流是稀疏光流的代表,可以在SLAM中用于跟踪特征点的位置。

  • 光流法中假设同一个空间点的像素灰度值,在各个图像中是固定不变的(灰度不变假设),这是一个很强的假设,现实中很可能不成立。

  • LK光流中,认为图像是时间的函数:I(t)

    • 一个在t时刻,位于(x; y) 处的像素,它的灰度可以写成

      I(x,y,t)
      
    • 基于灰度不变假设,因此有:对于t时刻位于(x, y) 处的像素,我们设 t + dt 时刻,它运动到 (x + dx; y + dy) 处。

      I(x + dx,y + dy,t + dt) = I(x,y,t)
      

像素运动的计算

两个假设:

  • 同一个空间点的像素灰度值,在各个图像中是固定不变的。
  • 某一个窗口内的像素具有相同的运动

ABujFe.jpg

ABuvJH.jpg

实践-LK光流

  • 待填

直接法(Direct Methods)

直接法的推导

考虑空间点P和两个时刻的相机。

ABuqeK.jpg

ABuOoD.jpg

ABuLdO.jpg

ABuxWd.jpg

直接法的讨论

P是一个已知位置的空间点。在直接法的讨论中,我们假定P的深度已知。此时可以分类:

  1. P来自于稀疏关键点,我们称之为稀疏直接法。通常我们使用数百个至上千个关键点,并且像L-K光流那样,假设它周围像素也是不变的。这种稀疏直接法不必计算描述子,并且只使用数百个像素,因此速度最快,但只能计算稀疏的重构。
  2. P来自部分像素。我们看到式(8.16)中,如果像素梯度为零,整一项雅可比就为零,不会对计算运动增量有任何贡献。因此,可以考虑只使用带有梯度的像素点,舍弃像素梯度不明显的地方。这称之为半稠密(Semi-Dense)的直接法,可以重构一个半稠密结构。
  3. P为所有像素,称为稠密直接法。稠密重构需要计算所有像素(一般几十万至几百万个),因此多数不能在现有的CPU上实时计算,需要GPU的加速。但是,如前面所讨论的,梯度不明显的点,在运动估计中不会有太大贡献,在重构时也会难以估计位置。

RGB-D直接法实践

  • 待填
文章目录
  1. 1. 2019年3月27日:视觉里程计 - 直接法
  2. 2. 直接法
    1. 2.1. 特征点法的一些问题:
    2. 2.2. 解决问题的思路:
    3. 2.3. 两种方法特性比较
  3. 3. 光流
    1. 3.1. Lucas-Kanade光流
      1. 3.1.1. 像素运动的计算
  4. 4. 实践-LK光流
  5. 5. 直接法(Direct Methods)
    1. 5.1. 直接法的推导
    2. 5.2. 直接法的讨论
  6. 6. RGB-D直接法实践