KCF(核化相关滤波)跟踪公式推导笔记(2)——非线性滤波器的解、快速检测及快速核相关

上接推导笔记(1)——线性滤波器

论文题目:High-Speed Tracking with Kernelized Correlation Filters
作者主页:http://www.robots.ox.ac.uk/~joao/circulant/

在非线性回归条件下,最终的滤波器解为

α ^ = y ^ k ^ x x + λ (1) \hat \alpha {\rm{ = }}\frac{ { {\bf{\hat y}}}}{ { { { \bf \hat k}^{ {\bf{xx}}}} + \lambda }} \tag1 α^=k^xx+λy^(1)

其中,若采用高斯核,则

KaTeX parse error: Undefined control sequence: \cal at position 144: …ght\|}^2} - 2{ {\̲c̲a̲l̲ ̲F}^{ - 1}}\left…

以下是该公式的推导过程。

1. 将线性问题的输入映射到非线性特征空间

该过程包含两个方面:

(1)将线性滤波器的解 w \bf w w1用样本的线性组合来表示

w = ∑ i α i φ ( x i ) (3) {\bf{w}} = \sum\limits_i { {\alpha _i}\varphi \left( { { {\bf{x}}_i}} \right)} \tag 3 w=iαiφ(xi)(3)

在这样的条件下,最优化下的变量不再是 w \bf w w,而是 α \bf \alpha α。该表达式是在对偶空间中进行的(此处需要参考SVM相关理论,此处不再赘述)。

(2)用点积进行表示:

