http://www.cnblogs.com/hanhuili/p/4266990.html

Correlation Filter in Visual Tracking系列一:Visual Object Tracking using Adaptive Correlation Filters 论文笔记

  Visual Object Tracking using Adaptive Correlation Filters 一文发表于2010的CVPR上,是笔者所知的第一篇将correlation filter引入tracking领域内的文章,文中所提的Minimum Output Sum of Squared Error(MOSSE),可以说是后来CSK、STC、Color Attributes等tracker的鼻祖。Correlation Filter(以下简称CF)源于信号处理领域,后被运用于图像分类等方面。Correlation包含Cross-correlation和Auto-correlation,在这里我们一般指的就是Cross-correlation。首先看看维基百科上Cross-correlation的定义,假设有ff和gg两个函数(信号),其cross-correlationf⋆gf⋆g定义为

(f⋆g)(τ)=def∫∞−∞f∗(t)g(t+τ)dt(1)(f⋆g)(n)=def∑−∞∞f∗[m]g(m+n)(f⋆g)(τ)=def⁡∫−∞∞f∗(t)g(t+τ)dt(1)(f⋆g)(n)=def⁡∑−∞∞f∗[m]g(m+n)

  其中f∗f∗表示ff的复共轭,correlation的直观解释就是衡量两个函数在某个时刻ττ的相似程度,如下图所示。考虑一个最简单的例子,假设ff和gg的形状一样,但是相差了若干个时刻,那么f★gf★g取得最大值的时候一定是ff和gg对齐的时候(没谁比自己和自己更像了吧…),但因为两者有时间差,所以要取得最大值,就要把其中一个在时间轴上进行平移,所以g(t+τ)g(t+τ)就代表把gg平移ττ个时刻。其实Convolution和Cross-correlation在图像处理的书里一般都会提到,这里就不多叙述了。

  而Correlation Filter应用于tracking方面最朴素的想法就是:相关是衡量两个信号相似值的度量,如果两个信号越相似,那么其相关值就越高,而在tracking的应用里,就是需要设计一个滤波模板,使得当它作用在跟踪目标上时,得到的响应最大,如下图所示:

  CF方法最大的优势在于其速度之快,是任何其他跟踪方法都无法比拟的,如本篇所写的MOSSE,其速度可以到669帧每秒,把跟踪算法从real time 级别提升到了high speed级别;而且其跟踪准确率高,在wuyi他们的online benchmark上,带核函数的CSK方法可以得到73%左右的准确率。有着如此明显的优点,相信此类方法将会成为跟踪领域内继sparse方法的又一重要分支。

   好,言归正传,我们先来介绍CF中的元老,MOSSE。按照我们刚刚的思路,我们需要寻找一个滤波模板,使得它在目标上的响应最大,那么写成公式就是如(2)所示

        g=h ★f(2)g=h ★f(2)

  其中gg表示响应输出,ff表示输入图像,hh表示我们的滤波模板。 gg可以为任意形状的响应输出,在上图的示意图里我们就假设它为gaussian形状。那么显然,我们只要求出hh就可以了。这样做看起来很简单,但为何CF类方法的速度如此之快呢?就是因为在求解等一系列操作中,都利用了快速傅里叶变换FFT。由卷积定理的correlation版本可知,函数互相关的傅里叶变换等于函数傅里叶变换的乘积,即如(2)式所示:

        Fh ★f=(Fh)∗⊙Ff(3)Fh ★f=(Fh)∗⊙Ff(3)

  其中FF表示傅里叶变换,⊙⊙表示点乘。那么假设ff所含的像素个数为nn,而已知FFT的时间开销为O(nlogn)O(nlog⁡n),因此式(3)的计算开销也为O(nlogn)O(nlog⁡n)!远比其他跟踪算法要快!明白这一点后,本篇论文的精华你已经掌握了。剩下的就是如何计算hh了,为了表达的方便起见,我们设Ff=FFf=F,(Fh)∗=H∗(Fh)∗=H∗,Fg=GFg=G,那么我们就有

        H∗=GF(4)H∗=GF(4)

  但是在实际应用中,因为目标的外观变换等因素影响,我们需要同时考虑目标的mm个图像作为参考,以提高模型的鲁棒性,那么就有如(5)的目标函数了:

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

  求解式(5)并不困难,而且根据卷积定理,在频率域的操作都是元素级别的,因此我们可以分别求解H∗H∗中的每一个元素H∗w,vHw,v∗,那么(5)就可以变为:

        minH∗w,v∑i=1m|H∗w,vFw,v,i−Gw,v,i|2(6)minHw,v∗∑i=1m|Hw,v∗Fw,v,i−Gw,v,i|2(6)

  然后对(6)式求导并使其为0即可求解,但要注意的是,论文中特别指出在复数域的求导与在实数域的有一点区别:

