APP下载

一种基于多通道孪生网络的鲁棒目标跟踪算法∗

2021-11-08范都耀

计算机与数字工程 2021年10期
关键词:特征提取卷积分数

邹 鹏 范都耀

(南京理工大学计算机科学与工程学院 南京 210094)

1 引言

随着视频行为分析、自动驾驶、人机交互等技术的广泛应用和发展,视觉目标跟踪技术引起了人们的重视。近年来学者们对其进行了大量的研究,尤其是深度学习技术的兴起,使视觉目标跟踪算法发展出了许多分支。但是由于视觉目标跟踪的场景中存在的光照变化、变形、旋转、背景杂乱、存在相似干扰物体、相机运动不均匀等干扰因素[1~2],视觉目标跟踪在实践中仍然是一项十分具有挑战性的任务。

一般跟踪算法的核心是进行目标图像与输入帧的匹配。对于理想的跟踪匹配算法,即使在视频中的目标被遮挡、发生尺度变化、旋转、光照不均匀等干扰因素下,也应需要提供鲁棒的匹配。之前很长一段时间研究者们的解决方法是,通过引入仿射变换[3]、概率匹配[4]、特征图像[5]、光照不变量[6]、遮挡检测[7]等操作,在匹配中显式地对这些畸变进行建模。但是这种方法存在的缺陷是,不可能建立一个模型可以良好地应对各种干扰因素,一种建模后的匹配机制也许可以很好地解决一种干扰,但是它很可能会产生另一种干扰。在本文中,我们学习一种匹配机制,而不是对特定的干扰因素进行显式的建模匹配。我们从包含各种干扰因素的训练视频中学习不变量,当训练视频集足够大时,可以先验地学习一个通用的匹配函数,这个匹配函数可以处理视频中发生的常见干扰因素,比如目标外观变化。

本文在Siamese-fc[8]目标跟踪方法基础上,提出基于Triplet network[9]的目标跟踪方法TriTer(Triplet Network Based Tracker)。首先,使用三个并行的卷积神经网络对输入的第一帧目标、上一帧目标和当前帧搜索区域进行特征提取,得到三个区域的高层语义信息。然后,分别将第一帧目标特征和上一帧目标特征与当前搜索区域特征进行对应卷积,然后得到搜索区域中各个位置与第一目标和上一帧目标的相似度,从而生成两个相似度分数图。最后,对两个分辨率较小的分数图进行插值放大处理,并使用分数图的APCE[10]值作为融合的加权系数参考,将两个分数图进行融合,得到最终的目标位置分数图。网络模型都是通过离线预训练得到,跟踪过程不需要根据当前跟踪结果对模型进行更新,因此帧率能够满足实时跟踪的要求。实验表明,本方法在鲁棒性上超过了原有算法,实时性略有下降,但是仍然可以满足大多数场景下实时跟踪的需求。

2 基于孪生网络的目标跟踪算法

2.1 孪生神经网络

孪生神经网络[11](Siamese neural network,Sia⁃mese-net)的结构如图1所示,它具有两个或多个相同子结构的神经网络。各子网络结构相同,共享参数及权重。孪生网络的思路是让两路输入分别经过两个子网络,然后进行特征提取,得到两个输入的特征向量。然后通过构造距离度量函数,比如余弦距离、欧式距离等,可以用来计算两路输入的匹配程度。在训练时根据结果来学习一个相似度匹配函数,用于之后的匹配。

图1 典型孪生网络结构

孪生神经网络从网络结构上可以分为以下两个部分。

1)特征提取网络

孪生网络的主要部分,用于对两路输入分别进行特征提取,得到可以有效描述输入的特征信息。通常用卷积神经网络(Convolutional Neural Net⁃works,CNN)来实现。CNN通常包含卷积层、池化层、全连接层、非线性激活函数等部分,可以提取到输入图像的高维语义信息,相比于HOG特征[12]、LBP特征[13]、CN颜色特征[14]等,CNN特征在复杂背景变化、目标外观变化等影响下具有更好的鲁棒性。

2)决策网络

在提取到两路输入的特征后,需根据匹配函数来确定它们的相似程度,在训练时,结合网络输出和真实输出不断调整模型参数,以习得一个性能良好的决策函数。在不同的任务中,决策网络有不同的形式,有的直接用损失函数、度量函数来度量,有的是继续使用神经网络来验证结果的置信度,提高决策可靠性。

2.2 基于孪生网络的的目标跟踪算法

基于孪生网络的目标跟踪算法中,输入为目标图像z和候选图像x,通过模板特征和相关性匹配,得到一个基于候选图像x的相关性响应图,然后通过最大响应来确定跟踪目标的位置。即将目标跟踪问题转化成一个学习相似度函数的问题。

全连接孪生网络的相似度函数定义如下:

