目标跟踪:光流法阅读记录 — determining optical flow

论文地址:提取码:uof0

基本公式

假设在一幅图片中,某一点(x,y)的亮度变化是均匀的,设这一点在时刻t的亮度为 E(x,y,t),那么容易得到
dEdt=0{dE\over dt} =0
根据链式法则,可以进一步得到
dEdxdxdt+dEdydydt+dEdt=0{dE\over dx}{dx\over dt}+{dE\over dy}{dy\over dt}+{dE\over dt} = 0
接下来令 dxdt=u{dx\over dt} = udydt=v{dy\over dt} = v,对偏导进行缩写得到
Exu+Eyv+Et=0E_xu+E_yv+E_t = 0(Ex,Ey)(u,v)=Et(E_x,E_y)(u,v) = -E_t
因此得到,光流在亮度梯度(Ex,Ey)(E_x,E_y)方向上的分量等于
EtEx2+Ey2-E_t\over{\sqrt{E_x^2+E_y^2}}

但是,目前还不能确定在等亮度轮廓方向上与亮度基准成直角的运动分量,在不引入其他约束的情况下无法局部计算流速(u,v)(u,v)

平滑约束

如果亮度模式的每个点都可以独立移动,那么恢复速度的希望就很小。 幸而更常见的是看到有限尺寸的不透明物体经受刚性运动或变形。
图1.图像亮度方程式的基本变化率限制了光流速。 速度(u,v)必须沿着垂直于速度空间中亮度梯度矢量的特定线放置
图1.图像亮度方程式的基本变化率限制了光流速。 速度(u,v)(u,v)必须沿着垂直于速度空间中亮度梯度矢量的特定线放置

在这种情况下,物体上的相邻点具有相似的速度,并且图像中亮度模式的速度场几乎在任何地方都平滑变化。 在一个物体遮挡另一物体的情况下,可能会出现流动不连续的情况。
表示附加约束的一种方法是限制点的流速与包含该点的小邻域上的平均速度之差。 等效地,我们可以最小化流的xy分量的拉普拉斯算子的平方和。 uv的拉普拉斯定义为
2u=2ux2+2uy2▽^2u = {{∂^2u\over∂x^2}+{∂^2u\over∂y^2}}
2v=2vx2+2vy2▽^2v = {{∂^2v\over∂x^2}+{∂^2v\over∂y^2}}
在简单情况下,两个拉普拉斯算子均为零。 如果观察者平行于平面物体平移,绕垂直于表面的直线旋转或垂直于表面行进(假定垂直投影),则u和v的第二部分导数将消失。 请注意,文中的方法与Fennema Thompson(1979)提出的方法相反,后者提出了一种算法,该算法间接包含了诸如表面光滑度或对象刚度之类的其他假设。

量化与噪声

  • 可以在固定的点网格上以一定间隔采样图像。 尽管明显的细分具有某些优势(Mersereau 1979,Gray 1971),为方便起见,我们将假定图像以规则的间隔在正方形网格上进行采样。 假设在第k个图像帧中第i行和第j列的交点处测得的亮度为Ei,j,kE_{i,j,k}。 理想情况下,每次测量应为整个像素区域和叉齿内部长度的平均值。 这里引用的实验中,在时空的离散点上采样。
  • 除了在空间和时间上进行量化外,测量结果实际上还将在亮度上进行量化。 此外,在任何实际系统中获得的测量结果中噪声都会很明显

估计偏导数

我们必须从可用的离散图像亮度测量集中估算亮度的导数。 重要的是,Ex,Ey,EtE_x,E_y,E_t的估计值必须保持一致。 也就是说,它们都应同时指向图像中的同一点。 虽然有许多近似微分的公式(Conte de Boor 1965,Hamming 1962),但我们将使用一个集合,该集合可为我们提供由八次测量形成的立方体中心点的Ex,Ey,EtE_x,E_y,E_t的估计值。 这些测量之间的空间和时间关系如图2所示。每个估计值都是立方体中相邻测量值的四分之一的平均值。
在这里插入图片描述
这里的长度单位是每个图像帧中的网格间隔,时间单位是图像帧采样周期
在这里插入图片描述
图2.立方体中心图像亮度的三个偏导数分别是根据沿着立方体四个平行边缘的一阶差的平均值估算的。 此处列索引 j 对应于图像中的 x 方向,行索引 i 对应于 y 方向,而 k 沿时间方向

估计流速的拉普拉斯算子

本文还必须近似uv的拉普拉斯算子。 一种近似的近似形式如下
在这里插入图片描述
如果如图2所示计算平均值,并再次假定长度单位等于网格间隔,则比例因子K等于3。 图3说明了权重分配给相邻点的情况。
在这里插入图片描述
图3.拉普拉斯算子是通过从相邻点的值的加权平均值中减去某个点的值来估算的。 此处显示的是可以乘以值的合适权重

