CVPR2010跟踪算法MOSSE原理及代码解析

article/2025/9/29 20:54:00

文章和代码下载地址:

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、相关操作

图像的相关公式:\small g=f\otimes h,其中h称为相关核(Kernel),具体到每一个像素表示为:

g(i,j)=\sum_{k,l}f(i+k,j+l)h(k,l)

注:此图为网上转载 ,如图所示,Input Image为输入的图像。Kernel为相关核 ,也可以称作我们提前训练好的滤波器模板。Output image即为输出响应图像。

步骤:

      (1)滑动核,使其中心位于输入图像的\small f(i,j)像素上

      (2)利用上式求和,得到输出图像的\small g(i,j)像素值

     (3) 充分上面操纵,直到求出输出图像的所有像素值

例:计算输出图像g(3,3)像素值为

\small g(3,3)=(-1)\times 7+(-2)\times 3+(-1)\times2+0\times3+0\times5+0\times1+1\times4+2\times3+1\times7=2

2、卷积操作

图像的卷积公式:g=f\star h,其中h称为卷积核(Kernel),具体到每一个像素表示为:

g(i,j)=\sum_{k,l}f(i-k,j-l)h(k,l)=\sum_{k,l}f(k,l)h(i-k,j-l)

注:此图为网上转载(然后我p了一下) ,如图所示,Input Image为输入的图像。Kernel为相关核 ,也可以称作我们提前训练好的滤波器模板。Output image即为输出响应图像。 

步骤:

      (1)将卷积核围绕中心旋转180度

      (2)滑动核,使其中心位于输入图像的\small f(i,j)像素上

      (3)利用上式求和,得到输出图像的\small g(i,j)像素值

      (4)充分上面操纵,直到求出输出图像的所有像素值

例:计算输出图像g(3,3)像素值为

\small g(3,3)=1\times 7+2\times 3+1\times2+0\times3+0\times5+0\times1+(-1)\times4+(-2)\times3+(-1)\times7=-2

3、差异:

(1)引用专业术语就是:Two-dimensional correlation is equivalent to two-dimensional convolution with the filter matrix rotated 180 degrees.

白话:卷积将核旋转了180度。

(2)物理意义:相关可以反应两个信号相似程度,卷积不可以。

(3)卷积满足交换律,\small f\star h=h\star f,相关不可以。

(4)卷积可以直接通过卷积定理(时域上的卷积等于频域上的乘积)来加速运算,相关不可以。

二、对相关滤波跟踪器的理解

相关滤波跟踪器就是通过互相关(cross-correlation)来定位目标当前帧所在位置的。响应图\small g最大值对应的位置即为当前时刻预测的目标位置,具体流程如下:

如果我们在时域内求解响应图,运算量巨大,那么如何利用卷积定理将其转换到频域???

用卷积来表示相关就是:

\small f (n)\otimes h(n)=f(n)\star h(-n)

利用卷积定理转换到频域为:

\small \mathbb{F}(g)=\mathbb{F}(f\otimes g)=\mathbb{F}(f)\odot \mathbb{F}(h)^{\ast }

简写为:

\small G=F\odot H^{\ast }

其中,\small \mathbb{F}(h(-n))=H^{\ast }\small \odot表示点乘。所以将我们的输入图像和滤波器通过算法变换到频域后,直接将他们相乘,然后再变换回时域(也就是图像的空域)就可以得到响应图。

几点重要的解释:

(1)输入的图像是指目标检测区域(MOSSE的检测区域就是目标所在区域),可能是像素值也可能是提取的特征(eg.Hog,CN,DeepFeatures等)。

(2)滤波器(或者叫目标模板)的大小和检测区域的大小一样。因为相同大小的矩阵在频率域才可以点乘计算。

(3)当滤波器稍微偏移就会超出输入图像的范围,则需要填充数据(这就是卷积的边界效应)。然而在实际的相关滤波跟踪算法中,因为代码中直接就写频域的计算公式,所以我们不知道是如何填充边界的。常用的有三种填充方法,补零、补边界像素、循环图像,matlab中fft默认的是第三种。

三、对MOSSE的理解

