版权声明:本文为博主原创文章,转载请注明出处。
简述
KCF(High-speed tracking with kernelized correlation filters)算法已经算是一篇非常经典的文章了,而且也被各路大神分析得很详尽了。我打算写这篇分析有两个原因:
1.相关滤波器CF(correlation filter)值得学习,值得深入探讨,可以被实际工程所用。
2.我想做个总结,主要想把相关滤波器有关的算法理一下。
好,废话不多说,下面开始,部分内容参考几位博主的文章和作者主页,如下:
http://blog.youkuaiyun.com/shenxiaolu1984/article/details/50905283
KCF高速跟踪详解:
http://blog.youkuaiyun.com/mhz9123/article/details/51670802
论文作者主页:
http://www.robots.ox.ac.uk/~joao/#
算法描述
算法把跟踪问题抽象为一个线性回归模型的求解,设代表目标图像的输入为z,权重w,输出为 f(w)=wTx ,目的就是找到f,能够最小化样本 xi 经分类器模型输出 f(xi) 和期望回归值 yi 的最小均方差的解:
其中 λ 是防过拟合的正则化参数。论文描述上述问题的解
其中 XH=(X∗)T ,*表示复共轭,T表示转置,X的每一行是 xi ,上述解的推导有兴趣的可以去了解下。由于该式子不易求解,运算复杂是O(n^2),故作者采用了一个巧妙方法——循环矩阵。
循环矩阵
先给出循环矩阵的作用:根据循环矩阵能够被离散傅里叶矩阵对角化,使得矩阵求逆转换为特征值求逆的性质;能够将问题(2)转换到频域进行运算,应用离散傅里叶变换(DFT)提高运算速度,然后再将解逆变换回空域从而得到响应最大的解 ymax 。
这就是本算法的最重要的地方,我们也可以类比MOSSE算法中的相关滤波器的作用,两者是相通的。
循环矩阵X的构造是每一行由基样本(base sample)x的循环偏移向量组成,如下: