首先看下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. C++中的大数乘的实现

    代码 来源:面试常考 大数加减乘除 #include <iostream> #include <vector> #include <string> using na ...

  2. 基于Dockerfile制作tomcat镜像

    Docker 概述:   在前面的例子中,我们从下载镜像,启动容器,在容器中输入命令来运行程序,这些命令都是手工一条条往里输入的,无法重复利用,而且效率很低.所以就需要一种文件或脚本,我们把想执行的操 ...

  3. bzoj1432_[ZJOI2009]Function

    题目描述 有n 个连续函数fi (x),其中1 ≤ i ≤ n.对于任何两个函数fi (x) 和fj (x),(i != j),恰好存在一个x 使得fi (x) = fj (x),并且存在无穷多的x ...

  4. 算法基本概念及常用算法Python实现

    基础算法概念:  时间复杂度 时间复杂度是从其增速的角度度量的, 时间复杂度一般用大O法表示. 递归 递归指的是调用自己的函数. 如果使用循环,程序性能可能更高: 如果使用递归,程序可能更容易理解. ...

  5. Mongdb创建 连接过程

    在bin目录下启动后 Show dbs 显示库,库里有内容才会显示库名称 Use admin 切换库 没有的默认创建 show users显示用户信息 Show collections显示表名 db. ...

  6. useful_tool

    记录工作学习中遇到的经典好用的工具软件. 工作篇 AxeSlide斧子演示 AxeSlide是PPT的良好替代品,跨平台,基于Html5 2D/3D技术开发.动画特效等效果十分不错.工具提供很多免费模 ...

  7. 用Python搭建简单的HTTP服务 · Zhangxu's Blog

    分享一个快速用Python搭建简单的HTTP服务的方法. 平时我们可能有需要,传输某个文件到手机,或者工作中某台服务器的电脑. 假如这个手机是个测试手机/服务器,并没有微信QQ之类的软件,而且你也不想 ...

  8. 招聘,api、app、web自动化,性能,持续集成,其他

    招聘: api接口自动化测试 app功能自动化测试 web功能自动化测试 性能测试 自动化平台与持续集成 其他

  9. GRE阅读

    界面和托福差不多,就是反一反 GRE先读文章!因为出题顺序不一致.另外,不能跳读!!每一句都要读,即使不是观点. 考察能力: 1 三秒版本 边读边概括 解决前面的抗遗忘能力 2 句间关系 取同 取反 ...

  10. 7-12 产生每位数字相同的n位数 (30 分)

    读入2个正整数A和B,1<=A<=9, 1<=B<=10,产生数字AA...A,一共B个A 输入格式: 在一行中输入A和B. 输出格式: 在一行中输出整数AA...A,一共B个 ...