像素灰度值不变的假设
用光流法计算图像的相机的运动,需要建立在灰度不变的假设的基础上,因为只有在合适的假设上才可以有较好的结果。
首先,说明灰度其实是在相机的运动过程中变化的,因为同一个物体,相机据他距离不同时光圈调节的亮度应该是不同的,所以,灰度不是一成不变的。我们先假设灰度不变。
在求解 光流法时,计算部分像素运动称为稀疏光流,计算所有像素的运动称为稠密光流。
在一幅图片上,我们设他的灰度值为I(x,y),加上时间t的函数为I(x,y,t),我们先前假设灰度不变,所以时间变化dt,灰度值函数的对应点的灰度不变:
对上式的灰度值进行泰勒展开,可以得到:
因为假设灰度不变,所以灰度函数对任何变量的导数均为零:
通过恒等变换可以得到:
其中dx/dt为像素在x轴上的运动速度,同理dy/dt为像素在y轴上的运动速度,我们记为u,v。而偏导数为图像在x,y方向上的梯度,写成矩阵形式可以得到:
上式中,u、v就是像素点在xy上的移动速度,也是我们想要求解的。
我们选定一个WXW大小的一个窗口,在这个窗口中一共有w2个像素点,所以有w2个方程,我们就可以得到一个超线性方程组,这样就可以通过最小二乘得到方程的解。