论文全名:Visual Object Tracking using Adaptive Correlation Filters

论文摘自CVPR 2010,由David S. Bolme、J.Ross Beveridge、Bruce A. Draper与Yui Man Lui撰写,简称MOSSE。

摘要

虽然不常用,但相关滤波器可以通过旋转,遮挡和其他干扰来跟踪复杂物体,其速度是当前最先进技术的20倍以上。最旧和最简单的相关过滤器使用简单模板,并且在应用跟踪时通常会失败。诸如ASEF和UMACE等方法表现优秀,但他们的训练的需求不太适合跟踪。视觉跟踪需要从单个帧训练强大的滤波器,并在目标对象的外观发生变化时动态调整。

本文提出了一种新型的相关滤波器,即最小平方误差输出和(MOSSE)滤波器,它在使用单帧初始化时产生稳定的相关滤波器。对于光照,缩放,姿势和非刚性变形的变化时,基于MOSSE滤波器的跟踪器具有鲁棒性,同时以669帧的速度运行。通过计算峰值与旁瓣比来判断目标是否被遮挡,当目标遮挡后又重新出现时,跟踪器可以暂停并恢复它停止的位置

注意:本文包含CVPR 2010中排除的其他数字和内容,以满足长度要求。

1 前言

视觉跟踪在视频处理中有许多实际应用。当目标位于视频的一帧中时,在后续帧中跟踪该对象通常很有用。成功跟踪目标的每个帧会提供有关目标的信息和动作等信息。由于跟踪比检测更容易,因此跟踪算法可以在每个帧上运行对象检测器上使用更少的计算资源。

视觉跟踪近年来受到了很多关注。已经提出了许多强大的跟踪策略,目标通过复杂的运动改变了外观和跟踪目标。例子包括:增量视觉跟踪(IVT)[17],基于鲁棒碎片的跟踪(FragTrack)[1],基于图像的判别学习(GBDL)[19]和多实例学习(MILTrack)[2]。虽然有效,但这些算法并不简单。它们通常包括复杂的外观模型或复杂的优化算法,因此很难与许多现代相机产生的每秒25到30帧相持平(见表1)。

在本文中,我们研究了一种更简单的跟踪策略。目标外观由自适应相关滤波器进行建模训练,并且通过卷积进行测试跟踪。用于创建滤波器的朴素方法(例如,从图像中裁剪)会为目标生成峰值,但也会错误地响应背景,因此,它们对目标外观的变化鲁棒性较差,在挑战性跟踪问题上失败。平均合成精确滤波器(ASEF),无约束最小平均相关能量(UMACE)和平方误差的最小输出和(MOSSE)(本文介绍)产生的滤波器对于目标外观变化鲁棒性更好并且能很好地区分目标和背景。如图2所示,作者提出的方法转换为更少的漂移和更少的下降轨道,变成了一个更强的峰值。传统上,ASEF和UMACE滤波器离线训练数据,将其用于物体检测或目标识别。在本论文中,我们变成了在线训练数据,并采用自适应系统进行视觉跟踪。结果是在保证最先进的性能基础上,还保留了基础相关性方法的大部分速度和简单性。

该方法简单,并在旋转,缩放,光照和部分遮挡的变化下,基于改进的ASEF,UMACE或MOSSE滤波器的跟踪表现良好(参见图1)。测量相关峰值强度的峰值与旁瓣比(PSR)可用于检测遮挡或跟踪失败的情况,从而停止在线更新,当对象以相似外观重新出现则重新获取信息。更一般地说,这些高级相关滤波器实现的性能与前面提到的更复杂的跟踪器一致,但是,作者提出的这种方法速度提高了20多倍,每秒可处理669帧(见表1)。

本文的其余部分安排如下。第2节回顾了相关滤波技术,第3节介绍了MOSSE滤波器以及如何使用它来创建基于跟踪对象的鲁棒滤波器,第4节介绍了来自[17]的七个视频序列的实验结果,最后,第5节将重述本文的主要发现。

2 回顾

在20世纪80年代和90年代,与相关滤波器相关的变体相继产生,包括合成判别函数(SDF)[7,6],最小方差合成判别函数(MVSDF)[9],最小平均相关能量(MACE)[11],最优权衡滤波器(OTF)[16]和最小平方误差综合判别函数(MSESDF)[10]。这些滤波器在具有不同外观和强制硬约束的目标对象的示例上进行训练,使得滤波器总是产生相同高度的峰值。最相关的是MACE,它产生尖峰和高PSR

