基于孪生神经网络的目标跟踪算法进展研究
2022-05-23金国栋薛远亮谭力宁许剑锟
金国栋, 薛远亮, 谭力宁, 许剑锟
(火箭军工程大学核工程学院, 陕西 西安 710025)
0 引 言
视觉目标跟踪是计算机视觉的基础领域之一,也是一项具有挑战性的问题,受到学者的广泛关注。视觉目标跟踪是指在视频序列的初始帧中给定跟踪目标,算法能持续稳定地对后续帧中的跟踪目标进行状态估计和定位的过程,广泛应用于民用和军用领域,如民用智能视频监控、汽车自动驾驶、智能人机交互和军事目标情报收集和精准打击、导弹制导等,目标跟踪无论在国防军事还是民用方面都具有重要的研究意义和广阔的应用前景。
传统的跟踪算法(基于光流法、卡尔曼滤波、核跟踪方法的跟踪算法)通过单一的数学模型描述待跟踪目标,具有很大局限性,很大程度影响模型准确性,且计算过程繁琐,导致跟踪速度难以得到本质提升。为解决上述问题,目前的目标跟踪算法主要分为基于相关滤波的跟踪算法和基于深度学习的跟踪算法。相关滤波(correlation filter, CF)本是通信领域用于计算两个信号的相关性,最小输出平方误差和算法(minimum output sum of squared error, MOOSE)将其用于计算目标模板与后续搜索图像的相关性,并且该过程是在频域中完成的,跟踪速度高达600帧每秒(frames per second, FPS)。核相关滤波算法(kerneli-zed CF, KCF)使用循环矩阵对正负样本进行密集采样,解决负样本数量不足的问题,同时将高斯核引入岭回归中,大大减少计算量和模型大小。考虑到KCF对多尺度目标的跟踪效果不理想,尺度自适应与多特征跟踪算法(scale adaptive with multiple features tracker, SAMF)从7个不同尺度的目标模板中选择响应值最大的尺度,解决尺度变化问题,而区别尺度空间跟踪算法(discriminative scale space tracker, DSST)则单独设计一个滤波器进行跟踪目标的尺度估计。空间正则化辨别相关滤波器(spatially regularized discriminative CF, SRDCF)针对目标快速运动时产生的边界效应,加入正则化约束以抑制背景信息,提高算法的准确度。相较于传统跟踪算法,基于相关滤波的算法无论在精度还是速度方面都有着很大的提升,但都是使用手工设计的特征进行目标的描述,如灰度、颜色、方向梯度直方图(histogram of oriented gradients, HOG)特征等。
近几年来,卷积神经网络(convolutional neural networks, CNN)提取的深度特征鲁棒性好、描述能力强,在目标跟踪领域中渐渐取代了传统手工设计的特征。基于深度学习的跟踪算法主要分为两类。一类算法与CF跟踪算法结合,如分层卷积特征跟踪器(hierarchical convolutional features tracker, HCF)、深度空间正则化辨别相关滤波器(deepSRDCF)、连续卷积跟踪算法 (continuous convolution operators for visual tracking, C-COT)等。利用现成的神经网络模型,为CF跟踪算法提供深度特征。与使用手工特征的CF算法相比,使用深度特征的CF算法的精度和鲁棒性都有着显著提升,但是其使用的神经网络是在图像分类数据集中预先训练好的,更适合分类任务,而不是专门为目标跟踪任务训练的神经网络,与目标跟踪任务的联系不够紧密。为了充分发挥神经网络的能力,不再局限于使用现成的神经网络来提取特征,而是构造出一个端对端训练的跟踪器,另一类跟踪算法则通过神经网络通过端对端的训练,完成目标的特征提取和定位跟踪如多域卷积神经网络(multi-domain convolutional neural network, MDNet)跟踪器等,其中基于孪生神经网络的跟踪算法SINT (siamese instance search for tracking)等得到广泛应用。CF算法与孪生跟踪算法相比:(1) 手工设计的传统特征应对复杂场景的能力不足,而神经网络提取的深度特征中有着丰富的语义特征,能更加鲁棒地表征目标,以应对相似目标干扰、环境变化、背景杂乱等挑战;(2) CF算法的多尺度搜索策略需要得到每个尺度上的响应值,再找出最合适的目标尺度,过程繁琐且耗时。孪生跟踪算法中使用的锚框机制和无锚框机制都能更有效地估计目标尺度,更好地应对尺度变化;(3) 两种算法都将最大响应值的位置作为目标位置,而孪生跟踪算法还会进行前背景分类和边界框回归,提高跟踪结果的准确度。综上所述:CF算法使用的手工特征相对简单、计算量少,应用于计算资源十分有限的平台(如无人机等),但手工特征的表征能力有限、鲁棒性不够,精度得不到保证。随着深度学习技术和硬件配置的发展,绝大多数跟踪平台(如自动驾驶汽车等)都能轻易部署孪生跟踪算法。因此鲁棒性和精度更好、跟踪速度也满足实时要求(≥30 FPS)的孪生跟踪算法,成为了目标跟踪领域的主流方法。
本文对近几年来孪生跟踪算法的发展进行梳理总结。首先,介绍孪生跟踪算法的常见挑战、主要组成、跟踪流程、常用数据集和评价指标。其次,对目前的孪生跟踪算法进行分类总结。这些工作按照主要改进的方向可分为:改进特征提取部分的跟踪算法、优化相似度计算部分的跟踪算法和优化跟踪结果生成部分的跟踪算法。然后,选取20个有代表性的主流跟踪算法进行测试与分析。最后,分析目前孪生跟踪算法的主要问题与不足,并展望未来的研究方向。
1 基于孪生神经网络的目标跟踪算法
孪生神经网络由两个分支的神经网络组成,而这两个分支的神经网络的权重是共享的,利用双分支的输出可以计算出两条分支的输入之间的相似度,因此最初用于银行系统的客户签名验证,后续还应用于人脸识别和地空图像匹配等领域。SINT是第一个使用孪生神经网络用于目标跟踪的算法,将目标跟踪任务看作是一种相似度度量的问题,为目标跟踪提供了一种新思路。后来Bertinetto等人提出的全卷积孪生网络(fully-convolutional siamese networks, SiamFC)跟踪算法,简化了相似度的计算过程,大大提高了跟踪速度,证明孪生跟踪算法在精度和速度上的巨大潜力,因此后续的孪生跟踪算法大多都是基于SiamFC进行研究的。
1.1 常见挑战
如图1所示,目标跟踪的挑战对算法的稳定性与精度有着较大影响,常见挑战如下。
图1 常见挑战
(1) 目标尺度变化:随着目标或者拍摄设备的运动,视角下的目标所占区域面积发生较大变化。如果跟踪算法的尺度适应能力不足,将包含过多的背景信息,污染正样本信息。
(2) 背景杂乱:跟踪过程中背景中含有与目标差异较小的干扰信息,算法容易将背景信息错认为跟踪目标,考验了算法对背景和目标的区分能力。
(3) 运动模糊:由于相机抖动或者目标运动过快,视野中的目标轮廓难以区分、特征信息难以提取,需要跟踪算法有较强的辨别能力,依靠模糊的特征信息也能辨认出跟踪目标。
(4) 相似目标干扰:跟踪视野中出现了与跟踪目标外观、颜色等信息相似的目标,考验跟踪算法对目标的表征能力。能力不足将受到相似目标的干扰,从而跟踪失败。
(5) 出视野:相机的视角变化不及时,导致目标丢失在视野中,需要跟踪算法在目标丢失的过程中有重检测能力,在目标重新出现之后及时发现目标,继续跟踪。
(6) 遮挡:跟踪过程中相机与目标之间有障碍物,使得视野中的目标信息不完整,需要跟踪算法能通过不完全的目标信息来辨认出第一帧中的跟踪目标,考验算法对目标的辨别能力。
(7) 外观变化:目标在运动过程中,其外观与形状发生较大变化,目标的边界框会发生较大的纵横比变化。外观和形状是目标的细节信息,变化的细节信息要求算法不能单纯依靠细节信息来表征目标,还需要有更高级的、更抽象的特征信息来描述目标。
(8) 环境变化:目标所处环境不断变化,目标信息与初始目标信息产生差异,跟踪模板的可靠度下降,算法只有通过一定周期的模板更新才能有效应对目标信息的变化。
1.2 主要组成
和SiamFC的网络结构(见图2)一样,大多数孪生跟踪算法由特征提取部分(·)、相似度计算部分(*)和跟踪结果生成部分组成。特征提取部分为孪生神经网络,一个分支输入初始帧的目标图像作为模板、输出为模板特征图(),另一个分支输入的是后续帧的搜索图像、输出为搜索特征图();相似度计算部分(*)用于整合两条分支的特征图上的特征信息,计算搜索特征图与模板特征图的相似度,生成相似度响应图(,);跟踪结果生成部分根据得到的响应图来预测搜索图像上的目标位置,一般认为最大响应的位置即为目标预测位置,然后在预测位置进行目标尺度估计和边界框回归。
图2 SiamFC网络结构
(,)=()*()+·
(1)
式中:(·)为特征提取部分;*为互相关运算;为每个位置的偏差;为单位矩阵。
1.3 跟踪流程
端对端训练好的孪生跟踪算法跟踪流程如图3所示,主要包括:
图3 跟踪流程
视频序列逐帧输入到特征提取部分;
若为第一帧,模板分支提取目标特征作为模板特征;
若不是第一帧,搜索分支提取当前帧的目标特征作为搜索特征;
相似度计算部分根据两条分支各自提取的特征图,计算二者之间的相似度,生成响应图;
跟踪结果生成部分利用相似度响应图,预测当前帧中的目标位置;
重复步骤3~步骤5,直至视频序列的最后一帧。
1.4 常见数据集
141 训练集
待跟踪目标的类别是未知的,而大多数孪生跟踪算法是以离线、端对端训练的方法来学习一个相似度匹配函数,因此为提高算法对未知类别目标的跟踪效果,包含目标类别多的大规模训练集是必不可少的。跟踪算法的训练集大多数为图像分类和目标检测领域的数据集,这些数据集包含物体类别多、图片数量多,能提高算法的泛化能力。目标跟踪常用训练集如下:
(1) ImageNet VID和DET:有30个基本级别的目标类别、200个子集的目标检测数据集。VID、DET数据集分别有112万和45万张图片。
(2) YouTube-BoundingBoxes:从38万个视频片段中截取的1 050万张图片,包含560万个人工标注的边界框,23个类别的日常物体。
(3) COCO:包含91个对象类型,328千张图像,总共有250万个标注框。
(4) GOT-10k:中科院专门为目标跟踪设计的数据集。由10 000个视频片段和150万个人工标注的边界框组成,包含现实世界中超过560个类别的运动目标和超过80种运动模式。训练集和测试集中的目标类别没有重合,确保了算法的泛化能力。
(5) LaSOT:拥有387万张图片的1 550个视频序列;85个目标类别,平均每个类别有10~20个序列;平均视频序列长度为2 500帧,适合长时跟踪。
(6) TrackingNet:提供超过30 000个视频的大规模数据集、超出其他数据集两个数量级,并标注1 400万个边界框。
(7) Youtube-VOS:包含4 000多个高分辨率视频片段、90多个目标类别,19万个高质量手工标注边界框的半监督视频目标分割数据集。
142 测试集
用于评估目标跟踪算法性能的测试集如表1所示,主要有目标跟踪基准(object tracking benchmark, OTB)竞赛(OTB2013、OTB2015)和视觉目标跟踪(visual object tracking, VOT)竞赛(VOT2013~VOT2020)所使用的基准数据集、ALOV300++、NUS-PRO、TColor-128、TLP、Nfs、LTB35(LTB50)、OxUvA、TrackingNet、GOT-10k、LaSOT、Small90(Small112)、HOB、ROB、TNL2K、UAV123(UAV20L)、DTB70、UAVDT、VisDrone2019-SOT和UAVDark135。其中大部分的数据集专注于短时跟踪任务中,其平均序列长度小于600帧(即30 FPS速度下的视频时长小于20 s),而长时跟踪数据集的数量则相对较少。考虑到短期数据集下的评估效果不能很好地反映真实应用场景中跟踪器的真实性能,从而限制了其实际部署,因此从VOT2018开始的VOT竞赛增加了一条长时跟踪赛道。
表1 主要测试集
续表1
1.5 常用评价指标
目标跟踪算法主要使用的评价指标中通常包括两个基本参数,中心定位误差(center location error, CLE)和重叠分数。其中,如图4(a)和式(2)所示,中心定位误差是计算视频序列中每一帧的预测框中心位置(,)与对应的真实框中心位置( , )的欧氏距离,然后取所有帧的定位误差之和的平均值作为评价指标。
图4 评价参数
(2)
式中:(,)分别为预测框中心的横、纵坐标;( , )分别为真实框中心的横、纵坐标。
重叠分数是计算序列每一帧的预测框 与真实框 的面积交并比(intersection over union, IoU),然后取所有帧的交并比之和的平均值作为评价指标,如图4(b)所示,其表达工为
(3)
式中: 、 分别为预测框和真实框。
跟踪算法跟丢目标时的跟踪框位置是随机的,因此直接取平均值的CLE,不能正确地衡量算法的性能。文献[58-59]提出,通过计算CLE小于给定阈值的帧数量所占的百分比是更好的一个衡量标准。因此,OTB竞赛使用准确率曲线和成功率曲线来衡量算法性能,其中准确率曲线由CLE小于不同阈值时的帧数量所占百分比组成,而成功率曲线由重叠分数大于阈值(从0到1)时的帧数量的百分比组成。将定位误差阈值为20像素点时的准确率和重叠阈值为0.5时的成功率作为算法最终的准确率和成功率。另外,成功率还可以由成功率曲线与坐标轴面积围成的面积,即曲线下面积(area under curve, AUC)计算得到。这种使用第一帧的目标真实框来初始化算法,计算成功率和准确率的方法叫做一次性评估(one-pass evaluation, OPE)方法。此外,为检验算法的鲁棒性,OTB还提出了时间鲁棒性评估(temporal robustness evaluation, TRE)方法和空间鲁棒性评估(spatial robustness evaluation, SRE)方法,让算法分别从不同时刻的帧、不同大小的边界框开始跟踪,检验算法的时间、空间鲁棒性。
此外,VOT2014竞赛提出了准确率(accuracy, A)、鲁棒性(robustness, R)和等效滤波操作(equivalent filter operations, EFO)。准确率A衡量算法的预测框与真实框的平均重叠率;鲁棒性R代表算法跟踪过程中跟踪失败的次数(当重叠分数为0时认为跟踪失败);等效滤波操作EFO用于测量算法的跟踪速度,减少硬件平台和编程语言等外在因素对跟踪速度的影响。VOT2015还提出了一个新的评价指标—期望平均重叠分数(expected average overlap, EAO),用于整体地衡量算法的准确率和鲁棒性。不同数据集都会存在不同的评价指标,但大多数的目标跟踪算法都采用OTB和VOT的评价指标对算法性能进行测试。
2 特征提取部分的改进
提取区分度高、鲁棒性好的目标特征是一个优良跟踪算法的前提,因此后续研究针对特征提取部分做了许多改进和优化。
2.1 改进主干网络
SINT的特征提取部分要求搜索图像块和模板图像大小必须一样,因此为保证一定的搜索范围,需要输入搜索图像上大量的小尺寸搜索图像块。尽管SINT使用了感兴趣区域池化(region of interest pooling, ROI pooling)来筛选重叠的搜索图像块,但是留下的搜索图像块数量仍然较多,其跟踪速度(2 FPS)远不及实时要求。SiamFC则使用全卷积神经网络作为特征提取部分,跟踪过程中直接输入大尺寸的搜索图像,避免了搜索图像块的重复输入,大大提高了跟踪速度(86 FPS)。全卷积网络(fully convolutional network, FCN)跟踪算法考虑到浅层特征辨别性强和深层特征语义信息丰富,为深浅层神经层设计独特的模块,分别作为目标类别检测器和相似干扰辨别器。如式(4)所示,CF跟踪网络(CF network, CFNet)将相关滤波器=()作为一个可微分的神经层,整合到SiamFC的模板分支上,利用深度特征训练相关滤波器,同时结合了两种方法的长处,可有效提升浅层神经网络的跟踪效果。Huang等人发现对于简单场景下的跟踪任务,浅层神经层提取的特征足以应对,不需要再继续输入到深层神经层。于是设计一个判断机制插入到特征提取部分的每一层,根据当前跟踪场景自适应地选择某一特征层作为输出,这种及时停止特征提取的机制能在保证跟踪效果的前提下提高跟踪速度。而语义外观双分支跟踪算法(semantec and appearance twofold branch siamese network, SA-Siam)则发现浅层神经网络提取的特征缺乏语义信息,因此将SiamFC的特征提取网络作为外观分支,又加入一条图像分类中预训练的卷积神经网络作为语义分支,独立训练的两条分支提取的特征信息是相互补充的,能提升SiamFC的鲁棒性。
(,)=s(())*()+
(4)
式中:,为尺度和偏差参数;(·)为可微分的相关滤波器。
深层神经网络(ResNet、Inception等)通过加深网络深度,提取到的深层特征同样具有丰富的语义信息。虽然广泛应用在图像分类、目标检测等领域,但是在更深更宽孪生网络(deeper and wider siamese networks, SiamDW)跟踪算法和非常深层网络的改进孪生区域建议(siamese region proposal network with very deep network, SiamRPN++)跟踪算法之前的孪生跟踪算法[23,68-69]都是用Alexnet或VGG作为特征提取网络,主要原因是有填充存在的深层网络在学习过程中会产生位置偏见:过分关注图片中心位置而忽视边缘位置。SiamDW设计一种裁切残差模块以抑制填充的影响,既能加深网络深度又不会产生位置偏差。SiamRPN++则是在训练过程中使用了一种随机平移的采样策略,同样消除了位置偏见。为了解决目前手工设计的网络结构不是专门为目标跟踪设计的问题,Yan等人结合一次神经结构搜索(neural architecture search, NAS)设计出一种适合目标跟踪任务的搜索算法,得到的跟踪器LightTrack性能更好且参数量更少,可部署在移动平台上。
如图5所示,卷积神经网络本质上是具有平移不变性的,但是由于其具有旋转等变性,不适合处理目标旋转情况,因此旋转等变孪生网络(rotation equivariant siamese networks, RE-SiamNets)跟踪器为了解决跟踪目标出现的平面内旋转,设计一组方向可控滤波器,组成旋转不变模块来替换现有跟踪器中的卷积层。模板分支输入一组不同方向的目标图像,得到的响应图通过最大池化层选取最佳旋转方向的响应图,实现算法对目标旋转角度的估计。更佳匹配孪生网络(better match in siamese network, Siam-BM)跟踪器同样将搜索分支输入一组角度和尺度不同的搜索图像进行训练,训练的算法能有效预测目标的角度和尺度变化。密集孪生网络(densely-siamese network, DensSiam)跟踪器设计出密集连接的孪生主干网络,能捕获对外观变化具有鲁棒性的非局部特征,实现了特征的重复利用,提高了泛化能力。
图5 RE-SiamNets的CNN旋转非等变性示意图
文献[75]专注于处理目标跟踪过程中的尺度变化问题,设计的尺度等变化模块用于替换传统的卷积层、池化层和互相关运算,构建了一个内置尺度等变化属性的卷积网络,能准确捕获目标的尺度变化。尺度等变化模块的参数设置需要评估目标在跟踪过程中的变化情况,然而这一先验信息通常是难以预料的。而文献[76]则专注于处理十分具有挑战性的遮挡情况,针对不同的遮挡情况设计了不同的结构化丢失方法,并将对应的互相关输出相加得到最终预测结果,能够有效模拟出被遮挡时的目标状态。同样是处理遮挡情况,文献[77]使用遮挡感知模块判断遮挡是否发生,如果发生遮挡则基于生成对抗网络(generative adversarial networks, GAN)的预测模块开始工作,根据遮挡前的运动轨迹预测目标在后续帧中的运动轨迹,从而解决目标丢失的问题。
2.2 融合注意力机制
主干网络认为特征图的空间和通道维度上的各个位置都是一样重要的,而融合注意力机制则能帮助网络更好地关注输入中的重要信息(跟踪目标的特征),抑制不重要信息的干扰。SA-Siam在语义分支中使用通道注意力,使得在目标位置周围的通道激活程度高,从而有选择性地分配通道权重。Siam-BM发现当目标的纵横比远离1(即垂直或水平)时,背景信息中容易有显著目标的干扰,而相比于通道注意力有限的抗干扰能力,在特征图上应用空间掩膜有着更强的背景抑制能力和稳定性。残差注意力孪生网络(residual attentional siamese network, RASNet)在特征提取部分中叠加残差注意力和通用注意力模块(如图6)用于学习不同视频中目标的共同特性和区别,同时又融合通道注意力模块以适应目标的外观变化。文献[79]在主干网络最后一层加入非局部注意力模块以得到空间维度的自注意力特征图,和引入通道注意力筛选通道维度上的特征。
图6 注意力模块
而改进的基于目标感知的无锚框(object-aware anchor-free network plus, Ocean-plus)跟踪算法认为传统的通道和空间注意力缺乏对其如何工作的理论解释,提出了一种注意力检索网络,利用特征和存有模板特征的查找表来生成一种亲和矩阵,由此计算得到加权特征图,同样能为提取特征增加一种平滑的空间约束。孪生注意力网络(siamese attention networks, SiamAttn)在SiamRPN++的基础上设计了可变形孪生注意力模块,包括可变形注意力、自注意力和交叉注意力。其中可变形卷积组成的可变形注意力模块,用于应对目标复杂的几何变换;自注意力通过空间注意力来学习明显的上下文信息,通道注意力来选择性地强调通道特征;交叉注意力指导搜索分支来学习目标的模板信息,生成一个更有分辨力的表示,有助于更准确地识别目标,同时还会自适应地更新模板特征。柏罗等人为提高SiamFC对目标的整体感知能力,设计一个局部上下文感知模块,同时嵌入一个高效通道注意力模块用于增强目标与背景的差异化表示。
2.3 训练样本增强
训练过程中正负样本数量的不平衡和难负样本的缺少,导致孪生跟踪算法的正负样本辨别力和对相似物体的抗干扰能力不足。干扰物感知的孪生区域建议网络(distractor-aware siamese region proposal networks, DaSiamRPN)算法在训练样本中加入DET和COCO数据集以提升正样本数量,同时生成了同类语义信息和不同类语义信息的负样本,提高了算法对干扰物的感知能力。孪生重检测跟踪器(siamese re-detection architecture, SiamR-CNN)同样设计难样本挖掘策略来训练网络,并且提出一种跟踪片段动态规划算法:同时检测出包括干扰物在内的所有潜在目标,再利用动态规划算法筛选出最优跟踪结果,性能领先但实时性远远不够。
3 相似度计算部分的优化
SINT中的相似度计算部分,需要逐个匹配初始帧和后续帧,过程繁琐且费时。如图7(a)所示,SiamFC在全卷积神经网络的基础上设计了一种相似度计算方法——互相关运算(cross correlation, Xcorr),可以看作是一种卷积运算:模板特征图作为卷积核,在搜索特征图上逐个滑动地计算相似度,十分灵活简洁。
3.1 改进Xcorr
考虑到特征图的各个位置对Xcorr的贡献并不应该是相同的,RASNet在注意力机制的基础上提出了一种加权Xcorr,有选择性地利用特征图的各个位置。Xcorr得到的单通道响应图包含信息较少,因此孪生区域建议网络(siamese region proposal network, SiamRPN)跟踪算法Xcorr中整合了锚框等高级信息,生成的是多通道响应图,因通道数量随之增加,也叫上通道Xcorr(up-channel-Xcorr, UP-Xcorr),如图7(b)所示。但是UP-Xcorr过大的参数量导致SiamRPN的训练过程难以收敛,SiamRPN++设计了一种轻量化的深度Xcorr(DepthWise-Xcorr, DW-Xcorr),如图7(c)所示,参数量减少10倍并且得到的多通道响应图具有正交特性:不同通道上的响应图代表的语义信息不同。
图7 相似度计算方法
Xcorr在进行相似度匹配时仅利用了二维的长宽信息,而忽视了时间和空间维度的信息,匹配精度不高。孪生时空匹配(siamese spatio-temporal matching, SiamSTM)算法因此设计了用于空间维度匹配的Xcorr以及用于限制相邻帧之间响应图中突变的抑制模块,跟踪结果更加鲁棒和精确。细节的空间信息是实现准确边框估计的关键,而Xcorr和DW-Xcorr的卷积核过大以致于会模糊掉部分空间信息。于是文献[86]引入视频目标分割中的像素Xcorr(Pixel-XCorr),如图7(d)所示,将卷积核分解之后再进行Xcorr,更好地保留和利用了细节空间信息。孪生图注意力(siamese graph attention tracking, SiamGAT)跟踪器认为基于Xcorr的匹配算法中使用固定大小的目标模板限制了跟踪性能,提出了一种自适应感知目标尺寸变化的模板生成方法,并且设计了基于图注意力的相似度度量模块,更多衡量的是目标的部分之间相似度而不是整体,有效应对目标尺度变化和外观变化。而文献[89]分析出DW-Xcorr的局限性主要是因为其是一个不能学习的模块、无法从大规模的离线学习中受益,设计了一个可学习的非对称卷积模块(asymmetric convolution module, ACM)取代Xcorr,通过离线训练能更好地捕获语义相关信息、并且还整合了初始帧的边界框等非视觉信息用于辅助跟踪。
3.2 其他优化
为了应对目标跟踪中常见的出视野情况,DaSiamRPN使用从局部到全局的搜索策略;文献[90]同样扩大搜索区域来应对部分遮挡和快速运动情况,同时融合卡尔曼滤波对目标位置进行预测,有效解决完全遮挡的情况。单次判别式分割跟踪器(discriminative single shot segmentation tracker, D3S)设计的几何不变模型(geometrically invariant model, GIM)和几何约束的欧几里德模型(geometrically constrained Euclidean model, GEM),分别完成对跟踪目标的细粒度分割和鲁棒性定位,二者生成的响应图互补地提高算法的精度定位和辨别力。文献[79]将非局部注意力和通道注意力级联处理得到的响应图与原本的响应图进行加权融合,提高算法的鲁棒性。
相比于多尺度搜索策略,文献[92]提出的一种基于角点检测的跟踪算法,能灵活适应目标的尺度变化。因为传统Xcorr不能计算像素级相似度,所以使用Pixel-Xcorr来计算RoI与模板特征上像素的相似度,编码得到角点的空间信息,再使用空间、通道注意力模块突出响应图上的角点特征信息,提高角点检测的准确度。孪生角点网络(siamese corner networks, SiamCorners)跟踪算法则是使用改进的角点池化层来预测目标的角点,多层特征融合策略帮助池化层生成跟踪目标的多个候选角点,再使用惩罚机制从中选取最优跟踪框。Liu等人发现小目标在跟踪过程中容易出现极度模糊和丢失的情况,因此将小目标信息整合到四元数离散余弦变换图像特征中,通过不断迭代生成目标的聚合特征,能有效提高响应图上小目标的显著性响应,提高对小目标的辨别能力。同时聚合特征还增强了小目标的重检测过程,当发生跟踪漂移时,触发以跟踪目标为优先的显著性检测,重新定位跟踪目标。
4 跟踪结果生成部分的优化
跟踪结果生成部分根据相似度响应图来预测搜索图像上的目标位置,因此响应图信息是否得到充分利用直接决定着跟踪结果的精确与否。许多研究都着力于优化跟踪结果的生成部分,实现更好地利用响应图信息、生成更精确的目标跟踪结果。
4.1 改进尺度估计
目标尺度在跟踪过程中会发生变化,为实现准确的跟踪结果,尺度估计是跟踪算法必不可少的环节。图8(a)为SiamFC的多尺度搜索策略,同时计算多个尺度的搜索图像的响应值,响应值最大的尺度为目标的最佳尺度,这种搜索策略的尺度估计能力有限且影响跟踪速度的提升。最大重合度跟踪(accurate tracking by overlap maximization, ATOM)算法的目标估计部分通过计算候选边界框与真实值的IoU值,将IoU值最大的边界框作为预测结果。但是ATOM的IoU损失函数无法优化边界框完全包含在另一个边界框的情况,DIoUTrack则使用距离交并比视觉跟踪(distance-IoU for visual tracking, DIoUTrack)算法损失函数进行改进,在保持IoU损失函数优势的同时,最小化两个边界盒中心点之间的距离,从而使目标估计更加准确。文献[96]使用ROI Align模块将大小不同的模板特征组成特征金字塔,分别与搜索特征计算相似度,提高网络的尺度适应能力,同时引入全局上下文信息提高网络对干扰物的辨别能力。
图8 尺度估计方法
411 引入区域建议网络
如图9所示,SiamRPN抛弃了传统的尺度搜索策略,引入区域建议网络(region proposal network, RPN),其包含了区分前背景的分类分支和估计边界框的回归分支,将跟踪任务看作局部的目标检测任务。如图8(b)所示,预先定义一组大小不同的锚框完成对目标尺度变化的估计,达到跟踪速度和跟踪精度平衡优势。速度快且精度高的RPN模块在目标跟踪领域得到了大幅应用:SiamRPN++通过加权融合多个RPN模块,进一步精确跟踪结果;预先定义的锚框很难通过一次回归就完成目标的准确定位,导致SiamRPN不能有效应对相似物体干扰和大尺度变化,因此级联孪生RPN (siamese cascaded RPN, C-RPN)算法级联多个RPN模块,逐步回归实现目标的精确定位;跟踪过程中目标尺度变化是随机的,而RPN模块中回归分支依赖于预先定义的锚框,导致在快速运动和小目标情况下定位不准确,于是基于运动感知的孪生网络(siamese motion-aware network, SiamMan)跟踪算法引入一条定位分支和多尺度注意力模块来帮助回归分支精度定位,并且设计空洞空间金字塔模块用于多个尺度的上下文信息。为了降低模型参数,循环优化跟踪模型(recurrently optimizing tracking model, ROAM)使用可动态变换大小的卷积滤波器代替锚框机制来完成对目标尺度变化的估计。
图9 RPN模块示意图
由于RPN模块中回归分支与分类分支是独立训练的,回归分支的最佳边界框与分类分支的最高得分所对应的结果容易出现不一致的情况。为了确保最佳分类分数与最佳边框的统一,孪生互补跟踪(siamese reciprocal classification and regression tracking, SiamRCR)在回归和分类分支中互相建立一种互惠连接,加强两条分支之间的交流,提高跟踪结果的准确度。回归分支同时衍生一条定位分支,用于在推理阶段辅助分类分支的分数预测。石国强等人简化了正样本IoU的计算,将IoU引入分类损失函数,使得IoU越大的样本对分类得分的影响也越大,还将IoU作为回归分支的权重系数,提高中心样本的贡献。IoU作为一个纽带,加强回归和分类分支的耦合,进行联合优化。Cheng等人设计了检测模块和优化模块,优化模块将两条分支结合起来,共同预测目标位置。然后,为了解决干扰物体的影响,以小样本方式训练的检测模块获得了较强的辨别力,能有效过滤背景中的干扰物体。
412 无锚框跟踪器
RPN模块中的回归分支预先定义锚框的参数时,需要数据集中的目标尺度作为先验信息,而文献[27]认为通用目标跟踪的出发点应该是跟踪算法摆脱对目标先验信息的依赖,如锚框中对尺度比例的预定义。并且锚框的超参数设置对算法的性能影响很大,影响鲁棒性的提升。
Chen等人提出的无锚框跟踪器——孪生边界自适应网络(siamese box adaptive network, SiamBAN)跟踪器,避免了设计锚框时所引入的超参数。如图10所示,回归分支不再回归锚框的尺寸,而是每个正样本像素与真实框的偏移量、、、。之前的分类分支是通过计算锚框与真实框的IoU来判断正负样本,因此为无锚框跟踪算法提出一种新的正负样本判别方法:将响应图的像素映射回搜索图像中,落在椭圆之外为负样本;落在椭圆内则为正样本。
图10 前背景分类和边界框回归
无锚框跟踪算法在逐像素生成预测框的过程中远离目标中心的像素点会生成低质量的预测框,影响跟踪性能。因此无锚框孪生分类回归(siamese classification and regression, Siam CAR)算法在分类分支基础上设计一条中心分支来移除生成的分类极端值,同时为防止相邻帧的跟踪结果发生抖动,由多个像素点的预测框加权平均得到每一帧跟踪结果。无锚框的SiamFC(SiamFC++)同样为了消除分类产生的极端值对跟踪结果的影响,设计分类质量评估分支,赋予目标中心位置的像素更高的权重。相比有锚框跟踪算法的模糊分类分数,SiamFC++计算的是模板与搜索图像之间的置信度,确保分类的直接有效,降低了假正样本的出现几率。Zhang等人发现基于锚框的跟踪算法的回归分支是在IoU大于阈值的锚框中训练得到的,而忽视了IoU小于阈值的锚框。跟踪过程中复杂场景下会产生错误累计,预测框的IoU一旦小于阈值,回归分支会因缺乏对低IoU跟踪结果的修正能力而跟踪失败。于是设计了一种应对复杂场景能力强、鲁棒性好的无锚框跟踪算法基于目标感知的无锚框网络(object-aware anchor-free network, Ocean)跟踪算法,对目标逐像素预测回归,修正不精确的边框估计;分类分支中加入特征对齐模块,利用目标的整体特征来提高分类分数的可靠度,同时也提高了对目标的感知能力和尺度适应能力。
4.2 目标分割辅助跟踪
发现半监督的视频目标分割类似于目标跟踪都需要提供初始帧信息和准确定位运动目标等,Wang等人创造性地提出了一种能同时实现视频目标分割和目标跟踪的统一框架孪生分割跟踪(siamese mask tracking, SiamMask)算法,在SiamRPN的RPN模块中设计一条目标分割分支用于预测目标的掩膜,并设计二值分割损失函数用于加强网络的像素级分割能力。在预测的像素级掩膜作为辅助信息的帮助下,算法对目标的辨别能力得到增强,同时生成的旋转跟踪框对目标的定位更加准确,避免过多背景信息的干扰。
由图11可见,旋转跟踪框对目标的估计更加灵活准确,也不会包含过多的干扰信息。VOT中基准数据集也开始采用旋转框标注目标信息,如VOT2016和VOT2018。近年来,目标跟踪领域一个明显的趋势是开始预测目标的二值掩膜,VOT2020的基准数据集中掩膜也取代传统的边界框来编码目标信息,并且提出一种评估跟踪器的新方法。
图11 不同跟踪框的跟踪结果
许多研究开始缩小目标跟踪和视频目标分割的差距,SiamR-CNN将跟踪模型预测的边界框作为空间约束,使用现成的分割模型预测其中物体的掩膜,提高了算法的跟踪指标但跟踪速度受到影响。文献[112]认为直接融合多层主干特征而忽略其中的背景干扰特征虽然有效但容易引入漏检目标,降低分割准确率。因此,在无锚框跟踪器Ocean的基础上引入轻量化分支用于掩膜分割,设计注意力检索网络以过滤主干特征,和多分辨率多级分割网络利用预测的掩膜进一步减弱背景干扰的影响。
D3S利用两个几何模块GEM和GIM分别完成对目标的定位和分割,二者同时进行且相互弥补,共同提高算法准确率和鲁棒性。仅在YouTube-VOS分割数据集上训练,就能在多个数据集上取得第一。孪生优化算法Alpha-Rene在SiamRPN++中设计一个掩膜预测分支,提供目标形状信息,辅助其他分支提取更多的细节空间信息,同时也将预测的目标掩膜作为一种像素监督,提高算法的辨别力。
图12 目标分割分支
4.3 在线更新机制
孪生跟踪算法是一种基于模板匹配的方法,大多数算法在推理阶段的模板从初始帧提取之后就固定不变。在处理遮挡和出视野时,搜索范围允许的情况下能实现目标的重新跟踪。一旦目标在跟踪过程中发生较大的外观变化,与初始模板差异很大时跟踪算法容易跟踪失败。因此,拥有鲁棒的目标匹配模板,对于目标跟踪任务、特别是长时跟踪任务来说至关重要。
4.3.1 模板更新策略
构建目标的模板库,并从中更新匹配模板是一种常见的更新策略。文献[113]认为模板更新应有合适的频率,过快或者过慢都会造成跟踪漂移,首先将每个候选目标稀疏表示在联合字典中,然后使用粒子滤波框架下的动态模板更新联合字典中的正样本,负样本的更新则是新样本替换旧样本。文献[100]在孪生跟踪算法的基础上,利用高斯混合模型对以往的跟踪结果进行建模并建立目标特征模板库,使用感知哈希算法计算当前帧跟踪结果与模板库的相似度,判断当前帧是否为目标的新状态。如果是新状态则提取特征并保存在模板集中,若为已存在类别状态则直接替换模板集中的特征,使网络能够自适应目标的外观变化。记忆网络目标跟踪(memory networks for object tracking, MemTrack)算法使用动态记忆网络检索跟踪过程中生成的残差模板,并将残差模板与初始模板进行结合,得到一个合成模板。其中长短期记忆(long short term memory,LSTM)模块作为检索操作的控制器,其学习质量决定着跟踪器的整体表现。时空记忆网络跟踪(tracking with space-time memory networks, STMTrack)算法同样使用时空记忆网络检索目标之前的跟踪结果,引导跟踪器关注当前帧中有用信息最丰富的区域。与MemTrack不同的是,当前帧控制着检索操作,因此它可以自适应地获得所需要的一切信息。
大多数在线更新算法由于梯度下降法和有限内存下的过度更新策略的存在,导致算法收敛效果不好和容易对模板库产生过拟合。因此文献[116]提出了一种基于递归最小二乘估计(recursive least-squares estimation, RLSE)算法的在线更新机制,利用正态方程分别用LSE算法将各全连接层连接起来,以递归的方式保存内存,保证算法不会过度抛弃旧样本,降低过拟合的几率。并在此基础上使用改进的小批量随机梯度下降算法来指导网络的学习,提高了在所有历史训练样本上计算代价函数时的收敛性能。文献[117]发现目标跟踪只有初始帧信息作为先验知识,与小样本学习任务类似,于是在SiamRPN++和ROI Align得到的候选目标集中训练小样本学习器,学习器用于区分正负样本并更新模板库,同时模板库也会帮助小样本学习器进行更好地学习。模板更新方法如图13所示。
图13 模板更新方法
另外还可以直接对匹配模板进行更新,避免了模板库的建立,以提高在线更新的速度。CFNet在每一帧中都计算一个模板,并将其与之前帧的模板进行平均,作为新的模板,但是更新频率过快容易造成错误累计。动态孪生网络(dynamic siamese network, DSiam)跟踪算法使用归一化线性回归计算一种能够动态学习目标外观变化的模型,利用前一帧跟踪模板纠正匹配模板,充分考虑了目标跟踪过程中的平滑时间变化。Li等人提出了一种梯度引导的孪生网络(gradient-guided siamese network, GradNet)跟踪算法,创造性地从梯度信息中提取出有助于辨别的信息,在前向和后向传播中被用于目标模板的更新。并且模板也是在多个不同目标类别的搜索区域中生成的,提高了模板的鲁棒性,避免对某个类别的过拟合。文献[120]则是在强化学习的基础上,智能体根据预测结果的分数来决定是否更新匹配模板,匹配方法的选择也由智能体的决策记录同时确定,并且同时完成了目标的跟踪与分割任务。
432 在线更新网络模型
相比于利用跟踪过程中的样本信息来更新匹配模板,直接更新模型参数能更好地提高模型的辨别能力。Ocean为捕获目标的外观变化,使用快速共轭梯度算法在跟踪阶段训练一条在线更新分支。ROAM为了有效地使模型适应目标的外观变化,离线训练了循环神经优化器以元学习的方式更新模型,可以在几个梯度步骤就收敛模型。Bhat等人为实现端对端的训练,将模型在线学习整合到跟踪框架中。设计的辨别预测式跟踪(discriminative model prediction for tracking, DiMP)算法首先对初始帧使用数据增强的方式得到一组训练集,并且直接利用来训练模型预测器。当预测器能生成可靠的结果时,将其加入到,当样本数超过50时抛弃旧样本。这些方法只注重结合之前跟踪结果中的目标特征,忽略了梯度信息的重要性。
大部分处理长时跟踪器都是离线训练的孪生结构,不能有效应对长期跟踪过程中的不确定和嘈杂的影响因素,文献[122]设计的元学习更新器有效地将几何线索、判别线索和外观线索按顺序整合在一起,然后利用设计的级联LSTM对序列信息进行挖掘,学习得到的二进制输出用于决定跟踪器是否更新。为了同时满足鲁棒性和准确性,Zhou等人设计了一个双模态的跟踪框架,在线回归模块用于对目标的鲁棒定位、离线分类模块进行目标的精确定位,利用分数投票策略融合二者的输出,得到的跟踪结果鲁棒性好且准确性也高。文献[124]将SiamFC主干网络的前三层作为通用特征提取部分,后两层作为个性特征提取部分并根据样本在线更新网络参数,不同的更新方式确保了网络的跟踪速度和准确度。
4.4 其他
Nam等人考虑到直接使用在ImageNet数据集上训练得到的CNN为目标跟踪提取特征,限制了跟踪算法的性能。设计的MDNet,使用多个特定分支在不同视频序列中训练,从中学习到适合目标跟踪任务的通用目标特征表示。但是其一部分训练集来源于测试集,存在过拟合的可能。文献[125]发现当目标存在尺度变化和旋转情况时,Siam FC的跟踪结果会变得不准确。于是将对数极坐标系下的相关滤波算法作为尺度和旋转估计模块,继续对跟踪位置进行精确细化,提高了Siam FC算法的定位精度。高琳等人为了提高CNN分类结果的可靠性,将孪生跟踪算法嵌入一致性预测框架。根据算法随机性水平来计算样本的置信度,选取高置信度的样本组成候选目标集,再利用优化时空能量函数筛选候选目标集,从而得到跟踪结果。并根据上一段序列的结果更新CNN参数,提升了算法的稳健性。动态多目标式跟踪(tracking via dynamic convolutions and multi object tracking philosophy, DMTrack)算法首先使用动态卷积组成的轻量检测器对搜索区域的所有潜在目标进行检测,潜在目标特征与模板特征之间再进行重识别,完成跟踪目标的搜索。借助多目标跟踪原理,通过掌握所有潜在相似物体的状态信息来区分出跟踪目标与干扰物,实现干扰物的快速且准确的感知。
5 实验结果与分析
本文利用常用的测试数据集OTB2015对20种主流跟踪算法进行测试与分析,其中孪生跟踪算法有:SiamAttn、SiamDW、SiamCAR、SiamR-CNN、MDNet、DaSiamRPN、SiamRPN++、GradNet、SiamRPN、CFNet、SiamFC;相关滤波算法有:DeepSRDCF、MEEM、SRDCF、Staple、SAMF、DSST、fDSST、Struck。评价指标为第1.4节中的成功率和准确率,使用到的算法结果由数据集和作者官方提供。图14为这20种算法在OTB2015上的成功率和准确率曲线,其中SiamDWrpn与SiamDWfc分别为SiamDW应用在SiamRPN和SiamFC上的跟踪算法。
图14 算法在OTB2015上的测试结果
从图14中可以看出:
(1) 相关滤波算法的排名整体靠后。排名最靠前的相关滤波算法为DeepSRDCF,也是基于深度特征的相关滤波算法。说明CNN提取的深度特征具有更强的表达能力和鲁棒性;
(2) 成功率、准确率排名前五的算法均为孪生跟踪算法,为使用了注意力模块和模板特征更新的SiamAttn、加深网络深度的SiamDWrpn、无锚框跟踪器SiamCAR、多域学习的MDNet以及有重检测功能和目标分割辅助跟踪的SiamR-CNN。其中的MDNet一部分训练集来源于测试集,存在过拟合的可能。
表2为20种算法的具体性能对比,其中CNN代表卷积神经网络提取的深度特征、HOG代表方向梯度直方图特征、CH代表颜色直方图特征、CN为颜色特征、Gray为灰度特征、Haar为Haar角点特征。表中右上角标①的数据为结果中的第1名,标②的数据为第2名,标③的数据为第3名。可以看出:
表2 算法在OTB2015上的具体性能对比
(1) 基于传统特征的相关滤波算法速度较快,但成功率和准确率不高。因此,大多数相关滤波算法为了提高跟踪性能,会结合多种传统特征来表示跟踪目标,但是其跟踪速度会受到影响。
(2) 整体性能排名前10的跟踪算法中9个为孪生跟踪算法,唯一的相关滤波算法DeepSRDCF也是基于深度特征的。并且成功率和准确率排名前3的算法都是孪生跟踪算法,分别为SiamAttn、SiamR-CNN、SiamCAR和SiamAttn、SiamCAR、SiamDWrpn。跟踪速度排名前3中的第1名和第3名为孪生跟踪算法SiamRPN和SiamDWfc。引入RPN模块的SiamRPN证明了孪生跟踪算法可以同时具有速度和精度的双重优势,因此孪生跟踪算法逐渐代替相关滤波算法,成为了目标跟踪领域的主流算法。
6 存在问题与未来研究方向
6.1 存在问题
(1) 跟踪速度不够快,训练周期较长:孪生跟踪算法的特征提取部分的网络层数一般较多,为提高模型的泛化能力,需要在ImageNet图像分类数据集上进行预训练;并且训练过程中的数据集数量级较大,所需训练时间较长。
(2) 缺少专门为目标跟踪设计的主干网络:目前孪生跟踪算法的主干网络都是使用现成或者微调的分类网络(Alexnet、VGG、ResNet等),而这些网络不一定就适合目标跟踪任务且计算昂贵。
(3) 相较于短时跟踪任务中的优异表现,孪生跟踪算法在长时跟踪任务中的性能一般。主要原因有两点:① 在长时跟踪过程中,目标的外观和环境都会发生变化,而孪生跟踪算法作为基于模板的匹配方法,匹配模板跟不上目标的变化,则会出现跟踪漂移现象;② 在目标出视野或者完全被遮挡之后重新出现时,目前孪生跟踪算法的解决办法:目标丢失时扩大搜索区域和利用目标检测网络作为重检测模块,但这些耗时的目标搜索策略都会严重阻碍跟踪速度,影响其实际应用。
6.2 未来研究方向
未来研究方向可以从以下方面进行研究:
(1) 优化主干网络。利用剪枝、量化等模型压缩技术对跟踪模型进行轻量化处理,减少不必要的网络计算有助于提高算法的跟踪速度。也可利用神经架构搜索的方式,根据任务特点,自动搜索出专门为目标跟踪设计的主干网络。
(2) 无监督训练或者小样本训练的跟踪网络。跟踪任务中的目标信息是不可能提前知道的,为提高对未知类别目标的跟踪性能,现有的跟踪算法使用了大量的训练数据集来提高算法的泛化能力。为了摆脱对训练集的严重依赖,训练跟踪网络的方法可考虑无监督训练或者小样本训练,利用仅有的初始帧目标信息作为正样本来训练神经网络。
(3) 重检测机制是良好的长时跟踪算法中必不可少的模块。可考虑在跟踪算法中加入轻量化检测网络、传统的光流法或者卡尔曼滤波进行目标的运动检测和轨迹预测。也可以单独训练一个小网络完成对目标的轨迹预测,并与现有的跟踪网络加权融合,互补地提升长时跟踪能力。
(4) 以自注意力为主的Transformer模型在自然语言处理领域中取得优异表现,受其强大表示能力的启发,Transformer已开始应用在目标分类、检测和分割等计算机视觉领域,并展示出竞争性甚至更好的性能。因其关注全局信息、能建模长距离依赖关系等特点,可与关注局部信息、全局信息捕捉能力弱的CNN结合,共同互补地改善孪生跟踪框架,为目标跟踪领域开拓更宽的思路。
7 结 论
视频目标跟踪是其他视频理解任务(如姿态估计、行为识别)的基础,鲁棒性好且成功率高的目标跟踪算法能更好地帮助计算机理解视频内容。孪生跟踪算法作为目标跟踪领域的主流算法,本文首先介绍了孪生跟踪算法的常见挑战、主要组成、常见数据集、常用的评价指标和跟踪流程;然后根据在孪生跟踪框架的不同部分的改进,介绍了近年来的主要工作,可分为对特征提取部分的改进、对相似度计算部分的优化以及对跟踪结果生成部分的优化;接下来,选取有代表性的20个主流跟踪算法进行测试、分析;最后对目前孪生跟踪算法存在的问题进行总结并提出未来的研究方向。