李 敏,吴 莎
(长安大学 信息工程学院,陕西 西安 710000)
目标跟踪是一个具有挑战性的计算机视觉问题,特别是存在遮挡、目标变形、光照变化等情况下。粒子滤波器由于能够有效地确定目标的位置和大小,多年来一直被应用于视觉跟踪[1-2]。例如,文献[3]提出了一种基于自顶向下视觉注意力计算模型的粒子滤波视觉跟踪器。该算法是检测目标相关的突出区域,然后将显著区域发送到粒子滤波器,确定目标的位置。文献[4]提出了一种名为萤火虫的优化算法,该算法通过动态增加有意义粒子的数量来提高跟踪性能。文献[5]提出基于一种新的迭代粒子滤波器(IPF),该滤波器在收缩的搜索范围内对粒子进行迭代采样。此外,文献[6]中将粒子滤波与基于高斯混合的目标外观模型结合使用。虽然基于粒子滤波器的视觉跟踪方法,或者基于相关滤波器的视觉跟踪方法[7]的跟踪结果都可以接受,但是它们不如基于卷积神经网络(CNN)产生具有高度识别性的目标特征[8]的跟踪器有效。
卷积神经网络在成功应用于对象检测任务[9]之后,又被应用于视觉跟踪,到目前为止,已经提出了几种不同的CNN结构。文献[10]提出的是基于3个卷积层和若干降采样层的CNN对当前帧和上一帧进行采样,获取目标和背景的空间、时间特征。采用了两个采样对,分别输入两个CNN网络,得到4张关键点的概率图,从而提高了跟踪的精确度。文献[11]是离线训练多层的卷积神经网络,学习得到可以反映图像一般性特征的卷积核后,通过迁移学习在线特征提取,使用粒子滤波算法进行目标跟踪。文献[12]采用较小的网络来进行特征提取并在全连接层进行综合,得到输出向量,最后根据该向量来判别样本是目标还是背景,从而估计目标位置。虽然近几年基于深度学习的跟踪算法大幅提升了跟踪算法性能,对目标和背景信息进行较详细的提取,具有很好的判别能力,但其在应对目标表观发生变化的情况下,缺乏目标全局的高级语义信息,所以跟踪算法性能还有待提升。
文中将卷积粒子滤波技术与CNN相结合,以提高其在变形、光照变化、快速运动等情况下的性能。该算法使用预先训练的网络来帮助PF建模跟踪目标对象,卷积粒子滤波通过贝叶斯最优估计来选择候选目标并定位目标,避免了人工干预。深层特征和手工特征融合带来了更稳定的观测模型,使得PF在保证鲁棒跟踪的同时,能够选择少量的粒子,减轻了计算负担。这些操作克服了跟踪过程中存在较大的遮挡或快速运动,目标形变等问题,实现了鲁棒跟踪。
综上所述,针对单一特征带来的跟踪不足问题,将基于目标的颜色特征和基于CNN的特征方法[13]结合对目标进行特征表述,同时集合了两种算法的优点,利用深度学习和粒子滤波的特点提出了一种新的跟踪方法,该方法使用预先训练的网络来帮助粒子滤波跟踪来建模目标对象。粒子滤波是指通过贝叶斯最优估计来选择候选目标并定位目标,避免了人工干预,实现了自动跟踪。同时,深层特征和手工特征融合带来了更稳定的观测模型,使得PF在保证鲁棒跟踪的同时,能够选择少量的粒子,减轻了计算负担。
在卷积神经网络训练数据时,空间信息会随着网络的加深而稀释,因此会导致图像中目标定位不精准的情况[14]。经研究表明,在卷积神经网络结构中,第三个卷积层的卷积特征保留了目标更多的空间细节信息[15],如目标的位置信息等。由于图像经过卷积神经网络的三个卷积层得到的特征保留了目标的空间位置信息,而且考虑到卷积运算的复杂耗时,跟踪算法必须要满足实时性,因此文中设计一个包括3个卷积结构的深度网络,每个卷积结构包含一个卷积层和一个池化层,加上一个完全连接层由此构建了一个9层的卷积神经网络进行特征提取。整体框架如图1所示。
图1 CNN网络结构
输入层,向网络输入X=58×58的目标图像。
卷积层,卷积层的卷积核对输入的图像进行卷积操作,从而得到输入图像的特征图。过程:Conv1层使用8个7×7的卷积核,得到8个52×52大小的特征图;Conv2层使用16个7×7的卷积核,得到16个20×20大小的特征图;Conv3层使用32个7×7的卷积核,得到32个4×4大小的特征图。卷积槽的激活函数为sigmoid函数:
(x=1,2,3)
(1)
其中,f1,f2和f3分别是三个卷积层的卷积核大小,分别用于生成Conv1、Conv2和Conv3三层特性,⊗为卷积操作,H0为原始的图像输入X,bx是一个偏移值。
池化层,通常情况是在卷积层之后,根据一定的规则对卷积层生成的特征图进行池化。池化层的功能主要有两点:(1)对特征图进行降维;(2)在一定程度上保持特征图特征的尺度不变性。
(2)
其中,a1,a2,a3,a4为四个相邻的卷积核的子采样值,sum由以下公式得出:
sum=a1p(i,j)+a2p(i,j+1)+a3p(i+1,j)+a4p(i+1,j+1)
(3)
其中p(i,j),p(i,j+1),p(i+1,j),p(i+1,j+1)表示卷积特征映射中的四个邻居值。这些简单的操作不仅减少了数据数量,而且提取了有用的深层信息。
全连接层,32个2×2的卷积核对第三个池化层输出的特征图进行卷积操作,得到1个128维的目标特征矩阵。
输出层,在完全连接层之后,支持向量机有助于区分正样本和负样本,通过支持向量机对目标特征进行分类,将输出层分为目标和背景。
由于深层学习网络需要大量的训练样本,而这在视觉跟踪中经常是不可用的,因为从初始帧中提取的可靠正实例数量很少。在文献[16]中指出对使用大规模数据集训练卷积神经网络模型而提取到的特征,对其他的任务也具有普适性。因此这里把这个网络看成是用于在线跟踪应用程序的预定义数据集。数据集由视觉跟踪器基准[3]提供,并且包括大量的正和负样本。该数据集具有光照变化、旋转、尺度变化等多种数据增强的挑战性。在训练过程中,随机梯度法(SGD)优化了模型中的参数。
在跟踪过程中,传统的粒子滤波以颜色直方图作为外观模型,它不能有效地处理突然的变化,因为它把传播模型看成是一个简单的零均值高斯过程,其位置的方差是一致的。而将卷积神经网络的层参数固定,仅对全连接层和输出层参数进行更新,得到跟踪目标的深度特征,再在粒子滤波框架下得到跟踪目标的颜色直方图特征。而将深层特征与手工制作的特征融合在一起,用于视频目标跟踪,提高跟踪目标的精度,得到持续和鲁棒的跟踪。
在线粒子滤波跟踪算法包括四个步骤:
c2中每个元素hU的计算公式为:
(4)
其中,K为归一化常数,N为目标区域像素总个数,u为直方图箱数索引值,f(xi)为xi所在直方图段数的函数,δ为Delta函数。
步骤2:粒子传播采用的是一个动态模型:
(5)
步骤3:通过观测模型对粒子进行加权,每个粒子的权重为:
(6)
其中,λ为设计参数,D(n)为Bhattacharya距离:
(7)
(8)
(9)
其中,a为权重参数,C0为更新前模型的特征向量。通过这种方式,模型可以保持以前的外观和当前的功能,阈值和加权平均控制了更新程度。该方法使跟踪算法能够处理运动、变形和遮挡等挑战。
实验计算机配置为Windows8系统内配置Ubuntu16.04虚拟机,以及CUDA8.0、CUDNN5.1、NVIDIA GTX1070TI。该算法在Matlab2016a上实现,对于离线学习,是在Ubuntu16.04虚拟机下进行,从最近发布的跟踪基准数据集[3]中收集9 075个正样本和17 535个负样本,实验选用目前主流的跟踪平台OTB-100和OTB-50数据集中具有实质性变化的全注释视频中的10个视频序列进行实验验证,这些视频序列在跟踪问题上都存在不同场景和不同程度的跟踪困难因素:遮挡、快速运动、形变、光照变化、背景相似等。
λ值设置为仅用于传统的PF跟踪的0.2,用不同数量的粒子对几个视频进行测试,得到粒子数为40时可以带来良好的效率。通过整体比较,子采样a1、a2、a3与a4的核参数设置成0.25。在训练和跟踪过程中,它们保持相同的值不变。
从两个方面(跟踪精度、跟踪成功率)来评价该跟踪算法的跟踪结果,并比较各个算法性能。为了定量地突出深层特征和手工制作特征的跟踪效果,将该算法与当前多种主流跟踪算法进行对比分析,包括CPF、LOT、VTD、DFT、CSK、MIL跟踪算法。为了比较公平,使用作者提供的代码在测试序列中从第一帧的基础真值位置初始化它们进行实验。
为了评估这些跟踪器,在测试序列中从第一帧的基础真值位置初始化它们,并报告单程评估(OPE)值[3]。重叠率定义为JACARD系数:
(10)
其中,rt和rm分别为地面真实边框和跟踪边框。一个视频序列的重叠率是所有Jaccard系数的平均值。若s>0.5,则认为该帧目标被正确跟踪[19]。平均跟踪成功率的结果见表1,其中粗体表示该跟踪序列中成功率最高的值。由表1中可知,文中算法在这些视频序列的跟踪性能总体上优于其他主流跟踪算法。
表1 跟踪成功率
图2为7种跟踪算法对10组测试视频序列的整体跟踪精度和跟踪成功率的OPE曲线,可以看出,文中跟踪算法的跟踪成功率和跟踪精度对于这10组测试视频中的目标的平均值最高。
图2 10 个测试序列的跟踪精度和跟踪成功率曲线
图3是7种跟踪算法10个视频序列的部分序列跟踪结果,左上角是该图像序列的当前帧数。
(1)目标遮挡,Jogging,Lemming,Dudek,Soccer序列中,在运动过程中被跟踪目标出现被不同物体不同程度的遮挡。Jogging在第79帧时目标被完全遮挡,直到第86帧目标又重新出现,而其他跟踪算法皆丢失目标,只有文中算法能很好地跟踪到目标;Lemming在第317帧时,目标被部分遮挡时,除了文中算法和CSK和VTD,其他算法都出现了跟踪漂移,不难看出文中算法在出现遮挡情况下始终正确跟踪目标,对目标遮挡有较好的鲁棒性。
图3 7种跟踪算法10个视频序列的部分序列图
(2)光照变化,Singer1,Car4,Skating,Tiger1视频序列中,在运动过程中被跟踪目标出现不同程度的光照变化。其中Singer1序列在79-142帧光照出现了不同程度的强弱变化,VTD彻底丢失目标,而除了文中算法,其他算法都出现了跟踪漂移。在Tiger1视频序列中,在175帧和291帧的时候光照突然变强,除了文中算法和CPF、DFT,其他算法都发生了跟踪漂移。不难看出文中算法对出现光照变化时始终正确跟踪目标,对光照变化有较好的鲁棒性。
(3)快速运动,Lemming,Dudek,Soccer,Tiger1视频序列中,被跟踪目标在运动过程中都存在快速运动的情况。其中Lemming序列中,在535帧到583帧中存在快速运动的情况,除了文中算法和CSK,其他跟踪算法都出现了跟踪漂移的情况。在Tiger1视频跟踪序列中,90帧的时候出现快速运动的情况,其中VTD,LOT跟踪丢失,其他算法出现跟踪漂移的现象,只有文中算法保持了良好的跟踪现象。不难看出文中算法对在出现目标快速运动时始终正确跟踪目标,有较好的鲁棒性。
(4)目标形变,Bolt,Dudek,Sketing1,Tiger1视频序列中,被跟踪目标在运动过程中都存在形变的情况。在Bolt序列中,整个被跟踪目标都是处于形变的状态,而除了文中算法和VTD外,其他算法均跟踪失败,而在137帧后,VTD出现了跟踪漂移的现象。在Tiger1序列中,在166帧和289帧时出现目标形变的现象,在166帧时VTD和LOT跟踪失败,在289帧时,除文中跟踪算法外,其他算法均出现了跟踪漂移的现象。所以文中算法对目标形变的情况也表现出了较好的鲁棒性,基本上能始终正确跟踪目标。
(5)相似背景,Dudek,Soccer,Skating1视频序列中,被跟踪目标在运动整个视频序列中都出现了相似的背景情况。在Dudek序列中,整个跟踪过程都处于灰色基调下,在173到200帧时,出现了背景杂斑现象,这时CSK彻底丢失目标,而除了文中算法,其他的跟踪算法虽然也完成了整个过程的跟踪,但是中间出现了跟踪漂移的现象。Soccer序列和Dudek序列相似,整个过程背景与目标是同一个颜色,但是该序列中,从117帧开始,除了文中算法、DFT和LOT,其他算法均跟踪失败。而在Skating1序列中,从99帧开始出现了相似的目标,文中算法虽然中间出现过跟踪漂移,但是最终还是完成了目标跟踪。所以文中算法对存在相似背景的情况也表现出了较好的鲁棒性,基本上能始终正确跟踪目标。
提出了一种基于简化CNN的视觉跟踪算法,该算法将预处理网络的全连接层的深度特征输出与HSV颜色空间中颜色直方图的手工特征相连接,将两种特征相结合,用于在线粒子滤波的目标跟踪。深层特征和手工特征的融合更有效地代表了目标,在具有背景杂波、光照变化、变形和遮挡等属性的视频中,相比其他跟踪方法,该方法有较强的鲁棒性。