在[12]中,发现基于SDF(合成判别函数)的滤波器(如MACE)的硬约束导致了失真容限问题。解决方案是消除硬约束,而不是要求滤波器产生高平均相关响应,这种称为最大平均相关高度(MACH)的新型“无约束”相关滤波器导致称为UMACE(无约束MACE)的MACE变体。

一种称为ASEF [3]的新型相关滤波器引入了一种调整特定任务滤波器的方法。早期方法只指定单个峰值,ASEF提出每个训练图像的整个相关输出。 ASEF在眼睛定位[3]和行人检测[4]方面表现良好。但在这两项研究中,ASEF都需要大量的训练图像,这使得视觉跟踪速度太慢。本文通过引入适用于视觉跟踪的ASEF的正则化变体来降低此数据要求。

3 基于跟踪的相关滤波

基于跟踪的滤波器原理为,用示例图像上训练的滤波器来建立目标外观模型。最初基于以第一帧中的目标为中心的小跟踪窗口来选择目标,在此之后,跟踪和滤波训练将同时进行,通过在下一帧中的搜索块上关联之前的滤波器来跟踪目标,该帧中输出的最大值的位置表示目标的新位置。然后基于该新位置进行在线更新。

为了创建快速跟踪器,在傅立叶域上进行快速傅立叶变换(FFT)[15]中计算相关性。首先,计算输入图像的2D傅立叶变换:和滤波器:。卷积定理指出相关性计算傅里叶域中的元素乘法等同。使用⊙符号表示逐元素乘法而*表示复共轭,相关性计算采用以下形式:(1)。使用逆FFT将相关计算的输出变换回空间域。此过程中的瓶颈是计算正向和反向FFT,以便整个过程的上限时间(计算复杂度)为,其中是跟踪图像块的像素数。

在本节中,我们将讨论基于跟踪的滤波器的组成部分:

3.1节讨论在跟踪窗口上进行的预处理模块;

3.2节介绍MOSSE滤波器,它是从少量图像构建稳定相关滤波器的改进方法;

3.3节介绍了如何使用正则化计算来生成更稳定的UMACE和ASEF滤波器。

3.4节讨论了用于在线更新过滤器的简单策略。

3.1 预处理模块

FFT卷积算法的一个问题是图像和滤波器被映射到环面的拓扑结构。 换句话说,它将图像的左边缘连接到右边缘,将顶部连接到底部。在卷积时,图像旋转通过环形空间而不是像在空间域中那样进行平移。 人为地连接图像的边界引入了影响相关输出的伪像,而利用[3]中的预处理步骤可以减少这种影响。 首先,使用对数函数转换像素值,这有助于低对比度照明情况。 将像素值平均归一化为0.0至1.0的范数。 最后,图像乘以余弦窗,它会逐渐将边缘附近的像素值减小到零。 这也有利于它将更多的重点放在目标的中心附近。

3.2 MOSSE滤波器

MOSSE是一种用于从较少的训练图像产生类似ASEF滤波器的算法。 首先,它需要一组训练图像和输出。 通常,可以是任何形状。 在这种情况下,是由GT(ground truth)生成的,因此它具有以训练图像中的目标为中心的紧凑(标准差σ= 2.0)2维高斯形状的峰值。在傅里叶域中进行训练,通过简单的元素信息提取输入和输出之间的关系。 与前一节一样,我们将大写变量和滤波器定义为它们的小写对应的傅立叶变换,其中除法是按元素执行的: (2)。

为了找到将训练输入映射到所需训练输出的滤波器,MOSSE定义了一个滤波器:最小化卷积的实际输出期望输出的平方误差之和。这种最小化问题采用以下形式: (3)。

在输出上最小化平方误差和(SSE)的想法并不是最新提出的。 事实上,(3)式中的优化问题几乎与[10]和[12]中提出的优化问题相同。 不同之处在于,在这些工作中都是假设目标始终以为中心并且输出()对于整个训练集是固定的,其中每个是基于ASEF和MOSSE建立的。 在跟踪问题中,目标并不总是在图像框中心,并且的峰值随的目标移动。 在更一般的情况下,可以具有任何形状。 例如,在[4]中,当包含多个目标时,具有多个相应的峰值。

被优化的函数是复变量的实值函数。 首先,的每个元素(由索引)可以独立求解(傅立叶域中的所有操作都是逐元素进行),部分关于为零,同时将视为独立变量[13]。通过求解,找到MOSSE滤波器的闭合表达式(附录A):

最优化问题-->将多变量优化转为独立优化每个元素

