如何计算光流的时间导数

Posted

技术标签:

【中文标题】如何计算光流的时间导数【英文标题】:How to calculate derivative with respect to time for Optical Flow 【发布时间】:2015-11-17 17:43:23 【问题描述】:

假设我们有 2 个运动图像用于根据 Lucas 和 Kanade [u, v] = inv(H)*[dxdt, dydt] 检测运动中的对象,其中 H 是图像 x 和 y 的偏导数的 Hessian方向 dxdx, dxdy, dydx, dydy。

我知道对于 x a y 的偏导数,我们只需要对导数使用以下公式

dx = (img[i-1] - img[i+1]) / 2; dy = (img[j-1] - img[j+1]) / 2;

但我还需要计算时间 t 的导数,因为我们在时空中有 2 帧,我想这可能是smth。像这样:

dz = (img1[i] - img1[i]) / 2;

但我不确定,谁能给我一个想法?

【问题讨论】:

【参考方案1】:

为了估计您可以使用的时间导数:

简单的差分运算符 f'(x) = f(x-1) - f(x) 或 双面,就像您对空间梯度 f'(x) = (f(x-1) - f(x+1)) / 2 所做的那样。

结果将是 dz = img1(i,j)-img2(i,j) 或 dz = (img1(i,j) - img3(i,j)) / 2,其中 img3 ,img2 和图像 1是连续捕获的帧。然而,出于实际原因,通常使用简单的差分运算符。

【讨论】:

以上是关于如何计算光流的时间导数的主要内容,如果未能解决你的问题,请参考以下文章

光流:时间导数到底是啥?

Horn-Schunck 光流计算

如何使用matlab检测螺旋光流?

使用光流计算实际速度

如何使用光流图像将后一帧扭曲到前一帧

计算视频帧中物体的速度 - 光流(Matlab)