A Review of Visual Trackers and Analysis of its Application to Mobile Robot

1 跟踪算法和视觉跟踪

传统的跟踪算法不同于现在计算机视觉中的视觉跟踪。前者更适合作为跟踪策略。该算法通过给出目标状态空间在时域变化的数学模型来预测目标在下一帧的运动状态。后者是CV中检测算法、跟踪策略、更新策略、在线分类器、重检测器等分支算法的集成,系统结构较为复杂。本文着重介绍和分析了后者的相关工作。
2 视觉跟踪结构和分类器

2.1跟踪系统中的基本框架和问题

视觉跟踪在过去的几十年中有了长足的发展,视觉跟踪从提出到现在的过程已经非常清晰。对于输入的视频或图像序列,首先以目标当前帧的状态作为跟踪的初始状态(初始化模型参数),然后提取关键点并建模。然后将目标模型应用到后续帧中,通过跟踪策略(滤波法、光流法等)估计目标的当前状态。此外,目标模型是根据当前状态更新的。最后在下一帧中跟踪目标模型。视觉跟踪的基本流程图如图1所示,将视觉跟踪分解为五个部分:运动模型(预测位置)、特征提取器(特征提取)、观察模型(判别位置)、模型更新器(更新模型参数)、集成-后处理器(集成学习)。实验结果表明,在视觉跟踪中,特征提取远比观测模型重要。
 
A Review of Visual Trackers and Analysis of its Application to Mobile Robot

 

 

上述跟踪框架中,特征提取器就描述目标的过程, 在提取目标特征的基础上,构建目标描述模型。根据目标特征提取和观察模型的方式(在线学习方法),跟踪可以分为生成式和判别式两大类。观测模型中用于预测目标轨迹的方法是跟踪策略,例如:卡尔曼滤波、扩展卡尔曼滤波器、粒子滤波、L-K光流算法、马尔可夫链蒙特卡洛算法、互相关归一化、mean-shift、Cam-shift。

在视觉跟踪过程中,目标及其周围环境的状态不断变化,外观形变、光照改变、外观相似性、运动模糊、背景杂乱、遮挡、超出视野、尺度变化、平面外旋转、面内旋转、背景相似,这不仅使得特征提取和模型构建变得困难,也要求跟踪器具有更强的鲁棒性和更高的精度。基于此,实时跟踪也还是可能的。

2.2生成式方法

在学习过程中,生成方法是从数据最大化联合概率P (X,Y)获取条件概率分布P (Y|X) 作为预测模型。即建立在全局状态上的数据可能性模型P (Y|X) = P (X,Y) / P (X), 生成式方法试图找出数据是如何生成的,通常来说,它可以学习一个表示目标的模型,通过目标搜索图像区域,然后对信号进行分类,使重构误差最小化。在此生成模型的基础上,找到与生成模型描述相似的目标,然后进行模板匹配,找到图像中最匹配的区域,即当前帧中的目标。 具体步骤如图:
A Review of Visual Trackers and Analysis of its Application to Mobile Robot

 

首先,输入视频帧并选择目标进行初始化。另外,提取当前帧中的目标特征。然后根据目标的特征描述模型,建立概率密度分布函数。然后寻找图像区域的下一帧,进行模板匹配,找到图像中与模型相似度最高的区域。最后,输出目标边框。
在视觉跟踪器的框架中,目标描述过程中目标特征的提取是一个非常重要的步骤,这对跟踪的准确性和速度有很大的影响。它不仅是用于生成式方法中的特征提取,也是判别式法中模型检验的重要步骤之一。常用特征表示见表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),是当今视觉跟踪的主流研究方向。

A Review of Visual Trackers and Analysis of its Application to Mobile Robot

 

 检测跟踪(tracking-by-detection)通常有两种方法:一是相关滤波(CF),通过回归输入特征作为目标高斯分布训练滤波器,并找到预测分布中的响应的峰值,定位后续帧中目标的位置。另一种是深度学习(Deep Learning, DL),通过更新分类器中前景和背景的权值,提高目标与其邻域背景的区分能力。

近年来,大量的机器学习方法被改进来处理逐检测跟踪的问题,作为一种训练分类方法。在分类器训练中,机器学习中常用的是监督学习和半监督学习,非监督学习的使用较少(表3)。

A Review of Visual Trackers and Analysis of its Application to Mobile Robot

 

3 视觉跟踪的发展

3.1 相关滤波

相关滤波(CF),也称为判别式相关滤波(DCF),其原理是相关信号f和g的卷积响应大于不相关信号的卷积响应。f*是f的共轭复数,∫是用在连续域,Σ用在离散域,在视觉跟踪中,滤波器只对每个兴趣目标生成高的响应,对背景生成低的响应。循环矩阵的引入以及快速傅里叶变换(FFT)、离散傅里叶变换(DFT)和反傅里叶变换(IFFT)的应用,极大地提高了视觉跟踪的速度,计算复杂度从O(N2)降到O(NlogN)。

A Review of Visual Trackers and Analysis of its Application to Mobile Robot

 

 自从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所取代。

A Review of Visual Trackers and Analysis of its Application to Mobile Robot

 

 在第一帧初始化后,在接下来的每一帧中,裁剪之前估计位置的图像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受益的最有希望的方向。
 A Review of Visual Trackers and Analysis of its Application to Mobile Robot

 

 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。
 A Review of Visual Trackers and Analysis of its Application to Mobile Robot

 

表5整理了Wang等人维护的数据集,显示了本阶段表现最佳的20个跟踪器,包括CVPR2018。除了CF-based跟踪器BACF和HC-based追踪器ECO-HC(Turbo BACF速度可以超过300 fps,但是源代码没有开源),其余的追踪器是基于DL框架,他们中的大多数都是基于CNN,但帧速率通常是在个位数。PTAV(基于slam)、SiamRPN(基于Siamese网络)和RASNet可以实现实时(GPU速度)。

A Review of Visual Trackers and Analysis of its Application to Mobile Robot

 

近年来的研究表明,如何使基于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所示。

A Review of Visual Trackers and Analysis of its Application to Mobile Robot

 

 视觉跟踪作为计算机视觉的一个重要组成部分,有着广泛的应用,是一个极具吸引力的研究课题。在本文中,我们总结了视觉跟踪的难点和一般结构。然后给出了一组视觉特征描述符,并总结了跟踪器的机器学习方法。基于实时性能,从相关滤波、深度学习和基于卷积特征的角度引入了最先进的基于检测跟踪的视觉跟踪器。最后分析了跟踪器在移动机器人中的应用要点,也是跟踪器今后的研究方向。
虽然生成方法框架具有实时性好、调整参数少的优点,但其建模复杂性限制了其进一步的发展。随着相关滤波器和深度学习的发展,基于检测跟踪架构的判别算法已成为主流。它们的速度、精度和健壮性已经完全超过了生成方法。然而,深度学习在视觉跟踪方向上的潜力并没有得到很好的展示,并且替换不同的神经网络并不能带来实质性的性能改善。

 

学会成全

 

上一篇:React Native page navigation


下一篇:这样Review代码牛逼啦!