经过上面的解释,应该都能明白相关滤波的检测原理,响应图峰值的位置即为当前帧目标的预测位置。为了得到响应图,那么我们求出滤波器模板频域的表示值即可:

\small H^{\ast }=\frac{G}{F}

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滤波

提高算法的鲁棒性,作者对视频第一帧的跟踪窗口施加随机的仿射扰动,产生多组图像对滤波器进行初始化:

\small \small H_{i}^{*}=\frac{G_{i}}{F_{i}}

注意上式是元素点除,作者通过最小二乘法来求解:

\small \min_{H^{\ast }} \sum_{i}|F_{i}\odot H^{*}-G_{i}|^{2}

求解过程我就不赘述了。经过一系列的推导,找到了Mosse滤波器的一个封闭解:

\small H^{*}=\frac{\sum_{i}G_{i}\odot F_{i}^{*}}{\sum_{i}F_{i}\odot F_{i}^{*}}

最后更新MOSSE滤波器如下:

\small H_{i}^{*}=\frac{A_{i}}{B_{i}}

\small A_{i}=\eta G_{i}\odot F_{i}^{*}+(1-\eta)A_{i-1}

\small B_{i}=\eta F_{i}\odot F_{i}^{*}+B_{i-1}

原理解释还可以参考博客:相关滤波跟踪(MOSSE)_autocyz-CSDN博客_相关滤波

代码解释介绍参考博客:MOSSE 目标跟踪 解析_Fying2016的博客-CSDN博客_mosse目标跟踪


http://chatgpt.dhexx.cn/article/ifNrEsbJ.shtml

相关文章

相关滤波跟踪·MOSSE算法的梳理

相关滤波跟踪是当前目标检测与跟踪领域的一个研究热点,ICCV2010的这篇MOSSE算法可以说是入门必看,镇圈神作了。 一、目的:跟踪 一开始分不清跟踪和目标检测有什么不同,所以查了一些资料,以下只是我自己的理解&#x…

《MOSSE》简述

引言 近些年来,目标追踪备受关注。一系列较鲁棒的追踪策略被提出,来适应目标外观的变化。最近的算法有增量目标追踪 IVT,鲁棒的基于目标分块的跟踪 Frag Track,甄别学习 GBDL 以及多实例学习。这些技术是有效的,但是技…

MOSSE算法推导

引言 MOSSE是在Visual Object Tracking using Adaptive Correlation Filters这篇文章中提出来的,MOSSE的全称是Minimum Output Sum of Squared Error,令平方误差和最小来计算得到滤波器。 算法流程 相关滤波很容易理解,一帧图像经过相关运算…

相关滤波目标追踪一:鼻祖Mosse算法的matlab解析

一些自己的见解,如有不同观点,可以一起讨论。 github地址:https://github.com/Ronales/Mosse_Tracking_matlab 补充:说一下mosse的更新策略: 1. "论文目标就是找到一个滤波器h,使其在输入图像上&am…

CV应用领域-目标跟踪-MOSSE

MOSSE(Minimum Output Sum of Squared Error) MOSSE是在Visual Object Tracking using Adaptive Correlation Filters这篇文章中提出来的,MOSSE的全称是Minimum Output Sum of Squared Error,令平方误差和最小来计算得到滤波器。…

mosse

MOSSE MOSSE(Minimum Output Sum of Squared Error) 是2010年 的CVPR,它的全名叫做Visual Object Tracking using Adaptive Correlation Filters。 MOSSE 是第一篇将correlation filter(CF) 引入object tracking 的论文,它也是CSK和KCF/DCF等算法的基础。…

【目标跟踪】|MOSSE原理及对应代码解释 matlab C

1原理 https://www.bilibili.com/video/av74302620/?spm_id_from333.788.videocard.0 https://blog.csdn.net/fzp95/article/details/78385795?utm_mediumdistribute.pc_relevant.none-task-blog-baidujs_title-4&spm1001.2101.3001.4242 相关和卷积操作》 https://bl…

单目标跟踪MOSSE详细算法步骤+理论说明

单目标跟踪MOSSE详细算法步骤理论推导 算法概述详细步骤候选框处理初始滤波器生成滤波器更新 理论说明对数变换(log函数)窗函数的理解 更新中 为了理解傅里叶变换,花了一周时间,可惜还是没有搞很清楚原理,暂且将其看作是数学家从浩瀚的知识海…

