1.简介

KCF全称为Kernel Correlation Filter 核相关滤波算法。是在2014年由Joao F.Henriques, Rui Caseiro, Pedro Martins, and Jorge Batista提出来的,算法出来之后也算是轰动一时,这个算法不论是在跟踪效果还是跟踪速度上都有十分亮眼的表现,所以引起了一大批的学者对这个算法进行研究以及工业界也在陆续把这个算法应用在实际场景当中。

2.循环矩阵

充分利用循环矩阵及其特性的是核相关滤波跟踪算法的另一个重要特征,它不仅涉及到目标采样,而且巧妙的将目标特征的频域空间与岭回归相结合,实现了目标特征的快速学习与检测。

首先考虑一维样本的情况,设X=[x0,x1,x2,⋯,x(N−1)],其中X=[x0,x1,x2,⋯,x(N−1)]表示一行图像像素样本,的循环矩阵表示为:

消除自相关性python 消除自相关性用迭代法_机器学习

3. 岭回归

KCF算法的核心公式是以岭回归理论进行误差函数的设计,分类器在进行训练时,用正样本作为前景区域,负样本作为背景。将训练样本集设(x,y),
那么该样本集的误差函数为f(x)=w*x。其中x为列向量,w代表权重系数。训练是为了计算标签与下一帧目标位置的真实标签的距离,用公式表示为:

消除自相关性python 消除自相关性用迭代法_循环矩阵_02


因为之后要在傅立叶域内计算,所以将结果在傅立叶域内表达如公式:

消除自相关性python 消除自相关性用迭代法_核函数_03


跟踪问题中训练样本以非线性问题居多,所以KCF算法中引入核函数解决回归的非线性问题,通过非线性核函数将训练样本映射到高维空间,使其在高维空间转换为线性可分的求解问题。此时的求解公式为:

消除自相关性python 消除自相关性用迭代法_循环矩阵_04

将目标函数的求解过程转换到傅频域中,避免复杂的矩阵求逆过程,提高模型的训练和预测的速度,最终得到最优解:

消除自相关性python 消除自相关性用迭代法_核函数_05

4.核方法

线性核是最简单的核函数,核函数的数学公式如下:

消除自相关性python 消除自相关性用迭代法_机器学习_06

多项式核实一种非标准核函数,它非常适合于正交归一化后的数据,其具体形式如下:

消除自相关性python 消除自相关性用迭代法_循环矩阵_07


一种经典的鲁棒径向基核,即高斯核函数,鲁棒径向基核对于数据中的噪音有着较好的抗干扰能力,其参数决定了函数作用范围,超过了这个范围,数据的作用就“基本消失”。高斯核函数是这一族核函数的优秀代表,也是必须尝试的核函数,其数学形式如下:

消除自相关性python 消除自相关性用迭代法_循环矩阵_08