目标跟踪:相关滤波算法MOSSE理解与python实现
论文地址:http://static.tongtianta.site/paper_pdf/5289ac92-dfd9-11e8-8368-00163e08bb86.pdf
在学习该算法的过程中我搜索了不少的资料,其中下面两位前辈的内容给了我很大的帮助:
博文:https://blog.csdn.net/Perfect_Accepted/article/details/84636319 (非常详细的讲解,把理解该算法所需的相关知识也囊括其中)
Matlab代码讲解:https://www.bilibili.com/video/BV1qE411t76u?from=search&seid=12629263508389420802 (up主的讲解形象生动,对我这种小白帮助很大)
本文代码是参考自fengyang95大神的:https://github.com/fengyang95/pyCFTrackers
为了便于仅对Mosse算法的学习和测试,我在fengyang95代码的基础上做了一些删减和修改,并在代码中加入了详细的注释,但是基本上源于他的思路实现。
本文代码和数据:https://gitee.com/asddongmen/MyCFTrackers
效果展示如下:
下面是我对该算法实现过程的一些总结:
首先说明,本文的记号方式与论文一致,使用小写来表示时域下的图片如fi,使用大写来表示经过傅里叶变换后频域下的图片如Fi。
- 读取第一帧图片,若是RGB图像则转化成灰度图像,接着对图片矩阵进行归一化处理
- 手工框出 / 用目标检测算法检测出 / 使用数据集中的ground truth来标定出视频第一帧图片中的需要跟踪的目标(x, y, w, h)
- 根据第2步得到的框,截取出目标区域图片_fi
- 生成一个(w*h)大小的高斯核,并对其进行傅里叶变换,得到_G
- 初始化_Ai, _Bi, 大小都为 (w*h)
- 对_fi进行随机重定位(rand_wrap)
- 对_fi进行preprocessing(取对数,标准化,通过窗函数)
- 对_fi进行傅里叶变换得到Fi,并根据Fi和_G计算出_Ai和_Bi,到此处第一帧处理结束。
- 根据_Ai和_Bi计算出当前帧的Hi
- 根据上一帧目标框,获取当前帧的fi,并对其进行预处理和fft,得到Fi
- 根据Hi和Fi更新Gi,然后Gi进行逆傅里叶变换得到gi
- gi中最大值位置即为第二帧图像目标所在位置,经过计算之后得到当前帧目标框的中心(x_c, y_c)
- 根据(x_c, y_c)更新当前帧的fi,并对其进行预处理和fft,得到Fi
- 根据论文中的公式,使用Fi,_G, 和_Ai, _Bi来更新 _Ai, _Bi
- 回到第九步,直到计算结束。
注意:
1.在论文中每次更新Ai和Bi时用的都是Gi,但是实际上Gi就是初始的_G,_G是不用进行更新的 (根据我的理解,如果不对请指正,非常欢迎讨论!!)
目标跟踪:相关滤波算法MOSSE理解与python实现相关推荐
- 目标跟踪-粒子滤波算法
http://blog.csdn.net/hujingshuang/article/details/45535423 前言: 粒子滤波广泛的应用于目标跟踪,粒子滤波器是一种序列蒙特卡罗滤波方法,其实质 ...
- KCF算法(相关滤波算法) 跟踪目标
这是笔者目前碰到的性能最好的传统目标跟踪算法,所以这里也简单介绍下这个算法的由来. 一.算法介绍 KCF全称为Kernel Correlation Filter 核相关滤波算法.是在2014年由Joa ...
- 计算机视觉中,目标跟踪相关算法论文总结
目标跟踪相关算法&论文总结 作为小白,近期想看一些目标跟踪相关的内容,但又无从下手,花了几天时间,找各种资料,总结了网上大佬们写的文章.(大部分来自CSDN.知乎.微信公众号,均已注明出处) ...
- 人脸跟踪:KCF核相关滤波算法
一直以来没有很想写这个,以为这个东西比较简单,还算是比较容易理解的一个算法,但是在知乎上回答过一个问题之后就有朋友私信我一些关于细节的东西,我一直以为关于细节的东西大家可以自己去理解,大家都是想快速了 ...
- 点一万个赞:商汤SiamRPN目标跟踪最强算法开源
商汤SiamRPN目标跟踪最强算法开源 导语:商汤科技智能视频团队首次开源其目标跟踪研究平台PySOT,包含商汤科技SiamRPN系列算法,以及刚被CVPR2019收录为Oral的SiamRPN++. ...
- CVPR 2019 Oral 目标跟踪最强算法SiamRPN++开源实现
点击我爱计算机视觉标星,更快获取CVML新技术 SiamRPN++ 算法出自论文: SiamRPN++: Evolution of Siamese Visual Tracking with Very ...
- 单目标跟踪--KCF算法(核化相关滤波算法)Python实现(超详细)
Tracking-KCF Algorithm 注:本文涉及的算法的代码实践已上传至GitHub,恳求大佬们指点!^ _ ^ 1. 目标检测跟踪与算法背景概述 目标跟踪任务在许多的计算机视觉系统中都 ...
- 目标跟踪:CamShift算法
1.前言 camshift利用目标的颜色直方图模型将图像转换为颜色概率分布图,初始化一个搜索窗的大小和位置,并根据上一帧得到的结果自适应调整搜索窗口的位置和大小,从而定位出当前图像中目标的中心位置. ...
- 【目标跟踪: 相关滤波器 三】循环矩阵
循环矩阵 充分利用循环矩阵及其特性的是核相关滤波跟踪算法的另一个重要特征,它不仅涉及到目标采样,而且巧妙的将目标特征的频域空间与岭回归相结合,实现了目标特征的快速学习与检测. 首先考虑一维样本的情况, ...
最新文章
- 【青少年编程】【一级】小狗散步
- linux下安装cmake
- 更改Oracle数据库的SID
- python3.7安装turtle步骤-Python turtle安装和使用教程
- bzoj4027,[HEOI2015]兔子与樱花
- 反编译工具的使用和字节码文件的查看(Binary Viewer)
- mt19937 -- 高质量随机数
- 数据结构【高精度专题】
- 前端学习(1095):ES5新增方法
- PHP--金额数字转换成英文
- C_北理工乐学_结构
- 微信小程序怎么做【零基础教程附源码】
- [电影]《指环王》新老三部曲完全赏析(五军之战)
- leetcode之GaryCode
- 老外的各种no-sql数据库的比较贴
- CORBA 架构体系指南(通用对象请求代理体系架构)
- eNSP之防火墙简单实验(一)
- 浏览器访问jsp页面
- r语言中的或怎么表示什么不同_R语言中$是什么意思
- Python常用模块-1
热门文章
- Github 上 annie 下载神器的安装及使用教程
- Python程序来计算锥体的体积和面积
- Vs2019集成Teigha4.0
- 架构解密:从分布式到微服务pdf
- JavaScript 下载文件、图片
- 南京大学赵鹏:动态环境在线学习的算法与理论研究
- iPhone使用过程中提示:“无线局域网似乎未接入互联网”,点击继续使用可正常上网
- HEVC (H.265)介绍(转)
- 一篇简易的MODBUS 转 profibus 网关 将ABB ACS800变频器接入 profibus 总线案例
- 索尼toio创意机器人套件国行版正式发布,定价1999元