浅谈光流跟踪之KLT稀疏光流跟踪算法

0 简介

在学习vins-mono过程中,算法前端采用基于KLT光流的跟踪方法,对光流和KLT光流进行简单的总结。包括LK光流跟踪算法原理,基于金字塔改进的LK光流跟踪,KLT光流跟踪算法,以及在光流跟踪时使用的角点检测算法Harris角点检测和Shi-Tomasi角点检测。

光流跟踪分为稠密光流和稀疏光流,稠密光流即对图像中所有的像素点进行跟踪,稀疏光流则是对图像中的特征点进行跟踪。KLT光流跟踪是一种稀疏光流跟踪算法。

1 光流的三大假设条件

光流法跟踪的的主要原理就是通过计算像素点在相邻帧图像之间的速度,可以得到像素在下一帧的位置,具体计算方法则是根据光流法的三大假设联立方程组,基于最小二乘对像素在两帧之间的运动进行求解。

在vins系列中,算法前端采用KLT光流跟踪算法,函数入口为calcOpticalFlowPyrLK

光流跟踪法的三大假设条件如下所示:

  • 亮度恒定即灰度不变性:同一个空间点的像素灰度值,在各个图像中是固定不变的
  • 小运动即时间连续性:相邻帧间保持微小的运动,时间的变化不会引起像素的剧烈变化
  • 空间一致性:特征点及其周围邻域的像素均具有相同的运动

2 LK光流跟踪算法原理

(此处参考14讲第8章)
对于t时刻的某个像素(x,y),当相机运动到t+1时刻时,基于灰度不变性假设可以得到如下关系
在这里插入图片描述

对公式左边进行一阶泰勒展开,并根据灰度不变性可以得到以下公式:
在这里插入图片描述

在这里插入图片描述

首先dx/dtdy/dt分别为像素点在x轴和y轴方向上的导数,分别记为u和v;
然后∂I/∂x∂I/∂y分别为像素值在(x,y)处的偏导数,记为在(x,y)处的梯度;
则可以将上述公式写成矩阵的形式:
在这里插入图片描述

为了求解像素在相邻两帧的速度(u,v)&

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值