来源自我的博客
前言
核相关滤波算法是单目标跟踪领域一个举足轻重的算法,而kernelized correlation filters(KCF)是其原始形态,下面我以一个小白的角度慢慢揭开其神秘面纱。
(知乎的公式编辑跟mathjax有冲突,部分公式我用图片代替,如果阅读观感不好,请移步原博客)
1.岭回归理论推导
岭回归的理论比较简单,类似于一个单层神经网络加上一个正则项,不同于支撑向量机中的结构风险最小化,岭回归更像是一个逻辑回归,是在保证误差风险最小的情况下尽量使得结构风险小。另外支撑向量机对于高维数据的训练比较快,因为它只取对分类有影响的 support 向量。不过在此处 KCF 的训练样本也不多,所以二者其实都可以,再加上 KCF 中岭回归还引用了对偶空间、傅里叶变换以及核函数,二者的差别就比较小了。 岭回归的算法形式如下:
其中X 为特征矩阵,w 为权值,y 为样本标签/响应,其中每一项都采用了L2 范数的平方,即矩阵内所有元素的平方和。因此,该优化的关键在于求最优的 w,求解方法则是使用了最直接的拉格朗日乘子法:
我们假设当前的权重W和输出y都是一维向量,则矩阵的求导公式满足:
不过,由于后面要引入复频域空间,所以我们这里做一些微调:
其中,H 代表共轭转置,即在转置的同时将矩阵内所有元素变为其共轭形式,原因很简单:
2. 循环矩阵
2.1 循环矩阵的引入
由于在目标跟踪中定位目标时如果采用循环移位的方式定位其中心,则需要采用循环的方式逐步判断,这样做太耗时,因此作者引入了循环矩阵。这样做的话,我们的待选目标框不用移动,直接将原图像矩阵循环移位。以一维矩阵为例:
矩阵的每一行相对上一行都向右移动了一位,这里举这个矩阵例子是有用意的,通过该矩阵的n阶形式,我们可以轻松的实现任意矩阵 X 的右移
或者下移
,如:
2.2 循环矩阵的转换
循环矩阵本身是将循环移位的结果整合到了一个矩阵中,虽然可以将循环计算过程优化为矩阵运算,但对于图像这类二维矩阵,则会生成一个很大的循环矩阵,从而耗费内存。这里作者巧妙地引入了离散傅里叶变换(DFT),将循环矩阵X等价为:
其中 F 与离散傅里叶变换中的矩阵有所差异,
就是原矩阵的傅里叶变换,
diag是将矩阵变为对角形式,后面会详细解释。
先以一维矩阵为例来证明:
Step1 定义循环矩阵 X 的多项式函数为:
这里先说明一下,单位矩阵 I 其实也是一个循环矩阵,而
其实就是将矩阵
I所有元素右移
n 个单位。
Step2 求矩阵K的特征值和特征向量:
可以发现矩阵 K 的特征矩阵与 DFT 的变换矩阵 W 一致,再利用多项式矩阵的性质可知,循环矩阵 X 的特征值为
, 利用矩阵与其特征值矩阵相似的特点, 可以很容易的证明该性质。
Step3 求循环矩阵 X 的特征值和特征向量:
可以发现循环矩阵 X 的特征值就是其原矩阵 x 的离散傅里叶变换,对于循环矩阵的特征向量,推导过程如下:
在这里我们将
替换为
DFT 变换矩阵
W ,利用矩阵对角化可知:
Step4 利用 DFT 变换矩阵 W 的性质修正 X :
通过观察可知 W 为对称矩阵,另外也可以轻松证明
,在这里呢,我们可以对W 进行适当地变换:
因此
,则
F 为酉矩阵,同时它也满足