光流:时间导数到底是啥?
Posted
技术标签:
【中文标题】光流:时间导数到底是啥?【英文标题】:Optical Flow: What exactly is the temporal derivative?光流:时间导数到底是什么? 【发布时间】:2019-05-28 21:31:22 【问题描述】:我试图了解图像中时间导数的含义。虽然我了解亮度恒定方程,但我不明白为什么取两张图像之间的差异会给我时间导数。
获取两帧之间的差异可以得到两者之间每个像素的像素强度差异,但这与询问图像在特定时间跨度内的变化有什么不同?
【问题讨论】:
【参考方案1】:图像I(x,y,t)
的时间导数dI/dt
是图像在特定位置随时间的变化率。正如您所指出的,这是两帧之间像素强度的差异。考虑(x,y)
处的单个像素,导数的有限差分近似为
f_d = ( I(x,y,t+delta) - I(x,y,t) ) / delta
使f_d -> dI/dt
成为delta -> 0
。
在这种情况下,delta
被简单地设置为 1。因此,我们通过相邻帧之间的差异来近似图像导数(相对于时间)。
可能令人困惑的一个方面是它与图像中对象的移动有何关系。例如,如果您有一些物理背景,您可能会想到 Eulerian and Lagrangian frames of reference 之间的区别:在更直观的 拉格朗日 观点中,您考虑通过在像素(空间)上跟踪对象来移动对象它移动的,例如看着一只猫跳过栅栏。 欧拉 视图更接近于我们在光流中所做的工作,它是跟踪单个像素处发生的事情,并且永远不会离开它。当猫经过(像素)空间的那个区域时,像素的值会发生变化,然后在它消失后恢复“正常”。
这两个视图在某种意义上是等价的,但在不同的情况下可能有用。在计算机视觉中,跟踪对象困难,而计算这些类似欧拉的时间导数容易。理想情况下,我们可以跟踪这只猫:考虑一个点 p(t)=(x_p(t),y_p(t))
在它的头部,然后计算 dp/dt
并计算出所有 t
的 p(t)
,并将其用于下游处理。不幸的是,这很难,所以我们希望亮度恒定性通常是局部正确的,并使用光流估计dp/dt
。当然,dI/dt
经常 不 很好地对应于dp/dt
(这就是为什么亮度恒定是一个假设)。例如,考虑围绕静止球体移动的光:dI/dt
会很大,但dp/dt
会为零。
【讨论】:
【参考方案2】:后续帧之间的差异是时间导数的finite difference approximation。
如果该值除以帧之间的时间(即乘以每秒帧数),则将获得正确的单位。
【讨论】:
以上是关于光流:时间导数到底是啥?的主要内容,如果未能解决你的问题,请参考以下文章