光流法深度剖析与总结

Optical Flow

一、 光流

光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。其计算方法可以分为三类:

(1)基于区域或者基于特征的匹配方法;(L-K的方法)

(2)基于频域的方法;

(3)基于梯度的方法;

简单来说,光流是空间运动物体在观测成像平面上的像素运动的“瞬时速度”。光流的研究是利用图像序列中的像素强度数据的时域变化和相关性来确定各自像素位置的“运动”。研究光流场的目的就是为了从图片序列中近似得到不能直接得到的运动场。

二、光流法的前提假设:

(1)相邻帧之间的亮度恒定;

(2)相邻视频帧的取帧时间连续,或者,相邻帧之间物体的运动比较“微小”;

(3)保持空间一致性;即,同一子图像的像素点具有相同的运动。

三、目前经典算法总结:

1. L-K Alg(sparse matching based on feature section)

 原始L-K算法(最小二乘伪逆求解方程组):
 金字塔L-K算法(迭代): cvCalcOpticalFlowPyrLK
 金字塔Affine L-K算法(迭代):cvCalcAffineFlowPyrLK

2. Farneback Alg(dense flow)

  opencv中,cvCalcOpticalFlowFarneback

3. calcOpticalFlowSF

 reference paper[SimpleFlow: A Non-iterative, Sublinear Optical FlowAlgorithm]

4. HS(Horn-Shunck)

    brightness constancy & smoothness constraint
    https://www.youtube.com/watch?v=5VyLAH8BhF8

4. PCAOpticalFlow

5. fast optical flow

点赞