转载自:http://blog.csdn.net/autocyz/article/details/48136473

相关滤波跟踪(MOSSE)

在信号处理中,有这么一个概念——相关性(correlation),用来描述两个因素之间的联系。而相关性又分为cross-correlation(互相关,两个信号之间的联系)和auto-correlation(自相关,本身在不同频域的相关性)。

2010年CVPR,David S.Bolme在文章《visual object tracking using adaptive correlation filters》中首次将相关滤波用在了跟踪领域,在其文章的基础之上,很多改进的算法相继出现,跟踪的效果也越来越好。 
在介绍作者的算法之前,先介绍一下相关滤波的原理。 
假设有两个信号f和g,则两个信号的相关性(correlation)为:

(f⊗g)(τ)=∫−∞∞f∗(t)g(t+τ)dt
(f⊗g)(n)=∑−∞∞f∗[m]g(m+n)

其中 f∗ 表示 f 的复共轭。correlation的直观解释就是衡量两个函数在某个时刻相似程度。 
而将correlation filter应用与跟踪最简单的想法就是:两个信号越相似,其相关值越高。在跟踪,就是找到与跟踪目标响应最大的项。 
作者提出的滤波器叫做Minimum Output Sum of Squared Error filter(MOSSE)(误差最小平方和滤波器)。按照前面的思路,我们需要找到一个滤波器,使其在目标上的响应最大,则如下公式:

g=f⊗h

其中g表示响应输出,f表示输入图像,h表示滤波模板。 
显然,我们要是想获得比较获得响应输出,只需确定滤波器模板h即可。上式的计算是进行卷积计算,这在计算机中的计算消耗时很大的,因此作者对上式进行快速傅里叶变换(FFT),这样卷积操作经过FFT后就变成了点乘操作,极大的减少了计算量。上式变成如下形式:

F(g)=F(f⊗g)=F(f)⋅F(h)∗

为了方便描述,将上式写成如下形式:

G=F⋅H∗

有了上面的式子,那么后面跟踪的任务就是找到 H∗ 了:

H∗=GF

但是在实际跟踪的过程中我们要考虑到目标的外观变换等因素的影响,所以需要同时考虑目标的m个图像作为参考,从而提高滤波器模板的鲁棒性,所以作者就提出了MOSSE这个模型,其模型公式入下:

minH∗=∑i=1m|H∗Fi−Gi|2

因为上式的操作都是元素级别的,因此要想找到,只要使其中的每个元素(w和v是H中每个元素的索引)的MOSSE都最小即可。因此上式可转换为如下形式:

minH∗wv∑i=1m|H∗wvFwvi−Gwvi|2

要想得到最小的 H8wv ,只需要对上式求偏导,并使偏导为0即可。即:

0=∂∂H∗wv∑i|FiwvH∗wv−Giwv|2

复数域求导和实数域求导时不一样的,其求导过程如下:

0=∂∂H∗wv∑i(FiwvH∗wv−Giwv)(FiwvH∗wv−Giwv)∗
0=∂∂H∗wv∑[(FiwvH∗wv)(FiwvH∗wv)∗−(FiwvH∗wv)G∗iwv−Giwv(FiwvH∗wv)∗+GiwvG∗iwv]
0=∂∂H∗wv∑iFiwvF∗iwvHwvH∗wv−FiwvG∗iwvH∗wv−F∗iwvGiwvHwv+GiwvG∗iwv
0=∑i[FiwvF∗iwvHwv−FiwvG∗iwv]
Hwv=∑iFiwvG∗iwv∑iFiwvF∗iwv

上面得到是H中每个元素的值,最后得到H为:

H=∑iFi⋅G∗i∑iFi⋅F∗i

上式就是滤波器的模型公式。 
但是在跟踪中该怎么得到滤波器H呢? Fi 和 Gi 又该怎么获取? 
在作者的文章中,其对跟踪框(groundtruth)进行随机仿射变换,获取一系列的训练样本 fi ,而 gi 则是由高斯函数产生,并且其峰值位置是在 fi 的中心位置。获得了一系列的训练样本和结果之后,就可以计算滤波器h的值。注意:这里的f,g,h的size大小都相同。 
作者为了让滤波器对与形变、光照等外界影响具有更好的鲁棒性,采取了如下的模板更新策略:

Ht=AtBt
At=ηFt⋅G∗t+(1−η)At−1
Bt=ηFt⋅F∗t+(1−η)Bt−1

作者将滤波器的模型公式分为分子和分母两个部分,每个部分都分别的进行更新,更的参数为 η 。其中 At 和 At−1 分别表示的是当前帧和上一帧的分子。

