作者在 2009-12-24 09:53:48 发布以下内容
首先,我们定义什么是光流子(Optical flow):维基上说:Optical flow or optic flow is the pattern of apparent motion of objects, surfaces, and edges in a visual scene caused by the relative motion between an observer and the scene.(光流子就是指在观察者和场景做相互运动时在运动的物体表面或者边上产生的一种运动亮度的模式。)我相信大家看了后和我一样都是晕的,但光流就是这个东西。
1.光流子的数学定义:
设I(x,y,t)是(x,y)像素点在t时刻的强度 δx, δy ,δt某一时刻非常短的时刻的位移,
- I(x,y,t) = I(x + δx,y + δy,t + δt)
- 用泰勒方程展开上面的方程
H.O.T. 为泰勒展开式的高皆无穷小,所以上式的可以表示为:
然后对其作关于t的偏导:
改写上式可得
Vx,Vy 就是点 x , y 在t时刻的光流 I(x,y,t) and , and 为期灰度梯度写为Ix,Iy It
所以:
- IxVx + IyVy = − It
or
由上式可以看出,我们这里有两个未知量Vx,Vy ,所以不能估计出其结果。
这时我们引入一个约束方程。就得到了光流子的Horn–Schunck method解法
这个约束方程的意思就是,要使得这个光流的平滑度和本身的偏差最小,这时光流就变成了求接上式的局部最小值。这时我们要用到“欧拉-拉格朗日方程”。
付:“欧拉-拉格朗日方程”
设 ,以及 在 中连续,并设泛函
- 。
若 使得泛函 J(y) 取得局部极值,则对于所有的 ,
- 。
推广到多维的情况, 记
- ,
- ,
- 。
- ,
若 使得泛函 取得局部极值,则在区间 内对于所有的 ,皆有
- 。
- 为了使大家都能看懂我将方差方程改写为:
由欧拉-拉格朗日方程将方差方程,改写为
化简之后就变为:
变性之后就变成了
公式推导完了。
大概的方法就是这样,通过迭代方法产生的光流场。