理解出错之处望不吝指正。
本文模型就是大名鼎鼎的CSK。
本文的贡献:
(1)稠密采样、循环移位;
(2)循环矩阵带来的快速计算;
(3)计算了不同的核函数的封闭解。
.
-
稠密采样、循环移位
如上图所示,以往的方法中,采用的都是随机采样,作者说这会带来很大的冗余,并且只使用到了bbox的局部特征。而作者提出的稠密采样可以将整张图片的特征都利用起来。
实际上,训练样本是通过循环移位产生的。首先,稠密采样得到的样本与循环移位产生的样本很像,可以用循环移位来近似;其次,卷积(or互相关)运算在傅里叶域对应可以转化为点乘,且循环矩阵经过傅里叶变换会对角化,这两点都可以减小计算量。
-
循环矩阵带来的快速计算
首先,我们要知道,对于tracking任务,可以形式化的描写为下式:
这里的代表的是一个线性分类器
.
作者使用的是RLS(Regularized Least Squares)损失:.
通过使用kernel trick,这里核函数使用表示。根据表示定理,我们可以得出:
.
进一步,我们可以得出RLS with Kernels(KRLS)的封闭解:
这里为kernel martix,
为单位矩阵。注意到这个公式中存在矩阵的求逆操作,这会带来很大的计算量,作者接下来的目的就是简化上式的计算量。
作者观察到,一个向量通过循环移位可以得到一个循环矩阵:
若是将循环矩阵和矩阵
相乘,即求
,可以变换到傅里叶域进行快速计算:
同时作者在论文中提到,循环矩阵的和、点积、求逆都还是循环矩阵。接下来,就是将循环矩阵的性质应用到求解中。
对于一个给定的图片,我们将其转化为一个
的向量,则采样操作可以看为:
这里的矩阵是用来实现循环移位的置换矩阵。
接下来,作者证明了,若是一个unitarily invariant kernel,则由元素
组成的kernel martix
是一个循环矩阵。这对于KRLS来说是满足的(满足的还有:高斯核函数、线性核函数、多项式核函数等)。则对于
组成的向量
,这里
。参照
的变换,可以得到
的解:
至此,我们可以快速的计算出,训练过程可以很快速的完成。
注意,我们通篇的目的实际上就是要求解,细心的朋友会问,那
呢?论文中第四页最下面有这样一句话:“The bias term b is not important in practice, when finding the maximum response.”。
-
快速检测过程
对于一个输入图像,response可以通过下式计算:
使用前文中提到的技巧,我们可以通过下式快速的得到response:
这里向量中的元素为
.
到目前为止,基本上已经没有矩阵运算了,不过为什么说基本上呢?因为还有一个地方需要矩阵运算,就是计算。接下来,作者对核矩阵的快速计算进行了推导,使上式中彻底没有了矩阵运算,这里就不做介绍了。
-
本模型的缺点:
(1)采用单通道的灰度特征,特征表达能力有限(KCF/DCF中解决);
(2)循环矩阵会导致边界效应(SRDCF中解决);
(3)模型中没有尺度更新,对尺度变换不敏感(DSST中解决)。
-
啥是边界效应?
训练阶段,目标中心移动到边缘附近,此时应视为负样本,在检测阶段,当目标移动到边界附近,此时的目标和训练时使用的负样本是比较接近的,但是此时应当把此作为正样本来检测目标。实际算法会将其视为负样本,所以经常会导致跟踪失败。