2

我对视频序列中的光流概念有点陌生,我已经阅读了有关光流的基础知识,并且我熟悉 Horn & Shunck 方法或 Lucas & Kanade 的方法。

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

我的问题:

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

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

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

如果可能的答案尽可能地制定。

谢谢美女

4

3 回答 3

6

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

Fx*U + Fy*V = -Ft

如你所见,这个方程是一个欠定方程组。因此,Horn 和 Schunk 提出整合第二个假设。平滑度约束 和 的偏差U应该V很小。这已集成到最小二乘框架中,您可以在其中:

(Fx*U + Fy*V + Ft)² + lambda * (gradient(U)² + gradient(V)² = E
E -> min

使用该方程可以求解UV通过将 的偏差设置E0。因此,运动矢量的解通过 和 的梯度算子连接U起来V

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

sum(Fx*U + Fy*V + Ft)² = E
E->min

对定义区域中的每个像素进行求和。并且UV也可以很容易地计算为Eset to的偏差0

通过这两个方程,您可以看到像素对应关系是通过使用时间 ( Ft) 和空间图像梯度 ( Fx, Fy) 找到的。Lucas 和 Kanade 的原始论文中有一张很好的图片,以图形方式显示了这种相关性。不过有几点需要考虑:

  • 如果图像包含纹理(孔径问题),这些方法只能计算运动矢量
  • Fx*U + Fy*V + Ft是 的一阶泰勒近似F(x, y, t) = F(x + U, y + V, t + 1)。这意味着您的图像信号需要是线性的。因此,您只能计算最多几个像素的运动。这就是为什么使用图像金字塔来提供线性。
  • 运动恒定性或平滑性约束可防止尖锐的运动边界。这在某些应用程序中可能很重要。
  • 该框架不会阻止您解决经典的通信问题。
于 2013-01-16T15:43:19.753 回答
1

使用 Fx*U + Fy*V = -Ft 我们无法为一个像素求解这个方程...所以在 cvGoodFeaturesToTrack 为您提供一组像素之后...在该集中的每个像素周围选择一个窗口...根据假设补丁/窗口(以所选像素为中心)在下一帧中具有相同强度的恒定强度假设。所以假设在 frameA 中,我们通过考虑它周围的窗口来找出一个点的 U 和 V...U 和 V 给出了特定点应该在水平和垂直方向上经过的像素位移...使用 U和 V 我们在下一帧即 frameB 中找到该点的位置。根据恒定强度假设,帧B中预测点周围的补丁应该具有与帧A中点周围的补丁相同的强度......

于 2012-12-16T02:48:19.367 回答
0

在 Horn 和 Schunk 的方法中,不需要通过无关方法计算两帧之间的像素对应关系。H&S 是一种迭代算法。对于两个连续的帧,您从我们和 vs 的一些初始值开始,然后迭代直到收敛。

细节:

对于两个连续的帧,您执行以下多次迭代,(这是为每个像素计算的,想象有一个 u-image-buffer 和一个 v-image-buffer)

u = u_av - Fx *(P/D)
v = v_av - Fy *(P/D)

在哪里

*, stands for multiplication
P = Fx * u_av + Fy  * v_av + Ft
D = lambda + Fx**2 + Fy**2
Fx = gradient of image along x (can be averaged across the two frames)
Fy = gradient of image along y (can be averaged across the two frames)
Ft = temporal gradient across two frames
u_av = (sum of u-s of 4 diagonal neighbors)/4
v_av = (sum of u-s of 4 diagonal neighbors)/4
lambda=smoothness constraint coefficient

u 和 v 的初始值可以为零。

于 2017-01-03T02:22:51.093 回答