由于之前的L-K光流法对于大运动的跟踪束手无策,然后有人又提出图像金字塔的方法来解决这个问题。通过建立金字塔,在多尺度下计算光流,使得光流的计算的准确性又跨越了一步。
金字塔光流的思想是对每个图像帧向下采样,分别建立多级金字塔,当采样到足够小以后,相邻的图像帧之间的运动将变得很小,以至于可以看成是物体的运动随时间变化很慢的运动情况,这时候就可以用L-K方法计算目标的光流,再将计算出来的光流向底层投影,计算下一层的光流,直到估算出原图像帧的光流。
实际运用中,通常只计算到3-4层金字塔,没有必要建立更多的金字塔层数,因为随着图像的移动,算法可以应对光流大于窗口尺寸的特征点跟踪问题。
金字塔L-K光流通常用来估计图像特征点的光流,以提高图像光流场的计算速度。若给定图像I中的像素点u,计算图像J中与其匹配的像素点v,使得v=u+d。
其计算的总体流程如下:
首先,计算金字塔最顶层图像的光流,根据最顶层光流结果计算其次上层的光流初始值,再进一步估算其光流的精确值。最后,用计算的次上层光流结果估计下一层光流的初始值,计算其精确的值后再继续带入下一层计算,直到金字塔的最底层。下面以伪代码的形式给出金字塔L-K光流的计算过程:
以上就是整个L-K 算法的核心,如果懂了以上的步骤,我相信里看懂此算法的距离不远了,加油!!。