CVPR2010跟踪算法MOSSE原理及代码解析
文章和代码下载地址:
MOSSE: David S. Bolme, J. Ross Beveridge, Bruce A. Draper, Yui Man Lui. "Visual Object Tracking using Adaptive Correlation Filters."
GitHub - xingqing45678/Mosse_CF(代码和文章都在里面)
看了网上很多文章,大都是说“两个信号越相似,其相关值越高。在跟踪,就是找到与跟踪目标响应最大的项。”然后将相关的公式摆出来,看得我一头雾水,可能是我自己的基础不太好吧,最后查了很多资料,总算感觉自己有点明白了,所以将其记录下来,如果有不对的地方请指正。
一、对2D相关的理解
首先,相关是相关,卷积是卷积,不要混为一谈!!!!
互相关是用来度量两个信号在某个时刻的相似程度,对于机器视觉领域来说就是指两个图像patch的互相匹配的程度。
1、相关操作
图像的相关公式:,其中称为相关核(Kernel),具体到每一个像素表示为:
注:此图为网上转载 ,如图所示,Input Image为输入的图像。Kernel为相关核 ,也可以称作我们提前训练好的滤波器模板。Output image即为输出响应图像。
步骤:
(1)滑动核,使其中心位于输入图像的像素上
(2)利用上式求和,得到输出图像的像素值
(3) 充分上面操纵,直到求出输出图像的所有像素值
例:计算输出图像像素值为
2、卷积操作
图像的卷积公式:,其中称为卷积核(Kernel),具体到每一个像素表示为:
注:此图为网上转载(然后我p了一下) ,如图所示,Input Image为输入的图像。Kernel为相关核 ,也可以称作我们提前训练好的滤波器模板。Output image即为输出响应图像。
步骤:
(1)将卷积核围绕中心旋转180度
(2)滑动核,使其中心位于输入图像的像素上
(3)利用上式求和,得到输出图像的像素值
(4)充分上面操纵,直到求出输出图像的所有像素值
例:计算输出图像像素值为
3、差异:
(1)引用专业术语就是:Two-dimensional correlation is equivalent to two-dimensional convolution with the filter matrix rotated 180 degrees.
白话:卷积将核旋转了180度。
(2)物理意义:相关可以反应两个信号相似程度,卷积不可以。
(3)卷积满足交换律,,相关不可以。
(4)卷积可以直接通过卷积定理(时域上的卷积等于频域上的乘积)来加速运算,相关不可以。
二、对相关滤波跟踪器的理解
相关滤波跟踪器就是通过互相关(cross-correlation)来定位目标当前帧所在位置的。响应图最大值对应的位置即为当前时刻预测的目标位置,具体流程如下:
如果我们在时域内求解响应图,运算量巨大,那么如何利用卷积定理将其转换到频域???
用卷积来表示相关就是:
利用卷积定理转换到频域为:
简写为:
其中,,表示点乘。所以将我们的输入图像和滤波器通过算法变换到频域后,直接将他们相乘,然后再变换回时域(也就是图像的空域)就可以得到响应图。
几点重要的解释:
(1)输入的图像是指目标检测区域(MOSSE的检测区域就是目标所在区域),可能是像素值也可能是提取的特征(eg.Hog,CN,DeepFeatures等)。
(2)滤波器(或者叫目标模板)的大小和检测区域的大小一样。因为相同大小的矩阵在频率域才可以点乘计算。
(3)当滤波器稍微偏移就会超出输入图像的范围,则需要填充数据(这就是卷积的边界效应)。然而在实际的相关滤波跟踪算法中,因为代码中直接就写频域的计算公式,所以我们不知道是如何填充边界的。常用的有三种填充方法,补零、补边界像素、循环图像,matlab中fft默认的是第三种。
三、对MOSSE的理解
经过上面的解释,应该都能明白相关滤波的检测原理,响应图峰值的位置即为当前帧目标的预测位置。为了得到响应图,那么我们求出滤波器模板频域的表示值即可:
1、预处理(不重要,一般都会进行这些操作)
(1)FFT卷积算法需要将图像和滤波器映射到拓扑结构上,边界采用循环图像的方式填充,即将图像的左边缘连接到右侧边缘,将顶部连接到底部。这就是上面所说的第三种填充方法。
(2)周期卷积会对输入数据进行周期填补,引入一些artifacts。作者通过如下如下论文中的方法减弱对输出响应的影响D. S. Bolme, B. A. Draper, and J. R. Beveridge. Average of synthetic exact filters. In CVPR, 2009. 2, 3。(具体细节可以不用深究)
(3)采用点乘余弦窗处理,使图像边缘慢慢变成零。
2、MOSSE滤波
提高算法的鲁棒性,作者对视频第一帧的跟踪窗口施加随机的仿射扰动,产生多组图像对滤波器进行初始化:
注意上式是元素点除,作者通过最小二乘法来求解:
求解过程我就不赘述了。经过一系列的推导,找到了Mosse滤波器的一个封闭解:
最后更新MOSSE滤波器如下:
原理解释还可以参考博客:相关滤波跟踪(MOSSE)_autocyz-CSDN博客_相关滤波
代码解释介绍参考博客:MOSSE 目标跟踪 解析_Fying2016的博客-CSDN博客_mosse目标跟踪
CVPR2010跟踪算法MOSSE原理及代码解析相关推荐
- TPAMI2015跟踪算法KCF原理及代码解析
文章和代码下载地址: http://www.robots.ox.ac.uk/~joao/circulant/ 一.基础公式的由来 相关滤波跟踪器可以表示为最小化的岭回归问题: 表示期望相应,表示正则系 ...
- ICCV2017跟踪算法BACF原理及代码解析
文章和代码下载地址: Galoogahi H K, Fagg A, Lucey S. Learning Background-Aware Correlation Filters for Visual ...
- CVPR2018跟踪算法STRCF原理及代码解析
文章和代码下载地址: STRCF: Feng Li, Cheng Tian, Wangmeng Zuo, Lei Zhang, Ming-Hsuan Yang. "Learning Spat ...
- 视觉SLAM开源算法ORB-SLAM3 原理与代码解析
来源:深蓝学院,文稿整理者:何常鑫,审核&修改:刘国庆 本文总结于上交感知与导航研究所科研助理--刘国庆关于[视觉SLAM开源算法ORB-SLAM3 原理与代码解析]的公开课. ORB-SLA ...
- 基于单层决策树的adaBoost算法思想分析和源代码解析
基于单层决策树的AdaBoost算法思想分析和源代码解析 前言: 上一篇SVM可是废了我好鼻子劲,这一篇咱们来点愉快的东西.我们一定听说过这句俗语:"三个臭皮匠,顶个诸葛亮!" 大 ...
- DBNet++(TPAMI) 原理与代码解析
paper:Real-Time Scene Text Detection with Differentiable Binarization and Adaptive Scale Fusion code ...
- YOLOv3原理及代码解析
博主完整翻译了YOLOV1和YOLOV3的论文:请移步查看: YOLOV1:https://blog.csdn.net/taifengzikai/article/details/81988891 YO ...
- 岭回归算法的原理和代码实战
岭回归算法的原理和代码实战 前言 学过吴恩达老师的机器学习入门课程都应该知道,在逻辑回归那一讲,吴老师提到了使用正则化来防止逻辑回归模型过拟合.而岭回归在这里的作用是一样的,同样也是防止模型过拟合.这 ...
- Tensorflow2.0---SSD网络原理及代码解析(二)-锚点框的生成
Tensorflow2.0-SSD网络原理及代码解析(二)-锚点框的生成 分析完SSD网络的原理之后,一起来看看代码吧~ 代码转载于:https://github.com/bubbliiiing/ss ...
- 【编程实践】Raft 算法的原理 go代码实例
文章目录 Raft 算法的原理 & go代码实例 Raft 算法的原理 使用 Go 语言实现的简单 Raft 算法示例 Raft 算法的原理 & go代码实例 Raft 算法的原理 R ...
最新文章
- 稀缺:你是如何陷入贫穷与忙碌的
- mysql tree 修改_13.1 设置更改root密码 13.2 连接mysql 13.3 mysql常用命令
- 寄生电容所带来的影响
- 一个供应商只允许一个报价单
- iOS 获取屏幕最上层window以及响应者
- linux 系统后门检测工具,Linux系统的各种后门和日志工具详细介绍[2]
- boost::mp11::mp_min_element_q相关用法的测试程序
- 双主双从(2m-2s)集群介绍和工作流程说明
- 快讯千树资本投资柒小佰 踏入儿童出行消费领域...
- 【C语言简单说】三:变量总结ASCII码扩展(5)
- Android - Okhttp拦截器
- 《ANSYS 14热力学/电磁学/耦合场分析自学手册》——2.8 工具条
- jms.jar 2.0_JMS API概述:JMS 1.x和JMS 2.x
- STM32 电机PWM控制
- mne进行ica分析
- 你是怎样毁掉自己的?
- 关系型数据库大数据性能优化解决方案之:分表(当前表历史表)、表分区、数据清理原则
- 【技术文档】《算法设计与分析导论》R.C.T.Lee等·第4章 分治策略
- PayPay migrated the core payment database from Aurora to TiDB
- 使用vs2008制作dll文件,生成动态链接库
热门文章
- Ruby完全自学手册
- android友盟分享最新,Android接入友盟统计(顺带多渠道打包)、友盟分享
- 如何修改阿里巴巴矢量图标库中要使用的图片
- linux耳机的检测原理,耳机检测原理介绍
- 电脑端QQ无法打开怎么办
- 怎么把索尼摄像机拍摄的RSV文件修复转换为MXF视频
- mysql 建表语句
- C:\Users\xx\.xxxxxx\system\tomcat\xxx\work\Catalina\localhost\ROOT(系统找不到指定文件)
- dubbo教程(绝对的入门到入土)
- Axure rp 9 的汉化破解版