Paper : Visual Object Tracking using Adaptive Correlation Filters
Code :
摘要
视觉跟踪任务需要在一帧的画面上训练鲁棒的滤波器,并随着目标对象的形变动态适应。作者提出了提供了一种新型的相关滤波器——平方误差最小输出和滤波器(MOSSE),其可以在初始帧上产生稳定的相关滤波器,并随着光照、尺度、非刚性形变等变化进行动态适应,同时能够达到每秒669帧的速度。是否产生遮挡是根据PSR指数进行判断,跟踪器在对象消失时暂停检测并停止相关滤波器的参数变化,并在对象再次出现重新开始检测和动态调整。
相关操作和基于滤波器的目标追踪
互相关(Cross-correlation) 对于一维连续信号来说定义如下
其中, 表示共轭,对于一维离散信号定义如下
二维互相关运算具有相近的结构,下图是对于二维离散的矩阵进行互相关的运算
对比以下是卷积运算
可以看出,卷积运算是将卷积核旋转180°后进行互相关运算(滑动窗口运算),其中互相关运算具有明确物理意义,它可以反应两个信号之间的相似程度,而卷积运算不行。
基于滤波器的目标追踪则是将目标的信息存储到滤波器中,将每一帧的图片输入到滤波器,滤波器输出一个分数图表示不同位置的窗口图像与目标的相关性,峰值对应的窗口位置就是该帧目标的定位框。
一种简单的方法就是直接将目标的灰度图进行裁剪,当作滤波器的核,也就是上例中的Naive filter,这种方法的缺点在于得到的分数图中,受背景的干扰太大。如果每帧的filter 都是前一帧得到的定位框的裁剪,那么追踪过程中错误会发生累积,而且也没有用到之前的结果。
基于相关滤波器的物体追踪
为了加速使用相关滤波器的速度,需要在频域上进行操作来加速计算。相关操作不支持时域卷积频域相乘的特性,需要先将相关运算转化为卷积运算,假设使用 表示相关运算, 表示卷积运算,那么有
对两边进行FFT变换,使用 表示FFT,使用 表示相关滤波器的输出
其中 表示对 求共轭。使用 FFT 和 invFFT 可以将计算相关滤波器的时间加速到
在使用 FFT 进行计算时,我们对图片使用循环图像法进行边界填充,对于滑动窗口类型的运算,都会有较强的边界效应,因此对图像进行如下预处理
- 使用 log 操作来应对低对比度场景
- 对 log 后的像素值进行均值为0,方差为1的归一化
- 原图像乘上 cosine 窗口来降低边缘的像素值到0
那么,在若干帧上寻找最优的滤波器 可以表示为如下的形式,, 表示当前帧, 表示滤波器的输出
MOSSE的解为
相关滤波器 的值初始化方法如下
- 对原始目标进行随机仿射变换
- 在随机仿射的 上解方程得到
随着目标追踪过程的进行,我们需要根据物体的新的形态更新
当目标被遮挡时,我们应当暂停追踪,我们使用 的PSR值评估是否发生遮挡。设 表示输出的最大值, 表示除了峰值点之外的点的平均值,标准差。
总结
这篇文章的主要贡献是将相关滤波器引入到追踪中,不仅具有较好的追踪表现而且运算速度较快,并通过将目标信息保存到滤波器中每次进行更新进行自适应的调整,初步展示了相关滤波器的威力。之后的若干篇追踪都用到了相关滤波器。