kernelizedcorrelationfilterskcf算法Word格式文档下载.docx
《kernelizedcorrelationfilterskcf算法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《kernelizedcorrelationfilterskcf算法Word格式文档下载.docx(6页珍藏版)》请在冰豆网上搜索。
之所以能有这么快的速度,得益于作者巧妙地通过循环偏移构建出了分类器的训练样本,从而使得数据矩阵变成了一个循环矩阵。
然后基于循环矩阵的特性把问题的求解变换到了傅里叶变换域,从而避免了矩阵求逆的过程,大大降低了算法的复杂度。
问题阐述
目前跟踪算法主流的思想还是基于trackingbydetection,而训练样本的选择基本上就以目标中心为提取正样本,然后基于周围的图像提取负样本。
大部分算法都是采用非正即负的方法来标记训练样本,即正样本标签为1,负样本为0。
这种标记样本的方法有一个问题就是不能很好的反应每个负样本的权重,即对离中心目标远的样本和离中心目标的近的样本同等看待。
所以就有算法提出使用连续的标签进行标记样本,即根据样本中心里目标的远近分别赋值[0,1]范围的数。
离目标越近,值越趋向于1,离目标越远,值越趋向于0。
事实也证明这种标记样本的方法能得到更好的效果,比如Struck和KCF。
Struck是通过一种loss函数隐式地采用了这种连续的样本标记方法,而KCF则通过使用[0,1]范围的值作为样本的回归值,从而给不同偏移下得到的样本不同的权重。
首先,我们先介绍一个简单的线性回归模型,然后再讨论引入kernel之后的情况。
样本训练过程实际上是一个岭回归问题,或者叫做正则化最小二乘问题,它有一个闭式的解。
假设给定一些训练样本及其回归值{(x1,y1),(x2,y2),...,(xi,yi),...}"
role="
presentation"
style="
position:
relative;
{(x1,y1),(x2,y2),...,(xi,yi),...}{(x1,y1),(x2,y2),...,(xi,yi),...},其训练的最终目标是找到一个函数f(z)=wTz"
f(z)=wTzf(z)=wTz使得如下残差函数最小,
(1)minw&
amp;
#x2211;
i(f(xi)&
#x2212;
yi)2+&
#x03BB;
&
#x2225;
w&
2"
minw∑i(f(xi)?
yi)2+λ∥w∥2
(1)
(1)minw∑i(f(xi)?
yi)2+λ∥w∥2
其中,&
λλ是正则化参数,防止过拟合的。
上式的闭式解可以参考线性最小二乘的求解得出如下,
(2)w=(XTX+&
I)&
1XTy"
w=(XTX+λI)?
1XTy
(2)
(2)w=(XTX+λI)?
1XTy
这里X"
XX是由一个样本的特征向量占一行组成的样本矩阵。
y"
yy是对应每个样本的回归值yi"
yiyi组成的列向量。
I"
II是个单位矩阵。
因为考虑到后面要在傅里叶域进行计算,这里给出一个复数情况下的求解结果,其中XH"
XHXH是X"
XX的共轭转置,w&
#x2217;
w?
是w"
ww的共轭。
(3)w&
=(XHX+&
1XHy"
=(XHX+λI)?
1XHy(3)(3)w?
1XHy
现在问题来了,如果直接求解上述闭式解,其中的求逆计算随着样本数的增大是非常耗时的。
显然直接求解的方式是不靠谱的,这里这篇paper的作者通过巧妙地把上述闭式解变换到傅里叶变换域的方式,从而避开了矩阵求逆的运算,大大节省了运行时间。
而这也是这篇paper的主要贡献所在。
DFT下的线性回归
为了解释的简明性,这里仅仅就一维的单通道信息做分析,也就是说这里的x"
xx都是一维向量,当然推广到二维也是适用的,而且实际上代码中也的确就是在二维上做的。
我们看到式(3)"
(3)(3)中的样本矩阵X"
XX如果是一个循环矩阵的话,该式子的计算就会变得容易很多。
即,
(4)X=C(x)=[x1x2x3&
#x22EF;
xnxnx1x2&
xn&
1xn&
1xnx1&
2&
#x22EE;
#x22F1;
x2x3x4&
x1]"
X=C(x)=?
?
x1xnxn?
1?
x2x2x1xn?
x3x3x2x1?
x4?
xnxn?
1xn?
2?
x1?
(4)(4)X=C(x)=[x1x2x3?
xnxnx1x2?
xn?
1xnx1?
x2x3x4?
x1]
其中,x"
xx是矩阵的第一行,整个矩阵式由这一行的循环偏移得到的。
那我们假设存在这么一个循环矩阵,看看接下来式(3)"
(3)(3)会变成怎样。
首先列出一个循环矩阵拥有的一个性质Toeplitzandcirculantmatrices:
Areview:
nowpublishersinc,2006."
5如下:
(5)X=FHdiag(x&
#x005E;
)F"
X=FHdiag(x^)F(5)(5)X=FHdiag(x^)F
xx头上的那个小帽x&
x^x^代表x"
xx的傅里叶变换,F"
FF是离散傅里叶变换矩阵,即满足x&
=Fx"
x^=Fxx^=Fx。
这样把式(5)"
(5)(5)代入式(3)"
(3)(3)中得,
(6)w&
=(FHdiag(x&
)FFHdiag(x&
)F+&
1FHdiag(x&
)Fy=F&
1(diag(x&
#x2299;
x&
)+&
1diag(x&
+&
)Fy"
=(FHdiag(x^?
)FFHdiag(x^)F+λI)?
1FHdiag(x^?
)Fy=F?
1(diag(x^?
⊙x^)+λI)?
1diag(x^?
x^?
⊙x^+λ)Fy(6)(6)w?
1(di