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

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

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

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

α^=y^k^xx+λ(1) (1) α ^ = y ^ k ^ x x + λ

其中,若采用高斯核,则

kxx=exp(1σ2(x2+x22F1(x^x^)))(2) (2) k x x = exp ⁡ ( − 1 σ 2 ( ‖ x ‖ 2 + ‖ x ‖ 2 − 2 F − 1 ( x ^ ∗ ⊙ x ^ ∗ ) ) )

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

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

该过程包含两个方面:

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

w=iαiφ(xi)(3) (3) w = ∑ i α i φ ( x i )

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

(2)用点积进行表示:

φT(x)φ(x)=K(x,x)(4) (4) φ T ( x ) φ ( x ′ ) = K ( x , x ′ )

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

f(z)=wTz=(i=1nαiφ(xi))Tφ(z)=i=1nαiK(z,xi)(5) (5) f ( z ) = w T z = ( ∑ i = 1 n α i φ ( x i ) ) T ⋅ φ ( z ) = ∑ i = 1 n α i K ( z , x i )

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

2. 推导核化滤波器

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

α=(K+λI)1y(6) (6) α = ( K + λ I ) − 1 y

其中, α α 是由各个系数 αi α i 组成的向量, K K 是核矩阵,其各个元素的定义是: Kij=K(xi,xj) K i j = K ( x i , x j ) λ λ 是正则项系数。里面的 x x y y 都是训练集中的数据。公式(6)的推导过程可以参考Max Welling的Kernel ridge Regression,此处不再赘述。

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

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

训练时,采集一个感兴趣的图像块,将其拉伸为一个列向量作为基础样本(base sample),记作 x=[x1x2xn]T x = [ x 1 x 2 ⋯ x n ] T ,现在给定一个置换矩阵(permutation matrix)

P=0100001000011000 P = [ 0 0 0 ⋯ 1 1 0 0 ⋯ 0 0 1 0 ⋯ 0 ⋮ ⋮ ⋱ ⋱ ⋮ 0 0 ⋯ 1 0 ]

尝试计算 P0x P 0 x ,得 x1=x=[x1x2xn]T x 1 = x = [ x 1 x 2 ⋯ x n ] T .

尝试计算 P1x P 1 x ,得 x2=[xnx1xn1]T x 2 = [ x n x 1 ⋯ x n − 1 ] T .

尝试计算 P2x=P(Px) P 2 x = P ( P x ) ,得 x3=[xn1xnxn2]T x 3 = [ x n − 1 x n ⋯ x n − 2 ] T .

尝试计算 Pn1x=P(Px) P n − 1 x = P … ( P x ) ,得 xn=[x2x3x1]T x n = [ x 2 x 3 ⋯ x 1 ] T .

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

2.2 一个重要结论

首先指出该重要结论(即KCF论文中的Theorem 1):假设存在一种核函数 K K ,满足 K(x1,x2)=K(Mx1,Mx2) K ( x 1 , x 2 ) = K ( M x 1 , M x 2 ) ,那么相关核矩阵 K K 也是循环矩阵,且 K=C(kxx) K = C ( k x x ) ,其中 M M 是一种置换矩阵(permutation matrix), kxx k x x 是相关核矩阵 K K 的第一行,现在证明 K=C(kxx) K = C ( k x x ) .

证明:根据矩阵 K K 的定义 Kij=K(xi,xj) K i j = K ( x i , x j ) ,其中 xi x i 表示训练样本集 X X 中的一个移位样本(参考KCF论文4.1节中的表述),可以将矩阵 K K 表示为如下矩阵(假设矩阵有4行4列):

数据内容:
K11=K(x1,x1) K 11 = K ( x 1 , x 1 ) K12=K(x1,x2) K 12 = K ( x 1 , x 2 ) K13=K(x1,x3) K 13 = K ( x 1 , x 3 ) K14=K(x1,x4) K 14 = K ( x 1 , x 4 )
K21=K(x2,x1) K 21 = K ( x 2 , x 1 ) K22=K(x2,x2) K 22 = K ( x 2 , x 2 ) K23=K(x2,x3) K 23 = K ( x 2 , x 3 ) K24=K(x2,x4) K 24 = K ( x 2 , x 4 )
K31=K(x3,x1) K 31 = K ( x 3 , x 1 ) K32=K(x3,x2) K 32 = K ( x 3 , x 2 ) K33=K(x3,x3) K 33 = K ( x 3 , x 3 ) K34=K(x3,x4) K 34 = K ( x 3 , x 4 )
K41=K(x4,x1) K 41 = K ( x 4 , x 1 ) K42=K(x4,x2) K 42 = K ( x 4 , x 2 ) K43=K(x4,x3) K 43 = K ( x 4 , x 3 ) K44=K(x4,x4) K 44 = K ( x 4 , x 4 )

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

