运动场与光流法"/>
运动场与光流法
运动场与光流法
- 1. 刚体运动场
- 1.1 定义
- 1.2 基础
- 1.3 运动场的基础方程
- 1.4 特殊情况:纯平移
- VP 和 FOE 的区别
- 2. 二维刚体运动运动学
- 2.1 公式推导
- 3. 运动场和光流
- 3.1 图像亮度一致性方程
- 3.2 孔径问题(The Aperture Problem)
- 3.3 光流一致性方程的有效性
- 3.4 总结
Reference:
- Emanuele Trucco,Alessandro Verri 《Introductory techniques for 3-D computer_vision》
- 7. Motion
1. 刚体运动场
1.1 定义
运动场(Motion Field)是图像点的速度的二维矢量场,由观察摄像机与观测场景之间的相对运动引起。
运动场可以被看成是三维速度矢量在图像平面上的映射(为了可视化这个向量场,想象它在图像上的三维速度矢量)。
1.2 基础
令 P = [ X , Y , Z ] T \mathbf{P}=[X,Y,Z]^T P=[X,Y,Z]T 是在通常相机参考系上的一个 3 D 3D 3D 点。映射中心在原点上,光轴为 Z Z Z 轴, f f f 表示焦距。根据针孔模型可知,一个场景点 P \mathbf{P} P 在图像中的点 p \mathbf{p} p 为:
p = f P Z \mathbf{p}=f\frac{\mathbf{P}}{Z} p=fZP
因为 p p p 在坐标系的第三项永远等于 f f f,我们将其写成 p = [ x , y ] T \mathbf{p}=[x,y]^T p=[x,y]T 来替代 p = [ x , y , f ] T \mathbf{p}=[x,y,f]^T p=[x,y,f]T。场景点 P \mathbf{P} P 与相机间的相对运动可以描述为:
V = − T − ω × P \mathbf{V}=-\mathbf{T}-\omega \times \mathbf{P} V=−T−ω×P
公式推导将在第二节中展开(2.1)。因为这里是相机,即坐标系在做运动,所以符号上均为负。
在这里 T \mathbf{T} T 表示运动的平移分量, ω \boldsymbol{\omega} ω 为角速度。当运动为刚体的,对于任意的 P \mathbf{P} P 来说 T \mathbf{T} T 和 ω \mathbf{\omega} ω 相同的(对于同一刚体上的点来说)。分量可写为:
V x = − T x − ω y Z + ω z Y V y = − T y − ω z X + ω x Z V z = − T z − ω x Y + ω y X V_x = -T_x-\omega_yZ+\omega_zY\\ V_y = -T_y-\omega_zX+\omega_xZ\\ V_z = -T_z-\omega_xY+\omega_yX Vx=−Tx−ωyZ+ωzYVy=−Ty−ωzX+ωxZVz=−Tz−ωxY+ωyX
1.3 运动场的基础方程
为了获得在空间中的速度 P \mathbf{P} P 和在图像中相对应的速度 p \mathbf{p} p 的关系,我们对公式 p = f P Z \mathbf{p}=f\frac{\mathbf{P}}{Z} p=fZP 求时间倒数,得运动场 v \mathbf{v} v:
v = f Z V − V z P Z 2 \mathbf{v} = f\frac{Z\mathbf{V}-V_z\mathbf{P}}{Z^2} v=fZ2ZV−VzP
将 1.2 中的 V x V_x Vx, V y V_y Vy 代入,得 v x v_x vx, v y v_y vy:
v x = T z x − T x f Z − ω y f + ω z y + ω x x y f − ω y x 2 f v y = T z y − T y f Z + ω x f − ω z x − ω y x y f + ω x y 2 f \begin{aligned} &v_{x}=\frac{T_{z} x-T_{x} f}{Z}-\omega_{y} f+\omega_{z} y+\frac{\omega_{x} x y}{f}-\frac{\omega_{y} x^{2}}{f} \\ &v_{y}=\frac{T_{z} y-T_{y} f}{Z}+\omega_{x} f-\omega_{z} x-\frac{\omega_{y} x y}{f}+\frac{\omega_{x} y^{2}}{f} \end{aligned} vx=ZTzx−Txf−ωyf+ωzy+fωxxy−fωyx2vy=ZTzy−Tyf+ωxf−ωzx−fωyxy+fωxy2
注意运动场是两个分量的和(平移+旋转):
运动场的平移分量为,
v x T = T z x − T x f Z , v y T = T z y − T y f Z v_{x}^T=\frac{T_{z} x-T_{x} f}{Z}, v_{y}^T=\frac{T_{z} y-T_{y} f}{Z} vxT=ZTzx−Txf,vyT=ZTzy−Tyf
运动场的旋转分量为,
v x ω = − ω y f + ω z y + ω x x y f − ω y x 2 f , v y ω = ω x f − ω z x − ω y x y f + ω x y 2 f v_{x}^{\omega}=-\omega_{y} f+\omega_{z} y+\frac{\omega_{x} x y}{f}-\frac{\omega_{y} x^{2}}{f}, v_{y}^{\omega}=\omega_{x} f-\omega_{z} x-\frac{\omega_{y} x y}{f}+\frac{\omega_{x} y^{2}}{f} vxω=−ωyf+ωzy+fωxxy−fωyx2,vyω=ωxf−ωzx−fωyxy+fωxy2
因为沿着光轴的运动场分量恒等于 0,应该用 v = [ v x , v y ] T \mathbf{v}=[v_x, v_y]^T v=[vx,vy]T 来替代 v = [ v x , v y , 0 ] T \mathbf{v}=[v_x, v_y, 0]^T v=[vx,vy,0]T。
要注意的是,在最后这两对方程中,分量分别取决于角速度 ω \boldsymbol{\omega} ω 和深度 Z Z Z,它们是解耦合的(分离开)。这里就揭露了运动场的一个很重要的性质:运动场中依赖角速度的那部分并不携带有关深度的信息。
1.4 特殊情况:纯平移
假设观测相机和场景间没有旋转分量,即 ω = 0 \boldsymbol{\omega}=0 ω=0,则:
v x = T z x − T x f Z , v y = T z y − T y f Z v_{x}=\frac{T_{z} x-T_{x} f}{Z}, v_{y}=\frac{T_{z} y-T_{y} f}{Z} vx=ZTzx−Txf,vy=ZTzy−Tyf
在一般情况下 T z ≠ 0 T_z\neq0 Tz=0,有一点 p 0 = [ x 0 , y 0 ] T \boldsymbol{p_0}=[x_0,y_0]^T p0=[x0,y0]T,则根据针孔成像原理(该点固定且唯一):
x 0 = f T x / T z , y 0 = f T y / T z x_0=fT_x/T_z, y_0=fT_y/T_z x0=fTx/Tz,y0=fTy/Tz
代入上式,得:
v x = ( x − x 0 ) T z Z , v y = ( y − y 0 ) T z Z v_x=(x-x_0)\frac{T_z}{Z}, v_y=(y-y_0)\frac{T_z}{Z} vx=(x−x0)ZTz,vy=(y−y0)ZTz
可以看出运动场的纯平移是径向的,它包含了从一个共同的原点 p 0 \boldsymbol{p_0} p0 径直发散出来的向量,这个点是平移方向的消失点。
- 当 T z < 0 T_z<0 Tz<0,向量点远离 p 0 \boldsymbol{p_0} p0, p 0 \boldsymbol{p_0} p0 被称为延伸焦点(
focus of expansion
,即 FOE),如图(a); - 当 T z > 0 T_z>0 Tz>0,向量点朝向 p 0 \boldsymbol{p_0} p0, p 0 \boldsymbol{p_0} p0 被称为收缩焦点(focus of contraction),如图(b)。
另外, v = v ( p ) \boldsymbol{v}=\boldsymbol{v}(\boldsymbol{p}) v=v(p) 的长度与 p \boldsymbol{p} p 和 p 0 \boldsymbol{p_0} p0 之间的距离成正比,与三维点 P \boldsymbol{P} P 的深度成反比。
特殊情况下,如果 T z = 0 T_z=0 Tz=0,公式变成了:
v x = − f T x Z , v y = − f T y Z v_x=-f\frac{T_x}{Z}, v_y=-f\frac{T_y}{Z} vx=−fZTx,vy=−fZTy
这时所有的运动场向量都是平行的,如上图©所示。
VP 和 FOE 的区别
纯平移运动时,FOE 为消失点。
2. 二维刚体运动运动学
即使刚体是由无数个粒子组成的,这些粒子的运动受到约束,使该物体在运动过程中仍然是刚体。特别地,二维刚体仅有的自由度是平移和旋转。
考虑一个二维刚体,它围绕点 O ′ O' O′ 以角速度 ω \omega ω 旋转,同时,点 O ′ O' O′ 相对于以 O O O 为原点的固定参照系 x x x 和 y y y 运动。
为了确定物体中点 P P P 的运动,我们搭建了第二套坐标轴 x ′ y ′ x'y' x′y′,与 x y xy xy 平行,其中原点在 O ′ O' O′:
r P = r O ′ + r P ′ v P = v O ′ + ( v P ) O ′ a P = a O ′ + ( a P ) O ′ \mathbf{r}_P = \mathbf{r}_{O'}+\mathbf{r}'_P\\ \mathbf{v}_P = \mathbf{v}_{O'}+(\mathbf{v}_P)_{O'}\\ \mathbf{a}_P = \mathbf{a}_{O'}+(\mathbf{a}_P)_{O'} rP=rO′+rP′vP=vO′+(vP)O′aP=aO′+(aP)O′
在这里,
- r P \mathbf{r}_P rP, v P \mathbf{v}_P vP 和 a P \mathbf{a}_P aP 分别为在点 O O O 观测到的点 P P P 的位置、速度和加速度向量;
- r O ′ \mathbf{r}_{O'} rO′ 为点 O ′ O' O′ 的位置向量;
- r P ′ \mathbf{r}'_P rP′, ( v P ) O ′ (\mathbf{v}_P)_{O'} (vP)O′ 和 ( a P ) O ′ (\mathbf{a}_P)_{O'} (aP)O′ 分别为在点 O ′ O' O′ 观测到的点 P P P 的位置、速度和加速度向量。
相对于点 O ′ O' O′,所有点在刚体中都可以被描述为一个圆形轨道( r P ′ \mathbf{r}'_P rP′为定值),这样可以很容易的算出速度:
( v P ) O ′ = r P ′ θ ˙ = r ω \left(v_{P}\right)_{O^{\prime}}=r_{P}^{\prime} \dot{\theta}=r \omega (vP)O′=rP′θ˙=rω
写成向量形式:
( v P ) O ′ = ω × r P ′ \left(\boldsymbol{v}_{P}\right)_{O^{\prime}}=\boldsymbol{\omega} \times \boldsymbol{r}_{P}^{\prime} (vP)O′=ω×rP′
其中 ω \boldsymbol{\omega} ω 是角速度向量。加速度有一个周向分量和一个径向分量,
( ( a P ) O ′ ) θ = r P ′ θ ¨ = r P ′ ω ˙ , ( ( a P ) O ′ ) r = − r P ′ θ ˙ 2 = − r P ′ ω 2 \left(\left(a_{P}\right)_{O^{\prime}}\right)_{\theta}=r_{P}^{\prime} \ddot{\theta}=r_{P}^{\prime} \dot{\omega}, \quad\left(\left(a_{P}\right)_{O^{\prime}}\right)_{r}=-r_{P}^{\prime} \dot{\theta}^{2}=-r_{P}^{\prime} \omega^{2} ((aP)O′)θ=rP′θ¨=rP′ω˙,((aP)O′)r=−rP′θ˙2=−rP′ω2
注意 ω \boldsymbol{\omega} ω 和 ω ˙ \dot\boldsymbol{\omega} ω˙ 垂直于平面运动(也就是 ω \boldsymbol{\omega} ω 可以改变大小而不是速度),可以将加速度向量写成:
( a P ) O ′ = ω ˙ × r P ′ + ω × ( ω × r P ′ ) \left(\boldsymbol{a}_{P}\right)_{O^{\prime}}=\dot{\boldsymbol{\omega}} \times \boldsymbol{r}_{P}^{\prime}+\boldsymbol{\omega} \times\left(\boldsymbol{\omega} \times \boldsymbol{r}_{P}^{\prime}\right) (aP)O′=ω˙×rP′+ω×(ω×rP′)
已知对于任意三个向量 A \boldsymbol{A} A, B \boldsymbol{B} B 和 C \boldsymbol{C} C,有 A × ( B × C ) = ( A ⋅ C ) B − ( A ⋅ B ) C \boldsymbol{A} \times(\boldsymbol{B} \times \boldsymbol{C})=(\boldsymbol{A} \cdot \boldsymbol{C}) \boldsymbol{B}-(\boldsymbol{A} \cdot \boldsymbol{B}) \boldsymbol{C} A×(B×C)=(A⋅C)B−(A⋅B)C。因此 ω × ( ω × r P ′ ) = ( ω ⋅ r P ′ ) ω − ω 2 r P ′ = − ω 2 r P ′ \boldsymbol{\omega} \times\left(\boldsymbol{\omega} \times \boldsymbol{r}_{P}^{\prime}\right)=\left(\boldsymbol{\omega} \cdot \boldsymbol{r}_{P}^{\prime}\right) \boldsymbol{\omega}-\omega^{2} \boldsymbol{r}_{P}^{\prime}=-\omega^{2} \boldsymbol{r}_{P}^{\prime} ω×(ω×rP′)=(ω⋅rP′)ω−ω2rP′=−ω2rP′。最终,得到公式:
v P = v O ′ + ω × r P ′ a P = a O ′ + ω ˙ × r P ′ + ω × ( ω × r P ′ ) \begin{aligned} &\boldsymbol{v}_{P}=\boldsymbol{v}_{O^{\prime}}+\boldsymbol{\omega} \times \boldsymbol{r}_{P}^{\prime} \\ &\boldsymbol{a}_{P}=\boldsymbol{a}_{O^{\prime}}+\dot{\boldsymbol{\omega}} \times \boldsymbol{r}_{P}^{\prime}+\boldsymbol{\omega} \times\left(\boldsymbol{\omega} \times \boldsymbol{r}_{P}^{\prime}\right) \end{aligned} vP=vO′+ω×rP′aP=aO′+ω˙×rP′+ω×(ω×rP′)
2.1 公式推导
光流假设之一:小运动----->(简化为)小旋转
- 假设在时间 t t t 时,点的 3D 位置为 P P P;
- 那么在时间 t + 1 t+1 t+1 时,点的 3D 位置为 R P + T RP+T RP+T。
现在考虑较短的时间段(如两个视频帧之间的时间= 1/30秒)。可以假设在这段时间内旋转一个小角度。做一个小的角度近似,重写位移。在极限(无穷小的时间周期),就可以得到速度。
已知:
R z , ψ = [ c o s ψ − s i n ψ 0 s i n ψ c o s ψ 0 0 0 1 ] , R y , θ = [ c o s θ 0 s i n θ 0 1 0 − s i n θ 0 c o s θ ] , R x , ϕ = [ 1 0 0 0 c o s ϕ − s i n ϕ 0 s i n ϕ c o s ϕ ] \begin{aligned} \mathbf{R}_{z, \psi} &=\left[\begin{array}{ccc} cos \psi & -sin \psi & 0 \\ sin \psi & cos \psi & 0 \\ 0 & 0 & 1 \end{array}\right], \mathbf{R}_{y, \theta} &=\left[\begin{array}{ccc} cos \theta & 0 & sin \theta \\ 0 & 1 & 0 \\ -sin \theta & 0 & cos \theta \end{array}\right], \mathbf{R}_{x, \phi}=\left[\begin{array}{ccc} 1 & 0 & 0 \\ 0 & cos \phi & -sin \phi \\ 0 & sin \phi & cos \phi \end{array}\right] \end{aligned} Rz,ψ=⎣⎡cosψsinψ0−sinψcosψ0001⎦⎤,Ry,θ=⎣⎡cosθ0−sinθ010sinθ0cosθ⎦⎤,Rx,ϕ=⎣⎡1000cosϕsinϕ0−sinϕcosϕ⎦⎤
相乘得 z y x zyx zyx 形式的转换矩阵:
R b n ( Θ ) : = R z , ψ R y , θ R x , ϕ R b n ( Θ ) − 1 = R n b ( Θ ) = R x , ϕ ⊤ R y , θ ⊤ R z , ψ ⊤ R b n ( Θ ) = [ c o s ψ c o s θ − s i n ψ c o s ϕ + c o s ψ s i n θ s i n ϕ s i n ψ s i n ϕ + c o s ψ c o s ϕ s i n θ s i n ψ c o s θ c o s ψ c o s ϕ + s i n ϕ s i n θ s i n ψ − c o s ψ s i n ϕ + s i n θ s i n ψ c o s ϕ − s i n θ c o s θ s i n ϕ c o s θ c o s ϕ ] \begin{array}{l} \mathbf{R}_{b}^{n}(\Theta):=\mathbf{R}_{z, \psi} \mathbf{R}_{y, \theta} \mathbf{R}_{x, \phi} \quad \mathbf{R}_{b}^{n}(\Theta)^{-1}=\mathbf{R}_{n}^{b}(\Theta)=\mathbf{R}_{x, \phi}^{\top} \mathbf{R}_{y, \theta}^{\top} \mathbf{R}_{z, \psi}^{\top} \\ \mathbf{R}_{b}^{n}(\Theta)=\left[\begin{array}{ccc} \mathrm{cos} \psi \mathrm{cos} \theta & -\mathrm{sin} \psi \mathrm{cos} \phi+\mathrm{cos} \psi \mathrm{sin} \theta \mathrm{sin} \phi & \mathrm{sin} \psi \mathrm{sin} \phi+\mathrm{cos} \psi \mathrm{cos} \phi \mathrm{sin} \theta \\ \mathrm{sin} \psi \mathrm{cos} \theta & \mathrm{cos} \psi \mathrm{cos} \phi+\mathrm{sin} \phi \mathrm{sin} \theta \mathrm{sin} \psi & -\mathrm{cos} \psi \mathrm{sin} \phi+\mathrm{sin} \theta \mathrm{sin} \psi \mathrm{cos} \phi \\ -\mathrm{sin} \theta & \mathrm{cos} \theta \mathrm{sin} \phi & \mathrm{cos} \theta \mathrm{cos} \phi \end{array}\right] \end{array} Rbn(Θ):=Rz,ψRy,θRx,ϕRbn(Θ)−1=Rnb(Θ)=Rx,ϕ⊤Ry,θ⊤Rz,ψ⊤Rbn(Θ)=⎣⎡cosψcosθsinψcosθ−sinθ−sinψcosϕ+cosψsinθsinϕcosψcosϕ+sinϕsinθsinψcosθsinϕsinψsinϕ+cosψcosϕsinθ−cosψsinϕ+sinθsinψcosϕcosθcosϕ⎦⎤
在小角度情况下:
c o s ( x ) ≈ 1 , s i n ( x ) ≈ x , s i n ( x ) c o s ( y ) ≈ 0 cos(x)\approx1, \quad sin(x)\approx x, \quad sin(x)cos(y)\approx0 cos(x)≈1,sin(x)≈x,sin(x)cos(y)≈0
因此,上面矩阵中的小角度近似可简化为:
R ≈ [ 1 − ψ θ ψ 1 − ϕ − θ ϕ 1 ] = I + [ 0 − ψ θ ψ 0 − ϕ − θ ϕ 0 ] = I + S R \approx\left[\begin{array}{ccc} 1 & -\psi & \theta \\ \psi & 1 & -\phi \\ -\theta & \phi & 1 \end{array}\right]=I+\left[\begin{array}{ccc} 0 & -\psi & \theta \\ \psi & 0 & -\phi \\ -\theta & \phi & 0 \end{array}\right]=I+S R≈⎣⎡1ψ−θ−ψ1ϕθ−ϕ1⎦⎤=I+⎣⎡0ψ−θ−ψ0ϕθ−ϕ0⎦⎤=I+S
在小角度近似的条件下,可得位移:
d i s p l a c e m e n t = R P + T − P = ( I + S ) P + T − P = S P + T displacement = RP + T - P = (I+S)P + T - P = SP+T displacement=RP+T−P=(I+S)P+T−P=SP+T
注意, S P = [ ϕ , θ , ψ ] T × P SP=[\phi, \theta, \psi]^T\times P SP=[ϕ,θ,ψ]T×P
在极限下,位移变成了速度:
V = T + ω × P V=T+\omega\times P V=T+ω×P
其中 ω = [ ω x , ω y , ω z ] T \omega=[\omega_x, \omega_y, \omega_z]^T ω=[ωx,ωy,ωz]T,这里的 T T T 与上面的公式不同 ---- 不是位移而是速度。
这里的符号取正负都可以,它取决于你想要认为运动是由于摄像机还是由于场景。
3. 运动场和光流
运动场(Motion Field): 三维相对矢量在二维图像平面上的投影
光流(Optical Flow): 在图像中观察到的亮度图案(brightness patterns)的二维位移
现在将问题转变为:从图像序列来估计运动场,即从空间和时间上的图像变化来估计运动场
3.1 图像亮度一致性方程
在大多数情况下,运动物体的视亮度保持不变,即 E ( x , y , t ) = E ( x + u , y + v , t + 1 ) E(x,y,t)=E(x+u,y+v,t+1) E(x,y,t)=E(x+u,y+v,t+1):
图像亮度 E E E,应该被看做图像平面的空间坐标 x x x, y y y 和时间的函数,也就是 E = E ( x , y , t ) E=E(x,y,t) E=E(x,y,t)。已知亮度一致性: d E d t = 0 \frac{dE}{dt}=0 dtdE=0,通过链式法则求导得:
d E ( x ( t ) , y ( t ) , t ) d t = ∂ E ∂ x d x d t + ∂ E ∂ y d y d t + ∂ E ∂ t = 0. \frac{d E(x(t), y(t), t)}{d t}=\frac{\partial E}{\partial x} \frac{d x}{d t}+\frac{\partial E}{\partial y} \frac{d y}{d t}+\frac{\partial E}{\partial t}=0 . dtdE(x(t),y(t),t)=∂x∂Edtdx+∂y∂Edtdy+∂t∂E=0.
图像亮度的偏空间导数只是空间图像梯度的分量, ∇ E \nabla E ∇E 和时间导数 d x / d t dx/dt dx/dt, d y / d t dy/dt dy/dt—两个均为运动场 v \boldsymbol{v} v 分量。
上式可以重写为以下式子,其中下标 t t t 代表关于时间的偏微分:
( ∇ E ) T v + E t = 0 (\nabla E)^T\boldsymbol{v}+E_t=0 (∇E)Tv+Et=0
3.2 孔径问题(The Aperture Problem)
孔径问题 指在运动估计中无法通过单个算子(计算某个像素值变化的操作,如:梯度)准确无误地评估物体的运行轨迹。原因是每一个算子只能处理它所负责局部区域的像素值变化,然而同一种像素值变化可能是由物体的多种运行轨迹导致。
运动场也是如此,它只能得到其空间图像梯度方向的分量 v n \boldsymbol{v_n} vn,该分量为垂直分量,因为空间图像梯度与沿图像光强保持不变的空间方向是垂直的。由上式 ( ∇ E ) T v + E t = 0 (\nabla E)^T\boldsymbol{v}+E_t=0 (∇E)Tv+Et=0 可得:
− E t ∥ ∇ E ∥ = ( ∇ E ) ⊤ v ∥ ∇ E ∥ = v n -\frac{E_{t}}{\|\nabla E\|}=\frac{(\nabla E)^{\top} \mathbf{v}}{\|\nabla E\|}=\boldsymbol{v_{n}} −∥∇E∥Et=∥∇E∥(∇E)⊤v=vn
图中的黑线和灰线相同图像线在连续两帧下的不同位置。在(a)中通过小孔径 v n \boldsymbol{v_{n}} vn 所感知到的像速度只是(b)中显示的真实像速度 v \boldsymbol{v} v 的像梯度的平行分量。
3.3 光流一致性方程的有效性
已知一致性方程是在亮度不变性下得到的结论。现在要评估这个平行分量怎么样,此时引入估计的方程与真实值之间的差 Δ v \Delta v Δv。为此,需要引入一个成像模型,它与场景中的照明以及表面反射率有关。
Lambertian 模型:每个表面点从所有的观察方向看都有相同的亮度。
为了这个讨论的目的,我们将条件限制在了一个 Lambertian surface
S S S,由一个点光源在无限远离相机处照明----这样就可以忽略掉光度畸变(photometric distortion),这样我们可以将图像亮度 E E E(image brightness1) 写成:
E = ρ I T n E=\rho \boldsymbol{I}^T\boldsymbol{n} E=ρITn
其中 ρ \rho ρ 为表面反射率(surface albedo),与表面的材料有关; I \boldsymbol{I} I 为发光亮度(illumination1)的光强和方向(入射光方向和总量); n \boldsymbol{n} n 为点 P \boldsymbol{P} P 在表面 S S S 的单位法向量。
将等式两边对时间求导。右侧只有表面法向量与时间有关:
d n d t = ω × n \frac{d \mathbf{n}}{dt}=\omega \times \mathbf{n} dtdn=ω×n
求导后等式变为了(左侧同 ( ∇ E ) T v + E t = 0 (\nabla E)^T\boldsymbol{v}+E_t=0 (∇E)Tv+Et=0获得方式):
∇ E ⊤ v + E t = ρ I ⊤ ( ω × n ) \nabla E^{\top} \mathbf{v}+E_{t}=\rho \mathbf{I}^{\top}(\omega \times \mathbf{n}) ∇E⊤v+Et=ρI⊤(ω×n)
通过3.3中的方程可以得到,真实值与估计出来的差值为:
∣ Δ v ∣ = ρ ∣ I ⊤ ω × n ∣ ∥ ∇ E ∥ |\Delta v|=\rho \frac{\left|\mathbf{I}^{\top} \omega \times \mathbf{n}\right|}{\|\nabla E\|} ∣Δv∣=ρ∥∇E∥∣∣I⊤ω×n∣∣
可以发现,即使在简化版 Lambertian 反射的假设下, Δ v \Delta v Δv 仅在做纯运动或刚体运动发光方向平行于角速度时为0。另外需要注意的是,在空间梯度大小增加时,估计差 Δ v \Delta v Δv 降低。这表明,具有高空间图像梯度的点的位置,在该位置上的运动场可以通过图像亮度一致性得到最好的估计结果。
在一般情况下, ∣ Δ v ∣ |\Delta v| ∣Δv∣ 不可能恒为0,图像亮度的视运动总是不等于运动场。为了避免混淆,我们把视运动称为光流。
3.4 总结
光流定义:光流是一个受制于函数: ( ∇ E ) T v + E t = 0 (\nabla E)^T\boldsymbol{v}+E_t=0 (∇E)Tv+Et=0 的矢量场,它粗略地定义为图像亮度图案的视运动。
光流是运动场的近似,可以从时变图像序列中计算得到。
在简化的假设下:
- Lambertian surface;
- 无穷远的逐点光源;
- 无光度失真
这种近似得到的误差:
- 在点有高空间梯度时,误差较小;
- 只在平移运动或任何刚体运动的照明方向平行于角速度时,误差为零;
发光亮度(Luminance)和亮度(Brightness)的区别
很多时候,容易将Luminance和Brightness两个概念混淆。Luminance指的是投射在固定方向和面积上面的发光强度,发光强度是一个可测量的属性,单位是“每立方米坎德拉”(cd/m2)。所以,不同的显示器可以通过测量获取cd/m2,调整至相同的cd/m2而获取相同发光强度。
Brightness亮度是光的主观属性,显示器从暗到亮之间可以调节成不同程度等级的亮度,亮度一般作为感知存在,而不能通过测量来客观评估(但可以说成比例,如50%的亮度)。 ↩︎ ↩︎
更多推荐
运动场与光流法
发布评论