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的定义,假设有$f$和$g$两个函数(信号),其cross-correlation$f \star g$定义为

\[\begin{array}{l}
(f \star g)(\tau )\mathop = \limits^{def} \int_{ - \infty }^\infty {f*(t)g(t + \tau )dt} \qquad (1)\\
(f \star g)(n)\mathop = \limits^{def} \sum\limits_{ - \infty }^\infty {f*[m]g(m + n)}
\end{array}\]

  其中$f^*$表示$f$的复共轭,correlation的直观解释就是衡量两个函数在某个时刻$\tau $的相似程度,如下图所示。考虑一个最简单的例子,假设$f$和$g$的形状一样,但是相差了若干个时刻,那么$f\bigstar g$取得最大值的时候一定是$f$和$g$对齐的时候(没谁比自己和自己更像了吧…),但因为两者有时间差,所以要取得最大值,就要把其中一个在时间轴上进行平移,所以$g(t+\tau )$就代表把$g$平移$\tau $个时刻。其实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\text{ }\bigstar  f \qquad (2)$

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

        $Fh\text{ }\bigstar  f\text{=}{{(Fh)}^{*}}\odot Ff \qquad (3)$

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

        ${{H}^{*}}=\frac{G}{F}\qquad (4)$

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

        $\underset{{{H}^{*}}}{\mathop{\min }}\,\sum\limits_{i=1}^{m}{|{{H}^{*}}{{F}_{i}}-{{G}_{i}}{{|}^{2}}} \qquad (5)$

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

        $\underset{H_{w,v}^{*}}{\mathop{\min }}\,\sum\limits_{i=1}^{m}{|H_{w,v}^{*}{{F}_{w,v,i}}-{{G}_{w,v,i}}{{|}^{2}}}\qquad (6)$

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

\[\begin{array}{l}
\frac{\partial }{{\partial H_{w,v}^*}}\sum\limits_{i = 1}^m {(H_{w,v}^*{F_{w,v,i}} - {G_{w,v,i}}) \cdot } {(H_{w,v}^*  {F_{w,v,i}} - {G_{w,v,i}})^{\rm{*}}}{\rm{ = }}0\\
\Rightarrow \frac{\partial }{{\partial H_{w,v}^*}}\sum\limits_{i = 1}^m {H_{w,v}^*{F_{w,v,i}} \cdot {H_{w,v}}F_{w,v,i}^{\rm{*}} - H_{w,v}^*{F_{w,v,i}}G_{w,v,i}^{\rm{*}} - {H_{w,v}}F_{w,v,i}^{\rm{*}}G_{w,v,i}^{}{\rm{ + }}{G_{w,v,i}}G_{w,v,i}^{\rm{*}}} {\rm{ = }}0\\
\Rightarrow \sum\limits_{i = 1}^m {{F_{w,v,i}} \cdot {H_{w,v}}F_{w,v,i}^{\rm{*}} - {F_{w,v,i}}G_{w,v,i}^{\rm{*}}} {\rm{ = }}0\\
\Rightarrow {H_{w,v}}{\rm{ = }}\frac{{\sum\limits_{i = 1}^m {{F_{w,v,i}}G_{w,v,i}^{\rm{*}}} }}{{\sum\limits_{i = 1}^m {{F_{w,v,i}}F_{w,v,i}^{\rm{*}}} }} \qquad (7)
\end{array}\]

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

        $H\text{=}\frac{\sum\limits_{i=1}^{m}{{{F}_{i}}\odot G_{i}^{\text{*}}}}{\sum\limits_{i=1}^{m}{{{F}_{i}}\odot F_{i}^{\text{*}}}}\qquad (8)$

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

        ${{H}_{t}}=(1-\eta ){{H}_{t-1}}+\eta H(t)\qquad (9)$

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

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