KaTeX parse error: Undefined control sequence: \cal at position 74: …}}} \right) = {\̲c̲a̲l̲ ̲K}\left( { {\bf{…

因此,在线性条件下的回归问题: f ( z ) = w T z f\left( {\bf{z}} \right) = { {\bf{w}}^T}{\bf{z}} f(z)=wTz,经过非线性变换后的表达式为

KaTeX parse error: Undefined control sequence: \cal at position 253: …{ {\alpha _i}} {\̲c̲a̲l̲ ̲K}\left( { {\bf{…

其中 n n n表示 n n n个训练样本(参考KCF论文4.2节末尾及5.1节公式(15)相关表述)。

2. 推导核化滤波器

在核函数情况下,岭回归问题的解为

α = ( K + λ I ) − 1 y (6) {\bf{\alpha }} = {\left( {K + \lambda I} \right)^{ - 1}}{\bf{y}} \tag 6 α=(K+λI)1y(6)

其中, α \bf \alpha α是由各个系数 α i \alpha_i αi组成的向量, K K K是核矩阵,其各个元素的定义是:KaTeX parse error: Undefined control sequence: \cal at position 8: K_{ij}=\̲c̲a̲l̲ ̲K \left( {\bf x… λ \lambda λ是正则项系数。里面的 x \bf x x y \bf y y都是训练集中的数据。公式(6)的推导过程可以参考Max Welling的Kernel ridge Regression,此处不再赘述。

利用循环矩阵的有关特性,对公式(6)进行对角化处理,可以提高计算效率。

2.1 Base sample + 置换矩阵 ⇒ 循环矩阵

训练时,采集一个感兴趣的图像块,将其拉伸为一个列向量作为基础样本(base sample),记作KaTeX parse error: Unknown column alignment: * at position 35: …{\begin{array}{*̲{20}{c}}{ {x_1}}…,现在给定一个置换矩阵(permutation matrix)
KaTeX parse error: Unknown column alignment: * at position 28: …{\begin{array}{*̲{20}{c}} 0&0&0&…
尝试计算 P 0 x {P^0}{\bf{x}} P0x,得KaTeX parse error: Unknown column alignment: * at position 42: …{\begin{array}{*̲{20}{c}}{ {x_1}}….

尝试计算 P 1 x {P^1}{\bf{x}} P1x,得KaTeX parse error: Unknown column alignment: * at position 34: …{\begin{array}{*̲{20}{c}}{ {x_n}}….

尝试计算 P 2 x = P ( P x ) {P^2}{\bf{x}}=P \left( P \bf x \right) P2x=P(Px),得KaTeX parse error: Unknown column alignment: * at position 34: …{\begin{array}{*̲{20}{c}}{ {x_n-1….

尝试计算 P n − 1 x = P … ( P x ) {P^{n-1}}{\bf{x}}=P \dots \left( P \bf x \right) Pn1x=P(Px),得KaTeX parse error: Unknown column alignment: * at position 34: …{\begin{array}{*̲{20}{c}}{ {x_2}}….

由此可以将上述 x 1 , x 2 , … , x n {\bf x}_1, {\bf x}_2, \dots, {\bf x}_n x1,x2,,xn向量组合起来,构成一个循环矩阵 X X X.

2.2 一个重要结论

首先指出该重要结论(即KCF论文中的Theorem 1):假设存在一种核函数KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲ ̲K,满足KaTeX parse error: Undefined control sequence: \cal at position 2: {\̲c̲a̲l̲ ̲K} \left( {\bf …,那么相关核矩阵 K K K也是循环矩阵,且 K = C ( k x x ) K=C\left( {\bf k}^{\bf xx} \right) K=C(kxx),其中 M M M是一种置换矩阵(permutation matrix), k x x {\bf k}^{\bf xx} kxx是相关核矩阵 K K K的第一行,现在证明 K = C ( k x x ) K=C\left( {\bf k}^{\bf xx} \right) K=C(kxx).

证明:根据矩阵 K K K的定义KaTeX parse error: Undefined control sequence: \cal at position 8: K_{ij}=\̲c̲a̲l̲ ̲K \left( {\bf x…,其中 x i {\bf x}_i xi表示训练样本集 X X X中的一个移位样本(参考KCF论文4.1节中的表述),可以将矩阵 K K K表示为如下矩阵(假设矩阵有4行4列):

数据内容:
KaTeX parse error: Undefined control sequence: \cal at position 8: K_{11}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{12}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{13}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{14}=\̲c̲a̲l̲ ̲K \left( {\bf x…
KaTeX parse error: Undefined control sequence: \cal at position 8: K_{21}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{22}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{23}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{24}=\̲c̲a̲l̲ ̲K \left( {\bf x…
KaTeX parse error: Undefined control sequence: \cal at position 8: K_{31}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{32}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{33}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{34}=\̲c̲a̲l̲ ̲K \left( {\bf x…
KaTeX parse error: Undefined control sequence: \cal at position 8: K_{41}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{42}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{43}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{44}=\̲c̲a̲l̲ ̲K \left( {\bf x…

同时根据定义, k x x {\bf k}^{\bf xx} kxx(即 k x 1 x 1 {\bf k}^{ {\bf x}_1{\bf x}_1} kx1x1)是核矩阵 K K K的第一行,也可以将 k x x {\bf k}^{\bf xx} kxx表示为如下向量:

数据内容:
KaTeX parse error: Undefined control sequence: \cal at position 8: K_{11}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{12}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{13}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{14}=\̲c̲a̲l̲ ̲K \left( {\bf x…

现在,观察 K 11 ​ K_{11}​ K11 K 22 ​ K_{22}​ K22,从矩阵数据可知,则

KaTeX parse error: Undefined control sequence: \cal at position 8: K_{11}=\̲c̲a̲l̲ ̲K \left( {\bf x…

KaTeX parse error: Undefined control sequence: \cal at position 8: K_{22}=\̲c̲a̲l̲ ̲K \left( {\bf x…

KaTeX parse error: Undefined control sequence: \cal at position 2: {\̲c̲a̲l̲ ̲K} \left( {\bf …,其中 M M M是一种置换矩阵(permutation matrix),因为训练数据集 X X X为循环矩阵(参考线性滤波器的解 w \bf w w1),而在循环矩阵中, x 2 {\bf x}_2 x2可以由一个置换矩阵(permutation matrix)乘以它前面的 x 1 {\bf x}_1 x1得到,也就是 x 2 = M x 1 {\bf x}_2 = M{\bf x}_1 x2=Mx1,从而KaTeX parse error: Undefined control sequence: \cal at position 2: {\̲c̲a̲l̲ ̲K} \left( {\bf ….

另外前面已经做好假设,存在一种核函数KaTeX parse error: Undefined control sequence: \cal at position 1: \̲c̲a̲l̲ ̲K,满足KaTeX parse error: Undefined control sequence: \cal at position 2: {\̲c̲a̲l̲ ̲K} \left( {\bf …,这样可以得出结论 K 11 = K 22 K_{11}=K_{22} K11=K22,同理,还可以得出: K 12 = K 23 K_{12}=K_{23} K12=K23 K 13 = K 24 K_{13}=K_{24} K13=K24 K 14 = K 21 K_{14}=K_{21} K14=K21…这样可以得出矩阵 K K K的另一种表示:

数据内容:
KaTeX parse error: Undefined control sequence: \cal at position 8: K_{11}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{12}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{13}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{14}=\̲c̲a̲l̲ ̲K \left( {\bf x…
KaTeX parse error: Undefined control sequence: \cal at position 8: K_{14}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{11}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{12}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{13}=\̲c̲a̲l̲ ̲K \left( {\bf x…
KaTeX parse error: Undefined control sequence: \cal at position 8: K_{13}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{14}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{11}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{12}=\̲c̲a̲l̲ ̲K \left( {\bf x…
KaTeX parse error: Undefined control sequence: \cal at position 8: K_{12}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{13}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{14}=\̲c̲a̲l̲ ̲K \left( {\bf x… KaTeX parse error: Undefined control sequence: \cal at position 8: K_{11}=\̲c̲a̲l̲ ̲K \left( {\bf x…

观察该矩阵数据,可以发现该矩阵的第二行是第一行的位移,第三行又是第二行的位移…,这就是 C ( k x x ) C\left( {\bf k}^{\bf xx} \right) C(kxx),因此

K = C ( k x x ) (7) K=C\left( {\bf k}^{\bf xx} \right) \tag 7 K=C(kxx)(7)

证明完毕。

进一步结合本笔记2.1节中关于置换矩阵(permutation matrix)的移位作用,我们有
KaTeX parse error: Undefined control sequence: \cal at position 22: …{\bf{xx'}}} = {\̲c̲a̲l̲ ̲K}\left( { {\bf{…

从核函数角度来看,上式即为
k i x x ′ = ϕ T ( x ′ ) ϕ ( P i − 1 x ) (7.2) k_i^{ {\bf{xx'}}} = {\phi ^T}\left( { {\bf{x'}}} \right)\phi \left( { {P^{i - 1}}{\bf{x}}} \right) \tag {7.2} kixx=ϕT(x)ϕ(Pi1x)(7.2)

2.3 核化滤波器表达式

从前述公式(6)开始,利用2.2节的重要结论,将公式(6)中的矩阵 K K K C ( k x x ) C\left( {\bf k}^{\bf xx} \right) C(kxx)代替,得到下式:
α = [ C ( k x x ) + λ I ] − 1 y = [ F d i a g ( k ^ x x ) F H + λ I ] − 1 y (8) \begin{array}{l}{\bf{\alpha }} & = {\left[ {C\left( {\bf k}^{\bf xx} \right) + \lambda I} \right]^{ - 1}}{\bf{y}} \\ & = {\left[ {F{\rm{diag}}\left( { { { {\bf{\hat k}}}^{ {\bf{xx}}}}} \right){F^H} + \lambda I} \right]^{ - 1}}{\bf{y}}\end{array} \tag 8 α=[C(kxx)+λI]1y=[Fdiag(k^xx)FH+λI]1y(8)

公式(8)中的 C ( k x x ) C\left( {\bf k}^{\bf xx} \right) C(kxx)可以用 F d i a g ( k ^ x x ) F H {F{\rm{diag}}\left( { { { {\bf{\hat k}}}^{ {\bf{xx}}}}} \right){F^H}} Fdiag(

  • 12
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值