数据内容:
K11=K(x1,x1) K 11 = K ( x 1 , x 1 ) K12=K(x1,x2) K 12 = K ( x 1 , x 2 ) K13=K(x1,x3) K 13 = K ( x 1 , x 3 ) K14=K(x1,x4) K 14 = K ( x 1 , x 4 )

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

K11=K(x1,x1) K 11 = K ( x 1 , x 1 )

K22=K(x2,x2) K 22 = K ( x 2 , x 2 )

K(x2,x2)=K(Mx1,Mx1) K ( x 2 , x 2 ) = K ( M x 1 , M x 1 ) ,其中 M M 是一种置换矩阵(permutation matrix),因为训练数据集 X X 为循环矩阵(参考线性滤波器的解 w w 2),而在循环矩阵中, x2 x 2 可以由一个置换矩阵(permutation matrix)乘以它前面的 x1 x 1 得到,也就是 x2=Mx1 x 2 = M x 1 ,从而 K(x2,x2)=K(Mx1,Mx1) K ( x 2 , x 2 ) = K ( M x 1 , M x 1 ) .

另外前面已经做好假设,存在一种核函数 K K ,满足 K(x1,x2)=K(Mx1,Mx2) K ( x 1 , x 2 ) = K ( M x 1 , M x 2 ) ,这样可以得出结论 K11=K22 K 11 = K 22 ,同理,还可以得出: K12=K23 K 12 = K 23 K13=K24 K 13 = K 24 K14=K21 K 14 = K 21 …这样可以得出矩阵 K K 的另一种表示:

数据内容:
K11=K(x1,x1) K 11 = K ( x 1 , x 1 ) K12=K(x1,x2) K 12 = K ( x 1 , x 2 ) K13=K(x1,x3) K 13 = K ( x 1 , x 3 ) K14=K(x1,x4) K 14 = K ( x 1 , x 4 )
K14=K(x1,x4) K 14 = K ( x 1 , x 4 ) K11=K(x1,x1) K 11 = K ( x 1 , x 1 ) K12=K(x1,x2) K 12 = K ( x 1 , x 2 ) K13=K(x1,x3) K 13 = K ( x 1 , x 3 )
K13=K(x1,x3) K 13 = K ( x 1 , x 3 ) K14=K(x1,x4) K 14 = K ( x 1 , x 4 ) K11=K(x1,x1) K 11 = K ( x 1 , x 1 ) K12=K(x1,x2) K 12 = K ( x 1 , x 2 )
K12=K(x1,x2) K 12 = K ( x 1 , x 2 ) K13=K(x1,x3) K 13 = K ( x 1 , x 3 ) K14=K(x1,x4) K 14 = K ( x 1 , x 4 ) K11=K(x1,x1) K 11 = K ( x 1 , x 1 )

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

K=C(kxx)(7) (7) K = C ( k x x )

证明完毕。

进一步结合本笔记2.1节中关于置换矩阵(permutation matrix)的移位作用,我们有

kxxi=K(x,Pi1x)(7.1) (7.1) k i x x ′ = K ( x ′ , P i − 1 x )

从核函数角度来看,上式即为

kxxi=ϕT(x)ϕ(Pi1x)(7.2) (7.2) k i x x ′ = ϕ T ( x ′ ) ϕ ( P i − 1 x )

2.3 核化滤波器表达式

从前述公式(6)开始,利用2.2节的重要结论,将公式(6)中的矩阵 K K C(kxx) C ( k x x ) 代替,得到下式:

α=[C(kxx)+λI]1y=[Fdiag(k^xx)FH+λI]1y(8) (8) α = [ C ( k x x ) + λ I ] − 1 y = [ F d i a g ( k ^ x x ) F H + λ I ] − 1 y

公式(8)中的 C(kxx) C ( k x x ) 可以用 Fdiag(k^xx)FH F d i a g ( k ^ x x ) F H 代替,这是由循环矩阵的特性决定的,见线性滤波器公式推导中的(3)式3。

现在利用傅里叶矩阵 F F 的幺正性(unitarity)即: FFH=I F F H = I ,可以进一步将公式(8)改写为

α=[Fdiag(k^xx)FH+λFIFH]1y=[Fdiag(k^xx)FH+Fdiag(λ)FH]1y=Fdiag(k^xx+λ)1FHy(9) (9) α = [ F d i a g ( k ^ x x ) F H + λ F I F H ] − 1 y = [ F d i a g ( k ^ x x ) F H + F d i a g ( λ ) F H ] − 1 y = F d i a g ( k ^ x x + λ ) − 1 F H y

