光流中的像素对应

PsP*_*PsP 2 opencv tracking pixel frame opticalflow

我对视频序列中光流的概念不知何外,我已经阅读了关于光流的基础知识,我熟悉Horn&Shunck方法或Lucas&Kanade的方法.

我意识到在这些方法中我们正在计算一些代表图像中像素运动的向量,当然这些像素存在一些限制(亮度恒定,平滑度和......)

我的问题:

根据公式fx*u + fy *v = -ft ,我们如何准确地建立帧中的一个像素与帧t中的另一个像素之间的对应关系t + 1

我的意思是我们怎么能确定它是t我们在帧中发现的帧中的相同像素t + 1,我不知道他们在算法的哪个部分找到这些像素并在帧t和帧中建立像素之间的对应关系t + 1!我知道我们可以找到移动的像素,但我不知道我们是如何找到帧t和帧中像素之间的关系的t + 1.

我希望你理解我的问题:o)(o:

如果可能的答案是尽可能的.

Merci beaucoup

Tob*_*nst 6

实际上,Horn,Schunk和Lucas,Kanade的方法以不同的方式处理:

Fx*U + Fy*V = -Ft
Run Code Online (Sandbox Code Playgroud)

如您所见,这个等式是一个欠定的方程组.所以霍恩和舒克提出要整合一个有限的假设.平滑度限制了偏差UV应该很小.这被集成到最小方框架中,您可以:

(Fx*U + Fy*V + Ft)² + lambda * (gradient(U)² + gradient(V)² = E
E -> min
Run Code Online (Sandbox Code Playgroud)

与方程有可能解决UV通过设定的偏差E0.因此,该运动矢量的溶液通过的梯度算子连接UV.

Lucas和Kanade在定义的区域中提出Lucas Kanade窗口只计算一个运动矢量(或者一个区域只有一个运动/运动恒定约束)并将其放入最小二乘框架:

sum(Fx*U + Fy*V + Ft)² = E
E->min
Run Code Online (Sandbox Code Playgroud)

对定义区域中的每个像素进行求和.并且UV也可以很容易的偏差计算E设置为0.

通过这两个方程,您可以看到通过使用temporal(Ft)和空间图像渐变(Fx,Fy)找到像素对应关系.Lucas和Kanade论文中有一幅很好的图片,以图形方式显示了这种相关性.但是有一些要考虑的要点:

  • 如果图像包含纹理(光圈问题),这些方法只能计算运动矢量
  • Fx*U + Fy*V + Ft是一阶泰勒近似F(x, y, t) = F(x + U, y + V, t + 1).这意味着您的图像信号必须是线性的.因此,您只能计算几个像素的运动.这就是图像金字塔用于提供线性的原因.
  • 运动恒定或平滑约束可防止尖锐的运动边界.这在某些应用中可能很重要.
  • 该框架不会阻止您处理传统的通信问题.