基本约束方程 考虑一个像素
I
(
x
,
y
,
t
)
I(x,y,t)
I(x,y,t)在第一帧的光强度(其中t代表其所在的时间维度)。它移动了
(
d
x
,
d
y
)
(dx,dy)
(dx,dy)的距离到下一帧,用了
d
t
dt
dt时间。因为是同一个像素点,依据上文提到的第一个假设我们认为该像素在运动前后的光强度是不变的,即:
I
(
x
,
y
,
t
)
=
I
(
x
+
d
x
,
y
+
d
y
,
t
+
d
t
)
(1)
I(x,y,t)=I(x+dx,y+dy,t+dt) \tag{1}
I(x,y,t)=I(x+dx,y+dy,t+dt)(1) 将(1)式右端进行泰勒展开
I
(
x
+
d
x
,
y
+
d
y
,
t
+
d
t
)
=
I
(
x
,
y
,
t
)
+
∂
I
∂
x
d
x
+
∂
I
∂
y
d
y
+
∂
I
∂
t
d
t
+
ε
I(x+dx,y+dy,t+dt)=I(x,y,t)+\frac{\partial I}{\partial x}dx+\frac{\partial I}{\partial y}dy+\frac{\partial I}{\partial t}dt+\varepsilon
I(x+dx,y+dy,t+dt)=I(x,y,t)+∂x∂Idx+∂y∂Idy+∂t∂Idt+ε 其中
ε
ε
ε代表二阶无穷小项,可忽略不计。再将(2)代人(1)后同除
d
t
dt
dt,可得:
∂
I
∂
x
d
x
+
∂
I
∂
y
d
y
+
∂
I
∂
t
d
t
=
0
(3)
\frac{\partial I}{\partial x}dx+\frac{\partial I}{\partial y}dy+\frac{\partial I}{\partial t}dt=0 \tag 3
∂x∂Idx+∂y∂Idy+∂t∂Idt=0(3) 设
u
,
v
u,v
u,v分别为光流分别为沿X轴与Y轴的速度矢量,得:
u
=
d
x
d
t
,
v
=
d
y
d
t
u=\frac{dx}{dt},v=\frac{dy}{dt}
u=dtdx,v=dtdy 令
I
x
=
∂
I
∂
x
,
I
y
=
∂
I
∂
y
,
I
t
=
∂
I
∂
t
I_x=\frac{\partial I}{\partial x},I_y=\frac{\partial I}{\partial y},I_t=\frac{\partial I}{\partial t}
Ix=∂x∂I,Iy=∂y∂I,It=∂t∂I,分别表示图像中像素点的灰度沿X,Y,T方向的偏导数。 综上,式(3)可以写为:
I
x
u
+
I
y
v
+
I
t
=
0
(4)
I_xu+I_yv+I_t=0 \tag4
Ixu+Iyv+It=0(4)
(
u
,
v
)
(u,v)
(u,v)即为所求光流矢量。 约束方程只有一个,而方程的未知量有两个,这种情况下无法求得u和v的确切值。此时需要引入另外的约束条件,从不同的角度引入约束条件,导致了不同光流场计算方法。按照理论基础与数学方法的区别把它们分成四种:基于梯度(微分)的方法、基于匹配的方法、基于能量(频率)的方法、基于相位的方法和神经动力学方法