相关滤波跟踪(MOSSE)相关推荐

  1. 相关滤波跟踪·KCF公式详细推导

    因为KCF算法和CSK基本一样,因此关于KCF的笔记仅记录从section 4 开始的公式推导和理解. 为了表述清楚,本文所有小写加粗符号表示列向量,小写不加粗表示元素或参量,大写符号表示矩阵. 4 ...

  2. 相关滤波跟踪·CSK算法梳理(巨详(啰)细(嗦))

    从MOSSE到CSK算是了解相关滤波跟踪的必经之路了.CSK在MOSSE模型的基础上增加了正则项以避免过拟合,提出了分类器的概念,同时引入了循环矩阵和核函数提高运算速率. 答应我,看CSK或者KCF之 ...

  3. kcf 跟随_KCF相关滤波跟踪算法

    写作理由:看了网上各种版本的kcf原理,都不是特别理解(主要是不能特别说服我,哈哈).详细琢磨了下,谈谈自己的理解,本人水平有限,难免有理解不到位的地方,请大家批评指正 本文主要会从下面几个方面讲:目 ...

  4. 目标跟踪:相关滤波算法MOSSE理解与python实现

    论文地址:http://static.tongtianta.site/paper_pdf/5289ac92-dfd9-11e8-8368-00163e08bb86.pdf 在学习该算法的过程中我搜索了 ...

  5. KCF核相关滤波跟踪

    此篇文章是对之前工作的总结,当时负责项目中的kcf结合目标检测进行跟踪开发模块. 介绍: KCF为一种鉴别式跟踪方法.该方法在追踪过程中通过训练一个目标检测器来检测下一帧预测位置是否是目标:然后再使用 ...

  6. 一文详解目标跟踪中的相关滤波

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文来源:AI干货知识库 / 导读 / 目标跟踪是计算机视觉领域的一个重要问题,目前广泛应用在体育赛事 ...

  7. 人脸跟踪:KCF核相关滤波算法

    一直以来没有很想写这个,以为这个东西比较简单,还算是比较容易理解的一个算法,但是在知乎上回答过一个问题之后就有朋友私信我一些关于细节的东西,我一直以为关于细节的东西大家可以自己去理解,大家都是想快速了 ...

  8. 商汤科技 中科院自动化所:视觉跟踪之端到端的光流相关滤波 | CVPR 2018

    作者丨朱政 学校丨中科院自动化所博士生 单位丨商汤科技 研究方向丨视觉目标跟踪及其在机器人中的应用 本文主要介绍我们发表于 CVPR 2018 上的一篇文章:一种端到端的光流相关滤波跟踪算法.据我们所 ...

  9. 相关滤波目标追踪二:从Mosse、csk、kcf、ddst单目标跟踪算法的一些总结。

    相关滤波源于信号处理领域,相关性用于表示两个信号之间的相似程度,通常用卷积表示相关操作.那么基于相关滤波的跟踪方法的基本思想就是,寻找一个滤波模板,让下一帧的图像与我们的滤波模板做卷积操作,响应最大的 ...

最新文章

  1. SmartDispatcher 类
  2. 根据数组中对象的属性值排序倒叙
  3. php include效率分析
  4. 西华大学计算机组成原理补考卷,浙江大学航空航天学院空天信息技术保研
  5. JZOJ 3766. 【BJOI2014】大融合
  6. stocker模块量化交易分析
  7. 涂鸦智能dubbo-go亿级流量的实践与探索
  8. 软件测试——0422作业
  9. Django UnicodeEncodeError解决
  10. Python-OpenCV ·学习笔记
  11. 【HDU - 4565】So Easy!【数学思维题】
  12. 1-JavaScript高级程序设计-简介
  13. 计算机 ppt图标,史上最完整的通信计算机PPT图标及模版 (PPTshare).ppt
  14. js实现图片压缩上传
  15. 软件测试的模式(一、)
  16. 两个三进制数相加,输出一个结果为三进制形式的和
  17. 如何缓解百度网盘限速问题
  18. mysql 启动时,服务无法启动:发生系统错误1067.
  19. 前端酷炫效果之那些漂亮的登录界面
  20. Python3 爬取豆瓣电影信息

热门文章

  1. 白领职场必懂的22条潜规则(转载)
  2. 【复杂网络】用户画像不应脱离社会关系,谈复杂网络的关键技术和应用实践
  3. 美团点评基于 Flink 的实时数仓平台实践
  4. Python中最常用十大图像处理库详细介绍
  5. 除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。
  6. 朱宁:70%散户跑不赢大盘?因为机构利用了他们的错误
  7. 芯片巨头为何痴恋开源软件?英特尔Imad Sousou来解密
  8. 审批政策中收入与负债核实
  9. 从0到1建立一张评分卡之数据预处理
  10. MyBatis-04 MyBatis XML方式之insert元素