张长弓,杨海涛,冯博迪,王晋宇,李高源
(航天工程大学 航天信息学院,北京 101400)
单目标跟踪是计算机视觉领域的研究方向之一,其基本任务是获取视频中单个目标在每一帧中的位置信息,为对目标的运动行为及规律的分析和理解提供基础,以便完成更进一步的研究。随着计算机硬件性能的不断提高,越来越多的领域开始出现基于单目标跟踪的具体应用,如交通监控[1]、行人检测[2]。但由于复杂多变的现实环境,目标跟踪依旧面临着许多挑战。
近几年,基于深度学习的目标跟踪方法取得了不错的研究成果,尤其是基于孪生网络的一系列跟踪器。Bertinetto等[3]首次提出将孪生网络应用于跟踪问题中,开创性地将跟踪问题转化为了相似性学习问题,取得了又好又快的效果。而SiamRPN[4]等一系列跟踪器则将目标检测领域的区域推荐网络(Region Proposal Network,RPN)引入到孪生网络中,将跟踪问题转换为基于孪生网络的RPN检测框架,提供了跟踪器发展的新思路。
孪生跟踪器使用模板匹配的方法,在海量视频数据中进行端到端离线训练,因此无法在线更新模板,在面对目标发生特征变化的情况时,跟踪器容易出现漂移、丢失等。此外,模板匹配方法仅通过目标的外观进行推断,导致丰富的背景上下文信息被忽略,而背景信息对于区分目标周围的相似物体极为重要。基于这些考虑,本文通过结合注意力机制和特征金字塔网络,开发了一种利用丰富的上下文信息来增强目标表征能力的孪生跟踪器,它可以增强目标表示,提高RPN的分类和回归的准确度,降低复杂背景和相似物体的影响,从而提高跟踪器的鲁棒性和准确性。
本文所提出的SiamERPN(Siamese Enhanced-RPN)算法在SiamRPN++[5]基础上,使用金字塔式特征融合方法自顶向下融合骨干网络,使用通道注意力和空间注意力对RPN进行增强,利用丰富的上下文信息提高对目标的辨别能力,降低复杂背景和相似物体的干扰。图1为本文算法构建的网络模型框架图,主要由特征提取网络、特征融合模块和增强RPN三部分组成。
图1 SiamERPN网络结构图
Bertinetto在文献[3]中通过将孪生网络应用在目标跟踪,把实现跟踪转变为了解决相似性学习问题。孪生跟踪器包含初始帧目标模板图像z和当前帧搜索图像x两个输入,分别经过共享参数φ的卷积神经网络(Convolutional Neural Network,CNN)映射到相同的特征空间中,然后应用相似性度量函数g(φ(x)、φ(z))来衡量两者间的的相似性,在响应值最大的位置估计目标状态。SiamRPN把RPN[6]与孪生网络结合,将φ(z)和φ(x)使用上行通道(up-channel)互相关计算后送入RPN生成密集响应图,以实现基于RPN的目标跟踪。
SiamRPN++则在SiamRPN的基础上通过改变采样方式消除了严格平移不变性被破坏所带来的影响,使孪生网络可以利用现代化网络如ResNet[7],从而提高了孪生跟踪器特征提取网络的性能。聚合多层特征并建立多个RPN以更准确地预测目标状态。另外,将上行通道互相关替换为深度(depthwise)互相关,减少了大量的参数,提升了跟踪器速度。本文的方法延续了 SiamRPN++的思想,使用较深的ResNet-50作为骨干网络,采用深度互相关和多层特征融合策略。但相比于SiamRPN++的多RPN线性融合,本文提出了一种金字塔式特征层融合方法对骨干网络进行增强,提高对目标的表征能力,另外,本文还引入增强RPN模块以强化RPN对前背景分类和边界框回归的准确性。
RPN使用滑动窗口技术在特征图的每个位置都生成k个矩形锚框(anchor),通过对可能包含物体的锚框进行回归,最终得到精确的目标边界框。RPN包含两个分支:分类和回归,我们将目标模板和搜索图像的特征进行深度互卷积以送入这两个分支进行训练。其中,分类分支的任务是判别每个锚框属于目标还是背景,即二分类任务,因此进行深度互相关后得到2k个特征,分类分支针对这些特征进行前背景判别。回归分支的任务是对生成的锚框进行回归计算,得到较为准确的边界框。由于以[x,y,w,h]来表示一个锚框的范围,因此k个锚框最终得到4k个特征,回归分支将这些特征转变为更加精确的边界框。
如图2所示,增强RPN模块以骨干网络计算的卷积特征作为输入,通过应用注意力机制输出增强后的分类和回归结果,其包含RPN和注意力模块两个部分。
图2 增强RPN结构图
RPN的分类分支关注特征图中的语义部分,文献[6]阐述了特征图中不同的通道对特定目标具有不同的响应这一特点,即对不同目标,有些特征通道可能更为重要,而有些通道则可能完全无关,这种无关于目标语义的特征通道常常会影响模型的相似性计算过程,进而影响跟踪结果,因此使用通道注意力,通过建模特征通道间的依赖关系以及提取各通道的权重来增强特定通道对语义的响应,降低无关通道的影响。另一方面,回归分支关注特征图中目标的空间位置,自然地,考虑使用空间注意力对特征图进行增强,突出目标的空间位置,以获得更好的回归结果。
如图3所示,使用X∈C×Hx×Wx和Z∈C×Hz×Wz表示目标模板和搜索图像的特征,以分类为例,搜索图像的特征图C×Hx×Wx送入RPN后使用CBAM(Convolutional Block Attention Module)[8]进行注意力增强。首先经过通道注意力模块。CBAM使用平均池化和最大池化来聚合的上下文信息生成和两个特征,然后将这两个特征送入共享权重的多层感知机(Multi-Layer Perceptron,MLP),MLP包含一个隐藏层。为了减少开销,在隐藏层中引入了压缩率r,使隐藏层神经元个数变为C/r。经过MLP得到通道权重Mc,最后与原特征相乘,输出通道增强后的特征即
(a)通道注意力网络结构图
(b)空间注意力网络结构图图3 注意力结构图
(1)
式中:Mc表示通道权重,σ表示sigmoid激活函数,AvgPool和MaxPool分别表示平均池化和最大池化,MLP代表多层感知机,W0∈C/r×C和W1∈C×C/r是MLP的隐藏层权重和输出层权重。
(2)
式中:Ms表示空间位置权重,f7×7代表7×7卷积层。
采用较深的网络ResNet-50作为骨干网络,以获得更好的特征提取能力。由于单层特征对目标跟踪来说较为乏力,无法同时提供不同分辨率、多尺度、丰富语义和较细的外观特征,而且对于ResNet来说,特征层之间的跨度较大,低层关注外观特征等低级信息,可以帮助建模目标外观,高层关注语义这一高级信息,在面对物体形变遮挡等问题时具有良好的表现,因此考虑使用多个特征层进行融合以解决前述弊端,提高骨干网络的表达能力。
SiamRPN++尝试使用ResNet的多个特征层来提高表达能力,但其仅对conv3_x,conv4_x,conv5_x三个特征层进行线性加权求和,没有较好地利用浅层外观特征和深层语义。因此受文献[9]的启发,采用了金字塔式融合特征层的方法,即深层语义指导浅层特征,以实现多层特征更有效的融合,同时边融合边检测,在特征融合的基础上对RPN进行线性加权,以得到更精确的结果,如图4所示。
图4 金字塔式特征融合结构图
采用边融合边检测目标的思路,首先将最深的特征层F5使用双线性插值法上采样到特征层F4的分辨率,与F4进行线性相加得到F45,送入RPN1,最后将F45上采样到F3的分辨率并与之相加,送入RPN2,从而实现语义指导的特征层融合,提高骨干网络的特征提取能力。另一方面,对于送入RPN的256维特征图,每层特征图上的每个位置都会产生5个尺度的锚框,在分类分支中每个锚框会得到维度为2的得分图进行前背景分类,即特征图的每个位置都会产生共2 560个参数。因此每增加RPN的数量都会引入大量参数,增加网络的时间复杂度,降低跟踪器的速度。同时,采用conv5_x特征的RPN跟踪效果较差[5]。综合以上考虑,为了使跟踪器在速度与跟踪效果上更加平衡,相比于基线算法,我们精简了conv5_x对应的RPN。
最后,将RPN1和RPN2进行加权求和,权重初始值为1,作为可学习参数在端到端的训练中自适应地确定,以得到更加精细的跟踪结果:
(3)
在本文提出的算法结构中,骨干网络使用ImageNet[10]的图像分类预训练数据进行初始化,整个网络在COCO[11]、ImageNet VID、Youtube-BoundingBoxes[12]数据集中进行端到端训练。根据孪生网络的核心思想即相似性学习,将训练集原图像通过平移、裁切等方法进行扩充为多个包含目标的不同图像,使网络学习衡量对象相似性的方法。
采用OTB100[13]数据集进行算法结果的测试验证和对比。OTB100是目标跟踪最常用的评价数据集之一,包含有100个视频序列,通过精度和成功率的曲线下面积得分(Area under Curve, AUC)来评价跟踪器的准确性和鲁棒性,其中精度表示算法估计坐标与真实坐标在给定欧氏距离阈值下的帧数所占百分比,成功率则代表算法估计边界框和真实边界框在一定阈值下的重叠区域比例。
采用AMD 5700x、nVidia RTX3090作为实验平台,基于Windows 10 x64、python 3.6和pytorch 1.8进行开发。
跟踪器的骨干网络使用减少步长的ResNet-50,RPN使用[0.33,0.5,1,2,3]这5种不同尺度的锚框,采用0.9动量的随机梯度下降法作为优化算法。遵循SiamFC,跟踪器的模板分支输入采用127×127大小的图像,搜索分支则使用255×255的图像。整个网络采用端到端的方式训练了20轮,前10轮冻结骨干网络,后10轮将参与特征融合的骨干网络3、4、5层卷积层加入训练中。
2.3.1 定量分析
为了全面对比验证本文所提算法的有效性,选取了目标跟踪领域较为优秀和经典的算法KCF[14]、SRDCF[15]、BACF[16]、DeepSRDCF[17]、SiamFC、CFNet[18]、SiamRPN、ATOM[19],SiamRPN++共9种算法一并进行跟踪效果的测试,其中SiamRPN++为本文算法的基线。首先在OTB100数据集中进行测试,实验结果如图5所示,除本文算法外的实验数据来自文献[20]的公开成果。
(a)算法成功率图
(b)算法精度图图5 10种算法在OTB100数据集上的运行结果对比
为了更直观地进行算法对比,将结果整理为表1,粗体为排名第1,斜体为排名第2,下同。可以看出,本文算法具有0.668的成功率AUC和0.876的精度AUC,不仅比对比基线算法成功率提升了9.1%,精度提升了5.1%,而且相比于排名第二的ATOM算法也有1.5%的成功率和1.9%的精度提升,与其他算法相比提升更大,表现出了良好的跟踪精度和鲁棒性。
表1 10种算法在OTB100数据集上的运行结果表
OTB数据集不仅可以评价算法的总体性能,其包含的不同属性视频序列可以测试算法在面对不同挑战时的表现,以进行更细粒度的评价。OTB主要包含有遮挡(occlusion,OC)、光照变化(illumination variation,IV)、运动模糊(motion blur,MB)、视野外(out of view,OV)、尺度变化(scale variation,SV)、背景干扰(background clutter,BC)、快速移动(fast motion,FM)、形变(deformation,DEF)、平面内旋转(in-plane rotation,IPR)、低分辨率(low resolution,LR)、平面外旋转(out-of-plane rotation,OPR)等11种挑战,表2和表3给出了前述算法在这些挑战中的成功率和精度。可以看出, SiamERPN在11种挑战中除了DEF稍弱于基线算法,BC和OC稍弱于其他算法外,成功率和精度均取得了较为优秀的表现,这得益于注意力机制对RPN的增强,以及特征融合对骨干网络特征提取能力的提升。
表2 10种算法在OTB100数据集11种挑战中的成功率表
表3 10种算法在OTB100数据集11种挑战中的精度表
2.3.2 定性分析
为了更加直观地对比展示SiamERPN与其他算法的差异,选择OTB100中的6个视频序列Box、Football1、Matrix、MotorRolling和Trellis,将包含SiamERPN在内的5个跟踪结果可视化,进行定性分析。这6个视频序列囊括了前述11种目标跟踪挑战,可以比较全面地分析跟踪器效果,测试结果如图6所示,其中黑色代表本文提出的SiamERPN算法,红色为本文的基线算法SiamRPN++,绿色为经典算法SiamFC,白色ATOM和蓝色CFNet则是较为优秀的孪生网络改进算法。
在Box序列中,在面对物体发生旋转、遮挡和相似物体干扰时,SiamFC总是跟踪相似物体,ATOM和SiamRPN++不同程度的发生误判,而SiamERPN和CFNet跟踪鲁棒性较强,其中SiamERPN在物体旋转时具有较高的跟踪精度,可以将物体侧面也纳入标注范围。在Football1序列中,目标快速运动和旋转,产生运动模糊的同时多个球员作为密集干扰项阻碍跟踪器判断,SiamERPN可以稳定且精准进行跟踪,四个对比算法则发生丢失和精度过低的问题。在Matrix、MotorRolling和Trellis三个序列中,目标发生快速反复的明暗变化,同时Matrix中有较强的遮挡干扰,可以看到,除SiamERPN和基线算法表现良好外,其他三个算法均出现不同程度的错误。而在Bird1序列中,面对长时间的阻挡,几种算法均出现了不同程度的漂移,阻挡消失后,除ATOM外的算法均错误地跟踪到相似目标。综上,SiamERPN在表现出良好性能的同时仍有一定的局限性。
2.3.3 速度分析
目标跟踪作为一种实时性算法,对运行速度具有一定的要求(15 frame/s)[21]。为验证本文算法具有一定的高效性,将SiamERPN与经典孪生网络算法进行速度的横向对比。表4展示了4种算法在OTB数据集中的测试结果,其中SiamERPN(w/o attention)表示只包含有特征融合模块的本文算法,用以验证该模块对算法速度的影响。
可以看出,SiamERPN的速度均弱于对比算法,这是注意力模块和RPN的大量参数导致的,但SiamERPN与基准算法的速度差距较小,且符合实时性的要求,同时性能表现具有较大优势,综上来看,SiamERPN可以很好地实现速度与性能的平衡。另一方面,SiamERPN(w/o attention)的结果显示,即使经过上采样等操作,在剪枝RPN后仍可以实现与基准算法相近的速度,说明精简RPN数量对平衡速度和性能是有帮助的。
本文提出了一种基于注意力增强的RPN和金字塔式特征融合的目标跟踪算法SiamERPN,对现有SiamRPN++算法进行了改进。首先利用注意力机制对RPN进行改进,通过通道注意力和空间注意力突出目标的语义特征和空间位置,使RPN可以获得更好的前背景分类和边界框回归结果;然后针对SiamRPN++的特征融合机制提出了一种改进方法,通过金字塔式自顶向下融合实现具有丰富语义的细粒度检测。实验结果表明,本文所提算法的性能相比基线算法具有一定的提高,同时RPN数量的降低减少了网络复杂度,实现了跟踪器在速度与跟踪效果上的平衡。