陈志浩,杨小军
(长安大学 信息工程学院,陕西 西安 710001)
视觉目标跟踪是计算机视觉的重要研究内容之一,在图像识别、人工智能、无人驾驶等领域都有着广泛的应用[1]。即使现阶段已经存在很多的目标跟踪模型和算法,但要解决尺度剧烈变化、部分或者全部遮挡、较大形变等挑战性因素,视觉目标跟踪算法的科学研究还有很长的路要走[2],所以,设计一种精度高且在复杂场景下鲁棒性好的目标跟踪算法有着重要的意义和价值[3]。目前视觉目标跟踪算法主要分为相关滤波类算法和深度学习类算法。在相关滤波类算法中,KCF[4]利用傅里叶变换的性质和循环矩阵的优势,很大程度上减少了计算量,提高了计算速度。深度学习类算法中又可以分为结合深度特征的相关滤波类方法和基于孪生网络的目标跟踪算法[5]。相关滤波结合深度特征是把手工设计的特征换成深度特征,提高了算法的准确度,卷积层输出的深层特征比HOG浅层更具有判别力。吴刚[6]提出了相关滤波跟踪器和DCNN深度特征结合的算法。从MOSSE[7]之后,一些相关滤波类跟踪算法为了得到更好的跟踪效果,使用了越来越高维度的特征,导致这些算法在GPU上也难以达到实时的跟踪效果。Bertinett提出了基于匹配相似度的全卷积孪生网络目标跟踪算法SiamFC[8],SiamFC通过学习一个搜索帧图像和模板帧图像的相似度函数比较相似度来得到跟踪结果。CFNet[9]将相关滤波器作为一个网络层内嵌到孪生网络中,提高对深度特征的学习能力。Li提出的SiamRPN[10]结合了孪生网络和FasterR-CNN[11]中的区域推荐网络,取消了多尺度检测进而使用边界框回归来得到最大响应的边界框,同时提高了跟踪器的性能。针对SiamRPN的不足,SiamRPN++[12]采用了一种空间感知采样策略使网络的平移不变性不受影响,成功地把残差网络和孪生网络结合在一起。之后,SiamDW[13]将SiamFC和SiamRPN的特征提取网络换成了CIR残差单元,提升了原来跟踪器的性能。尽管SiamFC的跟踪效果已经很好,但是还有可以提高的空间,其改进AlexNet[14]作为特征提取网络,仅仅使用深层语义特征而未考虑将其和浅层位置特征融合,单一的特征表达导致快速移动时定位能力不好;并且仅使用首帧图像当作模板在遮挡、变形等复杂场景下容易导致跟踪失败。针对以上不足,在SiamFC的基础上将其特征提取网络AlexNet替换为改进后的深层网络MobileNetV2[15]并且引入模板更新策略,并设计了一种有效的多级串联特征融合注意力机制,将第一帧图像、当前帧的前一帧图像的聚合注意特征和当前帧图像不同层特征分别进行匹配,增强了算法的鲁棒性。在OTB100数据集上的实验表明,该算法可以实现鲁棒跟踪并且与其他跟踪算法相比具有更高的跟踪成功率、准确率。
如图1所示,算法框架是由特征提取网络、多级特征融合注意力模块和模板更新模块组成。特征提取网络使用改进后的MobileNetV2,选择在第三、五、七个BottleNeck的特征进行多级特征串联地逐步融合,然后利用通道注意力模块和空间注意力模块对各层特征和特征的通道加权,对跟踪任务发挥作用大的特征和通道给予较大的权重。最后计算模板图像和搜索图像之间的匹配相似度,生成4个响应图,并通过加权和组合以预测跟踪目标的位置和尺度。
图1 算法整体架构
强大的特征表示对于鲁棒的视频目标跟踪算法至关重要,由于跟踪过程中目标和环境的复杂多变性,不同层的特征在不同的跟踪阶段发挥的作用不同。此研究不再使用较浅的AlexNet网络,而以适当改进后的MobileNetV2作为特征提取网络。为了平衡参数规模和特征丰富度同时又要解决特征冗余,选择第三、五、七BottleNeck的特征进行多级特征融合。原本的MobileNetV2由三个卷积层、一个池化层和七个卷积区(BottleNeck)组成,针对目标跟踪的任务特点,减少无关运算所用网络去掉了最后一个卷积区后面的两个池化层和卷积层,保留了常规卷积层。
大多数视觉跟踪算法普遍采用跟踪目标的模板作为视频的第一帧图像,并框出目标在第一帧图像中的位置和区域,然后在后续的图像帧中定位跟踪目标。把第一帧图像作为目标跟踪任务的模板可以清楚地区分目标,为了提高跟踪算法的跟踪速度,传统孪生网络跟踪算法只使用第一帧作为固定模板不进行模板的更新迭代,但是跟踪目标所在的环境具有不确定性,尺度剧烈变化、部分或者全部遮挡、较大形变等挑战性因素也可能随时出现,固定的模板就限制了跟踪准确率的提高,而且在搜索区域内存在多个相似物体的情况下容易漂移到其他物体上导致跟踪失败。使用当前帧的前一帧图像或者前几帧图像作为目标模板则可以成功感知到目标的动态变化,但是只使用当前帧的前一帧图像或前几帧图像实时更新模板,一旦目标出现剧烈变化跟踪更新容易漂移到其他物体上便不能恢复,再也无法跟踪到正确的目标。
为了解决这些问题,此研究设计了将第一帧图像和当前预测帧的前一帧图像作为目标模板的方法,同时考虑目标跟踪需要丰富的特征表示,将不同模板的不同层次特征进行多级串联的特征融合。如图1所示,模型在孪生网络两个分支的基础之上增加了一个模板分支,虽然会降低一些跟踪速度但是当出现遮挡和较大形变时,算法也不会漂移到其他物体上导致跟踪失败。模型的输入由视频序列的第一帧裁剪的目标模板区域图像,第t-1帧裁剪的目标区域图像和第t帧图像。
视觉目标跟踪的任务需要从浅到深、从细到粗分辨率的丰富的特征表示,单层单一的特征是远远不够的,甚至不同层的特征、每一层特征的不同通道和空间位置对于目标跟踪任务的重要程度也不一样。由于池化、卷积等下采样操作,使得特征提取网络的最后一层提取到的特征图分辨率大大降低,虽然深层特征有着目标的语义信息,但是不能准确地定位目标,而浅层的语义信息不明确,但是一些浅层特征如颜色、形状等对于定位是必不可少的。因此将深层的语义特征和包含空间结构信息的浅层特征应用到相似度匹配计算中对于目标的跟踪是至关重要的。所以文中算法对各层特征从深到浅逐层融合并通过空间注意力网络和通道注意力网络生成更有判别力的特征表示,特征聚合网络的结构如图2所示。
图2 特征聚合模块
(1)
其中,A(·)表示SA-CA(空间通道注意力网络),f1×1(·)表示通道压缩操作,C(·)表示级联操作,fd表示反卷积操作。
1.4.1 空间注意力
不是图像中所有的区域对于跟踪任务的贡献程度都是同样多的,只是和任务相关的区域才是最需要关心的。CNN(卷积神经网络)的卷积运算是局部运算,只考虑局部区域。每个神经元的感受野通常通过叠加卷积层和池化层来扩大,但卷积层过多导致计算复杂度较高。非局部块使每个神经元感知的不是局部图像而是整个图像。注意特征获得了每个位置的重要程度,使目标物体的判别区域更加明显[16]。空间注意力网络结构如图3所示。
图3 空间注意力网络结构
首先,将特征映射x∈Rw×h×d(w,h,d分别是其长宽和通道数)转换为f,g,h空间进行进一步操作,计算结果为f(x)=W1·x,g(x)=W2·x,h(x)=W3·x。通过公式(2)所示的乘法和softmax操作,可以求出表示第p个像素位置与第q个像素位置之间的位置相关程度Sq,p。
(2)
空间注意力特征图S∈Rwh×wh是由Sq,p组成的矩阵。然后在S与h(x)之间进行矩阵乘法,最后在特征x与矩阵乘法运算的输出之间添加一个尺度参数β的跳跃连接,得到具有空间注意力的特征为:
(3)
将β初始化为0,因为逐渐分配空间注意可以使特征更加有判别力,为了减少空间注意力学习引入的参数量,搜索图像则不需要通过空间注意力模块。
1.4.2 通道注意力
通道注意力机制根据不同通道特征对于跟踪的贡献程度不同,给予每个深度特征的不同通道不同的权值。通道注意力模型为多层感知机结构,即包含至少两个全连接层,另外加入池化层、激活层等。文中的通道注意力机制模块采用与MobileNetV3[17]中的SENet模块类似的网络结构,由平均池化层、两个全连接层和激活函数层组成,如图4所示。
图4 通道注意力模型
FCA,i=wi*Fi
(4)
算法采用Ubuntu18.04系统,采用pytorch编程框架验证算法的跟踪性能。所有实验均是在Intel Core i7-9750 2.60 GHz CPU和GeForce GTX 2080Ti GPU上执行的,算法执行的平均速率为32 FPS。利用在ImageNet数据集上预先训练好的权重初始化网络参数。模型训练输入的首帧模板图像、上一帧模板图像与搜索图像尺寸大小分别为127×127、127×127和255×255,输出的响应图大小为17×17。除了特征聚合分支外,网络的搜索分支和模板分支共享权值参数。
为了充分验证提出算法的有效性,选取公开标准测试数据集OTB100中的视频序列进行实验,选取的视频序列包含了视频目标跟踪过程中会遇到的各类挑战性因素。在测试视频序列的第一帧的基础真值位置初始化它们,并采用距离精度(distance precision,DP)、成功率(success rate,SR)作为主要评价指标。其中距离精度(DP)表示中心位置误差(CLE)小于或者等于阈值(阈值设为20像素)像素T0的帧数占视频总帧数的百分比。中心位置误差(CLE)如公式(5)所示,表示预测目标与实际目标中心的欧氏距离。
DP=lDP(CLE≤T0)/l
(5)
其中,lDP表示中心位置误差小于或者等于阈值的帧数,l是当前视频的总帧数。而成功率(SR)表示跟踪所得的目标区域MT和目标真实区域MG所得的重叠率大于等于阈值T1(设为0.5),代表跟踪成功,但是这种方法不是主流方法,通常用成功率图曲线下方的面积(AUC)去评估是否跟踪成功,该面积也可用于对目标跟踪算法进行排序。
(6)
提出的算法和一些现有算法进行对比。对比的算法包括MOSSE[9]、SRDCF[18]、MDNet[19]、SiamFC[11]、SiamRPN[13]、DaSiamRPN[20]、CFNet[12]、Staple[21],得益于使用结合空间和通道注意力机制的多级串联特征融合策略和引入必要的模板更新机制,提出的算法取得了较好的结果,跟踪精度和成功率对比如图5所示。
图5 精度和成功率对比
图5体现了所有比较的算法在OTB100数据集上的一遍验证(OPE)的测试结果,改进算法在跟踪精度、成功率上都有不错的表现,和SiamRPN算法相比较,精度上提升了4.5%,成功率上提升了4.3%。总体来说,提出的算法在精度和成功率都比其他几种算法性能优越。
为了验证提出算法的跟踪性能,在标准测试数据集上选取了一些具有挑战性因素的视频序列进行测试,不同算法的跟踪结果如图6所示。
图6 算法在不同视频序列跟踪结果
从图6可以看出,在Diving_1视频序列中,由于目标存在快速运动的变化,因此会对跟踪产生干扰,从第153帧起,可以看出文中算法较其他算法能够准确地跟踪目标。在Dog_1序列中,文中算法由于使用多级串联注意特征融合策略和模板更新机制,与其他算法相比,能够更加精确地跟踪目标。在DragonBaby_1视频序列中,由于目标存在快速运动的干扰,其他算法在45帧开始并不能精确跟踪目标,而文中算法一直可以有效地跟踪目标。在Girl2_1视频序列中,从122帧能够看出,在目标存在遮挡的情况下,其他五种算法会跟丢目标,而文中算法由于跟踪精度更高,能够完成跟踪过程。在Gym_1视频序列中,当目标在快速运动的干扰下,文中算法的鲁棒性仍然较好。在Human2_1视频序列中,从223帧可以看出,在目标存在快速运动或遮挡的干扰下,其他算法并不能及时跟踪到目标,而文中算法的跟踪效果更好。
文中提出的基于孪生网络的多级串联特征融合和模板更新的跟踪方法,通过强大的特征串联融合策略和空间与通道的双重注意力机制来获取有判别力的特征表示,使得网络可以选择性地结合来自不同层的有效特征信息。引入的模板更新机制采用当前帧的前一帧图像和首帧图像作为模板可以有效避免跟踪漂移到其他物体上导致的跟踪失败问题。该算法可以解决部分遮挡和背景杂乱的问题,在算法的成功率、准确率和鲁棒性上较现有跟踪算法都有所提升。在选定的视频序列上进行对比实验得到的结果表明,该算法优于现有的一些算法。