Correlation Filter in Visual Tracking系列一:Visual Object Tracking using Adaptive Correlation Filters 论文笔记的更多相关文章

  1. correlation filters in object tracking

    http://www.cnblogs.com/hanhuili/p/4266990.html Correlation Filter in Visual Tracking系列一:Visual Objec ...

  2. Correlation Filter in Visual Tracking系列二:Fast Visual Tracking via Dense Spatio-Temporal Context Learning 论文笔记

    原文再续,书接一上回.话说上一次我们讲到了Correlation Filter类 tracker的老祖宗MOSSE,那么接下来就让我们看看如何对其进一步地优化改良.这次要谈的论文是我们国内Zhang ...

  3. 论文笔记:Attentional Correlation Filter Network for Adaptive Visual Tracking

    Attentional Correlation Filter Network for Adaptive Visual Tracking CVPR2017 摘要:本文提出一种新的带有注意机制的跟踪框架, ...

  4. Correlation Filter in Visual Tracking

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

  5. 论文笔记之: Hierarchical Convolutional Features for Visual Tracking

    Hierarchical Convolutional Features for Visual Tracking  ICCV 2015 摘要:跟卢湖川的那个文章一样,本文也是利用深度学习各个 layer ...

  6. 论文笔记之:Learning Multi-Domain Convolutional Neural Networks for Visual Tracking

    Learning Multi-Domain Convolutional Neural Networks for Visual Tracking CVPR 2016 本文提出了一种新的CNN 框架来处理 ...

  7. Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记

    Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记 arXiv 摘要:本文提出了一种 DRL 算法进行单目标跟踪 ...

  8. 论文笔记之:Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking

    Spatially Supervised Recurrent Convolutional Neural Networks for Visual Object Tracking  arXiv Paper ...

  9. 论文笔记之:Visual Tracking with Fully Convolutional Networks

    论文笔记之:Visual Tracking with Fully Convolutional Networks ICCV 2015  CUHK 本文利用 FCN 来做跟踪问题,但开篇就提到并非将其看做 ...

随机推荐

  1. GUI 测试

    图形用户界面( GUI )对软件测试提出了有趣的挑战,因为 GUI 开发环境有可复用的构件,开发用户界面更加省时而且更加精确.同时, GUI 的复杂性也增加了,从而加大了设计和执行测试用例的难度.因为 ...

  2. osg,qt编译的一些问题

    osg编译例子的时候,打开文件就出问题,可能是一些不兼容的问题 qt编译的是时候要添加qt和vs2010的整合工具,这样才能把 vs2010里面的QTDIR变量和环境变量QTDIR关联起来 同是右击文 ...

  3. iOS开发拓展篇—封装音频文件播放工具类

    iOS开发拓展篇—封装音频文件播放工具类 一.简单说明 1.关于音乐播放的简单说明 (1)音乐播放用到一个叫做AVAudioPlayer的类 (2)AVAudioPlayer常用方法 加载音乐文件 - ...

  4. 如何在Linux下使用Gitblit工具创建Git仓库服务

    嗨!朋友,今天我们将学习如何在你的Linux服务器或者PC上安装Gitblit工具.首先,我们看看什么是Git,它的功能以及安装Gitblit的步骤.Git是分布式版本控制系统,它强调速度.数据一致性 ...

  5. HDU 2955 01背包(思维)

    Robberies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. Angular - ng-repeat高级用法

    ng-repeat高级用法: 遍历数组:    <li ng-repeat="item in array">{{item}}</li> 遍历对象:    k ...

  7. 滤镜与CSS3效果

    -webkit-filter是css3的一个属性,Webkit率先支持了这几个功能,感觉效果很不错.一起学习一下filter这个属性吧. 现在规范中支持的效果有: grayscale 灰度       ...

  8. 局域网单机部署双tomcat内外网不能访问防火墙问题查出来

    tomcat部署的项目内网访问不了 win7  64 位 控制面板 - 安全 -防火墙-入站规则- 新建规则 选中“端口”按钮,点选“下一步”: 选择“TCP”按钮,在“特定本地端口”输入tomcat ...

  9. css3 弹框提示样式

    .common-dialog-box{ opacity: 0; filter: alpha(opacity=0); position: fixed; top: 0%; left: 50%; z-ind ...

  10. UIImagePickerController 获取相片视频

    1.UIImagePickerController的静态方法: imagepicker = [[UIImagePickerController alloc]init];    //UIImagePic ...