最近在看visual tracking部分的内容,看到别人总结的很不错,做一次搬运工:
链接: http://www.cnblogs.com/hanhuili/p/4266990.html
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的定义,假设有
其中
而Correlation Filter应用于tracking方面最朴素的想法就是:相关是衡量两个信号相似值的度量,如果两个信号越相似,那么其相关值就越高,而在tracking的应用里,就是需要设计一个滤波模板,使得当它作用在跟踪目标上时,得到的响应最大,如下图所示:
CF方法最大的优势在于其速度之快,是任何其他跟踪方法都无法比拟的,如本篇所写的MOSSE,其速度可以到669帧每秒,把跟踪算法从real time 级别提升到了high speed级别;而且其跟踪准确率高,在wuyi他们的online benchmark上,带核函数的CSK方法可以得到73%左右的准确率。有着如此明显的优点,相信此类方法将会成为跟踪领域内继sparse方法的又一重要分支。
好,言归正传,我们先来介绍CF中的元老,MOSSE。按照我们刚刚的思路,我们需要寻找一个滤波模板,使得它在目标上的响应最大,那么写成公式就是如(2)所示
其中
其中
但是在实际应用中,因为目标的外观变换等因素影响,我们需要同时考虑目标的
求解式(5)并不困难,而且根据卷积定理,在频率域的操作都是元素级别的,因此我们可以分别求解
然后对(6)式求导并使其为0即可求解,但要注意的是,论文中特别指出在复数域的求导与在实数域的有一点区别:
按以上方式处理所有
就可以开始跟踪了。在跟踪的过程中,我们只需要把以上模板与当前帧的图像作相关操作,将得到的响应结果中最大的那点对应座标作为目标在当前帧位置就可以了(相当于在2维上平移我们的模板)。然后,模板的更新方式可以按照如下的方式进行:
本文的内容大体就这样了,剩下的就是在(8)上面进行一些修改,比如在分母里引进一个