将公式(9)两边同时左乘 FH F H ,得到
FHα=FHFdiag(k^xx+λ)1FHy=diag(k^xx+λ)1FHy(10) (10) F H α = F H F d i a g ( k ^ x x + λ ) − 1 F H y = d i a g ( k ^ x x + λ ) − 1 F H y

根据傅里叶变换的定义,我们可以将 Fα F α 表示为 α^ α ^ ,那么公式(10)中的 FHα F H α 可以表示为 [α^]T [ α ^ ∗ ] T (因为 FH=(F)T F H = ( F ∗ ) T ,右上角的星号表示共轭矩阵),这样公式(10)可以改写为
[α^]Tα^=diag(1k^xx+λ)[y^]T=diag(1k^xx+λ)y^(11) (11) [ α ^ ∗ ] T = d i a g ( 1 k ^ x x + λ ) [ y ^ ∗ ] T α ^ ∗ = d i a g ( 1 k ^ x x + λ ) y ^ ∗

由于一个对角矩阵(diagonal matrix)与一个向量相乘,相当于元素级的乘法,因此
α^=y^k^xx+λ(12) (12) α ^ ∗ = y ^ ∗ k ^ x x + λ

最后,等式两边同时取共轭,有
α^=y^k^xx+λ(13) (13) α ^ = y ^ k ^ x x + λ

其中, kxx k x x (即 kx1x1 k x 1 x 1 )是核矩阵 K K 的第一行,这样非线性滤波器的推导就完成了。

3. 快速检测

上文已经推导出了非线性条件下滤波器的求解公式,在得到了滤波器后,我们可以对视频中某一帧中的图像块进行检测以求出目标的位置,这样待检测的图像块称之为 z z

3.1 快速检测表达式引入

回顾公式(5)

f(z)=wTz=(i=1nαiφ(xi))Tφ(z)=i=1nαiK(z,xi)(5) (5) f ( z ) = w T z = ( ∑ i = 1 n α i φ ( x i ) ) T ⋅ φ ( z ) = ∑ i = 1 n α i K ( z , x i )

公式(5)求解的 f(z) f ( z ) 是一个标量,它表示某一个样本的回归值。再回顾公式(6)
α=(K+λI)1y(6) (6) α = ( K + λ I ) − 1 y

可得
y=Kα(14) (14) y = K α

注意:岭回归问题中,正则项仅仅用来求解 α α ,在求解回归值时不需要正则项。

论文认为:为了检测到目标,应该从多个候选样本中进行评估(见论文5.3节),仍然采用循环矩阵,对待检测的图像块 z z 进行循环化,那么在目标检测的场景下,(14)式可表示为

f(z)=(Kz)Tα(15) (15) f ( z ) = ( K z ) T α

其中, Kz K z 表示训练样本与候选样本之间的核矩阵,它是一个非对称阵(asymmetric matrix), Kz K z 的每个元素值定义为: Kzij=K(Pi1z,Pj1x) K i j z = K ( P i − 1 z , P j − 1 x ) P P 是置换矩阵,其作用是实现位移。

3.2 快速检测表达式推导

现在推导上述公式(15),由公式(5)可以推出

f(z)=i=1nαiK(z1,xi)i=1nαiK(z2,xi)i=1nαiK(z3,xi)i=1nαiK(zm,xi)=i=1nK(z1,xi)αii=1nK(z2,xi)αii=1nK(z3,xi)αii=1nK(zm,xi)αi(16) (16) f ( z ) = [ ∑ i = 1 n α i K ( z 1 , x i ) ∑ i = 1 n α i K ( z 2 , x i ) ∑ i = 1 n α i K ( z 3 , x i ) ⋮ ∑ i = 1 n α i K ( z m , x i ) ] = [ ∑ i = 1 n K ( z 1 , x i ) α i ∑ i = 1 n K ( z 2 , x i ) α i ∑ i = 1 n K ( z 3 , x i ) α i ⋮ ∑ i = 1 n K ( z m , x i ) α i ]

其中 m m 表示 m m 个候选样本, f(z) f ( z ) 中的各个元素是样本 z1 z 1 (也记作 z z )的循环移位样本。

将公式(16)展开,可得

f(z)=K(z1,x1)K(z2,x1)K(zm,x1)K(z1,x2)K(z2,x2)K(zm,x2)K(z1,xn)K(z2,xn)K(zm,xn)α1α2αn=K(z1,x1)K(z1,x2)K(z1,xn)K(z2,x1)K(z2,x2)K(z2,xn)K(zm,x1)K(zm,x2)K(zm,xn)Tα1α2αn=K(z1,x1)K(z1,x2)K(z1,xn)K(z2,x1)K(z2,x2)K(z2,xn)

你可能感兴趣的:(视频目标跟踪(Visual,tracking),论文笔记,filter),数字图像处理,模式识别与深度学习)