光流法与直接法视觉里程计

特征点法流程:
  1. 在图像中提取特征点并计算特征描述 非常耗时, ~10 +ms in orb
  2. 在不同图像中寻找特征匹配 非常耗时,O(n^2) in brute force matching
  3. 利用匹配点信息计算相机位姿 比较快速 < 1ms

不需要使用特征匹配的思路:

  • 通过其他方式寻找配对点: 光流
  • 不需要配对点:直接法

光流法

光流:追踪源图像某个点在其他图像中的运动
一般分为稀疏光流和稠密光流

  • 稀疏以Lucas-Kanade(LK)光流为代表
  • 稠密以Horn-Schunck(HS)光流为代表
  • 本质是估计像素在不同时刻图像中的运动


    LK光流法示意图

步骤:
设t时刻位于想x,y出像素点的灰度值为
在时刻,该像素运动到了
希望计算运动

  • 灰度不变假设:
  • 注意:灰度不变是一种理想假设,实际当中由于高光/阴影/材质/曝光等不同,很可能不成立。



    上式是一个二元一次线性方程,欠定

  • 需要引用额外的约束
  • 假定一个窗口内光度不变:
    通过超定最小二乘解求得运动u,v


    1.png

LK光流的结果依赖于图像梯度

  • 但梯度不够平滑,可能剧烈变化
  • 局部的梯度不能用于预测长期图像走向
  • 解决方式: 多层光流
注解
  • 可以看成最小化像素误差的非线性优化
  • 每次使用Taylor一阶近似,在离优化点较远时效果不佳,往往需要迭代多次
  • 运动较大是需使用金字塔
  • 可以用于跟踪图像中的稀疏关键点的运动轨迹
  • 得到配对点后,后续计算与特征法VO中相同
  • 按方法可分为正向/反向 + 平移/组合的方式

直接法

光流仅估计了像素间平移,但

  • 没有用到相机本身的几何结构
  • 没有考虑到相机的旋转和图像的缩放
  • 对于边界上的点,光流不好追踪
  • 直接法则考虑了这些信息
直接法的推导
  • 假设有两个帧,运动未知,但有初始估计R,t
  • 第一帧上看到了点P,投影为p1
  • 按照初始估计,P在第二帧上投影为P2






可以看到,直接法的雅克比项有一个图像梯度因子

  • 因此,在图像梯度不明显的地方,对相机运动估计的贡献就小

根据使用的图像信息不同,可分为:
稀疏直接法:只处理稀疏角点或关键点
稠密直接法:使用所有像素
半稠密直接法:使用部分梯度明显的像素

直接法的直观解释
  • 像素灰度引导着优化的方向
  • 要使优化成立,必须保证从初始估计到最优估计中间的梯度一直下降
  • 这很容易受到图像非凸性的影响(可部分地由金字塔减轻)


优缺点总结
  • 优势

    • 省略特征提取时间
    • 只需有像素梯度而不必是角点(对白墙等地方效果较好)
    • 可稠密或半稠密
  • 劣势

    • 灰度不变难以满足
    • 单像素区分性差
    • 图像非凸性

你可能感兴趣的:(光流法与直接法视觉里程计)