文章和代码下载地址:

http://www.robots.ox.ac.uk/~joao/circulant/

一、基础公式的由来

相关滤波跟踪器可以表示为最小化的岭回归问题:

表示期望相应,表示正则系数防止过拟合。

具体公式怎么来的可以参考CSK算法:ECCV2012跟踪算法CSK原理及代码解析_博博有个大大大的Dream-CSDN博客

<,> 表示点乘,b在实际中没有意义,不用管,可以理解直接省掉。所以原式等价于:

样本的整体用来代表,元素的整体用来表示,即表示的第行,代表的第个元素。则上式可以写成:

求上式的最小值即为求解导数为0的极值点,上式对求导得

所以

参考MOSSE,相关转换到傅里叶域需要复共轭,所以的求解可以表达成下式:

               

二、滤波器w的求解转换到傅里叶域

上式的样本是一个循环矩阵,其中第一行表示真实的样本,后面的每一行都是通过前一行移位一个元素得到的

这样一个循环矩阵存在以下特性

其中表示的DFT变换形式,表示一个与无关的常量矩阵,也叫做DFT矩阵。对于任意的输入矩阵都有:

所以

因此

或者写成

三、核技巧

上面的求解过程可以认为是一维2D特征,那么如果特征为多维呢,如31维HOG特征。

(解释一下2D特征:2D特征就是这个特征是一个面的,有长有宽。如灰度图像直接输入就可以认为是一个一维2D特征;如果彩色图像输入,可以认为是一个三维2D特征;HOG特征就是31维的2D特征)

如果特征是多维的,每一个维度都计算一遍,那么也是一个多维的,其实这样计算也可以。作者为了提高计算效率加入了核技巧。没啥高大上的,其实简单理解就是把高维度的2D特征转换为一维的2D特征,并且还能保留充足的信息量。

的解可以表示为样本的线性组合(前人已经证明可以,那就是可以):

表示的就是多维的特征空间,特征是已知的,要求解是不是只需要把求解出来就可以了。

引入核函数降低将高维特征转换到低维:

是一个的核矩阵,简单理解就是经过操作了一下,就变成了中的一个元素。

然后原式的求解可以转化为:

也是一个循环矩阵,转化到傅里叶域为:

这两个公式的推到过程可以参考原文或者这篇博客:ECCV2012跟踪算法CSK原理及代码解析_博博有个大大大的Dream-CSDN博客

如果用HOG特征加Gauss核的话,

其中,都是31个维度的2D特征,都是一个维度的2D特征,最后我们通过如下公式来确定当前帧目标的位置:

TPAMI2015跟踪算法KCF原理及代码解析相关推荐

  1. ICCV2017跟踪算法BACF原理及代码解析

    文章和代码下载地址: Galoogahi H K, Fagg A, Lucey S. Learning Background-Aware Correlation Filters for Visual ...

  2. CVPR2018跟踪算法STRCF原理及代码解析

    文章和代码下载地址: STRCF: Feng Li, Cheng Tian, Wangmeng Zuo, Lei Zhang, Ming-Hsuan Yang. "Learning Spat ...

  3. 视觉SLAM开源算法ORB-SLAM3 原理与代码解析

    来源:深蓝学院,文稿整理者:何常鑫,审核&修改:刘国庆 本文总结于上交感知与导航研究所科研助理--刘国庆关于[视觉SLAM开源算法ORB-SLAM3 原理与代码解析]的公开课. ORB-SLA ...

  4. 目标跟踪算法KCF原理详解

    一直以来没有很想写这个,以为这个东西比较简单,还算是比较容易理解的一个算法,但是在知乎上回答过一个问题之后就有朋友私信我一些关于细节的东西,我一直以为关于细节的东西大家可以自己去理解,大家都是想快速了 ...

  5. 基于单层决策树的adaBoost算法思想分析和源代码解析

    基于单层决策树的AdaBoost算法思想分析和源代码解析 前言: 上一篇SVM可是废了我好鼻子劲,这一篇咱们来点愉快的东西.我们一定听说过这句俗语:"三个臭皮匠,顶个诸葛亮!" 大 ...

  6. DBNet++(TPAMI) 原理与代码解析

    paper:Real-Time Scene Text Detection with Differentiable Binarization and Adaptive Scale Fusion code ...

  7. YOLOv3原理及代码解析

    博主完整翻译了YOLOV1和YOLOV3的论文:请移步查看: YOLOV1:https://blog.csdn.net/taifengzikai/article/details/81988891 YO ...

  8. 岭回归算法的原理和代码实战

    岭回归算法的原理和代码实战 前言 学过吴恩达老师的机器学习入门课程都应该知道,在逻辑回归那一讲,吴老师提到了使用正则化来防止逻辑回归模型过拟合.而岭回归在这里的作用是一样的,同样也是防止模型过拟合.这 ...

  9. Tensorflow2.0---SSD网络原理及代码解析(二)-锚点框的生成

    Tensorflow2.0-SSD网络原理及代码解析(二)-锚点框的生成 分析完SSD网络的原理之后,一起来看看代码吧~ 代码转载于:https://github.com/bubbliiiing/ss ...

最新文章

  1. AS升级3.0,gradle plugin 升级到3.0.0遇到的问题
  2. ad16自动布线设置规则_PCB设计的十大误区——那些年,我们一起遵守的规则
  3. go语言复数包_Go语言中包的风格指南
  4. 获取指定个数指定范围的随机数
  5. FallbackFactory启动的时候抛出异常
  6. 新春大吉,2017 Make .NET Great
  7. php 筛选数组,2020-07-24 php 通过数组键值对筛选数组
  8. 笨办法学 Python · 续 练习 12:复习
  9. Qt实现Linux下模拟点击界面,如何利用QT实现模拟鼠标点击?
  10. 关于 Appium 各种版本的安装,都在这里
  11. 深入理解javascript内部原理(2): 变量对象(Variable object)
  12. html js 跳出框架,现在的web框架为什么把html和js又结合在一起了?
  13. Vue学习之路第三篇:插值表达式和v-text的区别
  14. 传感器原理与应用复习—电阻式应变传感器部分
  15. c语言1至100的累乘求和,c语言 累加累乘课件.ppt
  16. 一文读懂李洪元被捕251天:先后涉及三项罪名 录音成关键证据
  17. C++中自带的二分查找函数
  18. 成长是一个时辰一个时辰熬出…
  19. Hive环境搭建--轻量级安装so easy!
  20. IT架构师_隽语集(Design Thinking _0201)

热门文章

  1. (转载)cesium的气泡弹窗,已实现
  2. 摩拜单车项目05-Redis集群
  3. 前端下拉菜单的三种实现方法
  4. python 异常捕捉
  5. 深入学习USB(7)认识笔记本上USB接口的标识
  6. jQuery的综合应用
  7. Postgresql学习04-pg_hint_plan安装及使用、Sql优化小知识
  8. js过滤特殊字符,特殊字符串,敏感词汇等
  9. 记录每日LeetCode 2299.强密码校验器II Java实现
  10. 手机通讯录管理系统——c语言