MOSSE目标跟踪算法笔记
论文是:Visual Object Tracking using Adaptive Correlation Filters
这篇论文是早期运用相关滤波的目标跟踪算法。由David S.Bolme发表在2010年的CVPR。2010年前的跟踪算法采用检测型的算法有很多,速率很低,达不到实时性的要求,这时候相关滤波高帧率的优势就体现出来了,使用的计算资源相较也少。文中提出的MOSSE模型可以进行训练和跟踪峰值速率可以到669fps,这也为之后一些改进型的目标跟踪算法提供了参考。
在这篇论文之前,已经有一些采用了相关滤波的跟踪方法,比如ASEF和MACE,这些算法都需要大量的训练样本,这也使得跟踪的速度很低,MOSSE跟踪器减少了对数据量的需求,使得更加适合视频追踪。
原本相关性(correlation)是信号处理的一个知识用来描述两个信号的相似度。相关性又分为cross-correlation(互相关,两个信号之间的联系)和auto-correlation(自相关,本身在不同频域的相关性)。
用于跟踪领域,两帧的图片相当于两个信号,互相关的表示形式:
连续:
离散:
将相关滤波器应用到跟踪最简单的想法就是:两张图片越相似,其相关函数值越高。
预处理
第一个问题就是,经过FFT处理的图片会变成一个左右上下相接的环形结构,时域中的这个环形结构做卷积处理得到的输出结果和本打算在空间域处理的输出结果差别很大,而人工补充边界也会影响输出结果。
解决这个问题的办法是用窗函数,首先每个像素值用对数函数处理,降低对比度,在以0为平均值1为范数归一化。最后使用余弦窗,把边界的像素值过渡到0。这个方法强调中心区域的检测,弱化边缘的影响。
建立MOSSE模型
MOSSE模型改进于ASEF,通常需要一组训练用数据fi和训练输出gi。通常gi可以是任何形状的,这里的gi是用ground truth找到目标取出的2维高斯峰。训练在频域处理,简化计算,获得输入输出之间的简单关系。
按照文章的思路,我们需要找到一个滤波器,使其在目标上的响应最大,则如下公式:
相当于第二个图片是第一个卷积系统响应,这也是使用滤波器的公式。
由于卷积计算费事费力,所以等式两边进行傅里叶变换(ℱ),卷积变成点乘:
这里,由相关定理(我翻了《信号与系统》),可知,
所以化简相当于在计算:
为了求解最佳滤波器的值,这里使用了类似最小二乘法的模型,所以这个滤波器也叫MOSSE模型(a Minimum Output Sum of Squared Error)
经过推导可以得到一个闭式解
具体推导中用到了求偏导和复数运算得知识,推导过程不难,参考:
https://blog.youkuaiyun.com/autocyz/article/details/48136473
初始化
在初始帧的训练集fi用的是第一帧里8个在追踪窗里随机生成干扰,训练集的输出gi就是通过他们的峰值生成,相当于图片的中心。
利用公式
模型更新策略
滤波器公式表示为:
考虑到防止滤波器过拟合,使滤波器能够较快的适应旋转、遮挡、尺度变化等问题,引入一个学习效率(learning rate)的参量η,文章指出η 为0.125时鲁棒性最好。