最小化

接下来的问题是使图像亮度变化率方程中的误差总和最小化
ϵb=Exu+Eyv+Et\epsilon_b = E_xu+E_yv+E_t
以及速度流中偏离平滑度的估计
ϵc2=(uu)2+(vv)2\epsilon_c^2 = {(\overline u-u)}^2+{(\overline v-v)}^2
这两个因素的相对权重应该是多少? 实际上,图像亮度测量会因量化误差和噪声而产生损失,因此我们不能期望ϵb\epsilon_b等于零。 该量将倾向于具有与测量中的噪声成比例的误差幅度。 这个事实指导我们选择合适的加权因子,用α\alpha表示,稍后将看到。

总误差定义为
ϵ2=α2ϵc2+ϵb2\epsilon^2 = \alpha^2\epsilon_c^2+\epsilon_b^2

通过找到合适的光速(u,v)(u,v)值可以实现最小化,我们将ϵ2\epsilon^2求出
在这里插入图片描述
将这两个导数设置为零会得出uv中的两个方程
在这里插入图片描述
系数矩阵的行列式等于α2(α2+Ex2+Ey2)\alpha^2(\alpha^2+E_x^2+E_y^2),求解(u,v)(u,v)得到
在这里插入图片描述

一个点的流量与本地平均值之差

上面的公式可以写成另一种形式
在这里插入图片描述
这个式子表明使误差ϵ2\epsilon^2最小的流速(u,v)的值位于沿着与约束线成直角相交的线的朝向约束线的方向。 图4中以几何方式说明了这种关系。当用u,v\overline u,\overline v代替u,vu,v时,距本地平均值的距离与亮度变化率基本公式中的误差成比例。最后我们可以看到α\alpha在仅对亮度梯度较小的区域起了很大作用,防止偶然估计调整导数中的噪声引起的估计流速。此参数应大致等于Ex2+Ey2E_x^2+E_y^2估计中的预期噪声。
在这里插入图片描述
图4.使误差最小化的流速值位于一条从垂直于约束的流速局部平均值绘制的线上

迭代方法求解上述方程

现在,对于图像中的每个点,都有一对方程式。 通过一种标准方法(例如高斯-乔丹消除法)(Hamming 1962,Hildebrand 1952)解决这些方程计算量非常大。 由于行和列的数量等于图像中图片单元的数量的两倍,因此相应的矩阵稀疏也非常大。 由此推荐使用迭代方法,例如高斯-西德尔方法(Hamming 1962,Hildcbrand 1956)。 根据估计的导数和先前速度估计值(un,vn)(u^n,v^n)的平均值,计算出一组新的速度估计值(un+1,vn+1)(u^{n+1},v^{n+1})
在这里插入图片描述
有趣的是,特定点的新估算不直接依赖于同一点上的先前估算。

填充联合区域

在亮度梯度为零的图像部分中,速度估计将只是相邻速度估计的平均值。 没有本地信息来约束这些区域中亮度模式的视在运动速度。 最终,此类区域周围的值将向内传播。 如果区域边界上的速度全部相同,那么在足够数量的迭代之后,区域中的点也将被分配该值。 因此从恒定亮度区域的边界填充形成速度。

迭代次数

如果边界上的值不完全相同,则填充的值将对应于给定边界条件的拉普拉斯方程的解(Ames 1977,Milne 1953,Richtmyer morton 957)。 这种填充现象的进展类似于热方程解中的传播效应,其中温度的时间变化率与拉普拉斯方程成比例。 这为我们提供了一种从物理角度理解迭代方法并估算步骤数的方法。迭代次数应大于必须填充的最大区域的横截面。如果事先不知道此类区域的大小,则可以使用整个图像的横截面作为保守估计。

约束严密性

当一个区域的亮度是图像座标的线性函数时,我们只能获得光流在梯度方向上的分量。 如上所述,从该区域的边界填充直角的分量。 通常,在亮度梯度大并且在点到点的方向上存在变化的区域中,方向的估计是最准确的。 然后,可以在每个点的相对较小的邻域中获得约束光流速的两个分量的信息。 另一方面,亮度的剧烈波动是不希望的,因为导数的估计会由于欠采样和混叠而损坏。

迭代方案的选择

实际上,可以选择如何将迭代与时间步长交织在一起。一方面,可以迭代直到解稳定为止,然后再前进到下一个图像帧。 另一方面,给定良好的初始猜测,每个时间步长可能只需要一个迭代就可以从先前的时间步获得对光流速度的良好的初始猜测。

