转自:http://blog.csdn.net/ben_ben_niao/article/details/51364323

上次介绍了SRDCF算法,发展历史轨迹为CSK=>>KCF/DCF/CN.鄙人首先介绍最基本的CSK算法,其实在上一篇已经提过,但是原理,思路讲的不清晰,这次争取把思路讲清楚。

CSK:[paper:Exploiting the Circulant Structure of Tracking-by-detection with Kernels(作者和KCF/DCF同一个作者)]

  • 文章特点:

    • 输入:整个候选search区域的raw pixel(作为特征,并不是每个候选框),label(y_i),label为符合Gauss分布的连续取值
    • 目的:训练一个分类器,学习分类器的权重W。
    • 求解分类器的权重W,探究了subimage_window和circular struct以及kernel的关系,利用这个关系引入kernel Trick.
    • 利用cirlular matrix和来求解分类器的权重,利用FFT以及循环矩阵的性质,避免了求W时的矩阵逆运算。
    • 输出:相对平移量,实验选区响应值最大的位置作为目标移动的大小。
  • 缺点:

    • scale问题。
    • 循环矩阵bounding效应(SRDCF解决)。
    • 输入为raw gray pixel(KCF,CN,DeepSRDCF丰富了特征的选取).
  • details

    • 首先,候选框subimage_window存在很多重合,计算特征导致冗余。所以为了满足一定的速度要求,无法Dense sampling,只能random sampling少许,导致结果不好。
    • 发现,所有subimage_window可以有候选区域和循环矩阵来表示。设候选区域的特征连接为vector:V,循环矩阵为如下:

all_subimage_window = C(u)V,其实就是一个kernel变换,从候选区域中得到子区域。其实C(u_i),为(1,1,0. ...)等。其实这里作者只是以此说明这个关系,具体在代码中使用时却没那么复杂。

有了上面的发现,则回到tracking问题,跟踪其实就是训练一个分类器:

其中w为分类器的系数,需要学习。引入kernel trick(get the subimage_window):

如果式(1)中的loss function:L取二范数距离,则求解的结果为:

进而转化为求a_i,公式如下:

其中最为关键的是求K为循环矩阵,而选择好对应的核变换函数(线性核,高斯核,多项式核)即可求K,从而得到a_i,及分类器的权重。利用FFT变换,将卷积变换为频域的dot-product,加快速度。

  • 核函数的选举有多种,具体看原paper.所以通过这一步一步从而求解出分类器。

 

KCD/DCF[paper:High-Speed Tracking with Kernelized Correlation Filters],和CSK是同一个作者

这篇文章核心算法同CSK,只是从特征和多尺度以及核变换进行了改进。

  • 在CSK的基础上解决了如下几个问题:

    • 输入为multi-channels(可以是彩色,可以是Hog),并定义了multi-channel特征的连接方法。
    • 采用不同函数,Gauss核函数,paper叫KCF,采用linear kernel时,paper取名叫DCF,其中DCF由于采用的linear-kernel,所以multi-channel合并时有优势,速度比KCF快,效果差一点点。
  • detail

多通道特征连接,由于卷积在频域是dot-product的求和,所以将不同channels的特征vector连接在一起为一个vector即可。multi-channel特征可以是彩色,也可以时Hog和及其方向的不同channel.如果时Gauss核(KCF)则核函数计算如paper中式(31),如果时线性核(DCF)则根据式(32)计算。paper中分析了速度方面的影响,linear-kernel的DCF更简单,所以速度更快。

CN[paper:Adaptive Color Attributes for Real-Time Visual Tracking]

  • 在CSK的基础上,将输入变为11个颜色空间,具体略

 

SRDCF见以前的博文

  • 在kcf上解决scale[多尺度搜索]和bounding effect[加入惩罚项]

DeepSRDCF

    • 在SRDCF基础上 用CNN来提取特征[CNN第一层输出作为特征]

