1 跟踪算法和视觉跟踪:
传统的跟踪算法不同于现在计算机视觉中的视觉跟踪。前者更适合作为跟踪策略。该算法通过给出目标状态空间在时域变化的数学模型来预测目标在下一帧的运动状态。后者是CV中检测算法、跟踪策略、更新策略、在线分类器、重检测器等分支算法的集成,系统结构较为复杂。本文着重介绍和分析了后者的相关工作。
2 视觉跟踪结构和分类器
2.1跟踪系统中的基本框架和问题
视觉跟踪在过去的几十年中有了长足的发展,视觉跟踪从提出到现在的过程已经非常清晰。对于输入的视频或图像序列,首先以目标当前帧的状态作为跟踪的初始状态(初始化模型参数),然后提取关键点并建模。然后将目标模型应用到后续帧中,通过跟踪策略(滤波法、光流法等)估计目标的当前状态。此外,目标模型是根据当前状态更新的。最后在下一帧中跟踪目标模型。视觉跟踪的基本流程图如图1所示,将视觉跟踪分解为五个部分:运动模型(预测位置)、特征提取器(特征提取)、观察模型(判别位置)、模型更新器(更新模型参数)、集成-后处理器(集成学习)。实验结果表明,在视觉跟踪中,特征提取远比观测模型重要。
上述跟踪框架中,特征提取器就描述目标的过程, 在提取目标特征的基础上,构建目标描述模型。根据目标特征提取和观察模型的方式(在线学习方法),跟踪可以分为生成式和判别式两大类。观测模型中用于预测目标轨迹的方法是跟踪策略,例如:卡尔曼滤波、扩展卡尔曼滤波器、粒子滤波、L-K光流算法、马尔可夫链蒙特卡洛算法、互相关归一化、mean-shift、Cam-shift。
在视觉跟踪过程中,目标及其周围环境的状态不断变化,外观形变、光照改变、外观相似性、运动模糊、背景杂乱、遮挡、超出视野、尺度变化、平面外旋转、面内旋转、背景相似,这不仅使得特征提取和模型构建变得困难,也要求跟踪器具有更强的鲁棒性和更高的精度。基于此,实时跟踪也还是可能的。
2.2生成式方法
在学习过程中,生成方法是从数据最大化联合概率P (X,Y)获取条件概率分布P (Y|X) 作为预测模型。即建立在全局状态上的数据可能性模型P (Y|X) = P (X,Y) / P (X), 生成式方法试图找出数据是如何生成的,通常来说,它可以学习一个表示目标的模型,通过目标搜索图像区域,然后对信号进行分类,使重构误差最小化。在此生成模型的基础上,找到与生成模型描述相似的目标,然后进行模板匹配,找到图像中最匹配的区域,即当前帧中的目标。 具体步骤如图:
首先,输入视频帧并选择目标进行初始化。另外,提取当前帧中的目标特征。然后根据目标的特征描述模型,建立概率密度分布函数。然后寻找图像区域的下一帧,进行模板匹配,找到图像中与模型相似度最高的区域。最后,输出目标边框。
在视觉跟踪器的框架中,目标描述过程中目标特征的提取是一个非常重要的步骤,这对跟踪的准确性和速度有很大的影响。它不仅是用于生成式方法中的特征提取,也是判别式法中模型检验的重要步骤之一。常用特征表示见表2:(灰度分布、梯度、颜色、语义、深度特征、多特征融合等)
如图3所示,描述和建模目标是生成方法中的重要步骤,会影响跟踪器的效率和精度。根据目标难易程度的不同,模型描述方法也不尽相同。常用的描述方法有核技巧[44,45]、增量学习[46]、高斯混合模型[47]、线性子空间[48]、贝叶斯网络[49]、稀疏表示[50]、隐马尔科夫模型[51]等。最后,以相似性度量函数作为置信度指标,反映各跟踪结果的可靠性,判断目标是否丢失。
2.3判别式方法
判别法的基本思想是利用数据直接学习决策函数,Y=f(x),或者在学习过程中最大化条件概率分布P (Y|X)作为预测模型。这个步骤是建立有限样本条件下的判别函数(后验概率函数),并且建立全局状态下数据P (Y|X)的可能性模型,不考虑样本的生成模型,直接研究预测模型。在计算级视觉中,这种方法通常使用机器学习图像特征的思想,提取目标特征后,用机器学习的方法训练分类器来区分目标和背景。判别式目标跟踪方法的体系结构如图4所示,由于在训练中加入了背景信息,可以显著区分背景和目标,性能更加鲁棒,逐渐占据了视觉跟踪领域的主流地位。
判别方法不关心数据是如何产生的,它只关心信号之间的差异,它把跟踪问题看做一个二分类问题,然后简单地根据差异对给定的信号进行分类。一般来说,寻找目标和背景是决策边界。跟踪是一种逐帧检测问题,手动从第一帧中选择目标。
在计算机视觉中,目标跟踪和目标检测是两个重要的部分。检测的目的是找到视频中静态或动态的目标,跟踪是对动态的目标进行定位。跟踪算法最初是为了解决检测算法的速度问题,利用跟踪算法预测目标在下一帧的位置,然后利用检测算法标记目标的位置。之后,又有人对视频序列按照一定的时间段进行分段,对这一时间段内的每一帧图像进行检测,这样检测就可以达到类似跟踪的效果,这种跟踪相当于检测每一帧,属于伪跟踪。跟踪发展为“动态检测”,又称检测跟踪(tracking-by-detection),是当今视觉跟踪的主流研究方向。
检测跟踪(tracking-by-detection)通常有两种方法:一是相关滤波(CF),通过回归输入特征作为目标高斯分布训练滤波器,并找到预测分布中的响应的峰值,定位后续帧中目标的位置。另一种是深度学习(Deep Learning, DL),通过更新分类器中前景和背景的权值,提高目标与其邻域背景的区分能力。
近年来,大量的机器学习方法被改进来处理逐检测跟踪的问题,作为一种训练分类方法。在分类器训练中,机器学习中常用的是监督学习和半监督学习,非监督学习的使用较少(表3)。
3 视觉跟踪的发展
3.1 相关滤波
相关滤波(CF),也称为判别式相关滤波(DCF),其原理是相关信号f和g的卷积响应大于不相关信号的卷积响应。f*是f的共轭复数,∫是用在连续域,Σ用在离散域,在视觉跟踪中,滤波器只对每个兴趣目标生成高的响应,对背景生成低的响应。循环矩阵的引入以及快速傅里叶变换(FFT)、离散傅里叶变换(DFT)和反傅里叶变换(IFFT)的应用,极大地提高了视觉跟踪的速度,计算复杂度从O(N2)降到O(NlogN)。
自从Bolme等人,学习了合成精确滤波器(ASEF)的平均值[115]和最小平方误差(MOSSE)滤波器的输出总和[116],基于相关滤波器的跟踪器(CFT)在视觉跟踪社区中引起了相当大的关注[57,117]。 接下来的几年, Chen等人[118]总结了近年来相关过滤视觉跟踪方法的一般框架(图5)。 当前大多数CFT都基于此框架,并且仅改进或替换其中一部分而不影响整个框架的结构。 MOSSE仅使用单通道灰度功能,实现了615 FPS的速度,这显示了相关滤波的优势。 然后CSK [57]基于MOSSE扩展了填充和循环矩阵。Galoogahi等人学习了带多通道特征的MCCF[119]后,改进的多通道特征版本的Kernel Correlation CSK的滤波器(KCF)[117],其精度和FPS都优于当时在OTB50[7]上的最佳(Struck[120])(表4)。CN[75]基于CSK扩展了颜色特征的颜色名称,随着特征通道的增加,从MOSSE (615FPS)到CSK (292FPS)、KCF (172FPS)、CN (152FPS),跟踪器的速度逐渐下降,但效果越来越好,始终保持在实时高速水平,CSK[57]、KCF/DCF[117]和CN[75]在各种数据库中用作基准,它们都是基于相关过滤器的跟踪器。在VOT2014视觉跟踪竞赛中,基于相关滤波器的跟踪器[62,117,121]占据前三名。随着CSK的学习,基于稀疏表示的跟踪器[83,122,123]逐渐被更快更简单的CFTs所取代。
在第一帧初始化后,在接下来的每一帧中,裁剪之前估计位置的图像patch作为当前输入。随后,通过提取不同的视觉特征可以更好地描述输入,通常使用余弦窗口来平滑窗口的边界效果。然后,通过卷积定理得到了输入信号与学习滤波器的相关性。FFT用于将信号转换到频域,图中符号⊙表示按元素计算。经过相关后,利用IFFT得到空间置信图,其峰值可以预测为目标的新位置。最后,提取新的估计位置特征,训练和更新相关滤波器,得到期望的输出。
在第一帧初始化后,在接下来的每一帧中,裁剪之前估计位置的图像patch作为当前输入。随后,通过提取不同的视觉特征可以更好地描述输入,通常使用余弦窗口来平滑窗口的边界效果。然后,通过卷积定理得到了输入信号与学习滤波器的相关性。FFT用于将信号转换到频域,图中符号⊙表示按元素计算。经过相关后,利用IFFT得到空间置信图,其峰值可以预测为目标的新位置。最后,提取新的估计位置特征,训练和更新相关滤波器,得到期望的输出。
使用更好的特征层会导致跟踪器速度变慢,而且滤波器的大小是固定的,无法很好地响应目标尺度的变化。因此,越来越多的研究者致力于改进相关的滤波框架。Danelljan等人提出了只有HOG特征的DSST[62],并创建了一种基于平移滤波和尺度滤波相结合的滤波体系结构。使用DCF作为滤波器检测平移,训练类似于MOSSE的相关滤波器检测目标的尺度变化。然而,DSST的回归公式是一个局部最优问题,由于平移滤波器和尺度滤波器是分别求解的,因此实时性较差(25FPS)。为了克服这个问题,Danelljan等人提出了一种使用PCA降维的f-DSST的加速版本[61],将33个尺度降至17个尺度,提高了运行速度(54FPS)。Yang Li等人提出了基于KCF的SAMF[121],与DSST类似,使用HOG添加CN特性。对图像贴片进行多尺度缩放,然后通过平移滤波检测目标。与DSST不同,SAMF将尺度估计与位置估计相结合,通过迭代优化实现全局优化。Kiani等人提出了一个基于MOSSE类型的跟踪器,通过添加掩模矩阵P,过滤器可以作物实际体积小样本大型循环移位的补丁,以增加实际样本的比例,其中包括CFLB[124]基于灰度特征和BACF[125]根据猪的特性。它们都可以实时运行(CFLB-87FPS, BACF-35FPS)。Sui等人提出的RCF[126]在原始CF结构中使用了三个稀疏相关损失函数,可以很好的提高跟踪的鲁棒性和实时性(37FPS)。Zhang等人发现了使用跟踪器的新方法,他们提出了MEEM[127],本质上是一种组合跟踪器。可以同时调用多个跟踪器,根据累计损失函数的计算选择最佳跟踪器,但实际运行效果一般(13FPS)。
边界效应一直是视觉跟踪的难点之一,由于运动速度快,真实样本会脱离余弦窗口,从而将背景训练给分类器,导致样本被污染,跟踪失败。为了解决这个问题,Danelljan等人提出了SRDCF[129],通过学习空间正则化项来惩罚边界区域的滤波系数和抑制边界效应。但是,没有封闭解的优化迭代导致跟踪器无法实现实时(5FPS)。Gundogdu等人分析了余弦窗口的缺点,提出了一种新的窗口函数SWCF[130],可以抑制目标的无关区域,突出目标相对区域的部分。但是,由于新的窗口功能的复杂性,跟踪器的速度只有5帧/秒。Hu等人提出了MRCT[131],一种基于正则化的流形相关滤波器。利用增广样本和无监督学习训练分类器建立回归模型,与BACF相似,在目标区域裁剪一个正样本,在非目标区域裁剪多个负样本,生成增广样本,以降低边界效应。Bibi等人提出了CF+[132]框架,通过实际平移测量替换循环移位测量产生的样本来正则化目标响应,从而求解边界效应。Mueller等人提出了基于上下文感知的相关过滤框架CACF[66],该框架可用于传统CF的学习阶段,该框架可广泛应用于许多不同类型的CFTs中。CF+AT和CACF显著提高了跟踪器的性能,但跟踪器的速度也会受到计算时间增加的影响。
跟踪置信度是跟踪器的必要组成部分之一,用来判断目标是否丢失。生成式方法通常采用相似度量函数,判别式方法具有由机器学习方法训练的分类器提供的分类概率。通常CFTs采用最大响应峰值(MRP, 2, per-channel) Rmax作为置信参数,但复杂环境下难以有效确定目标位置。最早的相关滤波方法(MOSSE)是利用峰值旁瓣比(PSR, 3)结合MRP来判断置信度。Wang等人提出的LMCF [133] (85FPS)是基于手工制作的特征和基于CNN特征的Deep-LMCF (8FPS)。将该结构SVM与CF相结合,提出了平均峰相关能(APCE, 4),能有效地处理目标遮挡和丢失问题。Yao Sui等人提出了基于RCF[126]的PSCF[134],采用一种新的度量方法增强峰值(PS, 5),用于提高相关滤波器的识别能力。跟踪器可以在台式机上运行13PFS。Lukezic等人认为每个通道的检测可靠性体现在每个通道的响应中主要模态值的性能上,因此他们在CSR-DCF中提出了空间可靠性(6)[63]。通过与MRP结合,该跟踪器变现出了13FPS的性能。
3.2深度学习
近年来,深度学习(Deep Learning, DL)受到了广泛关注[84],CNN作为一种代表性算法,经过一系列的发展,以其强大的特征表达能力在图像和语音识别方面取得了令人惊叹的效果[108,138 -141]。在视觉跟踪领域,大多数基于DL的跟踪器属于判别法,2015年以来,从顶级国际会议(ICCV、CVPR、ECCV)可以看出,越来越多的基于DL的跟踪器[11]取得了令人惊讶的表现。
CNN-SVM[142]由韩国POSTECH团队提出,是最早的基于DL的跟踪器之一,将卷积神经网络(CNN)与支持向量机(SVM)分类器相结合。最后,以目标特有的显著性映射作为观测对象,采用序列贝叶斯滤波进行跟踪。此后,大量基于CNN的跟踪器(CNTs)如雨后春笋般出现。MDNet[143]是对CNN-SVM的改进,通过深度学习提取运动特征,并将运动特征添加到跟踪过程中。它向人们展示了CNN在视觉跟踪领域的潜力,但是tracker只适合在台式机电脑或者服务器上运行,不适合在ARM上运行。为了提高基于DL的方法的速度,Held等人提出了第一个可以运行100FPS的基于DL的跟踪器。为了提高速度,利用离线训练时大量的数据,避免了在线的微调,不采用回归方法对patch进行分类,而是对对象的边界框(bounding-box)进行回归。然而,这些措施可以获得更高的FPS,但代价是较低的跟踪精度。
Bertinetto等人使用Siamese架构提出了SiameseFC (SiamFC)144。它是第一个用VID[4]数据集训练样本的跟踪器。它的性能比GOTURN和SRDCF要好,GPU运行速度非常快(SiamFC 58FPS和SiamFC-3s 86FPS)。在VOT2016上,基于ResNet的SiamFC-R和基于AlexNet的SiamFC-A表现出众,是VOT2017上速度测试的赢家[9,10]。SiamFC以其优异的性能引起了人们的广泛关注。可以说为基于DL的视觉跟踪开辟了另一个方向,VID数据集也因为非常适合进行预训练,成为了基于DL的跟踪器的标准训练数据库。在仅仅一年的时间里就有这么好的工作可以跟进[145-150]。从VOT2017[9]的结果可以看出,SiamFC系列是目前尚存的几款端到端离线训练跟踪器,是目前唯一能够对抗CFTs的方向,也是能够从大数据和DL受益的最有希望的方向。
SiamFC学习一个函数f(z,x),将标准图像z和同样大小的候选图像x进行比较,如果两个图像相同返回一个高的分数,否则返回一个低的分数。ψ对于样本和候选图像是全卷积的,输出是一个标量值分数映射,其维数取决于候选图像的大小。然后计算所有的转换的子窗口与搜索图像的相似度响应的估计,根据f(z,x) = g(ψ(z),ψ(x))计算度量函数g,最后通过度量函数g确定目标位置。
由于CNN的结构特性,它的运行速度总是受到限制。此后,许多研究者提出将CF与CNN相结合来加速跟踪器。Bertinetto等人针对SiamFC提出了一种改进的CFNet[145],他们推导出CF的可微闭解,使其成为CNN的一层。CF用于在SiamFC中构建过滤器模板。然后可以使CNN-CF进行端到端训练,这样更适合CF跟踪的卷积特性,使用conv5可以运行43FPS。同时,Wang等人提出了DCFNet[146],在DCF中使用CNN特征代替HOG特征,除了CNN特征,其他部分仍然在频域快速计算。特征分辨率比CFNet高出近3倍,定位精度更高,跟踪器速度为60FPS,但边界效应限制了检测区域。DCFNet 2.0的最新版本,经过了VID的训练,在性能上比CFNet有了很大的飞跃,在GPU上可以运行100FPS。Gundogdu等人提出的CFCF[151](VOT2017挑战的获胜者)也构建了CNN,可以基于VID数据集进行端到端训练。与之前的跟踪器不同,CFCF使用了这次微调的CNN来提取卷积特征,其余与C-COT完全相同,这个跟踪器不能实时运行。Fan等人提出了PTAV[152],使用了SiamFC结合f-DSST多线程技术,并借鉴了VSLAM中并行跟踪和映射的经验,使用一个tracker T和一个verifier V在两个独立的线程上并行工作。通过验证器对跟踪器进行校正,从新的角度对该问题进行了研究,获得了较好的实验结果(25FPS)。韩国感知与智能实验室也对CNN-CF方法做了很多研究[153-156],使用随机森林、深度强化学习、马尔科夫链等机器学习算法来优化分类器的准确率,但都无法达到实时。
Huang等人提出了第一个对CPU友好的CNTs EArly-Stopping跟踪器(EAST)[147],也是对SiamFC的改进。它使用简单的特性(HC)跟踪简单的帧(类似的或静态的),而复杂的帧(明显的变化)使用更强的卷积特性跟踪。这样做的好处是,跟踪器的平均速度可以达到23FPS,其中50%的时间可以运行在190 FPS。另一方面,需要卷积特性的复杂帧跟踪非常缓慢,这也说明跟踪器的帧速率波动会很大。Tao等人在基于内容的图像检索(CBIR)的基础上提出了SINT[157],只使用目标在第一帧的原始观测。通过离线训练得到匹配函数,利用Siamese网络跟踪根据匹配函数与初始帧标定目标匹配最好的patch。在实验中,SINT增加了光流跟踪模块(SINT+),改善了效果,但两者都不能实时运行。Wang等人提出了SINT++[158],该方法增加了正样本生成网络(PSGN)和硬正转换网络(HPTN),提高了样本的准确性。虽然该方法新颖且使用了最流行的生成对抗网络(GAN),但实际效果并不显著。
Chen等人提出的CRT[159]不同于传统的DCF,它不需要得到回归问题的解析解。试图通过梯度下降法得到近似解,并利用单一卷积层来求解回归方程。由于卷积回归是在没有背景的“真实”样本上训练的,所以理论上可以包含无限的负样本。Zhu等人提出的UCT[150]将特征提取和跟踪过程视为卷积运算,从而形成完全卷积的网络架构。同样,使用随机梯度下降(SGD)解决DCF中的脊回归问题,并使用CNN的离线训练进行加速。同时,他们学习了一个新的置信参数峰噪比(PNR, 7),并提出了标准UCT(带ResNet-101)和UCT- lite(带ZF-Net)可以在41FPS和154FPS下工作。Song等人提出了CREST[160],也将DCF重新定义为单层CNN,并使用神经网络进行端到端集成对特征提取、响应图生成和模型更新进行培训。他们了解到,特征通过基映射和残差映射转换为响应映射,以提高跟踪性能。Park等人提出了Meta-Tracker[161],这是一种离线的基于元学习的方法,用于调整在线自适应跟踪中使用的初始深度网络。他们在基于CNN的MDNet[143]和基于cnn - cf的CREST[160]上演示了该方法,模型训练速度得到了显著提高。Yao等在BACF的基础上研究了深度表示和模型自适应的联合学习[125],然后提出了RTINet[162],其运行速度为9FPS,快速版本的实时速度为24 FPS。
表5整理了Wang等人维护的数据集,显示了本阶段表现最佳的20个跟踪器,包括CVPR2018。除了CF-based跟踪器BACF和HC-based追踪器ECO-HC(Turbo BACF速度可以超过300 fps,但是源代码没有开源),其余的追踪器是基于DL框架,他们中的大多数都是基于CNN,但帧速率通常是在个位数。PTAV(基于slam)、SiamRPN(基于Siamese网络)和RASNet可以实现实时(GPU速度)。
近年来的研究表明,如何使基于GPU的实时跟踪器在CPU上运行良好一直是一个难点。SiamFC[144]无法在CPU上实时运行,因为AlexNet的运行时间与scale的数量相同,严重延迟了运行速度。最快的DCFNet[146]使用双层CNN代替HOG,使用conv2的计算量是可以接受的,但预训练和微调的过程会使其在CPU上比较弱。EAST[147]作为一种基于CNN的跟踪器,在大多数情况下以KCF的形式进行跟踪,只有在困难的情况下才会使用conv5特性。综上所述,如果CNT在CPU或ARM上运行,需要注意三点: (1)需要控制CNN容量的数量,卷积层是计算的主要部分,需要仔细优化才能保证CNN的速度; (2)在线目标图像不更新,在CNN离线训练后,目标特征将被固定,从而避免了随机梯度下降(SGD)和反向传播几乎无法实时跟踪的问题。
3.3卷积特征
CFTs(相关滤波)具有良好的速度和精度,CNTs(深度学习)在GPU上具有较高的精度和保持较高的速度,为了提高CFTs的性能,有必要采用深度特性。CF端到端训练可以添加到CNTs中,CF和DL不是独立开发的,它们相互补充,相互促进。目前的tracker发展方向如图7所示。
视觉跟踪作为计算机视觉的一个重要组成部分,有着广泛的应用,是一个极具吸引力的研究课题。在本文中,我们总结了视觉跟踪的难点和一般结构。然后给出了一组视觉特征描述符,并总结了跟踪器的机器学习方法。基于实时性能,从相关滤波、深度学习和基于卷积特征的角度引入了最先进的基于检测跟踪的视觉跟踪器。最后分析了跟踪器在移动机器人中的应用要点,也是跟踪器今后的研究方向。
虽然生成方法框架具有实时性好、调整参数少的优点,但其建模复杂性限制了其进一步的发展。随着相关滤波器和深度学习的发展,基于检测跟踪架构的判别算法已成为主流。它们的速度、精度和健壮性已经完全超过了生成方法。然而,深度学习在视觉跟踪方向上的潜力并没有得到很好的展示,并且替换不同的神经网络并不能带来实质性的性能改善。
------如果觉得有点多,可以快速看下面总结------
https://blog.csdn.net/zhu_hongji/article/details/80515031?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase
目标跟踪
目标跟踪的一般由4个基本部分构成:特征提取、运动模型、外观模型、在线更新机制。
特征提取(Feature Extraction):适用于目标跟踪的特征一般要求,既能较好地描述跟踪目标又能快速计算。常见的图像特征有灰度特征、颜色特征、纹理特征、Haar-like 矩形特征、兴趣点特征、超像素特征等,当然也还有许多其他特征。
运动模型( Motion Model):运动模型旨在描述帧与帧目标运动状态之间的关系,显式或隐式地在视频帧中预测目标图像区域,并给出一组可能的候选区域.经典的运动模型有均值漂移(Mean shift)、滑动窗口(Slide window)、卡尔曼滤波( Kalman Filtering)、粒子滤波( Particle Filtering) 等.
外观模型(Appearance Model):外观模型的作用是在当前帧中判决候选图像区域是被跟踪目标的可能性.提取图像区域的视觉特征,输入外观模型进行匹配或决策,最终确定被跟踪目标的空间位置.在视觉跟踪的4 个基本组成中,外观模型处于核心地位,如何设计一个鲁棒的外观模型是在线视觉跟踪算法的关键.
在线更新机制(Online Update Mechanism):为了捕捉目标( 和背景) 在跟踪过程中的变化,目标跟踪需要包含一个在线更新机制,在跟踪过程中不断更新外观模型.常见的外观模型更新方式有模板更新、增量子空间学习算法及在线分类器等.如何设计一个合理的在线更新机制,既能捕捉目标( 和背景) 的变化又不会导致模型退化,也是目标跟踪研究的一个关键问题。
算法研究进展
目标跟踪算法主要分为两类:
生成式(generative)模型:通过在线学习方式建立目标模型,然后使用模型搜索重建误差最小的图像区域,完成目标定位。这一类方法没有考虑目标的背景信息,图像信息没有得到较好的应用。通俗点讲就是在当前帧对目标区域建模,下一帧寻找与模型最相似的区域就是预测位置,比较著名的有卡尔曼滤波,粒子滤波,mean-shift等。
判别式(discrimination)模型:将目标跟踪看作是一个二元分类问题,同时提取目标和背景信息用来训练分类器,将目标从图像序列背景中分离出来,从而得到当前帧的目标位置。CV中的经典套路图像特征+机器学习, 当前帧以目标区域为正样本,背景区域为负样本,机器学习方法训练分类器,下一帧用训练好的分类器找最优区域:与生成类方法最大的区别是,分类器采用机器学习,训练中用到了背景信息,这样分类器就能专注区分前景和背景,所以判别类方法普遍都比生成类好。
一些按年份记录的经典的跟踪算法:
MIL
Boris Babenko,的论文(MIL)Robust Object Tracking with Online Muliple instance Learning多示例目标跟踪算法使用分类的方法对目标进行跟踪,核心思想就是在以前使用的分类器中把单个样本作为输入去训练,在这个算法当中,把一类的样本(正样本)和单个的负样本作为输入训练,保证能够学习到更多的目标的外观模型,能够更好的对目标进行分类。 https://blog.csdn.net/zhu_hongji/article/details/79943559
MOSSE
David S. Bolme, J. Ross Beveridge, Bruce A. Draper, Yui Man Lui. “Visual Object Tracking using Adaptive Correlation Filters.” ICCV (2010).
在很长一段时间以内,相关滤波((Correlation Filters. CF)被用来检测场景中特定的模式,它具有对于图像中感兴趣的特定模式响应很大,而对其他背景模式响应很小的特性。虽然这种特性可以被用来进行目标定位,但是需要大量的样本来训练,因此不适合在线目标跟踪。直到Bolme等提出最小输出均方误差(Minimum OutputSum of Squared Error MOSSE)滤波算法,相关滤波才真正意义上用于在线目标跟踪。MOSSE滤波基于一种自适应的训练方式,仅需要一帧图像就能产生稳定的相关滤波。该算法不仅展现了应对光照变化、尺度变化、姿态变化、非刚性变形等复杂场景的鲁棒性,计算效率也非常高,每秒处理速度可以达到几百帧。由于其鲁棒性及计算高效性,基于相关滤波的目标跟踪得到了研究领域的广泛关注。MOSSE滤波可以看成是一组线性分类器,因此基于它的跟踪算法整体性能可能受到限制,另外只能处理单通道的灰度信息,性能也有一定限制。
TLD
Z. Kalal, J. Matas, and K. Mikolajczyk. P-N Learning: Bootstrapping Binary Classifiers by Structural Constraints
Kalal等提出一种新颖的跟踪一学习一检测(Tracking-Learning-Detection)的目标跟踪框架,尝试实现目标完全被遮挡或者目标离开视场等复杂场景下的长时间目标跟踪。该框架将长时间目标跟踪划分为三个子模块,即跟踪、学习和检测,跟踪模块基于光流实现目标在相邻图像帧的短期跟踪,检测模块通过一个级联检测器全局地定位所有己经观测到的外观,学习模块则通过“正、负专家”识别和纠正检测器误差,从而降低漂移误差。
Struck
Struck: Structured Output Tracking with Kernels.
Sam Hare, Amir Saffari, Philip H. S. Torr等人于2011年发表在Computer Vision (ICCV)上的一篇文章。Struck与传统跟踪算法的不同之处在于:传统跟踪算法(下图右手边)将跟踪问题转化为一个分类问题,并通过在线学习技术更新目标模型。然而,为了达到更新的目的,通常需要将一些预估计的目标位置作为已知类别的训练样本,这些分类样本并不一定与实际目标一致,因此难以实现最佳的分类效果。而Struck算法(下图左手边)主要提出一种基于结构输出预测的自适应视觉目标跟踪的框架,通过明确引入输出空间满足跟踪功能,能够避免中间分类环节,直接输出跟踪结果。同时,为了保证实时性,该算法还引入了阈值机制,防止跟踪过程中支持向量的过增长。
CSK
F. Henriques, R. Caseiro, P. Martins, and J. Batista. Exploiting the Circulant Structure of Tracking-by-Detection with Kernels.
大体上,大部分运动跟踪都是通过查找两个相邻帧的相互关系,再确定目标对象的运动方向,无限迭代后,能完整地跟踪对象,CSK也是如此。在确定跟踪对象后,根据目标位置扣出该帧的目标窗和下一帧的目标窗,再对这两个窗进行FFT,转化后在频域图直接点乘。这个过程可简单理解为是求两个相连帧的频域共振位置,然后将共振频域图利用核函数进行核映射,再进行训练。 训练过程引入原始响应Y,Y可以理解为是对象的起始位置,因为起始位置都是第一帧的中心,所以能看到Y的图像是根据跟踪窗大小的建立的高斯函数。
训练的目的则是要找出当前帧对应的α,其训练公式如下 :
训练完毕后,根据下一帧的核映射,可检测出对应的响应图像:
通过输入图片与目标区域,由下面公式得到核矩阵k。
这一年的Tracker主旋律变成了相关滤波(Correlation Filter):
KCF
High-Speed Tracking with Kernelized Correlation Filters [J]. IEEE TPAMI, 2015.
KCF是一种鉴别式追踪方法,这类方法一般都是在追踪过程中训练一个目标检测器,使用目标检测器去检测下一帧预测位置是否是目标,然后再使用新检测结果去更新训练集进而更新目标检测器。而在训练目标检测器时一般选取目标区域为正样本,目标的周围区域为负样本,当然越靠近目标的区域为正样本的可能性越大。
KCF的主要贡献
使用目标周围区域的循环矩阵采集正负样本,利用脊回归训练目标检测器,并成功的利用循环矩阵在傅里叶空间可对角化的性质将矩阵的运算转化为向量的Hadamad积,即元素的点乘,大大降低了运算量,提高了运算速度,使算法满足实时性要求。
将线性空间的脊回归通过核函数映射到非线性空间,在非线性空间通过求解一个对偶问题和某些常见的约束,同样的可以使用循环矩阵傅里叶空间对角化简化计算。
给出了一种将多通道数据融入该算法的途径。
SAMF
Li Y, Zhu J. A scale adaptive kernel correlation filter tracker with feature integration[C]// ECCV, 2014
KCF问世不久之后出现的,基于KCF,第一次把HOG特征和CNN特征进行结合使用。同时使用了尺度池技术,多尺度方法是平移滤波器在多尺度缩放的图像块上进行目标检测,取响应最大的那个平移位置及所在尺度。
DSST
Martin Danelljan Accurate scale estimation for visual tracking
Martin Danelljan的DSST ,只用了HOG特征,DCF用于平移位置检测,又专门训练类似MOSSE的相关滤波器检测尺度变化,开创了平移滤波+尺度滤波,之后转TPAMI做了一系列加速的版本fDSST。在这篇论文里面将目标跟踪看成目标中心平移和目标尺度变化两个独立问题,首先用HOG特征的DCF训练平移相关滤波,负责检测目标中心平移,然后用HOG特征的MOSSE(注意区别,不加padding)训练另一个尺度相关滤波,负责检测目标尺度变化,(标配)步长1.02的33个尺度。 效果也是相当的好,是VOT2014的冠军,但是速度上并没有那么尽如人意,因为使用了33个尺度,速度自然就下了。
2015
VOT2015竞赛 VOT2015 Challenge | Home ,这一年有60个精挑细选的序列,62个tracker,最大看点是深度学习开始进击tracking领域,MDNet直接拿下当年的冠军,而结合深度特征的相关滤波方法DeepSRDCF是第二名,主要解决边界效应的SRDCF仅HOG特征排在第四:
MDNet
Learning Multi-Domain Convolutional Neural Networks for Visual Tracking
一张图说完MDNet,这张图包含了MDNet 的核心思想,训练的时候,对每一个domain单独进行训练,同时更新共享层的参数,使得共享层的参数能够适应所有的数据集,之后保存共享层的参数,domain域也只保留下一个分支供跟踪使用,跟踪阶段,使用预训练的CNN网络对目标进行跟踪,找到目标的位置所在。
SRDCF
M. Danelljan, G. Hager, F. S. Khan, and M. Felsberg. Learning spatially regularized correlation filters for visual tracking.
Martin Danelljan的SRDCF 主要思路:既然边界效应发生在边界附近,那就忽略所有移位样本的边界部分像素,或者说限制让边界附近滤波器系数接近0。SRDCF基于DCF,类SAMF多尺度,采用更大的检测区域(padding = 4),同时加入空域正则化,惩罚边界区域的滤波器系数,由于没有闭合解,采用高斯-塞德尔方法迭代优化。检测区域扩大(1.5->4),迭代优化(破坏了闭合解)导致SRDCF只有5FP,但效果非常好是2015年的baseline.
另一种方法是Hamed Kiani提出的MOSSE改进算法,基于灰度特征的CFLM Correlation Filters with Limited Boundaries 和基于HOG特征的BACF Learning Background-Aware Correlation Filters for Visual Tracking,主要思路是采用较大尺寸检测图像块和较小尺寸滤波器来提高真实样本的比例,或者说滤波器填充0以保持和检测图像一样大,同样没有闭合解,采用ADMM迭代优化:
Kiani Galoogahi H, Sim T, Lucey S. Correlation filters with limited boundaries [C]// CVPR, 2015.
Kiani Galoogahi H, Fagg A, Lucey S. Learning Background-Aware Correlation Filters for Visual Tracking [C]// ICCV, 2017.
DeepSRDCF
Martin Danelljan, Gustav Häger, Fahad Khan, Michael Felsberg. “Convolutional Features for Correlation Filter Based Visual Tracking.
采用的是深度特征,在CPU上难以实现实时性
CFLB
Kiani Galoogahi H, Sim T, Lucey S. Correlation filters with limited boundaries .【Paper】【Project】
首先,使用更大的训练和检测图像块,同时给循环移位样本左乘一个0-1组成的掩膜矩阵P,以使真实训练样本的比例增加,优化目标函数:
MEEM
Robust Tracking via Multiple Experts using Entropy Minimization【Paper】【Project】
RPT
Yang Li, Jianke Zhu and Steven C.H. Hoi. “Reliable Patch Trackers: Robust Visual Tracking by Exploiting Reliable Patches.”
HCF
Chao Ma, Jia-Bin Huang, Xiaokang Yang and Ming-Hsuan Yang. “Hierarchical Convolutional Features for Visual Tracking.”
深度学习的重磅之作
勇敢一点,学会成全