∂∂H∗w,v∑i=1m(H∗w,vFw,v,i−Gw,v,i)⋅(H∗w,v  Fw,v,i−Gw,v,i)∗=0⇒∂∂H∗w,v∑i=1mH∗w,vFw,v,i⋅Hw,vF∗w,v,i−H∗w,vFw,v,iG∗w,v,i−Hw,vF∗w,v,iGw,v,i+Gw,v,iG∗w,v,i=0⇒∑i=1mFw,v,i⋅Hw,vF∗w,v,i−Fw,v,iG∗w,v,i=0⇒Hw,v=∑i=1mFw,v,iG∗w,v,i∑i=1mFw,v,iF∗w,v,i(7)∂∂Hw,v∗∑i=1m(Hw,v∗Fw,v,i−Gw,v,i)⋅(Hw,v∗  Fw,v,i−Gw,v,i)∗=0⇒∂∂Hw,v∗∑i=1mHw,v∗Fw,v,i⋅Hw,vFw,v,i∗−Hw,v∗Fw,v,iGw,v,i∗−Hw,vFw,v,i∗Gw,v,i+Gw,v,iGw,v,i∗=0⇒∑i=1mFw,v,i⋅Hw,vFw,v,i∗−Fw,v,iGw,v,i∗=0⇒Hw,v=∑i=1mFw,v,iGw,v,i∗∑i=1mFw,v,iFw,v,i∗(7)

  按以上方式处理所有HH中的所有元素,得到:

        H=∑i=1mFi⊙G*i∑i=1mFi⊙F*i(8)H=∑i=1mFi⊙Gi*∑i=1mFi⊙Fi*(8)

  就可以开始跟踪了。在跟踪的过程中,我们只需要把以上模板与当前帧的图像作相关操作,将得到的响应结果中最大的那点对应坐标作为目标在当前帧位置就可以了(相当于在2维上平移我们的模板)。然后,模板的更新方式可以按照如下的方式进行:

        Ht=(1−η)Ht−1+ηH(t)(9)Ht=(1−η)Ht−1+ηH(t)(9)

  H(t)H(t)表示在第tt帧求得的滤波模板,ηη为一经验常数。

  本文的内容大体就这样了,剩下的就是在(8)上面进行一些修改,比如在分母里引进一个εε作为正则化的参数,或者分别求HiHi然后作平均等,都是一些小的技巧。总得来说,MOSSE方法开创了CF在tracking方面的先河,而在后面的一系列文章里,我们将介绍一系列用概率论、岭回归等理论对其作进一步提升的文章。

 