后一种方法的优点包括每单位时间能够处理更多的图像,并更好地估计某些区域的光流速度。 亮度梯度小的区域会导致不确定的、嘈杂的估计,部分是通过从周围填充来获得的。 通过考虑进一步的图像可以改善这些估计。 图像测量中的噪声将是独立的,并且倾向于抵消。 也许更重要的是,图案的不同部分将在图像中漂移给定点。 由于这些原因,实际的实现方式很可能每个时间步长使用一个迭代。

我们在实验中说明了这两种方法。

实验

迭代方案已经实现并应用在了对应多个简单流型的图像序列。 此处显示的结果是在32 x 32像素的较小图像上显示的。 亮度测量被大约1%的噪声故意破坏,然后量化为256级,以模拟真实的成像情况。 底层表面反射率模式是空间正交正弦曲线的线性组合。 选择它们的波长以提供合理强的亮度梯度,而不会导致欠采样问题。 避免了不连续性,以确保所需的导数在任何地方都存在。

例如,在图5中显示的是四个图像帧,描绘了一个球体绕着朝向观看者倾斜的轴旋转。 在球体表面上绘制了平滑变化的反射率图案。 球体从各个方向均匀照明,因此没有阴影。

结果

首先要研究的流程是整个亮度模式的简单线性平移。计算所得的流程是如图1所示的针图,分别进行了1、4、16和64次迭代。 估计的流速用短线表示,显示了一个时间步长期间的表观位移。 在此示例中,仅采取了一个时间步长,因此计算仅基于两个图像。

最初,流速的估计为零。 因此,第一次迭代显示了亮度梯度方向上的矢量。 后来,估计值将逼近图像所有部分的正确值。 当速度向量的error约为10%时,在32次迭代后几乎没有变化。 估计值可能太小,而不是太大,可能是由于偏导数的估计较低。 发生最严重的错误,可以预料的是,错误发生在亮度梯度很小的区域。

在第二个实验中,在相同的线性平移图像序列上每个时间步长使用一次迭代。图7中显示了1、4、16和64个时间步长的计算结果流。 估计值可以更快地逼近正确的值,并且不会像以前的实验中那样趋于太小。 速度向量的误差约为7%时,经过16次迭代后几乎没有变化。正如所料想的那样,最大的误差发生在亮度测量中噪声最多的区域。
在这里插入图片描述
在这里插入图片描述
图6.为简单转换亮度模式而计算的流模式。 在1、4、16和64次迭代后的估计值显示速度为0。每个时间间隔在x方向上有0.5个像元,在y方向上有1个像元。两个图像用作输入,分别在一个时间间隔内描述了两次分开的情况
在这里插入图片描述

图7.显示了为1、4、16和64个时间步长后的亮度模式估计值的简单转换而计算的流模式。 在这里,每个时间步长迭代一次,收敛速度更快,并且可以准确估算速度。

尽管各个速度的估计值可能不是很准确,但整个图像的平均值在正确值的1%以内。然后,该方法被应用于简单旋转和亮度图案的简单收缩。 经过32个时间步长后的结果如图8所示。请注意,在这两种情况下,速度的大小都与距流动原点的距离成比例。

到目前为止,在所有示例中,两个流速分量的拉普拉斯算子在各处均为零。 我们还研究了并非如此的更困难的情况。 特别是,如果让速度的大小随着距原点的距离的倒数而变化,则会产生围绕线顶点的流动,而二维流动会下降。 计算的流模式如图9所示。此处的计算涉及基於单个时间步长的多次迭代。 最严重的错误发生在流型起源处的奇点附近,在该处发现的速度每次都比一个像元大得多。最后,我们考虑了刚体运动。 图10中显示的是为绕其轴旋转的圆柱体和旋转球体计算的流量。 在这两种情况下,流的拉普拉斯算子都不为零,实际上,速度分量之一的拉普拉斯算子在闭塞边界上变为无穷大。 由于速度本身仍然是有限的,因此仍然可以获得合理的解。 正确的流动模式如图11所示。将计算出的值与精确值进行比较,可以发现最严重的错误发生在遮挡边界上。 这些边界构成了平面的一维子集,因此可以预期,随着图像分辨率的提高,估计流量严重错误的相对点数将减少。

在附录B中,表明流速分量的拉普拉斯算子与表面高度的拉普拉斯算子之间存在直接关系。 这可以用来查看我们的平滑度约束如何适用于不同的对象。 例如,旋转多面体将产生拉普拉斯算子为零的流,但图像线是图像体边缘的投影。

总结

本文提出了一种用于根据一系列图像计算光流的方法。 根据观察,流速具有两个分量,并且图像亮度变化率的基本方程式仅提供一个约束。 低的平滑度是第二个约束条件。 然后,提出了一种求解结果方程的迭代方法。一个简单的实现以针状图的形式直观地验证了解决方案的收敛性。 研究了几种不同类型的光流模式的示例,这些情况包括流的拉普拉斯算子为零的情况以及在奇点或沿边界曲线变得无限的情况。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章