MOSSE相关滤波目标跟踪论文

论文全名:Visual Object Tracking using Adaptive Correlation Filters 论文摘自CVPR 2010,由David S. Bolme、J.Ross Beveridge、Bruce A. Draper与Yui Man Lui撰写,简称MOSSE。 摘要 虽然不常用,但相关滤波器可以通过旋转&…

上海2022年平均工资为12184,涨幅只有6.9%

大家好!我是韩老师。 到了每年的7月份,就是上海调整社保和公积金基数的时候了。 今天,上海人社局发布了有关民生保障待遇及社会救助待遇调整,其中最重要的信息透露了上海市2022年度职工月平均工资,即上海市2023年度社保…

上海市人才引进落户条件有哪些

在沪工作稳定,专业(业绩)与岗位相符,一般应能在本单位工作五年以上,且符合下列条件之一: 1、具有博士研究生学历并取得相应学位或者具有高级专业技术职务任职资格并受聘相应职务的专业技术人员和管理人员。 2、获得省部级及以上政府奖励的人员。 3、国家重大科技专项项…

全国平均工资水平排序 北京上海西藏居前三名

全国工资排序 你的工资涨了吗?省统计局昨日发布的数据显示,今年三季度末,江苏省城镇单位在岗职工平均工资达到21999元,比上年同期增加3211元,增长17.1%。这意味着1-9月份平均每月同比增收356元左右。 金融业平均工资排…

你的工资是怎样被平均的?终于有人把平均数、中位数和众数讲明白了

导读:我们在数据处理时,要小心各种陷阱!人们习惯使用统计数据来简化事物描述,但错误的统计方法不仅不能反映事实,还会让数据变得毫无意义。 作者:徐晟 来源:大数据DT(ID:…

计算机软件集成项目工程师上海,上海系统集成项目管理工程师积分政策,可以加多少分?...

系统集成项目管理工程师是计算机技术与软件专业技术资格(水平)考试中级资格里的一项考试,获得系统集成项目管理工程师证书在上海市办理居住证时可以获得100分的积分,具体依据如下: 系统集成项目管理工程师是计算机软件资格(水平)考试里中级的…

23省份2011年平均工资排行 北京最高甘肃垫底

2019独角兽企业重金招聘Python工程师标准>>> 23省份2011年平均工资排行 统计发现,目前全国已有北京等23个省区公布了2011年城镇单位在岗职工平均工资。数据显示,在这23省区中,北京职工月平均工资最高,为4672元/月&…

再见,工资!2020年6月程序员工资统计,平均14404元,网友:又跌了!

Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨有数可据 来源丨 https://blog.csdn.net/juwikuang/article/details/106503404 见了鬼! 工资竟然又跌了 #平均工资 2…

上海落户说明

 当前位置:合肥家园网—楼市资讯—家园看房 上海最新户口政策 新闻来源:合肥家园网 2012-02-24 width"100" height"24" src"http://news.hfhome.cn/hits.aspx?NewsID77154" frameborder"0…

2020年6月程序员工资统计,平均14404元,网友:又跌了!

见了鬼! 工资竟然又跌了 #平均工资 2020年6月全国招收程序员313739人。2020年6月全国程序员平均工资14404元,工资中位数12500元,其中95%的人的工资介于5250元到35000元。 虽然收入又下降了,但是岗位比上个月多了起来,随…

上海市职称计算机证明补办,职称证书丢了还能补办吗?上海落户政策详解。

很多朋友们在准备积分申请的时候,由于时间过去太久,等找材料的时候发现,职称证书不见了,这可怎么办呢?别急,职称证书是可以补发的!只需要个人提供以下材料: 1、原《专业技术职务任职…

python一个月工资多少钱_python工资收入

13.9K / 月平均工资 数据统计来自近一年 13903 份样本,截至 2020-11-21 全国python一个月多少钱?平均工资 ¥13.9K/月 其中拿10K-15K工资的人占比最多,达 30.5% 其次拿15K-20K工资的占 20.3%,20K-30K占 19.3% 对比…