对等式右侧函数取极值即为所求值

将等式右端(元素)分解

对等式右端合并求偏导

将Hwv提取

将其转化为向量形式

共轭转置

可以看出,分子是输入和输出之间的相关性,分母是输入的能谱。从公式5中,我们可以很容易地证明UMACE是MOSSE的一个特例。其中,UMACE滤波器的闭合表达式为:

为了表明MOSSE比ASEF性能更好,我们在实验中改变了进行滤波器训练的图像数量。在初始化滤波器时,对视频的第一帧的跟踪patch加入一些随机小仿射扰动,在第二帧时用峰值与旁瓣比PSR作为衡量滤波器好坏的标准。图3表明在少量图像进行训练的前提上,MOSSE表现更好,原因将在下一节中讨论。

3.3 ASEF正则化

事实证明,当只有一个训练图像Fi和一个输出图像Gi时,存在产生零误差的滤波器,但会造成过拟合现象,而该过滤器被称为精确过滤器,其公式为:。建立一个平均滤波器的动机来自Bootstrap Aggregation [5],其中一些弱分类器的输出可以用平均法产生更强的分类器。 通过一些操作,ASEF滤波器为:

当训练少量图像时,ASEF滤波器不稳定,因为(8)式分母接近于零。作者提出在(8)式的分母中的每个元素加入正则化参数,以产生更具鲁棒效果的ASEF滤波器,正则化类似于OTF理论的结果,该理论通常与UMACE滤波器结合使用。该结果表明,将背景的噪声添加到训练图像中将产生更好的滤波器[16],这里我们添加了白噪声。图4显示了调整大小变化的效果,通过适当的正则化,所有滤波器都能产生良好的峰值。

3.4 滤波器的初始化与更新

在初始帧中,对跟踪窗进行八个随机仿射变换的小扰动,构造训练集,同时生成训练输出,其峰值对应于目标中心。在跟踪期间,目标通常可以通过改变其旋转,比例,姿势,通过在不同的光照条件下移动,或者甚至通过非刚性变形来改变外观。 因此,过滤器需要快速适应以跟踪对象。 用平均值可达到此目的。 例如,从第i帧学习的ASEF滤波器与MOSSE滤波器分别为:

其中,为学习率,在最初几帧的权重较大,之前帧的结果随时间推移,呈指数衰减。 作者发现= 0.125时,滤波器快速适应目标变化,并同时保持良好的鲁棒性。

3.5 误检与PSR(峰值与旁瓣比)

如前所述,峰值强度的简单测量称为峰值与旁瓣比(PSR)。 为了计算PSR,对于除了峰值周围的11×11窗口之外的其余像素,相关输出g分为两类:一是作为最大值的峰值,二是旁瓣。 PSR定义为:,其中gmax是峰值,μs1和σsl分别是旁瓣的平均值和标准差。

在正常跟踪条件下,UMACE,ASEF和MOSSE的PSR通常介于20.0和60.0之间。 我们发现当PSR下降到7.0左右时,表示目标遮挡或跟踪失败。 而PSR在3.0到10.0之间时,对于预测目标运动无效。

4 评估

最初,基于实时MOSSE的跟踪系统在网络摄像头视频上创建和评估。通过实时反馈,可以轻松测试跟踪器配置的微小变化,并对各种跟踪器性能进行定性分析。这些测试为跟踪器的操作提供了有价值的见解,并有助于生成本文中介绍的快速而稳定的跟踪器。

对七种常用的测试视频进行了更加可控的评估,这些视频可以从http://www.cs.toronto.edu/~dross/ivt/免费下载。测试视频都是灰度级的,包括照明,姿势和外观,都具有挑战性。相机本身的移动增加了目标的不稳定性。七个序列包括两个车辆跟踪场景(car4,car11),两个玩具跟踪场景(fish,sylv)和三个面部跟踪场景(davidin300,dudek和trellis70)。

4.1 滤波器对比

在本节,将评估UMACE,ASEF和MOSSE滤波器的跟踪效果。这些与基于具有在线更新的平均预处理跟踪窗口Naive滤波器进行比较,跟踪输出被手动标记为良好的跟踪,跟踪框偏离中心或丢失(参见图5)。

该图显示了对所有七个视频序列的跟踪性能。 其中绿色表示跟踪良好,黄色表示跟踪偏离目标中心,红色表示跟踪失败。
黑线表示PSR缩短到范围[0,20]。

