与Horn的全局算法不同,Lucas在处理光流计算基本等式的不适定问题时,假设在一个很小的空间邻域Ω(假设大小为n,n≥2)内光流速度矢量保持恒定,那么在这个很小的空间邻域内每个像素点光流速度的计算都可以使用光流计算基本约束方程,这样就可以得到一个由n个方程构成的方程组,其未知数是光流速度矢量u、ν。显然,该方程组是一个超定方程组,可以使用加权最小二乘法(Weighted Least-squares)求得一个近似解。
下面具体介绍Lucas局部算法的推导过程,首先在一个小的空间邻域 Ω上,对邻域内不同的像素点赋予不同的权值,定义光流估计误差为
式中,
表示像素点(i,j)在计算光流时的权重函数,它决定了空间邻域 Ω内各像素点图像数据在计算光流时对约束产生的影响的大小,一般情况下,采用的
使空间邻域Ω中心部分产生的影响比邻域外围部分更大,通常使用Guass核函数。
令式(2-28)等于零,并分别对u、ν求导,得到一个矢量方程
式(2-29)中
那么可以得到式(2-29)的解为
。假设最小邻域是一个2× 2的区域,则
当式(2-30)中矩阵是非奇异矩阵时,即图像中像素点沿X轴、Y轴方向有偏导数时可得到解析解。这样式(2-29)可以写为
那么光流解可以写为
从式(2-32)中不难看出,在图像中灰度梯度为 0 的平坦区域,方程式不适合,而在其他区域,如果矩阵特征值太小以至于趋于 0,孔径问题依然存在。这些区域计算不出准确的光流速度矢量u、ν。因此,可以使用矩阵A T W 2 A(λ 1 ≥ λ 2 )的特征值来鉴别不可靠的估计,该值依赖于空间梯度的数量和方向的范围。如果λ 1 和λ 2 都大于一个阈值κ,w用式(3-18)计算;如果λ 1 ≥ κ而λ 2 < κ,计算法向速度估计;如果λ 1 < κ,不计算速度。由此可看出,此方法不是所有像素点都能计算出结果,在λ过小时计算不出光流,所以得到的光流场是稀疏的,但是此方法在噪声情况下有更好的鲁棒性。