CSK & KCF(tracking)的更多相关文章

  1. [Object Tracking] Overview of algorithms for Object Tracking

    From: https://www.zhihu.com/question/26493945 可以载入史册的知乎贴 目标跟踪之NIUBILITY的相关滤波 - 专注于分享目标跟踪中非常高效快速的相关滤波 ...

  2. KCF:High-Speed Tracking with Kernelized Correlation Filters 的翻译与分析(一)。分享与转发请注明出处-作者:行于此路

    High-Speed Tracking with Kernelized Correlation Filters 的翻译与分析 基于核相关滤波器的高速目标跟踪方法,简称KCF 写在前面,之所以对这篇文章 ...

  3. [Tracking] KCF + KalmanFilter目标跟踪

    基于KCF和MobileNet V2以及KalmanFilter的摄像头监测系统 简介 这是一次作业.Tracking这一块落后Detection很多年了,一般认为Detection做好了,那么只要能 ...

  4. [Object Tracking] Overview of Object Tracking

    From: 目标跟踪方法的发展概述 From: 目标跟踪领域进展报告 通用目标的跟踪 经典目标跟踪方法 2010 年以前,目标跟踪领域大部分采用一些经典的跟踪方法,比如 Meanshift.Parti ...

  5. KCF跟踪算法 入门详解

    一.算法介绍 KCF全称为Kernel Correlation Filter 核相关滤波算法.是在2014年由Joao F. Henriques, Rui Caseiro, Pedro Martins ...

  6. correlation filters in object tracking

    http://www.cnblogs.com/hanhuili/p/4266990.html Correlation Filter in Visual Tracking系列一:Visual Objec ...

  7. KCF目标跟踪方法分析与总结

    KCF目标跟踪方法分析与总结 correlation filter Kernelized correlation filter tracking 读"J. F. Henriques, R. ...

  8. (转)CVPR 2016 Visual Tracking Paper Review

    CVPR 2016 Visual Tracking Paper Review  本文摘自:http://blog.csdn.net/ben_ben_niao/article/details/52072 ...

  9. Correlation Filter in Visual Tracking系列二:Fast Visual Tracking via Dense Spatio-Temporal Context Learning 论文笔记

    原文再续,书接一上回.话说上一次我们讲到了Correlation Filter类 tracker的老祖宗MOSSE,那么接下来就让我们看看如何对其进一步地优化改良.这次要谈的论文是我们国内Zhang ...

随机推荐

  1. 4.1 所有类型都从 System.Object 派生

    "运行时"要求各个类型最终都从 System.Object 派生.(显示继承/隐式继承) 提供公共方法(public): Equals 判断两个对象相等,true 表示相等. Ge ...

  2. 使用Idea工具创建Maven WebApp项目

    (1)New Project,选择模板,配置SDK (2)配置项目名及项目组名 GroupID是项目组织唯一的标识符, 比如我的项目叫test001 那么GroupID应该是 com.lixiaomi ...

  3. Blockchain For Dummies(IBM Limited Edition

    Blockchain For Dummies(IBM Limited Edition)笔记 该系列内容主要介绍用于商业的区块链,有人说区块链之于贸易,犹如因特网之于信息.在商业领域区块链可以用于交易任 ...

  4. DX孟虎点评新兴市场:巴西俄罗斯火爆背后

    [亿邦动力网讯]4月3日消息,在第九届中国中小企业电子商务大会暨2014中国(河南)跨境贸易电子商务峰会上,DX公司CEO孟虎对新兴市场做了详细的分析,指出在当今的跨境电商环境下,北美.西欧作为电商成 ...

  5. 你用 Python 做过什么有趣的数据挖掘项目?

    有网友在知乎提问:「你用 Python 做过什么有趣的数据挖掘项目?」 我最近刚开始学习 Python, numpy, scipy 等, 想做一些数据方面的项目,但是之前又没有这方面的经验.所以想知道 ...

  6. java 乐观锁 vs 悲观锁

    在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性. 悲观锁其实就是 完全同步 比如 sync ...

  7. 解决CentOS安装redis局域网内无法访问的问题

    redis4.0版本安装教程晚上非常多,随便贴出来一个:http://www.cnblogs.com/web424/p/6796993.html 安装完成后,在局域网内发现无法访问到redis.cen ...

  8. 转 docker的下载与安装

    百度网盘下载地址:https://oomake.com/download/docker-windows 道客地址: https://link.jianshu.com/?t=https://get.da ...

  9. haproxy调度算法

    调度算法详解 用balance指令指明调度算法, 例如:balance roundrobin   1:roundrobin :动态轮询算法,基于后端服务器的总权重做轮询,后端的服务器数量限制在4095 ...

  10. 一次性无重复配置VS项目插件属性的方法

    在VS中需要使用opencv开源库或mysql等数据库时,为了能使用开源库或数据库的语言,需要添加库文件和包含目录等等.然而直接在[解决方案管理器]-->属性中配置的话,写下一个项目(解决方案) ...