光流:时间导数到底是什么?

时间:2019-05-28 21:31:22

标签: computer-vision derivative opticalflow temporal

我正在尝试了解时间导数在图像中的含义。虽然我了解亮度常数方程,但是却不明白为什么采用两幅图像之间的差值可以得到时间导数。

采用两帧之间的差异,可以得出两者之间每像素的像素强度的差异,但这与询问图像在特定时间段内变化了多少有什么相同?

2 个答案:

答案 0 :(得分:0)

后续帧之间的差异是时间导数的finite difference approximation

如果将值除以帧之间的时间(即乘以每秒的帧数,则得到正确的单位)。

答案 1 :(得分:0)

图像dI/dt的时间导数I(x,y,t)是图像在特定位置的时间变化。如您所述,这是两个帧之间像素强度的差异。考虑到(x,y)处的单个像素,对导数的有限差分近似为

f_d = ( I(x,y,t+delta) - I(x,y,t) ) / delta,因此f_d -> dI/dtdelta -> 0

在这种情况下,delta仅设置为1。因此,我们通过相邻帧之间的差异来近似图像导数(相对于时间)。


一个可能令人困惑的方面是与图像中 对象的运动如何相关。例如,如果您具有某种物理背景,您可能会考虑Eulerian and Lagrangian frames of reference之间的区别:在更直观的 Lagrangian 视点中,您可以通过在像素(空间)上跟踪对象来考虑对象的移动)在其中移动,例如看着猫跳过篱笆。与我们在光流中所做的更接近的视图是跟踪在单个像素处发生的事情,并且永远不会让我们视而不见。当猫越过(像素)空间的那个区域时,像素的值将发生变化,然后消失后又返回“正常”状态。

这两个视图在某种意义上是等效的,但在不同情况下可能有用。在计算机视觉中,跟踪对象很困难,而计算这些类似欧拉的时间导数则很容易。理想情况下,我们可以跟踪猫:考虑其头上的p(t)=(x_p(t),y_p(t))点,然后计算dp/dt并找出所有p(t)的{​​{1}},并将其用于下游处理。不幸的是,这很难,所以我们希望亮度恒定性通常在局部是正确的,并使用光流来估计t。当然,dp/dt常常dI/dt很好地对应(这就是亮度恒定性是假设的原因)。例如,考虑一盏围绕固定球体移动的光:dp/dt将很大,而dI/dt将为零。