当目标变化较小时,所有滤波器都能准确跟踪。当目标经历大的平面外旋转时,大多数目标偏离和跟踪失败会发生(图6有关davidin300序列的示例)。滤波器倾向于跟踪目标中心的点。当目标旋转时,该点朝向目标边界移动,并且跟踪器的大部分跟踪框最终由背景代替(即跟踪失败)。滤波器适应半个背景窗,当目标旋转回正面姿势时,过滤器有时会移动到新位置,或者一直跟踪背景。

这些结果表明,作者提出的相关滤波器跟踪的目标比Naive方法更长。尖峰还具有以下优点:PSR是目标轨道运动的良好预测器,而PSR对于Naive滤波器无感。对于论文提出的滤波器,目标偏离和目标丢失与低PSR有关(图7)

在七个视频序列中的四个中,相关滤波器表现完美。在davidin300上,所有滤波器在相同的平面外旋转期间从面部中心偏移到眼睛,并且在sylv中,滤波器在该序列的相同问题部分也出现了偏移。这两个序列表明滤波器类型的选择并不是特别重要。仅在dudek序列上,三个滤波器之间存在显着差异:MOSSE跟踪很好,但UMACE和ASEF在挑战视频部分时遇到问题。尽管第3节中表明MOSSE可能是此视频任务的最佳滤波器,但需要之后更多的研究。

4.2 与其他跟踪器的比较

