首先看下MD大神2015年ICCV论文:Martin Danelljan, Gustav Häger, Fahad Khan, Michael Felsberg. "Learning Spatially Regularized Correlation Filters for Visual Tracking." ICCV (2015).

【code: https://www.cvl.isy.liu.se/research/objrec/visualtracking/regvistrack/

一、相关滤波跟踪算法原理回顾

相关跟踪的核心就是滤波器filters的求解,从MOSSE到KCF再到SRDCF,滤波器的模型越来越复杂,计算速度越来越慢,使得相关滤波在计算速度上的优势越来越不明显。

如上述公式所示,我们希望找到一个滤波器模板,可将样本进行滤波操作,得到响应结果,通过响应就能找到跟踪目标所在位置。因此问题就在怎么找到这个滤波器。转换成数学的线性规划或者二分类问题,就是求解高维映射下的岭回归问题。

二、存在问题

    传统的相关滤波方法,通过滤波器求解响应最高位置,即为跟踪目标所在位置,公式求解通过傅里叶变换转到频率域可极大简化运算速度,甚至实现算法的实时性。但在傅里叶变换过程中,会将处理的图像窗口边缘进行循环拼接,这就导致边缘处不连续,便产生边缘效应。

三、SRDCF解决思路

主要贡献:

1、在KCF/DCF基础上改善了boundary effects,加入惩罚项[spatial
regularization function that penalizes(惩罚) filter
coefficients residing outside the target region].

2、不同的scale搜索,处理尺度的问题(暴力的分为指定个尺度,依次匹配)。

3、在求解corelation filters时,利用iterative Gauss-Seidel method在线学习。

4、融合多种特征:利用HOG(31维特征)和CN(11维特征)共计42维特征。

主要在于第一点:SRDCF将图像信号x尽量取大一些的尺寸,保留目标更多的真实信息,然后再通过一个空间权值系数w来惩罚距离目标中心比较远的样本。

    对上述公式进行求解,作者用的Gauss-Seidel来迭代求解,我觉得这个迭代方法很一般,速度很慢,SRDCF计算速度在4fps左右,达不到实时跟踪的要求,不如ADMM(可参考知乎《交替方向乘子法(ADMM)算法的流程和原理是怎样的?》)。故就不做详细说明了。

四、公式推导(引自知乎用户)

    接着如下:

由第一帧的groundtruth可以计算第一帧的情况:

随后进行迭代。

五、效果与待解决问题

正则项 www 用二次函数来构造:

w(m,n)=μ+η(m/P)2+η(n/Q) 2

1.P×QP\times QP×Q 表示目标尺寸

2.w的最小值 μ=0.1

3.正则化影响因子 η=3

4.实际上频域下的 w只有几个值有较大的幅值,如下图所示。为保证 wˆ的稀疏特性,设置阈值来移除较小的值,结果包含约10个非零值。

5.HOG特征,cell大小为 4×44,特征大小为 M×N(M=N)

6.样本区域是目标区域的 4^2

7.初始尺度的样本M=50

8.学习率 γ=0.025,Gauss-Seidel迭代次数 NGS=4

9.在普通台式机matlab环境下5FPS

六、ADMM求解SRDCF

参见文章《相关滤波跟踪算法中ADMM的使用》,代码可下载。

最后,给出代码下载地址和搜罗的各路大神对算法解读的文章,供大家参考学习。

