和则是图像在 x ,y ,t 这一点相应方向的差分 。方程④有两个未知量,尚不能被解决,这也就是所谓光流算法的光圈问题。那么要找到光流向量则需要另一套解决的方案。光流计算而Lucas-Kanade算法是一个非迭代的算法。将上式矩阵相乘形式: (5)LK光流:假设像素流在一个大小为m*m m 1 的小窗中是一致的,那么从像素1...n , n m^2 中可以得到下列一组方程:图2 LK光流算法将⑥写成矩阵的形式,则有:式⑦两个个未知数但是有多于两个的方程,这个方程组自然是个超定方程,也就是说方程组内有冗余为了解决这个超定问题,我们采用最小二乘法解的向量u: (8)得到: (9)考虑矩阵的可逆性: 的求和是从:加权窗口:述普通的最小二乘解对窗口内n个像素qi一视同仁。事实上,通常对于靠近中心像素p的像素更多的权重会更好。 (12) (13)计算的: (14)权重w通常被设置为距离的高斯函数。三K光流法改进算法1 LK方法的金字塔改进LK方法有一个缺陷,小速度,亮度不变以及区域一致性都是较强的假设,并不很容易得到满足。如当物体运动速度较快时,假设不成立,那么后续的假设就会有较大的偏差,使得最终求出的光流值有较大的误差。
我们设邻域窗口半径为w,则光流d定义为最小化残差方程?的速度:(15)考虑物体的运动速度较大时,算出字塔图像,逐层求解,不断精确来求得。假设图像的宽高每次缩放为原来的一般,共缩放了Lm层,则第0层为原图像。设已知原图的速度向量为d,则每一层的速度为 (16)基于金字塔的光流法的大概步骤如下:字塔的缩放减小了光流值,最底层的光流估计值可以设为0,即 (19)图3 金字塔光流光流估计算法进行改进前向-后向光流方程: (20)光流约束方程为: (21)尽管Lucas-Kanade光流法计算简单,光流估计精度较高,但它有一个致命缺点,假定邻域Ω内各像素点光流保持恒定,而且光流计算依赖于窗口权重函数,这意味着如果在邻域Ω内存在严重违反光流约束方程的点或邻域Ω运动不连续,将使得估计的光流可靠性严重降低。
为此,引入Hessian矩阵判断领域Ω内每点对于基本约束方程的“良态性”。方程?分别对x和y求偏导数,可得: (22)写成矩阵形式, (23)定义Hessian矩阵: (24)Hessian矩阵的条件数: (25)其中、分别为Hessian矩阵H的最大特征值和最小特征值,可以通过Hessian矩阵的条件数大小来判断方程 23 解的稳定性,如果Hessian矩阵的条件数很大则方程 23 为病态方程,对应的Hessian矩阵秩很小,其解不稳定,计算的光流不可靠;如果Hessian矩阵的条件数接近1,对应的Hessian矩阵秩很大,方程 23 为良态,其解鲁棒性较好。由此可以通过计算Hessian矩阵的条件数来剔除邻域Ω内不可靠点。Hessian矩阵的条件数很好地刻画了线性方程 11 解的稳定性,而且条件数越大,对应的Hessian矩阵的秩越小,为此可以先利用Hessian矩阵剔除邻域Ω内不可靠点,并把各点对应条件数的倒数作为该点权重,其算法如下:1 计算图像中每点的一阶和二阶梯度;2 分别计算每点对应Hessian矩阵的秩det H 和条件数Cond(H)3 采用加权最小二乘法求解式 21 光流场 u,v 。
四总结所述,光流法思想是像素守恒,其思想简单,易于理解。K算法是对光流法的改进,光流法上了小窗口光流一致原则以及亮度守恒,光流的求解变得非常的简单并且能够进行大量实际应用。但是正是由于假设性太强,使得其应用受到极大限制。出字塔光流算是其小运动假设做的改进,其用缩小图像尺寸的方法来较小运动矢量。而前后光流算法可以剔除光流不一致或跳动较大的点,放松光流一致的假设的条件。后续的改进算法还有很多,可以加上全局变量来处理遮挡的问题等等,目前只是学习的这里。以上就是此次的读书笔记。8
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-31279-2.html
“甲午战争”120年后的中国
就导弹放放吧