为了评估算法跟踪能力,我们将输出与IVT [17]和MILTrack [2]的作者发布的视频进行了比较(见4.1节)。这些视频还包含Robust Online Appearance Model(ROAM)[8],Online Ada-Boost(OAB)[14]和FragTrack [1]。基于下载这些其他算法的代码,作者选择研究论文中提供的视频,这些视频代表了这些算法的最佳性能,并且还减轻了我们未能正确实现或调整这些算法。在那些比较中,作者提出的方法能与那些算法一样好或更好,结果:YouTube(http://youtube.com/users/bolme2008)。

在[17]中,IVT [17]和ROAM [8]也在图5中的四个序列上进行了比较。其中,davidin300和dudek视频序列成功跟踪。对于sylv视频序列,IVT在帧620附近失败;对于trellis70视频序列,IVT在帧330附近失败。在已发布的视频序列中,ROAM跟踪器表现完美,然而,在IVT在sylv和trellis70视频系列很快跟踪失败。这两个跟踪器的一个特征是它们考虑了目标的比例和方向,提供了关于其在空间中的位置的更多信息。

在[2]中,MILavck [2],OAB [14]和FragTrack [1]在davidin300和sylv视频序列上进行了比较。所有跟踪器都显示出显着的偏离,OAB和FragTrack在davidin300上跟踪失败。这些跟踪器的偏离与作者提出的滤波器的偏离截然不同。在这些视频中,跟踪窗在目标之间来回徘徊:当目标经历姿势变化时,它们倾向于偏离中心,然后它们锁定到新的中心点。

4.3 实时性能

测试是在2.4Ghz Core 2 Duo MacBook Pro的单个处理器上进行的。本文测试的跟踪器用了Python中的PyVision库,OpenCV和SciPy。使用64×64跟踪窗口时,原始Python实现平均每秒大约250个磁道更新。为了更好地对跟踪器的运行时性能进行基准测试,代码的一些较慢部分在C中重新实现,其中包括更好的内存管理和更高效的计算耗时任务,如规范化,FFT和PSR。这些优化使速率为每秒669帧,如图9所示。

基于滤波器的跟踪计算复杂度是O(PlogP),其中P是滤波器中的像素数,这来自相关操作和在线更新期间使用的FFT。跟踪初始化导致O(NPlogP),其中N是用于初始化滤波器的仿射扰动的数量。虽然这比在线更新慢很多倍,但初始化(每秒66.32帧)速度仍然比实时快。

5 总结

本文已经表明,传统上使用高权重分类器,复杂外观模型和随机搜索技术解决的视觉跟踪问题可以由有效且更简单的MOSSE相关滤波器代替。 它是一种易于实现的算法,可以同样准确,并且速度更快。

在本文中,跟踪器保持简单。 有许多简单的方法可以改进此跟踪器。 例如,如果目标的外观相对稳定,则可以通过基于初始帧偶尔重新定位滤波器来减轻偏离。 通过在更新之后对跟踪窗口的对数进行极坐标变换,还可以扩展跟踪器以估计比例和旋转的变化。

MOSSE相关滤波目标跟踪论文相关推荐

  1. 相关滤波目标跟踪学习笔记(三)——KCF算法公式理解

    KCF算法特点: 1.通过循环移位产生了大量的虚拟样本: 2.利用循环矩阵可以在傅里叶域对角化的性质,大大减少了运算量,提高了运算速度: 3.核函数的运用,提高了分类器的性能: 4.采用HOG特征,相 ...

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

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

  3. 计算机视觉:目标跟踪论文推荐

    声明: 1.论文覆盖时间段:2019年12月31日-2020年02月19日 2.在此推荐大家关注 计算机视觉论文速递 知乎专栏,可以快速了解到最新优质的CV论文 [1]旷视Detection组开源:视 ...

  4. RASNet视频目标跟踪论文笔记

    1. 论文信息 论文题目:Learning Attentions: Residual Attentional Siamese Network for High Performance Online V ...

  5. 目标跟踪论文(一):SiamFC孪生网络

    Fully-Convolutional Siamese Networks for Object Tracking 项目网页 http://www.robots.ox.ac.uk/~luca/siame ...

  6. 中科院自动化所目标跟踪论文整理!三篇综述、两篇ICCV 2019!

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 编辑:Sophia 计算机视觉联盟  报道  | 公众号 CVLianMeng 转载于 :会议之眼 一 单目标跟踪综 ...

  7. OpenCV3学习(12.5) opencv实现粒子滤波目标跟踪

    OpenCV高版本已经把粒子滤波的CV方面的condensation算法给去掉了,以前学的condensation算法不能用C++开发还是只能用C版本,(OpenCV3学习(12.4) 粒子滤波Con ...

  8. Visual Tracking with Online Multiple Instance Learning (MIL)目标跟踪论文笔记

    1. 论文信息 论文标题 :Visual Tracking with Online Multiple Instance Learning 论文作者: Boris Babenko,University ...

  9. 相关滤波Python版本代码pyCFtrackers的配置

    基于相关滤波的算法大多是通过Matlab语言编写的,偶然发现有人用python语言复现了一些典型的相关滤波算法,纯相关滤波目标跟踪很难再出高水平了,后续可将相关滤波与pytorch和tensorflo ...

  10. 目标跟踪综述 (持续更新)

    这几天对目标跟踪挺感兴趣的,但是在CSDN和知乎上面找的相关介绍资料都看的一知半解,所以自己找了一篇 2022-04-26 发表的综述文章作下笔记学习下. 目录 一.基于相关滤波的目标跟踪算法 1.相 ...

最新文章

  1. 凤凰网广告包装的js
  2. 如何让我们的vmware虚拟机上网!!
  3. 麦司机博客项目技术选型-Java后端
  4. 音频处理十:( mp3 与wav 格式的相互转换)
  5. pro c中varchar类型变量的arr函数是做什么用
  6. 大数据WEB阶段Spring框架 AOP面向切面编程(一)
  7. nginx部署laravel需要修改的配置
  8. 自学Java汇报(3)
  9. vscode 新建python 终端
  10. java 构造函数 单例_Java中的私有构造函数和单例类 - Break易站
  11. java 实现根据ip重定向_从0到1用java再造tcpip协议栈:代码实现ping应用功能1
  12. HTTP协议和HTTPS协议
  13. Android Studio Tips -- 提取方法
  14. JetBrains Resharper VS2017 破解方法(License Server 破解方法)
  15. 代理应用好文两篇(1)
  16. Unity桌面程序读取Excel表格
  17. 博士申请 | 美国弗吉尼亚理工大学周大为老师招收图神经网络方向全奖博士生...
  18. 根据CTP接口计算现手、增仓、开平、对手盘 (1)
  19. springboot redis: xxx as a subtype of [simple type, class java.lang.Object]: no such class found
  20. 游戏CG音效制作技巧

热门文章

  1. 磁测仪高斯计与特斯拉计、磁通计的区别
  2. 微pe工具箱 系统安装教程_微PE工具箱 V2.0正式版(附安装系统教程)
  3. 转换PDF技巧1之PDF虚拟打印机操作详解
  4. split函数 在oracle,oracle的split函数
  5. win10管理员权限怎么获得_终于解决了:你需要来自XXX的权限才能对此文件进行更改
  6. 读书印记 - 《终极算法》
  7. Bill Gates推荐,人工智能必读的三本书 -《终极算法》,《超级智能》和《终极发明》zz
  8. 微信小程序搜索关键字高亮和ctrl+f搜索定位实现
  9. 天天生鲜社区团购运营平台
  10. 深入了解JavaScript编程语言