此文章为转发,原文地址为 http://www.cnblogs.com/hanhuili/p/4266990.html
原文部分markdown显示不全,故转发,方便阅读
Visual Object Tracking using Adaptive Correlation Filters 一文发表于2010的CVPR上,是笔者所知的第一篇将correlation filter引入tracking领域内的文章,文中所提的Minimum Output Sum of Squared Error(MOSSE),可以说是后来CSK、STC、Color Attributes等tracker的鼻祖。Correlation Filter(以下简称CF)源于信号处理领域,后被运用于图像分类等方面。Correlation包含Cross-correlation和Auto-correlation,在这里我们一般指的就是Cross-correlation。首先看看维基百科上Cross-correlation的定义,假设有
f
和
[
其中
f∗
表示
f
的复共轭,correlation的直观解释就是衡量两个函数在某个时刻
而Correlation Filter应用于tracking方面最朴素的想法就是:相关是衡量两个信号相似值的度量,如果两个信号越相似,那么其相关值就越高,而在tracking的应用里,就是需要设计一个滤波模板,使得当它作用在跟踪目标上时,得到的响应最大,如下图所示:
CF方法最大的优势在于其速度之快,是任何其他跟踪方法都无法比拟的,如本篇所写的MOSSE,其速度可以到669帧每秒,把跟踪算法从real time 级别提升到了high speed级别;而且其跟踪准确率高,在wuyi他们的online benchmark上,带核函数的CSK方法可以得到73%左右的准确率。有着如此明显的优点,相信此类方法将会成为跟踪领域内继sparse方法的又一重要分支。
好,言归正传,我们先来介绍CF中的元老,MOSSE。按照我们刚刚的思路,我们需要寻找一个滤波模板,使得它在目标上的响应最大,那么写成公式就是如(2)所示
g=h ★f(2)
其中
g
表示响应输出,
其中
F
表示傅里叶变换,
H∗=GF(4)
但是在实际应用中,因为目标的外观变换等因素影响,我们需要同时考虑目标的 m 个图像作为参考,以提高模型的鲁棒性,那么就有如(5)的目标函数了:
求解式(5)并不困难,而且根据卷积定理,在频率域的操作都是元素级别的,因此我们可以分别求解 H∗ 中的每一个元素 H∗w,v ,那么(5)就可以变为:
minH∗w,v∑i=1m|H∗w,vFw,v,i−Gw,v,i|2(6)
然后对(6)式求导并使其为0即可求解,但要注意的是,论文中特别指出在复数域的求导与在实数域的有一点区别:
[
按以上方式处理所有 H 中的所有元素,得到:
就可以开始跟踪了。在跟踪的过程中,我们只需要把以上模板与当前帧的图像作相关操作,将得到的响应结果中最大的那点对应坐标作为目标在当前帧位置就可以了(相当于在2维上平移我们的模板)。然后,模板的更新方式可以按照如下的方式进行:
Ht=(1−η)Ht−1+ηH(t)(9)
H(t)
表示在第
t
帧求得的滤波模板,
本文的内容大体就这样了,剩下的就是在(8)上面进行一些修改,比如在分母里引进一个 ε 作为正则化的参数,或者分别求 Hi 然后作平均等,都是一些小的技巧。总得来说,MOSSE方法开创了CF在tracking方面的先河,而在后面的一系列文章里,我们将介绍一系列用概率论、岭回归等理论对其作进一步提升的文章。