目标跟踪KCF方法

Henriques, João F., et al. “High-speed tracking with kernelized
correlation filters.” Pattern Analysis and Machine Intelligence, IEEE
Transactions on 37.3 (2015): 583-596.

本文的跟踪方法效果甚好,速度奇高,思想和实现均十分简洁。其中利用循环矩阵进行快速计算的方法尤其值得学习。另外,作者在主页上十分慷慨地给出了各种语言的实现代码。
本文详细推导论文中的一系列步骤,包括论文中未能阐明的部分。请务必先参看这篇简介循环矩阵性质的博客

思想

一般化的跟踪问题可以分解成如下几步:
1. 在ItIt

循环矩阵表示图像块

在图像中,循环位移操作可以用来近似采样窗口的位移。
这里写图片描述
训练时,围绕着当前位置进行的一系列位移采样可以用二维分块循环矩阵XX可以利用傅里叶变换快速完成许多线性运算。

线性回归训练提速

此部分频繁用到了循环矩阵的各类性质,请参看这篇博客
线性回归的最小二乘方法解为:

w=(XHX+λI)1XHyw=(XHX+λI)−1XHy

根据循环矩阵乘法性质,XHXXHX

=(Fdiag(x^x^+λδ)FH)1XHy=(Fdiag(x^⊙x^∗+λδ)FH)−1XHy

根据循环矩阵求逆性质,可以把矩阵求逆转换为特征值求逆。

w=Fdiag(1x^x^+λδ)FHXHyw=F⋅diag(1x^⊙x^∗+λδ)⋅FHXHy

w=Fdiag(1x^x^+λδ)FHFdiag(x^)FHyw=F⋅diag(1x^⊙x^∗+λδ)⋅FH⋅Fdiag(x^∗)FH⋅y

利用FF

分号表示用1进行对位相除。
反用对角化性质:Fdiag(y)FH=C(F1(y))Fdiag(y)FH=C(F−1(y))

利用循环矩阵卷积性质F(C(x)y)=x^y^F(C(x)⋅y)=x^∗⊙y^的每个元素都是实数,所以共轭不变:

F(w)=x^x^x^+λδF(y)=x^y^x^x^+λδF(w)=x^x^⊙x^∗+λδ⊙F(y)=x^⊙y^x^⊙x^∗+λδ

论文中,最后这一步推导的分子部分写成x^y^x^∗⊙y^,是错误的。但代码中没有涉及。

线性回归系数ωω可以通过向量的傅里叶变换和对位乘法计算得到。

核回归训练提速

不熟悉核方法的同学可以参看这篇博客的简单说明。核回归方法的回归式为:

f(z)=αTκ(z)f(z)=αTκ(z)

KK也是循环矩阵。以下核都满足这样的条件:
这里写图片描述

设核相关矩阵的生成向量是kk

=Fdiag(1k^+λδ)FHy=C(F1(1k^+λδ))y=Fdiag(1k^+λδ)FHy=C(F−1(1k^+λδ))y

利用循环矩阵卷积性质F(C(x)y)=x^y^F(C(x)⋅y)=x^∗⊙y^

两者都是同一个向量和自身位移结果进行运算。因为所有涉及到的核函数都只和位移的绝对值有关,所以ki=kNiki=kN−i是对称向量。

举例:x0=[1,2,3,4]x0=[1,2,3,4]

对称向量的傅里叶变换为实数,有:

α^=(1k^+λδ)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值