KCF核相关滤波跟踪算法

 

KCF与TLD,OAB等同属于检测跟踪算法,区别与camshift等传统的跟踪算法,这类算法的特点是在跟踪的过程同时利用分类器进行检测,以跟踪的对象为正样本,周围区域为负样本进行迭代训练分类器。

   这类算法最大的缺点是做不到实时性,TLD算法需要借助CPU才能实现实时,kcf算法的作者J. F. Henriques, R. Caseiro, P. Martins, J. Batista,采用一种巧妙的方法降低了运算量。

 

循环矩阵

 

向量通过不断循环位移得到n个循环移位向量,将这n个向量依序排列成一个矩阵,便得到循环矩阵。

例如向量x=【1,2,3】,那么该向量对应的循环矩阵X为:

 

向量通过乘以排列矩阵得到循环移位向量:

 

循环右移:

 

循环矩阵性质:

 

循环矩阵具有多种性质,在本文中主要用到的是:循环矩阵能够在傅氏空间中使用离散傅里叶矩阵进行对角化。(证明参见:循环矩阵傅里叶对角化)

 

 

 

表示的是对角线元素为的对角矩阵;

 

F 是傅里叶变换矩阵,代表的傅里叶变换;

 

是上述循环矩阵的第一行;

 

 

 

 

训练过程

 

训练集是由目标区域和由其移位得到的若干样本组成,对应的标签是根据距离越近正样本可能性越大的准则赋值的。

岭回归训练

在kcf算法中的训练过程是一个岭回归问题,与大多数分类器训练的目标函数一样,该分类器的目标函数也为损失函数和正则化项相加的形式。

 

现在的问题是如何求得目标函数的最优解。

我们将上式写成矩阵的形式:

 

令导数为0,得:

 

接下来就是矩阵运算了,当样本的数目足够大的时候,上式的计算是非常耗时的,该算法的作者利用循环矩阵来快速完成上式的计算。

假设样本矩阵为循环矩阵,于是:

对上式的左右同时做傅里叶变换

于是,权重向量的求解转到了傅里叶域,计算量大大减少。

 

引入核函数

 

但是上式的分类只能作用于线性的分类情况,那么对于非线性的呢?令非线性映射函数为:

 

所以新的分类器变为:

 

 

其中w位于构成的向量空间中。

 

所以可以将w表示为:

 

 

所以可以将求解w转化为求解w的对偶问题,求解alpha。

 

 

 

 

解得:

 

 

 

 

证明K为循环矩阵

 

KCF核相关滤波跟踪算法_第1张图片

 

其中:

 

 

是由核函数和循环位移向量的性质得到,等式左右参与运算的向量的内积是一样的。

 

 

 

所以K是循环矩阵,则

 

 

 

检测过程

 

待检测样本集是由预测区域和由其位移得到的样本集合。

 

单个样本的响应:

 

 

 

 

一次计算所有样本的响应:

 

KCF核相关滤波跟踪算法_第2张图片

 

 

你可能感兴趣的:(Image,Processing)