其中φ为CNN特征提取函数,*表示卷积操作,可以计算二者的相关性,b为偏差值,f(z,x)代表z和x的相似度分数。参考目标z和候选图像x越相似,则函数返回分数值越高,反之则越低。在待检测帧中,通过一定的策略选出若干个候选图像,分别计算相似度得分后可以得到一张分数响应度,响应图中分数最高的位置即为算法预测的该帧中跟踪对象目标位置。

在跟踪阶段,在当前帧中以上一帧检测到的目标中心为中心获取一个较大的搜索区域x,可以通过对上一帧的bounding box进行padding操作得到。然后用特征提取函数φ分别提取该区域和第一帧中参考目标x的特征φ(z)和φ(x),然后通过卷积操作得到φ(z)和φ(x)的相似度分数向量f(z,x),从而得到相似度分数图,其中分数最大的位置即对应该帧中目标的位置。

以Siamese-fc算法为例,在其模型的训练和跟踪过程中,网络输入分别是第一帧真实的标记框和当前帧的搜索区域。两个输入图像大小分别是127×127和255×255,最终网络输出的分数图大小为17×17。分数图中每个位置代表着一个候选区域为目标区域的置信值。后续再采用合适的处理方法可以得到更精确的目标中心位置。

3 TriTer目标跟踪算法

3.1 TriTer算法架构

原始的基于孪生网络的目标跟踪算法一般都采取的是浅层网络,比如LeNet[15],AlexNet网络[16]。AlexNet网络是一个包含5层卷积层和3层全连接层的只有8层的网络。浅层网络在信息表征能力上要较深层网络逊色,所提取的特征难以应对较复杂的场景。其次,孪生网络的参考目标只在第一帧时给出,如果第一帧给出的目标区域对真实目标的描述不具有非常高的普遍性,那么将会较大影响后续跟踪的准确度。当跟踪场景较为复杂的时候,尤其是出现与跟踪目标相似的物体的干扰时,基于孪生网络的跟踪很容易失败。因为其无法较好地辨别类间区别。因此,本文针对Siamese network这一不足提出了一种基于Triplet network的网络结构的改进方案TriTer,将原来Siamese-fc算法中子网络由AlexNet改为更深层的VGGNet[17],且同时结合第一帧真实值和上一帧的输出值,综合比较得到当前帧的输出值,从而提升在复杂场景下跟踪的鲁棒性。

Triplet network的结构如图2所示,它与Sia⁃mese network非常类似,是一种特殊的孪生网络。Triplet network由三个具有相同结构的子网络组成,且它们共享参数和权重。跟孪生网络一样,从网络结构上可以将Triplet network分为特征提取网络和决策网络两个部分。

图2 Triplet network网络结构

本文提出的TriTer跟踪算法的架构如图3所示。算法将第一帧真实目标区域、待检测帧、上一帧算法输出的目标区域作为输入,通过相同的三路特征提取网络提取特征,然后计算第一帧目标和上一帧目标与当前帧搜索区域的相似度,最后将两个相似度分数图(score map)进行融合,通过融合分数图中分数最高的位置来确定最终的目标区域。下面对网络的具体细节进行说明。

图3 TriTer目标跟踪算法结构

3.2 特征提取

对于输入的第一帧目标区域z、上一帧目标区域z'和当前帧搜索区域x,使用三个相同的全卷积神经网络(Fully Convolutional Networks,FCN)对其进行特征提取,输出的特征记为φ(z)、φ(z')和φ(x)。

FCN的好处是可以接受大小不同的输入的优点,这使得我们不需先用检测窗口在当前帧中取出大小与第一帧目标框大小相同的窗口再进行输入。且可以在一次特征提取后计算当前帧所有候选区域与参考目标区域的相似性,进而得到分数图。在实际操作中,可以通过将一般CNN中的全连接层的权重重塑成卷积层的卷积核,将全连接层转化为卷积层,进而实现全卷积网络。

本文算法中特征提取网络参考Simonyan等在文献[17]中提出的VGG-16网络结构以及文献[18]中的网络结构,并对其结构加以改进以适合TriTer算法的需求。特征提取网络结构如表1所示。

表1 TriTer中特征提取网络结构

本文特征提取网络包含11个卷积层和3个池化层。所有卷积层均采用3*3的卷积核,所有池化层均采用2*2的卷积核。采用多层小卷积核,可以获取更加丰富的语义信息。此外,在Conv2、Conv4和Conv7后都添加了一个2*2的pooling层,采用最大池化,步长为2,可以进一步降低特征的维度,同时保持特征的旋转不变性。每一层的网络的输出都采用ReLU激活函数进行处理。每层网络的输入都不采取padding操作。

3.3 模型训练

TriTer算法中网络的损失函数使用logistic loss,形式为

