CSK

参考博文:https://blog.csdn.net/qq_32763701/article/details/83691393
以及知乎大佬YaqiLYU的专栏

目标视觉跟踪(Visual Object Tracking),大家比较公认分为两大类:生成(generative)模型方法判别(discriminative)模型方法,目前比较流行的是判别类方法,也叫检测跟踪(tracking-by-detection)。

生成类方法,我没怎么看过生成类方法的论文。—在当前帧对目标区域建模,下一帧寻找与模型最相似的区域就是预测位置。举个例子,从当前帧知道了目标区域80%是红色,20%是绿色,然后在下一帧,搜索算法就像无头苍蝇,到处去找最符合这个颜色比例的区域。

判别类方法, OTB50里面的大部分方法都是这一类,经典套路图像特征+机器学习, **当前帧以目标区域为正样本,背景区域为负样本,机器学习训练分类器,下一帧用训练好的分类器找最优区域。**相关滤波也是属于判别类方法。

CSK 作者发现如果给岭回归加入kernel-trick,也可以推导出封闭解,推荐是高斯核。至此,CSK算法就成型了。总结一下,如果是100X100的图像块,经过傅里叶变换和几个简单的元素级点乘计算,事实上已经完成了10000个样本的训练和10000个样本的检测,复杂度由O(mnXmn)降低到了O(mnXlog(mn)),m和n是图像的高乘宽,也就是说CSK的复杂度与图像块的像素点总数有关,padding大小会影响复杂度。循环移位生成的近似样本集结合FFT以近乎恐怖的方式降低了计算量,但是,这种近似以引入边界效应为代价,再但是,即使存在边界效应KCF/DCF依然碾压了Struck。

卷积操作与互相关操作的区别仅在于是否将卷积核旋转180度,如果卷积核对称,这时候卷积与互相关就是一回事了。(计算上)这里附上大佬推导

https://blog.csdn.net/u013187057/article/details/83897549?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160491388219724842964056%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160491388219724842964056&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v28-8-83897549.first_rank_ecpm_v3_pc_rank_v2&utm_term=kcf%E7%9B%AE%E6%A0%87%E8%B7%9F%E8%B8%AA%E7%AE%97%E6%B3%95+%E6%8E%A8%E5%AF%BC&spm=1018.2118.3001.4449

CSK
在这里插入图片描述

加正则项的目的是为了防止求得的滤波器H过拟合。通过最小二乘法求得的相关滤波器与当前帧输入的图像F的相关性是最高的,然而我们是要用求得的滤波器结果H去预测下一帧图像中目标所在的位置。因为下一帧图像不可能和当前帧的图像一模一样,所以拟合度过高反而会影响检测的准确度,所以加入正则项来减小输入图像和滤波器之间的拟合程度,使求得的滤波器H泛化能力更强

MOSSE算法里求相关性的操作是通过在怀疑区域里滑动卷积得到的,如果是要求密集采样(而不是随机采样)的话,要求卷积模板在这一区域从第一个像素滑动到最后一个像素,在这一区域产生大量候选窗(这些候选窗重合度还很大),最终目标匹配得到最后的输出结果。这一过程明显计算量巨大,影响跟踪速度。第一行为实际采集的目标特征,其他行表示周期性地把最后的矢量依次往前移产生的虚拟目标特征。因为整个循环矩阵都是由第一行演变而来,所以循环矩阵不需要空间专门去保存它。

接下来就是循环移位(Cyclic shifts)。相关滤波的训练样本是通过循环移位产生的,理由1:密集采样得到的样本与循环移位产生的样本很像,可以用循环移位来近似。理由2:卷积(相关)运算在傅里叶域对应点乘运算,可以减小计算量,而**循环矩阵经过傅里叶变换会对角化,**可以进一步减小计算量。
在这里插入图片描述
另一方面,如上图所示,循环矩阵对像素的移动产生了目标发生上下位移的结果,可以理解为在这一帧里样本数增加了。更多的样本数意味着训练的结果更准确。

此外,循环矩阵傅里叶对角化特性也是引入循环矩阵重要的原因之一。

利用这一特性证明循环矩阵的和、点积、求逆都是循环矩阵,在频域利用这一特性大大提高了运算速率。
为什么引入核函数?
核函数是模式识别里的一个技巧。我们知道在低维空间中线性不可分的模式可以映射到高维空间实现线性可分。
在这里插入图片描述

其中红线和黑线分别表示两类数据,在二维空间里线性不可分,映射到高维空间后利用二次函数(曲线)实现了可分。
但问题在于,虽然在高维空间实现了线性可分,但一是映射关系难以求解,二是在高维空间运算时,容易导致维数灾难,维数越大,计算量也指数增大。
引入核函数的目的是利用在原空间的核函数的值表示高维空间的向量的內积,简化计算。

将CSK中的单通道灰度特征扩展成多通道的HOG特征,采用HOG+线性核的方法叫做DCF,采用HOG+高斯核的方法叫做KCF,依靠傅里叶变换的快速算法FFT和HOG的快速算法fHOG,KCF/DCF成功起飞。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值