correlation filters in object tracking的更多相关文章

  1. correlation filters in object tracking2

    http://www.cnblogs.com/hanhuili/p/4281077.html Correlation Filter in Visual Tracking系列二:Fast Visual ...

  2. Multi-hierarchical Independent Correlation Filters for Visual Tracking(MFT)略读

    作者写道: 有幸在本届的VOT 2018 主赛中,我们的参赛方案Multi-solution Fusion for Visual Tracking(MFT)获得第一名的成绩,通过结果来看,MFT无论在 ...

  3. [Object Tracking] Overview of algorithms for Object Tracking

    From: https://www.zhihu.com/question/26493945 可以载入史册的知乎贴 目标跟踪之NIUBILITY的相关滤波 - 专注于分享目标跟踪中非常高效快速的相关滤波 ...

  4. CVPR2018 关于视频目标跟踪(Object Tracking)的论文简要分析与总结

    本文转自:https://blog.csdn.net/weixin_40645129/article/details/81173088 CVPR2018已公布关于视频目标跟踪的论文简要分析与总结 一, ...

  5. Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking---随笔

    Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking DCF跟踪算法因边界效应,鲁棒性较差.SRD ...

  6. Correlation Filter in Visual Tracking系列一:Visual Object Tracking using Adaptive Correlation Filters 论文笔记

    Visual Object Tracking using Adaptive Correlation Filters 一文发表于2010的CVPR上,是笔者所知的第一篇将correlation filt ...

  7. KCF:High-Speed Tracking with Kernelized Correlation Filters 的翻译与分析(一)。分享与转发请注明出处-作者:行于此路

    High-Speed Tracking with Kernelized Correlation Filters 的翻译与分析 基于核相关滤波器的高速目标跟踪方法,简称KCF 写在前面,之所以对这篇文章 ...

  8. Hign-Speed Tracking with Kernelzied Correlation Filters

    reference:Hign-Speed Tracking with Kernelzied Correlation Filters questions: The core componet of mo ...

  9. Correlation Filter in Visual Tracking

    涉及两篇论文:Visual Object Tracking using Adaptive Correlation Filters 和Fast Visual Tracking via Dense Spa ...

随机推荐

  1. Quartz Core框架之core animation

    1.时间功能 (1)CFTimeIntervalCACurrentMediaTime ( void ); :返回当前的绝对时间 2.转换功能 (1)bool CATransform3DIsIdenti ...

  2. 学习SVG系列(2):SVG图形系列

    SVG形状: 矩形 <rect> 圆形 <circle> 椭圆 <ellipse> 线 <line> 折线 <polyline> 多边形 & ...

  3. UE4 VR GUI实现 参考(UMG AND VR)

    Note:4.13以后版本VR UI采用 WidgetComponent + WidgetInteractionComponent可轻松实现交互 Blueprint Demo: https://for ...

  4. 在Eclipse中对自动封装的设定颜色

    在Eclipse中,对自动封装进行特别着色提醒的方法:windows-->Preference-->java-->Editor-->Syntax Coloring-->j ...

  5. codeforces 723D(DFS)

    题目链接:http://codeforces.com/problemset/problem/723/D 题意:n*m的矩阵中,'*'代表陆地,'.'代表水,连在一起且不沿海的水形成湖泊.问最少填多少块 ...

  6. UWP/Win10新特性系列—Drag&Drop 拖动打开文件

    在Win10 App开发中,微软新增了系统PC文件与UWP 之间的文件拖拽行为,它支持将系统磁盘上的文件以拖拽的形式拖入App中并处理,在前不久的微软build 2015开发者大会上微软展示的UWP版 ...

  7. python 新旧类的问题

    老式类就是经典类,不是继承自object类.在多继承时采用深度优先遍历父类.新式类就是基类继承自object类 class xxx(object).多继承时采用一种新的C3 算法来遍历父类.实例如下: ...

  8. Photoshop的评价

    Photoshop是Adobe公司旗下最为出名的图像处理软件之一. Photoshop的功能性:主要处理以像素所构成的数字图象.使用其众多的编修与绘图工具,可以有效地进行图片编辑工作.支持Window ...

  9. PS与TOP详解

    一:ps  ps -l 查看属于自己这次登录的PID与相关信息列出来(只与自己的bash有关) F:代表这个进程标志(process flags),说明这个进程的权限,常见号码有: 若为4表示此进程的 ...

  10. Android中常见功能包描述

    在Android中,各种包写成android.*的方式,重要包的描述如下所示:android.app :提供高层的程序模型.提供基本的运行环境android.content:包含各种的对设备上的数据进 ...