其中,ν代表网络输出的相应候选区域的置信分数值,yϵ{+1,-1}表示其真实的标签,两个值分别对应是跟踪目标和不是跟踪目标。在模型训练时,以处理第一帧目标对象与输入图像为例,通过特征提取网络后,输入图像中的多个候选框会得到多个置信分数,然后以分数图ν:D→R的形式输出,最终采用每个候选框的logistic loss的平均值作为总体损失函数,形式如下:

其中y[u]、ν[u]分别表示输入图像中位置u处的真实标签和网络计算的置信值。

在训练过程中,采用随机梯度下降法进行网络参数的优化。

3.4 分数图生成与融合

TriTer的三路输入,即第一帧目标区域(117*117*3)、上一帧目标区域(117*117*3)以及当前帧搜索区域(225*225*3),在通过特征提取网络后可以得到大小分别为6*6*128的特征φ(z)、6*6*128的特征φ(z')和22*22*128的特征φ(x)。

特征之间的匹配原理如图4所示。以大小为6*6*128的特征φ(z)和大小为22*22*128的特征φ(x)之间的匹配为例,首先在φ(x)中取一个大小与φ(z)相等的立体滑动窗口,然后让取的滑动窗口与φ(z)做三维卷积操作,然后得到一个匹配分数值,填入对应的分数图中。滑动窗口的移动步长为1,这样得到的分数图大小就为17*17。

图4 特征匹配并生成分数图原理

基于图4所示原理,求得φ(x)基于φ(z)的匹配分数图m1和φ(x)基于φ(z')的匹配分数图m2。两个分数图的大小均为17*17。

大小为17*17的分数图由于分辨率相对于原图过小,因此不利于对目标的精确定位。对于这个问题的解决办法是:使用插值算法将分数图放大。例如本文采用常用的双三次插值算法,可以将17*17的分数图放大到272*272,然后得到放大后的分数图M1和M2。最后再对两个放大后的分数图进行融合,得到最终的分数图M:

其中λ代表分数图的权重。融合分数图M的波峰位置即TriTer算法计算得到的目标位置。

本文中λ的取值参考文献[10],通过计算分数图的APCE值来确定两个响应图各自的置信图,即在融合分数图中的加权系数。

4 实验与分析

4.1 测试数据集与评价指标

为验证本文提出的跟踪算法TriTer的有效性,在目标跟踪数据集OTB100[2]上进行相关实验,共测试94个视频序列。同时进行与当前主流且效果较好的算法的对比实验,得出更具有说服力的结论。实验环境为Ubuntu16.04系统,Intel Core i7 7800X处理器(频率为3.5GHz),48GB内存,NVID⁃IA GeForce GTX 1080Ti显卡,使用TensorFlow1.4深度学习框架,算法语言为Python。实验中判断是否属于成功跟踪的重叠率阈值设为0.5。

OTB100数据集根据视觉目标跟踪中的挑战性因素对视频序列进行了归类,如表2所示。

表2 基于视觉的目标跟踪中的挑战性因素

本文采取以下两种指标来衡量实验效果:距离精度(Distance precision,DP)和重叠精度(Overlap precision,OP)。DP定义如下:在一个视频序列中,输出的跟踪目标位置中心与真实目标中心(标注值)的平均欧式距离小于设定阈值的帧数占该视频序列总帧数的比例。本实验中,该阈值设为20个像素。OP定义如下:

即反映算法输出的跟踪对象位置与其真实位置的重叠度。式(5)中,Ag表示跟踪对象在画面中的真实位置,Ap表示算法输出的跟踪跟踪对象位置,以矩形框面积参与计算,score值反映重叠度,值越大则跟踪精度越高。

4.2 定性比较分析

为验证TriTer跟踪算法的鲁棒性,测试与分析了包含所有目标跟踪中的挑战性因素的数据集。在Girl2、Basketball、Walking2、Soccer视频序列中,不仅目标外观发生了畸变,视频中还出现了与跟踪目标非常相似的干扰对象。图5、图6、图7分别列出 了TriTer、Siamese-fc分 别 在Girl2、Basketball、Walking2这三个视频序列中的跟踪效果对比。

图5 TriTer与Siamese-fc在Girl2视频序列中的跟踪表现对比。

图6 TriTer与Siamese-fc在Basketball视频序列中的跟踪表现对比

图7 TriTer与Siamese-fc在Walking2视频序列中的跟踪表现对比

在Girl2视频序列中,当被跟踪的小女孩从右至左穿过右边的大人时,图像中产生了相似类型跟踪对象的干扰,但是由于小女孩并没有被遮挡,此时Siamese-fc与TriTer均能进行有效的跟踪,在第100帧左右时,小女孩被路过的行人遮挡住了,此后,Siamese-fc对跟踪对象产生了误判,但是此时TriTer仍然能够进行有效的跟踪;在Basketball视频序列中,在第471帧中,两个外观相似的篮球运动员位置产生了部分重叠然后又错开,此时Sia⁃mese-fc算法则发生了误判,将另一个运动员当做了跟踪对象,对比之下,TriTer并没有发生误判,仍能对原跟踪对象进行有效跟踪;在Walking2视频序列中,发生了与在Basketball视频序列中类似的情况,当图像中出现了与被跟踪女子相似的男子时,TriTer仍能有效跟踪目标,但是Siamese-fc算法则发生了误判。此外,在没有发生跟踪对象丢失或者误判的情况的帧中,也可以发现TriTer相对于Sia⁃mese-fc的跟踪重叠精度明显更高。

由于TriTer算法的输入不仅包含视频第一帧中跟踪目标的信息,还包含了上一帧中网络输出的跟踪目标信息。一方面,当前帧中目标相对于上一帧目标的畸变会小于当前帧目标相对于第一帧目标的畸变,另一方面,有了上一帧目标的位置,即使在背景中出现了多个与目标类似的干扰对象,算法也不容易发生误判,因此,理论上TriTer具有比Sia⁃mese-fc更加鲁棒的跟踪性能,实验验证了这一点。

4.3 多算法定量对比分析

为了较为全面地评估TriTer算法的性能,在OTB100数据集上进行了OPE(one-pass evaluation)测试,在所有100个视频均参与测试的情况下,得出算法的DP和OP值,并与Siamese-fc算法及其他主流的实时目标跟踪算法,包括LCT[19]、Staple[20]、KCF[21]、Struck[22]算法进行了对比实验。实验选取了具有代表性的8个视频序列,比较了各个算法的具体表现,实验结果如表3和表4所示。

表3 TriTer和其他一些主流实时跟踪算法在OTB100数据集中的中心点误差DP(单位:像素)

表4 TriTer和其他一些主流实时跟踪算法在OTB100数据集中的重叠率OP(单位:%)

表3和表4中,CarScale、Couple、Tiger2代表着较为简单环境下的目标跟踪,虽然目标外观发生了较大变化,但是背景中出现的如类似跟踪对象物体的干扰较少,TriTer算法表现与Siamese-fc算法性能接近,在大多数视频序列中有微弱领先,在大多数情况下比其他的非孪生网络方法有性能优势。在Soccer、Bird1为代表的具有复杂背景的视频序列中,跟踪算法收到了来自于跟踪对象外观相似的物体、不断变化的背景、跟踪对象本身形变较大变化较快等干扰,此时TriTer算法表现出了较大的优势,在中心点误差和重叠率方面相对于Siamese-fc和其他算法都表现出了较大的优势。

在跟踪速度上,在本文实验条件下,TriTer、Sia⁃mese-fc跟踪的平均帧率如表5所示。

表5 算法运行速度对比

从表5可以看出,TriTer算法的跟踪速度要比Siamese-fc略慢,但是仍然可以满足大部分场景下目标跟踪的需求,可以进行实时跟踪。从网络结构上分析,在特征提取阶段,TriTer比Siamese-fc多了一半左右的计算量,所以在跟踪速度要慢于Sia⁃mese-fc。

5 结语

针对复杂环境下的视觉目标跟踪问题,本文提出了一个高鲁棒性的目标跟踪算法TriTer。TriTer在Siamese-fc算法的基础上,算法的输入增加了上一帧算法输出的跟踪目标信息,采用三个并行的卷积神经网络进行特征提取,相当于两路并行的Sia⁃mese-fc,然后对输出的两个分数图进行融合,从而确定当前帧中跟踪对象的位置。在OTB100数据集上进行的有关实验表明,TriTer算法在光照变化、跟踪对象外观变化、遮挡等复杂背景下依然能执行非常鲁棒的跟踪,对比之下,没有上一帧作为输入的Siamese-fc算法在复杂背景下的跟踪过程中则非常容易发生误判跟踪对象的问题,且TriTer在跟踪过程中,计算出的目标位置的中心点误差在总体上也要好于Siamese-fc。由于TriTer增加了一路输入,因此跟踪的速度要慢于Siamese-fc,但是实验表明,在一般的跟踪场景下,TriTer仍然可以满足实时跟踪的需求。

猜你喜欢

特征提取卷积分数
同步定位与建图特征提取和匹配算法研究
基于全卷积神经网络的猪背膘厚快速准确测定
基于图像处理与卷积神经网络的零件识别
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种快速比较分数大小的方法
把握物理难点,分数更上一步
基于MED—MOMEDA的风电齿轮箱复合故障特征提取研究
基于曲率局部二值模式的深度图像手势特征提取
……的近似分数的若干美妙性质