光流的概念是Gibson在1950年首先提出来的。它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。一般而言,光流是由于场景中前景目标本身的移动、相机的运动,或者两者的共同运动所产生的。
那通俗的讲就是通过一个图片序列,把每张图像中每个像素的运动速度和运动方向找出来就是光流场。那怎么找呢?咱们直观理解肯定是:第t帧的时候A点的位置是(x1, y1),那么我们在第t+1帧的时候再找到A点,假如它的位置是(x2,y2),那么我们就可以确定A点的运动了:(ux, vy) = (x2, y2) - (x1,y1)。
L-K算法需要满足如下3个假设:
1)亮度恒定假设。即假设场景中目标在运动时外观颜色是不变的,也即在图像中的像素在两帧中的亮度保持不变。
2)时间连续或运动是小运动。即图像中物体的运动随时间变化缓慢,在连续的两帧图像间,物体的位移比较小。
3)空间一致性假设。图像中同一物体表面上邻近的像素点的运动是一致的,且这些点一定是聚集在一个区域内的。
假设以M点为中心的灰度区域内的光流均一致,那么对于不同的像素点赋予不同的权值,就可以将光流的计算方程式转化为以下形式: