TPAMI2015跟踪算法KCF原理及代码解析

文章和代码下载地址:

http://www.robots.ox.ac.uk/~joao/circulant/

一、基础公式的由来

相关滤波跟踪器可以表示为最小化的岭回归问题:

\min_{w}\sum_{i}(f(x_{i})-y_{i})^{2}+\lambda ||w||^{2}

y_{i}表示期望相应,\lambda表示正则系数防止过拟合。

具体公式怎么来的可以参考CSK算法:https://blog.csdn.net/qq_17783559/article/details/82321239

f(x_{i})=<w,x_{i}>+b

<,> 表示点乘,b在实际中没有意义,不用管,可以理解直接省掉。所以原式等价于:

E=\min_{w}\sum_{i}^{n}(<w,x_{i}>-y_{i})^{2}+\lambda ||w||^{2}

样本x_{i}的整体用X来代表,元素y_{i}的整体用y来表示,即x_{i}表示X的第i行,y_{i}代表y的第i个元素。则上式可以写成:

E=\min_{w}\sum(wX-y)^2+\lambda ||w||^2=\min_{w}\sum(wX-y)^T(wX-y)+\lambda w^2

求上式的最小值即为求解导数为0的极值点,上式对w求导得

\bigtriangledown E=2(wX-y)X^T+2\lambda w=0

所以
w=(X^TX+\lambda I)^{-1}X^Ty

参考MOSSE,相关转换到傅里叶域需要复共轭,所以w的求解可以表达成下式:

w=(X^HX+\lambda I)^{-1}X^Hy               X^H=(X^*)^T

二、滤波器w的求解转换到傅里叶域

上式的样本X是一个循环矩阵,其中第一行表示真实的样本,后面的每一行都是通过前一行移位一个元素得到的

TPAMI2015跟踪算法KCF原理及代码解析_第1张图片

 这样一个循环矩阵存在以下特性

X=Fdiag(\hat{x})F^{H}       

其中\hat{x}表示x的DFT变换形式,F表示一个与x无关的常量矩阵,也叫做DFT矩阵。对于任意的输入矩阵z都有:

\hat{z}=\sqrt{n}Fz

所以

X^{H}X=Fdiag(\hat{x^{*}})F^{H}Fdiag(\hat{x})F^{H}=Fdiag(\hat{x^{*}}\odot \hat{x})F^{H}

因此

\hat{w}=diag(\frac{\hat{x^{*}}}{\hat{x^{*}}\odot \hat{x}+\lambda })\hat{y}

或者写成

\hat{w}=\frac{\hat{x^{*}}\odot \hat{y}}{\hat{x^{*}}\odot \hat{x}+\lambda }

三、核技巧

上面的求解过程可以认为x是一维2D特征,那么如果特征为多维呢,如31维HOG特征。

解释一下2D特征:2D特征就是这个特征是一个面的,有长有宽。如灰度图像直接输入就可以认为是一个一维2D特征;如果彩色图像输入,可以认为是一个三维2D特征;HOG特征就是31维的2D特征

如果特征是多维的,每一个维度都计算一遍,那么w也是一个多维的,其实这样计算也可以。作者为了提高计算效率加入了核技巧。没啥高大上的,其实简单理解就是把高维度的2D特征转换为一维的2D特征,并且还能保留充足的信息量。

w的解可以表示为样本的线性组合(前人已经证明可以,那就是可以):

w=\sum_{i}\alpha _{i}\varphi (x_{i})

\varphi (x)表示的就是多维的特征空间,特征是已知的,要求解w是不是只需要把\alpha求解出来就可以了。

引入核函数降低将高维特征转换到低维:

K_{ij}=k(x_{i},x_{j})

K是一个n\times n的核矩阵,简单理解就是经过k操作了一下,x_{i}x_{j}就变成了K中的一个元素。

然后原式w的求解可以转化为:

\alpha =(K+\lambda I)^{-1}y

K也是一个循环矩阵,转化到傅里叶域为:

\hat{\alpha}=\frac{\hat{y}}{\hat{k}^{{xx}'}+\lambda }

这两个公式的推到过程可以参考原文或者这篇博客:https://blog.csdn.net/qq_17783559/article/details/82321239

如果用HOG特征加Gauss核的话,

其中,x{x}'都是31个维度的2D特征,\hat{k}^{{xx}'\hat{\alpha}都是一个维度的2D特征,最后我们通过如下公式来确定当前帧目标的位置:

\hat{f}(z)=\hat{k}^{xz}\odot \hat{\alpha}

你可能感兴趣的:(目标跟踪)