王 军,尹 鹏,章利民,邓承志,汪胜前
(南昌工程学院 1.信息工程学院;2.江西省水信息协同感知与智能处理重点实验室,江西 南昌 330099)
目标跟踪是计算机视觉中的重要研究任务之一,目前已发展成为一个独立的研究方向。其目的是在给定被跟踪目标视频第一帧的初始状态后,通过对目标表观以及运动信息进行建模,确定目标在后续帧中的位置和尺度变化[1]。它为目标分类、理解等视觉任务提供研究基础,也为智能视频监控等视觉应用领域提供关键技术。随着计算机视觉技术的发展,目标跟踪被广泛应用在军事和民用领域,如智能驾驶[2]、人机交互[3]、智能视频监控[4]、医疗诊断[5]和智慧城市[6]等。对目标跟踪的研究具有重要的研究意义和广泛的应用前景。
近年来,目标跟踪受到了国内外学者的广泛关注,得到了快速发展,提出了一些具有实时性和鲁棒性的跟踪算法。在跟踪过程中,复杂的表观变化是跟踪中主要的挑战因素和难点问题之一,这些因素主要包括局部遮挡、运动模糊、非刚性形变、尺度变化、快速运动、背景复杂等。
基于目标表观的类型,跟踪算法一般可以分成生成式和判别式两大类。生成式算法在跟踪过程中,首先设计一个目标表观模型,然后在后续视频帧中搜索与目标模板最相似的候选区域,并将该区域对应的图像块作为在当前帧中的跟踪结果。而判别式算法将跟踪问题看成是一个二分类或回归问题,通过学习一个分类函数,将目标从周围的背景中区分出来。基于深度学习特征的强大表征能力,卷积神经网络被成功应用在目标跟踪中。本研究在对生成式跟踪和判别式跟踪算法进行回顾的基础上,重点分析基于孪生神经网络的目标跟踪方法。
生成式跟踪算法在图像序列的每一帧中搜索与目标模板最相似的图像区域,并将相似度最大或者重构误差最小的图像区域作为当前帧的跟踪结果。以往的基于生成式的目标跟踪算法一般利用一组模板或基向量来表示目标候选块。Ross[7]等提出了一种增量式的目标跟踪(IVT)算法,该算法在主成分分析(PCA)子空间中学习和更新目标表示。Li[8]等提出了一种基于3D-DCT目标表示与蓄水池目标模板更新的跟踪算法,实现了在挑战性的环境中的鲁棒跟踪效果。
近年来,稀疏表示技术[9]被成功应用于目标跟踪,Mei[10]等提出了基于L1的跟踪算法。L1跟踪算法对局部遮挡等具有鲁棒的跟踪效果,但由于在跟踪过程中需要解决L1最小化问题,从而计算复杂度较高。
基于判别式的目标跟踪算法被视为一个二分类或回归任务。在训练一个区分前景、背景分类器的基础上,将分类置信度最高的区域视为当前帧的目标位置。Collins[12]等利用线性判别分析,在线自主选择最具有区分力的颜色特征进行前背景的判别。Babenko[13]等采用多示例学习进行分类器训练。
基于回归判别式模型的典型方法是相关滤波。Bolme[14]等将相关滤波器应用在目标跟踪中,提出基于误差最小平方和滤波器跟踪方法。通过计算目标候选块的响应图进行目标状态估计,响应图分值越高的位置说明该区域属于目标的概率越大。文献[15]在MOSSE的基础上,增加了正则项以避免过拟合。同时利用循环矩阵的特性达到密集采样和转到频域提高运算速率的目的。在此基础上,Danelljan[16]等提出了基于多通道颜色特征的跟踪方法,通过实现自适应低维颜色属性的转化,在具有光照变化的挑战性视频序列上达到鲁棒跟踪效果。Zhong[11]等提出基于稀疏的协同目标跟踪算法,该算法充分利用了生成式算法和判别式算法的优点。
当前主流的目标跟踪算法可分为基于相关滤波[17]和基于深度学习的目标跟踪算法[18]两大类。基于相关滤波的目标跟踪算法其特点是速度快,但精度较低。而基于深度学习的目标跟踪算法需要使用大规模数据集对模型进行长时间的预训练,但跟踪的准确度高。实验结果表明,基于孪生神经网络的目标跟踪算法很好地平衡了速度和精度。在保证目标跟踪算法的精度前提下,速度也得到了提高。目前基于深度学习的目标跟踪算法[19]中,常用的主干特征提取网络主要有主要有AlexNet[20]、ResNet[21]、VGGNet[22]和VGG-M[23]等。
孪生神经网络(Siamese Neural Network,SNN)是一种包含两个或更多相同子网的神经网络结构,子网络之间实行参数和权重共享。SNN的主要思想是将两个输入映射到同一个分布域上,通过损失函数计算两个输入的相似度。目标跟踪算法的本质是候选区域和目标模板之间的相似度量,因此SNN被广泛应用到目标跟踪领域。
下面将分析基于SNN的跟踪算法,主要包括基于全卷积孪生神经网络、基于候选区域提议孪生神经网络的跟踪算法以及基于孪生神经网络目标跟踪算法的改进,并对近几年流行的孪生神经网络跟踪算法进行实验对比和分析。
基于孪生神经网络的目标跟踪将跟踪问题看成是一个相似度计算,通过计算候选块与目标模板之间的相似度,确定目标在当前帧中的位置。基于孪生神经网络的目标跟踪一般框架包括两个分支,即模板分支和检测分支,如图1所示。
图1 基于SNN的跟踪框架
图1中Z表示模板分支,其中模板图像是固定不变的。输入127×127×3的模板图像,经过卷积运算得到6×6×128的特征图。X表示检测分支,代表在后续帧中的候选搜索区域。输入255×255×3的候选图像,经过卷积运算得到22×22×128的特征图。最后将两个分支的特征图进行互相关操作,输出一个17×17×1标量值的得分映射,分数最高的位置就是当前帧中的目标位置。
近年来,基于孪生神经网络的跟踪算法在平衡精确度和跟踪速度方面显示出了很好的性能。早在2016年,Tao[24]等提出了基于孪生实例搜索的目标跟踪(SINT),开创性地将目标跟踪问题转化成patch块匹配问题,并采用神经网络来实现。在得到第一帧的信息后,后续的每一帧的候选框都与第一帧目标框进行匹配计算,得分最高的候选框即为在该帧中的目标。同年,Bertinetto L[25]提出一种经典的孪生网络目标跟踪算法。该算法训练一个端到端的全卷积神经网络(SiamFC),SiamFC以实时的跟踪速度和较高的跟踪精度使得SNN成为目标跟踪领域的研究热点。
在此基础上,国内外学者对SiamFC算法进行深入研究,提出了多种基于孪生神经网络的目标跟踪算法。如CFNet、SiamRPN、SiamRPN++、DaSiamRPN、SiamBAN、SiamAttn等。下面将对这些目标跟踪算法进行分析。
2016年文献[25]提出了基于全卷积孪生神经网络的目标跟踪算法,也就是SiamFC跟踪算法。SiamFC方法构建了一个Siamese网络模型,用于特征提取,并利用一个互相关联层嵌入两个分支。它以模板特征为内核,直接对搜索区域进行卷积运算,得到单通道响应映射。为了给出更精确的定义,通过学习一个函数f(z,x)对模板图像和搜索区域进行相似性度量计算如下:
f(z,x)=g(φ(z),φ(x)),
(1)
上式中函数g(·)用于相似度计算,函数φ(·)用于特征的提取。SiamFC提出了一个端到端学习的跟踪框架,而且达到了实时跟踪效果。SiamFC对主干特征提取网络AlexNet进行了改进,去掉了padding层和全连接层,加入Batch Normalization(BN)层。基于大量的训练样本,训练一个全卷积网络(Fully convolutional Network,FCN)。FCN首先进行特征提取,再利用双线性层计算滑动窗口的两个输入之间的相互关系,实现了密集高效的滑动窗口评价。
然而,SiamFC采用固定的度量方式没有利用具体视频中的其他有效信息。Jack[26]等提出基于相关滤波器的端到端表示学习的目标跟踪算法(CFNet)。将相关滤波器作为Siamese跟踪框架中的可微调层,并将其嵌入到孪生神经网络框架中。在目标模板分支中引入相关滤波模板φ和标量参数尺度s和偏差b:
f(z,x)=sω(φ)(z))*φ(x))+b,
(2)
式中相关滤波(CF)块ω=ω(x),通过求解傅里叶域中的岭回归问题,从训练特征映射z=φ(z)中计算出标准CF模板ω。该模板的效果可以理解为一个具有鲁棒性的区分模板。CFNet算法采用端到端训练相关滤波器,将相关滤波与卷积神经网络结合起来,充分利用了相关滤波跟踪器速度快的优点和卷积神经网络跟踪算法具有更准确的跟踪效果的特点。
CFNet跟踪算法与标准的相关滤波方法存在同样一个问题——具有边界效应,一定程度上限制了跟踪算法的性能。为了更好解决深度网络训练中的过拟合问题,文献[27]中提出了基于残差注意力孪生神经网络的目标跟踪算法(RASNet)。RASNet模型在全卷积孪生神经网络跟踪框架内重新制定了相关滤波器,并将残差注意力、一般注意力和通道注意力机制嵌入到端到端的孪生网络中,无需在线更新模型。RASNet不仅缓解了深度网络训练中的过拟合问题,而且由于表征学习和鉴别学习的分离,增强了其判别能力和自适应能力。与CFNET算法相比,RASNet针对目标表观变化具有更好的适应能力和更高的准确度。
(3)
为了更好地适应目标表观变化,He[29]等提出了双孪生网络实时目标跟踪算法(SA-Siam),包括两个分支结构,即表观分支和语义分支。两个分支最后都通过与第一帧目标模板在特征空间做互相关运算得到响应图,由两个响应图进行加权平均得到最终响应图。通过对最终响应图中最大响应点进行插值运算得到在原图中的位置,即可得到在当前帧中的目标位置。SA-Siam利用全卷积孪生网络训练语义分支和表观分支。每个分支都使用孪生网络结构计算候选块和目标模板之间的相似度,并进行单独训练,以保持两种类型特性的异构性。
上述工作对目标模板和搜索区域用深度特征进行表征后,对模板和搜索区域进行相似度度量,并采取多尺度策略判断目标尺度变化。然而,这类方法往往不能够准确表示目标尺度变化,容易在相似性度量步骤引入背景信息。对候选区域提议网络(Region Proposal Network,RPN)是用来提取候选框的网络结构。RPN的核心是提取anchor并进行边框回归(bounding box regression)。 2018年,Li[30]等提出了基于候选区域提议孪生神经网络的高性能目标跟踪(SiamRPN),首次将Faster R-CNN[31]中的RPN应用到跟踪任务中。SiamRPN通过在Siamese网络之后引入一个区域建议网络,把跟踪任务看做one-shot learning,该网络采用大规模图像对进行端到端离线训练。SiamRPN算法是由特征提取网络和RPN两部分构成,如图2所示。
图2 SiamRPN网络结构[30]
在SiamRPN跟踪算法中,目标特征的提取是由Siamese Network完成的,这一部分与SiamFC结构是一致的。RPN是由两个分支组成的,即回归分支与分类分支。分类分支用来计算输出框与ground truth的IOU,根据IOU是否大于一个阈值,从而来区分目标和背景。回归分支将得到的输出框进行微调,使其更加接近ground truth。并且由于回归分支的存在使得该算法可以去掉原始的尺度金字塔。SiamRPN算法将原始的相似度计算问题转化为回归和分类问题。
尽管CFNet、DSiam、SiamRPN等跟踪算法平衡了精度和速度,但仍有3个问题需要解决。第一,大多数基于孪生神经网络的目标跟踪算法使用的特征只能区分前景和非语义背景。语义背景通常被认为是干扰因素,当背景杂乱时,不能保证跟踪器的性能。第二,大多数孪生跟踪器在速度上提高了不少,但不能在线更新模型[24,27,32]。当目标外观发生剧烈变化,便会导致跟踪器发生漂移。第三,大多数孪生跟踪器采用的是局部搜索策略,不能处理完全遮挡等的挑战。
针对以上问题,Zhu[33]等提出了基于干扰感知孪生网络的目标跟踪算法(DaSiamRPN),DaSiamRPN算法对SiamRPN做了三点改进:第一,由于SiamRPN所用的数据集包含的类别数量太少,不足以训练高质量和广义的特征用于Siamese跟踪。因此引入现有的检测数据集来充实正样本数据。正样本图像训练对可以提高跟踪器的判别能力和回归精度,以此来提高跟踪器的泛化能力,通过改变数据集,提高了跟踪器的泛化能力和判别能力;第二,在每个搜索区域中,非语义背景占多数,语义实体和干扰物占较少,将背景作为一种有效信息进行判别,使用不同种类正样本和含有目标(非目标)的负样本进行训练,引入一个高效的采样策略,学习强有力的特征表达;第三,设计了一个干扰感知模型,通过非极大值抑制,选出干扰物,再对这些干扰物进行学习,提高了跟踪器的判别能力。
SiamRPN跟踪器在Siamese网络之后引入RPN将原始的相似度计算问题转化成回归和分类问题。DaSiamRPN进一步加入干扰感知模型,提高了跟踪器的判别能力。为了解决数据不平衡的问题,同年Fan[34]等提出了基于级联的区域提议孪生网络的目标跟踪算法(C-RPN)。C-RPN提出在Siamese网络中,将RPN序列从深层高级层级联到浅层低级层。每个RPN都使用前一阶段RPN的输出进行训练,使得训练样本更加平衡,因此,RPN在区分困难背景时更具分辨力。通过特征转移块(FTB)对每个RPN充分利用多层次特征,同时利用高级语义和低级空间信息,C-RPN的可判别性进一步提高。C-RPN通过多步回归,通过前一阶段调整anchor,逐步细化每个RPN中目标的位置和形状,使定位更加准确。SiamRPN、DaSiamRPN等算法在SiamFC的基础上引入了RPN计算,较好地解决了跟踪中的多尺度采样等问题,获得了更加准确的跟踪效果,具有更加强大的前背景区分判别能力。
现有的Siamese跟踪器的网络架构大部分都是用AlexNet(浅层)作为主干特征提取网络。研究人员尝试使用以ResNet等深层网络作为主干特征提取网络,但在Siamese算法中并不能获得明显的性能提升。因此文献[35]中提出了基于深度网络的孪生目标跟踪算法(SiamRPN++)。对Siamese跟踪器进行了深入的研究,证明了使用深度网络时精度下降的原因破坏了平移不变性。针对以上问题,在SiamRPN中做了三点改进:第一,提出了一种简单而有效的采样策略,打破了空间不变性的限制,成功地训练了一种基于ResNet网络结构的Siamese跟踪器;第二,提出了一种逐层特征聚合结构,用于互相关操作,帮助跟踪器从多个层次的特征中预测相似度图;第三,提出了一种逐深度互相关结构,增强了互相关性,生成了多组语义相似度图。SiamRPN++和SiamDW[36]都深入研究了主干特征提取网络以提高跟踪性能。这些基于RPN的跟踪器摒弃了传统的多尺度测试,在跟踪性能上取得了巨大的成效。
近年来,基于Siamese的跟踪器在目标跟踪方面取得了优异的性能。然而,目标模板并不是在线更新的。这使得精确跟踪具有较大外观变化或遮挡的目标变得困难,这不可避免地增加了跟踪漂移的风险。其次,目标模板和搜索图像的卷积特征是在Siamese架构中独立计算的,目标特征完全丢弃了背景上下文信息,但对于区分目标和近距离干扰物以及复杂背景具有重要意义。因此,当今目标跟踪算法采用与目标检测算法相互结合的方法,在Siamese的框架上加入目标检测技术,使得跟踪的性能得到更大的提升。
上述基于孪生网络的目标跟踪算法大多数利用特征提取网络的线性信息表征目标和搜索区域,不能够充分利用非线性的空间语义信息。Yu[37]等提出了基于可变形的注意力孪生神经网络的目标跟踪算法(SiamAttn),提高了基于孪生神经网络跟踪器的特征学习能力。作者提出了一种新的可变形孪生注意力机制。该注意力机制同时计算可变形的自我注意和交叉注意。自我注意力通过空间注意捕获丰富的语境信息,同时通过通道注意选择性地增强相互依赖的通道特征。交叉注意力能够聚合目标模板和搜索图像之间丰富的上下文相关性,并自适应编码到目标模板中以提高识别能力,改善了目标的表示,对较大的外观变化具有很强的鲁棒性,并增强目标对干扰物和复杂背景的辨别能力。此外还通过计算注意特征之间的深度相互关系,设计了区域精化模块,进一步增强了特性表示能力,通过生成对象的边界框,实现了更精确的跟踪。实验表明,SiamAttn的性能超过了SiamMask[38]等跟踪算法。
尽管之前工作取得了非常出色的跟踪性能,但长时跟踪仍是面临挑战的问题之一,特别是待跟踪目标长时间未出现在视野中。Paul[39]等提出了Siam R-CNN基于再检测的目标跟踪算法。该算法是在孪生两阶段重检测的基础上,提出了SiamR-CNN结构和一种新的样例挖掘策略。在长时间遮挡后重新检测被跟踪的对象,特别是在长期跟踪问题上的表现尤为突出。由此可见,基于Siamese的跟踪器不仅在通常的跟踪数据集上取得了较好的效果,同时在长时跟踪中也能获得鲁棒的跟踪效果。文献[40]中提出基于自适应孪生神经网络的目标跟踪算法(SiamBAN),提出了一个简单而有效的目标跟踪框架,即自适应网络。SiamBAN不需要多尺度搜索模式和预先定义的候选框。它利用了完全卷积网络(FCN)的特征表达能力。SiamBAN将跟踪问题视为一个并行分类和回归问题,因此直接对目标进行分类,并在统一的FCN中回归其边界框。无先验的box设计避免了与候选box相关的超参数,使SiamBAN更加灵活和通用。SiamCAR[41]同样也是致力于消除anchor的负面影响,提出了anchor-free的跟踪器。SiamCAR将跟踪任务视为联合分类和回归问题来处理,使用一个或多个预测头直接进行预测,以逐像素预测的方式从响应图中回归边界框。
对于Siamese跟踪器来讲,相关性起到了至关重要的作用。然而,相关操作本身是一个局部线性匹配过程,容易陷入局部最优化,达不到全局最优化,同时容易丢失一部分语义信息,这成为设计一个高精度Siamese跟踪器的瓶颈。为了解决这一问题,Chen[42]等提出了Transformer Tracking(TransT)跟踪算法。提出了一种新的基于注意力的特征融合网络,该网络由基于自我注意的上下文增强模块和基于交叉特征增强模块组成,有效地融合了模板特征和ROI特征,产生了更多的语义特征映射。与经典的SiamFC系列跟踪算法相比,TransT在LaSOT、TrackingNet以及GOT-10K测试基准上的性能比SiamFC提高了将近两倍,实验对比如由表1所示。
表1 TransT与SiamFC跟踪结果对比
本节中给出SiamFC和基于孪生神经网络跟踪算法的性能分析。性能对比采用目标跟踪标准数据集OTB100[46],该数据集由100个具有11种属性的不同视频组成,这些属性分别是平面内旋转、平面外旋转、背景杂乱、快速运动、光照变化 、移出视野外、局部遮挡、非刚性形变 、尺度变化、低分辨率以及运动模糊等。采用精确度和成功率两种评价标准进行跟踪算法性能分析。
本节实验中对9种跟踪算法进行性能对比和分析,分别是SiamFC、CFNet、SiamDW、SiamRPN、SANet、DaSiamRPN、SiamDWrpn、SiamBAN和SiamR-CNN。为了评估不同跟踪算法的性能,表2给出了9种基于孪生神经网络的目标跟踪算法的精确度与成功率对比。本文在各种跟踪算法的性能比较和分析中的实验数据来自官网或者作者个人主页提供的结果。图3中给出6种跟踪算法在OTB100上的精确度曲线和成功率曲线。根据OTB100的评估方法,图3给出了一次性评估(OPE)方法结果。从图3中可以看出,SiamDWrpn和SiamR-CNN算法分别以精度值0.922和成功率0.701取得最好的跟踪结果。SiamBAN以精度值0.910和成功率0.696取得了第二的跟踪效果。
表2 不同跟踪算法的性能比较
图3 精确度曲线图和成功率曲线图
图4和图5分别给出以上跟踪算法在OTB100中基于不同属性的精确度曲线和成功率曲线。其中每幅子图分别表示一种属性下的跟踪性能。在背景复杂情形下,SiamDWrpn性能表现最好,SANet、SiamBAN次之。在快速移动的情形下,SiamBAN表现出最优性能,SiamDWrpn、SANet表现次优。在局部遮挡的影响下,SiamDWrpn、SANet、SiamBAN、DaSiamRPN算法都取得了较好的跟踪效果。在运动模糊的情况下,SiamBAN表现出了最佳的性能。
图4 基于属性的精确度曲线
对于平面外旋转、低分辨率、光照变化以及平面内旋转的情形,SiamBAN始终保持着最优的性能。而在尺度变化、遮挡、运动模糊的挑战情形下,SiamR-CNN表现出了最高的性能。由以上实验和分析可以看出,无论是精确度还是成功率,SiamR-CNN在不同属性下的整体性能极具优势。SiamDWrpn、DaSiamRPN算法在不同情形下均表现出良好的性能。
由于基于卷积神经网络提取的目标特征具有强大的表征能力,以上基于孪生网络的目标跟踪算法均取得了令人满意的结果。其中,SiamDWrpn通过设计一种可以增加主干网络的深度和宽度结构,在目前的基于Siamese的跟踪算法中取得了准确性最好的跟踪结果。SiamR-CNN通过增加额外的全局重新检测模块,提高了处理复杂场景的跟踪鲁棒性,并实现了成功率最佳的跟踪结果。SiamBAN通过丢弃多尺度搜索以及预定义候选框策略,设计一种孪生盒自适应网络也取得了不错的跟踪性能。最后,通过增加或者改善不同的网络结构,SANet、SiamDW和SiamRPN等算法的跟踪性能相比较之前工作都有不同程度的提升。
图5 基于属性的成功率曲线
目标跟踪已发展为一个独立的研究方向,并且在跟踪速度和精度等方面都取得了很大的进步。特别是随着卷积神经网络的引入,算法的精确度和成功率等得到了很大的提升。基于孪生神经网络的跟踪算法较好地平衡了跟踪速度和跟踪的精确度,取得了较好的实时跟踪效果。基于孪生神经网络跟踪算法将跟踪看成是一个相似度计算问题,采用目标模板分支和搜索分支实现了鲁棒的跟踪效果。孪生RPN网络跟踪算法在孪生神经网络跟踪框架的基础上,结合分类和回归分支实现了鲁棒的边框回归。本文详细总结和分析了基于孪生神经网络、孪生RPN等网络的跟踪算法,并进行了详细的实验分析和对比。
影响卷积神经网络跟踪效果的主要因素之一是网络主干结构,未来可以在以下方面进行改进并提升跟踪性能:(1)采用更好的主干特征提取网络,如在传统的卷积神经网络中引入可形变的卷积块,使得主干特征提取网络对不规则目标建模更加灵活,增强卷积神经网络的特征提取能力;(2)对跟踪模型的更新机制进行优化,使得跟踪模型能够更好的适应目标的外观变化;(3)相关性在跟踪领域起着很大的作用,尤其是在孪生神经网络中,在相似度计算过程中引入特征融合网络,可以有效地将模板和搜索区域特征结合起来,提高跟踪器的精确度。