核相关滤波-KCF-视频跟踪算法解析(1)
2016-05-31 15:33
225 查看
动机: 大部分基于检测的视频跟踪算法,当选取充足的样本时,计算量太大无法保证跟踪算法的实时性,因此,大部分基于检测的算法都以牺牲样本的数量来保证算法的实时性。这使得跟踪算法的鲁棒性比较差。因此,有没有一种比交好的方法,既能保证实时性又能尽量选取足够的的样本进行训练呢? 本文给出的答案是:可以的。
分析:
1.岭回归即最小二乘加一个正则项(二范数),公式如下:
![](https://img-blog.csdn.net/20160531150149528?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
2对于岭回归,它唯一的优点就是有解析解(封闭解),通过求偏导数,进行化简,最后解析解的形式如下式:
![](https://img-blog.csdn.net/20160531150429876?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
3本文就是在w的求解过程处做的改进。在(2)式中,求w必须要求矩阵的逆,矩阵求逆是一个非常耗时的过程,因此,如果w的求解可以用一种计算复杂度低的方法来解决,那么整个算法的时间复杂度就会大大降低。本文,利用循环矩阵对角化的性质和离散傅里叶变换和逆变换,得到了一个计算复杂度为nlogn 的求解w的方法。
检测目标位置的计算时间降低了,但是,我们训练那么多样本,不还是需要花费很多时间吗?可不可以也改进一下样本训练参数的时间呢?文章的答案是:可以。
5利用选取的样本,文章将样本变成循环矩阵,然后利用对角化和离散傅里叶变换的性质,大大缩减计算复杂度,从而提高训练速度。
4到现在,跟踪算法的计算时间大大缩短了,我们可以选取足够多的样本进行训练,在保证算法实时性的同时,也保证了算法的鲁棒性。
现在,论文的整体创新思路应该清晰了。下一步,本人将会对每一部分进行详细介绍。
分析:
1.岭回归即最小二乘加一个正则项(二范数),公式如下:
2对于岭回归,它唯一的优点就是有解析解(封闭解),通过求偏导数,进行化简,最后解析解的形式如下式:
3本文就是在w的求解过程处做的改进。在(2)式中,求w必须要求矩阵的逆,矩阵求逆是一个非常耗时的过程,因此,如果w的求解可以用一种计算复杂度低的方法来解决,那么整个算法的时间复杂度就会大大降低。本文,利用循环矩阵对角化的性质和离散傅里叶变换和逆变换,得到了一个计算复杂度为nlogn 的求解w的方法。
检测目标位置的计算时间降低了,但是,我们训练那么多样本,不还是需要花费很多时间吗?可不可以也改进一下样本训练参数的时间呢?文章的答案是:可以。
5利用选取的样本,文章将样本变成循环矩阵,然后利用对角化和离散傅里叶变换的性质,大大缩减计算复杂度,从而提高训练速度。
4到现在,跟踪算法的计算时间大大缩短了,我们可以选取足够多的样本进行训练,在保证算法实时性的同时,也保证了算法的鲁棒性。
现在,论文的整体创新思路应该清晰了。下一步,本人将会对每一部分进行详细介绍。
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析