我试图理解图像中时间导数的含义。虽然我理解亮度恒常方程,但我不明白为什么取两幅图像之间的差异会给我时间导数。
取两帧之间的差异可以得到两者之间每个像素的像素强度差异,但这与询问图像在一定时间内的变化量有何相同?
图像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。因此,我们通过相邻帧之间的差异来近似图像导数(相对于时间)。
一个可能令人困惑的方面是这与图像中物体的移动有何关系。例如,如果你有一些物理学背景,你可能会考虑欧拉参考系和拉格朗日参考系之间的区别:在更直观的拉格朗日观点中,你认为一个物体通过跟踪它移动的像素(空间)来移动,例如看着一只猫跳过栅栏。欧拉的观点更接近我们在光流中所做的,是跟踪单个像素上发生的事情,并且永远不要将我们的眼睛从它身上移开。当猫经过(像素)空间的那个区域时,像素的值会发生变化,然后在它消失时恢复到"正常"。
这两种观点在某种意义上是等价的,但在不同情况下可能有用。在计算机视觉中,跟踪物体很难,而计算这些类似欧拉的时间导数很容易。理想情况下,我们可以跟踪猫:考虑一个点p(t)=(x_p(t),y_p(t))
比如它的头,然后计算dp/dt
并找出所有t
的p(t)
,并将其用于下游处理。不幸的是,这很难,所以我们希望亮度恒常性通常是局部正确的,并使用光流来估计dp/dt
。当然,dI/dt
通常不能很好地对应于dp/dt
(这就是为什么亮度恒常性是一个假设)。例如,考虑一个围绕静止球体移动的光:dI/dt
会很大,但dp/dt
会为零。
后续帧之间的差是时间导数的有限差分近似。
如果将值除以帧之间的时间(即乘以每秒帧数值),则将获得正确的单位。