视觉目标跟踪算法——SRDCF算法解读的更多相关文章

  1. 挑战目标跟踪算法极限,SiamRPN系列算法解读

    商汤科技智能视频团队首次开源其目标跟踪研究平台 PySOT.PySOT 包含了商汤科技 SiamRPN 系列算法,以及刚被 CVPR2019 收录为 Oral 的 SiamRPN++.此篇文章将解读目 ...

  2. 基于MeanShift的目标跟踪算法及实现

    这次将介绍基于MeanShift的目标跟踪算法,首先谈谈简介,然后给出算法实现流程,最后实现了一个单目标跟踪的MeanShift算法[matlab/c两个版本] csdn贴公式比较烦,原谅我直接截图了 ...

  3. TLD目标跟踪算法

    1. 简介 TLD目标跟踪算法是Tracking-Learning-Detection算法的简称.这个视频跟踪算法框架由英国萨里大学的一个捷克籍博士生Zdenek Kalal提出.TLD将传统的视频跟 ...

  4. Video Target Tracking Based on Online Learning—TLD单目标跟踪算法详解

    视频目标跟踪问题分析         视频跟踪技术的主要目的是从复杂多变的的背景环境中准确提取相关的目标特征,准确地识别出跟踪目标,并且对目标的位置和姿态等信息精确地定位,为后续目标物体行为分析提供足 ...

  5. 【目标跟踪】相关滤波算法之MOSSE

    简要 2010年David S. Bolme等人在CVPR上发表了<Visual Object Tracking using Adaptive Correlation Filters>一文 ...

  6. 目标跟踪算法meanshift优缺点

    原博主:http://blog.csdn.net/carson2005/article/details/7341051 meanShift算法用于视频目标跟踪时,采用目标的颜色直方图作为搜索特征,通过 ...

  7. 目标跟踪之粒子滤波---Opencv实现粒子滤波算法

    目标跟踪学习笔记_2(particle filter初探1) 目标跟踪学习笔记_3(particle filter初探2) 前面2篇博客已经提到当粒子数增加时会内存报错,后面又仔细查了下程序,是代码方 ...

  8. Python Opencv-contrib Camshift&kalman卡尔曼滤波&CSRT算法 目标跟踪实现

    本次课题实现目标跟踪一共用到了三个算法,分别是Camshift.Kalman.CSRT,基于Python语言的Tkinter模块实现GUI与接口设计,项目一共包含三个文件: main.py: # co ...

  9. 【图像处理】Haar Adaboost 检测自定义目标(视频车辆检测算法代码)

    阅读须知 本博客涉及到的资源: 正样本:http://download.csdn.net/detail/zhuangxiaobin/7326197 负样本:http://download.csdn.n ...

随机推荐

  1. eclipse中maven项目failonmissingwebxml错误的修复(转)

    在使用eclipse创建maven项目的时候,有时候会出现这个问题: web.xml is missing and 'failOnMissingWebXml' is set to true我遇到这个问 ...

  2. 分布式文件系统与HDFS

    HDFS,它是一个虚拟文件系统,用于存储文件,通过目录树来定位文件:其次,它是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色. HDFS 的设计适合一次写入,多次读出的场景,且不 ...

  3. js弱类型转换的知识点

    本文属于转载知识点,以下是原博文作者:不死鸟哇的文章,文章链接:原文JavaScript里什么情况下a==!a为true呢? 今天群里有位同学问了这样一个问题,JavaScript在什么情况下会出现变 ...

  4. python标准库-calendar 模块

    原文地址:http://www.bugingcode.com/blog/python_calendar.html calendar 模块是python实现的unix 的 cal命令.它可以以标准的模式 ...

  5. container/injection简介以及发展历史

    一:什么是Container?Container的作用? 容器是一个标准的软件单元,它将代码及其所有依赖关系打包,以便应用程序从一个计算环境快速可靠地运行到另一个计算环境.container的主要作用 ...

  6. python返回值进行unpack

    最近在写yolov3,因为yolov3的多输出性质,所以我打算写适配多输出的工具函数,在numpy中可以在一个array中包含多个不同维度的array,但在tensorflow中一个tensor只能保 ...

  7. Proto3:编码

    本文介绍protocol buffer消息二进制传输格式.在应用程序中使用protocol buffer时,你并不需要了解这些,但它对你了解protocol buffer格式如何影响你的编码消息的大小 ...

  8. 新浪微博PC端登录分析

    本来给自己定了个2018的目标,平均每月写两篇文章,现在已经快三月了,第一篇稿子才憋出来,惭愧呀,直入主题吧,今天给大家带来的是新浪微博PC端的模拟登陆. 工具 这次使用的工具是Charles和chr ...

  9. ES6学习笔记(三):教你用js面向对象思维来实现 tab栏增删改查功能

    前两篇文章主要介绍了类和对象.类的继承,如果想了解更多理论请查阅<ES6学习笔记(一):轻松搞懂面向对象编程.类和对象>.<ES6学习笔记(二):教你玩转类的继承和类的对象>, ...

  10. Flutter调研(2)-Flutter从安装到运行成功的一些坑

    工作需要,因客户端有部分页面要使用flutter编写,需要QA了解一下flutter相关知识,因此,做了flutter调研,包含安装,基础知识与demo编写,第二部分是安装与环境配置. —— 在mac ...