应用GhostNet卷积特征的ECO目标跟踪算法改进
2022-03-07刘超军段喜萍谢宝文
刘超军,段喜萍,谢宝文
(哈尔滨师范大学 计算机科学与信息工程学院, 哈尔滨 150025)
引 言
视频目标跟踪是计算机视觉的重要研究分支之一,被广泛运用于科学技术、国防建设、自动驾驶以及其它重要经济领域。相邻视频序列相比静态图像有着明显的时间以及空间上连续性的特征,时空上的特点会对视频序列的建模方式产生多样性的影响。视频跟踪过程主要分为视频跟踪和视频分割两部分。视觉目标跟踪任务是根据标定视频第1帧的位置,利用建模的方式预测后续帧的位置。视频跟踪在目标被遮挡、形变以及光照变化等复杂场景下的应用十分广泛且重要,也是视觉目标跟踪方向的一个难点。视频目标跟踪主要分为3类:基于生成式模型、基于判别式模型以及基于深度学习的方法。由HORN和SCHUNCK提出的卢卡斯-卡纳德(Lucas-Kanade,LK)光流法[1]假设跟踪目标短时间保持稳定状态的同时,在目标所表示的高维空间中找到最优估计。后继研究者对生成式模型的方法进行了改进。2012年,CRUZ-MOTA等人利用稳健的图像描述加速稳健特征(speeded up robust features,SURF)、检测和描述图片的局部特征的尺度不变特征变换(scale-invariant feature transform,SIFT)以及描述图像结构的最大稳定极值区域(maximally stable extremal regions,MSER)等[2]。2013年,MEI和LING等人提出了L1跟踪器[3],这类算法利用了目标信息,但是忽略了算法在视觉任务中的背景信息。为了充分运用目标跟踪过程中的背景信息,研究者将目标跟踪问题抽象为具体的判别模型,对跟踪目标进行分类和回归,再将目标和背景分离,从而实现目标跟踪。2015年,COLLINS等人提出了利用目标背景颜色分离进行视觉任务的线性判别算法[4]。2016年,HARE等人提出了利用支撑向量机取得高效跟踪的Struck算法[5],相关滤波的目标跟踪算法可作为基于回归判别模型的典型方法。2014年,HENRIQUES等人提出核相关滤波(kernel correlation filter,KCF)算法[6],该算法主要利用快速傅里叶变换和循环矩阵大幅提高了跟踪速度。他们还提出了循环结构核(circulant structure kernel,CSK)算法[7],该算法基于最小输出平方和误差滤波器(minimum output sum of squared error filter,MOSSE)算法[8],利用循环移位和核函数极大地提高了算法的鲁棒性。2018年,LI等人提出了时空正则相关滤波器(spatial-temporal regularized correlation filters,STRCF) 算法[9],该算法考虑视觉任务中时间和空间关系,降低了部分遮挡对算法的影响。KALAL等人基于跟踪、检测以及在线学习的方式提出了跟踪学习检测(tracking-learning-detection,TLD)算法[10],该算法通过在线学习方式使得跟踪器不断更新,提高算法在部分遮挡和形变情况下的鲁棒性,但TLD算法在实时性上表现较差。目前,深度学习能够很好地应用在目标追踪领域,主要表现在利用深度学习目标追踪算法的深度特征表征能力对目标进行跟踪。在基于深度学习的目标追踪算法中,基于端到端离线训练方式的跟踪方法获得了比基于生成式模型和基于判别式模型更好的跟踪效果。判别式尺度空间跟踪(discriminative scale space tracker,DSST)算法是在MOSSE算法基础上的改进[11],主要应对尺度变化,通过两个滤波器分别跟踪位置变化和尺度变化,定位滤波器专门用于确定新的目标位置,尺度滤波器用来进行尺度估计。学习连续卷积算子(learning continuous convolution operators,C-COT)跟踪算法[12]将深度特征引入相关滤波,提高了跟踪过程中的鲁棒性与准确度。有效卷积算子(efficient convolution operators,ECO)算法[13]是对C-COT算法进行改进,从模型大小、样本集大小和更新策略3个方面分别加快速度。2016年,BERTINETTO等人提出了全卷积孪生网络(fully-convolutional siamese networks,SiamFC)算法[14],在跟踪过程中利用离线数据集训练的相似性度量函数选择与模板最相似的候选区域,将该区域作为视觉任务的跟踪结果。2018年,LI等人提出的SiamFC和区域建议网络用于直接估计目标尺度[15],提高了对目标跟踪的性能和效率。2018年,PARK等人提出了元跟踪算法[16],使用元学习的方法有效提升了基于深度神经网络(deep neural networks,DNN)跟踪算法的性能,算法目的是学到模型网络的初始参数,训练并利用了其它跟踪和检测的数据库和未来帧的信息,从而能够对未来帧中目标的运动变化更加鲁棒,也避免对当前帧信息训练过拟合。2020年,WANG等人提出与模型无关的元学习(model-agnostic meta-learning,MAML)跟踪器,借鉴了小样本学习和目标检测的研究内容,提出了简洁和高效的算法框架,即目标检测与小样本学习结合的目标跟踪算法[17]。RAZIYE等人提出了一种基于元学习红外点状目标跟踪算法[18],该算法将元学习应用于卷积神经网络,改进红外弱小跟踪问题,在有效解决遮挡的同时解决训练数据少的问题。同年,VOIGTLAENDER等人提出了孪生区域卷积神经网络(siamese region convolutional neural networks,Siam R-CNN)再检测架构[19],该算法也充分发挥了目标检测方法在视觉目标跟踪中的作用,将第1帧模板和前一帧预测的重新检测的结果用来对被跟踪对象和潜在干扰对象的完整过程进行建模。
本文中针对ECO算法中特征提取过程,提出了一种基于GhostNet改进的ECO(GhostNet for efficient convolution tracker,GECT)跟踪算法。首先,该算法利用GhostNet[20]作为主干的特征提取网络,采用全局平均池化[21]下采样特征方式增加卷积特征感受野;其次,利用提取到的深度特征与手工特征经过加窗、插值后,与当前滤波器在傅里叶域进行卷积定位计算;最后,采用共轭梯度算法优化响应误差与惩罚项之和的损失函数,实现滤波器更新。
1 理论基础
1.1 ECO跟踪算法
有效卷积算子 (ECO)算法是将卷积特征运用在视觉任务的高效跟踪算法。该算法主要将深度特征和手工特征(如方向梯度直方图(histogram of oriented gridients,HOG)特征)、颜色空间(color-names,CN)特征等多种特征用于相关滤波算法的跟踪过程中,从而实现目标跟踪。
ECO算法沿用C-COT算法将特征图通过插值转换到连续空间域,具体如下式所示:
C-COT算法中采用训练连续多通道卷积滤波器用于预测得分,ECO算法利用主成分分析法改进,具体如下式所示:
SP,f{xd}=Pf*Jd{xd}=f*PTJd{xd}
(2)
式中,f为通道d的相关滤波核,*表示卷积运算,P表示主成分分析法D行C列的投影矩阵,SP,f{xd}表示响应值得分。使用混合高斯模型(Gaussian mixture mode,GMM)方法压缩训练集,并对卷积响应得分与高斯标签的误差取L2范数,下式表示构造的损失函数:
式中,M为训练样本,μm和πm表示训练样本的均值和权重,SP,f{μm}表示训练样本与当前相关滤波核f的卷积响应得分,y0表示训练样本的高斯标签,ω是f的惩罚项。一般P在初始帧确定保持不变,(3)式每6帧使用共轭梯度更新。ECO算法对比C-COT算法,在以下3个方面有所改进。
(1)减少滤波器。ECO算法相对于C-COT算法简化了特征提取的过程,针对C-COT算法每一个维度对应一个滤波器,但是滤波器对于算法的贡献不同的问题,ECO算法选用相对贡献较多的滤波器,减少滤波器的数量,用少于特征维度数量的滤波器利用线性组合表示每一维度特征。
(2)减少训练集。C-COT算法在跟踪过程中每更新一帧就增加一次训练样本,导致当前的训练数据中存在相似度较高的样本较多,从而导致滤波器过拟合的问题。而ECO算法用了GMM来生成不同的组合,从而使得每一个组合对应一组相似度较高的样本,不同的组合之间差异性较大。
(3)减少滤波器更新频率。ECO算法规定模型每隔帧更新一次。模型更新频率降低,在提高了跟踪速度同时也避免模型在跟踪过程中漂移问题。一般设置为6。
ECO算法主要对C-COT算法三方面改进,即减少滤波器数量、减少训练集的样本量以及降低滤波器的更新频率,从而降低了C-COT算法的计算复杂度,从而提升跟踪速度。但其并未对特征提取网络过程进行改进,本文中针对特征提取网络模型较大、计算量大以及参数量多的问题,进一步对ECO算法进行改进。
1.2 GhostNet特征提取网络
1.2.1 Ghost模块 深度卷积神经网络是由大量的卷积操作组成的神经网络,会导致整个神经网络在卷积的计算开销过大。针对上述现象以及深度卷积神经网络中间特征图有较多的冗余情况,HAN 等人提出了GhostNet算法,并且主要运用于减少特征提取的计算量。对于任意的卷积运算都表示为:
Y=X*r+b
(4)
式中,Y∈Rh′×w′×e,X∈Ro×h×w,r∈Ro×k×k×l,*代表卷积操作,b表示卷积运算偏置项,R表示多维矩阵,o是卷积通道数,h表示特征图高度,w表示特征图宽度,l代表卷积核数量,e表示特征图的数量,h′是特征图输出高度,w′是特征图输出宽度,k×k是卷积核的内核尺寸。在卷积过程中,每秒所执行的浮点运算次数(floating-point operations per second,FLOPS)的计算量为l×h′×w′×o×k×k,由于卷积核个数l和通道数o通常数量较多,使得网络的参数量也较大。要优化的整个网络结构,决定于输入和输出的特征图结构。Ghost模块采用基本卷积过程产生原始的q个特征图,如下式所示:
Y′=X*r′
(5)
式中 ,r′∈Rc×k×k×q表示卷积核,q≤l,为了得到e个特征图,采用如下式所产生的z个经过线性运算的特征:
yi,j=Φi,j(yi′),(i=1,…,q;j=1,…,z)
(6)
式中,yi′是Y′中第i个原始特征图,Φi,j是第i个原始特征图生成第j个经过变换后的特征图。经过公式的变换即可得到e=q×z个特征图。一般线性运算在每个通道进行,计算成本将小于原始卷积核。具体过程如图1所示。
Fig.1 Maps of different ways to generate feature
1.2.2 端侧类残差模块 端侧类残差模块(ghost bo-ttlenecks,G-bneck)利用Ghost模块的优势和小型的CNNs设计。由两个Ghost模块组成G-bneck主要结构,第1个Ghost模块主要起增加通道数和膨胀层作用,第2个GhostNet主要用于减少通道数和连接两个Ghost模块的输入输出。具体结构如图2所示。
Fig.2 Ghost Bottlenecks structure of different stride
1.2.3 GhostNet网络结构 GhostNet以G-bneck为基础,构建如表1所示的网络结构。主要将Ghost模块作为构造块,第1层采用标准的卷积过程, G-bneck操作增加通道数,G-bneck根据不同大小的特征图分组到不同阶段。表1中包含挤压与激发(squeeze-and-excitation,SE)块,Conv2d表示卷积层,AvgPool表示均值池化层,FC表示全连接层。
Table 1 GhostNet network structure
1.3 全局平均池化
全局平均池化是将一个特征图用一个数值表示的过程,其中该数值是由特征图中的所有像素相加后平均得来。全局平均池化主要作用是减少参数量、计算量以及防止网络过拟合。网络通过全局平均池化在防止过拟合过程中也对每个通道赋予了类的含义,该过程为网络在结构上减少了全连接层的操作。具体方式如图3所示。本文中全局平均池化的参数设定为u/4,u/16。其中u为输入图像的尺寸。
Fig.3 Influence of global average pooling on feature maps
1.4 评价指标
精确度表示追踪算法估计位置中心点与人工标注的目标中心点之间的距离小于给定阈值的视频帧的百分比。默认阈值为20个像素点。
成功率表示追踪算法的重合率得分(overlap score,OS),重合率定义如下式所示:
式中,φ表示重合率得分,α表示追踪算法得到的边界框,β表示人工标注的真实边界框。当某一帧的φ大于设定的阈值,则视频帧标记为成功,总的成功帧占所有帧的百分比为成功率。φ默认设定为0.5。
鲁棒性表示追踪算法在跟踪过程中的跟踪失败帧数占总帧数的百分比。鲁棒性在数值上越小表示跟踪效果更好。
平均期望覆盖率(expect average overlap rate,EAO)表示每个跟踪器在短时图像序列上的非重置重叠期望值。将所有的序列长度分类,使跟踪器在固定长度的视频帧上进行测试,得到每一帧的精确度ρ(K)。根据下式得到每一帧总序列的平均值:
式中,ρU表示在序列长度为U的EAO值,U表示长度大小,K表示不同视频帧的长度。
2 GECT跟踪算法
2.1 GECT跟踪算法结构
本文中提出的是一种基于GhostNet卷积特征的ECO目标跟踪改进算法,主要由特征提取模块,全局池化模块以及跟踪与更新模块3个部分组成。GECT跟踪算法框架图如图4所示。特征提取模块主要用于跟踪过程中的视频帧的特征提取过程,主要包括手工特征提取与卷积特征提取。为了验证本文中提出算法在卷积特征的提取差异,故手工特征提取过程与ECO算法中保证一致性。本文中的算法卷积特征主要是在GhostNet特征提取网络的第1层卷积和block层的提取视频帧的图像特征,而原始ECO算法中采用的VGG-16网络或者ResNet-50网络提取图像特征。经过特征提取模块后,特征会通过全局池化模块,该模块对卷积特征下采样增加特征对图像的表征能力,提高对算法的性能,该模块对ECO算法是一种新的改进策略,该模块不存在于ECO算法中。为了验证本文中提出算法在卷积特征的提取差异,故跟踪与更新模块与ECO算法结构保持一致。
Fig.4 GECT tracking algorithm framework diagram
2.2 GECT跟踪算法步骤
GECT跟踪算法具体步骤如下:(1)初始化算法参数,基本参数根据ECO算法中的默认参量,如初始化相关滤波核f,创建余弦窗口,构建高斯标签y0等参数;(2)读取视频的第1帧作为初始帧图像,根据数据集提供的位置信息裁剪第1帧子训练样本;(3)将子训练样本输入GhostNet特征提取网络提取卷积特征,将卷积特征经过全局平均池化得到深度特征和浅层特征,同时根据ECO算法中的手工特征过程提取手工特征。对特征进行加窗、插值处理Jd{xd};(4)将步骤3得到的特征初始化训练集GMM中的第1个组合产生训练集;(5)根据得到的训练集更新得到新的相关滤波核f,并保存当前信息;(6)读取下一帧视频,同步骤(3)处理得到新的Jd{xd};(7)使用傅里叶变换将Jd{xd}和当前相关滤波核f转化到频域进行卷积计算,得到响应分数SP,f{μm},找到最高响应分数位置作为当前帧目标位置;(8)将步骤(7)得到的目标信息在当前帧裁剪出子训练样本;(9)使用GMM对Jd{xd}更新训练集;(10) 对是否跟新滤波器f进行判断,如需更新,执行步骤(5);(11)判断是否跟踪完成,如没有,执行步骤(6);如跟踪完成,输出目标信息,保存结果。
3 结果与分析
3.1 实验平台
本文中所做实验均在一台处理器为Inter(R)Core(TM)i7-7700 3.60 GHZ,内存为16GB,操作系统为64位Windows10 Professional,编程环境为Python3.6,深度学习框架为PyTorch。
3.2 实验参数设置
GECT算法参数设置如下:采用GhostNet网络作为特征提取模块,选择第一卷积层和最后Ghost层作为网络特征提取层。采用全局平均池化为u/4,u/16作为池化参数,其中u为输入网络的视频帧尺寸大小。未提及的参数采用ECO算法默认参数。
3.3 GECT算法在OTB2015和VOT2018的实验结果
3.3.1 特征提取过程参数量与计算量分析 为了验证本文中所提出的GECT算法在特征提取网络在计算量和参数量的轻量性,将GhostNet网络与VGG-16、ResNet-50在参数量和计算量上进行对比。具体结果如表2所示。表中VGG-16和ResNet-50分别表示原始ECO算法在特征提取过程中网络模型,输入图像的大小为通道数3,宽度为224个像素,高度为224个像素。表中GhostNet的参数量为5.2Mbit,远远小于VGG-16的参数量,也较ResNet-50少近5倍的参数量。GhostNet的FLOPS计算量为0.15Gbit,也远远小于VGG-16的15.62Gbit,较ResNet-50少近23倍的计算量。
Table 2 Parameters and calculations with different structures
3.3.2 特征提取过程有无预训练过程分析 为了研究本文中所提出的GECT算法采用有无预训练的GhostNet特征提取网络对整个跟踪效果的影响,对特征提取网络GhostNet是否有预训练进行实验。表3所示为有无预训练对数据集OTB2015跟踪结果的影响。GECT跟踪算法的精确度0.847高于无预训练的GECT(GECT without pre-training,GECT-NP)算法的精确度0.804,成功率0.620高于无预训练的GECT-NP算法的成功率0.603。实验结果表明, GECT算法对有预训练的网络对于整体的特征提取有良好的效果。
Table 3 The impact of pre-training process on the tracking results of OTB2015
3.3.3 特征提取过程特征数量对结果的影响分析 为了研究本文中所提出的GECT算法采用无预训练的GhostNet特征提取网络对整个跟踪效果的影响,将特征提取网络GhostNet最后一层提取的特征数由960个增加到2000个。表4所示不同特征数对数据集OTB2015跟踪结果的影响。实验结果表明,经过增加最后一层的特征数,本文中所提GECT算法的成功率从0.603增加到0.605,精确度从0.804增加到0.828,在成功率和精确度上都有明显的提升。同时说明了经过GhostNet的特征提取与变换,不同特征具有不同的表达能力。
Table 4 The influence of the number of features on the tracking results of OTB2015
3.3.4 特征可视化分析 为了研究本文中所提GECT算法在特征的表征能力,将GhostNet特征提取网络和全局平均池化后的特征进行输出,图5和图6所示为GECT算法在数据集OTB2015中篮球视频序列的可视化结果。图5是视频帧图像和浅层特征的可视化结果,图6是深度特征的可视化结果。实验结果表明,浅层特征更注重视频帧的纹理,深层特征更注重视频帧相应的语义信息。
Fig.5 Visualization results of video frame images and shallow features
Fig.6 Visualization results of deep features
为了研究特征在具体视频帧中的表现,将VOT2018中的篮球视频序列跟踪分数加权可视化。由图7中可知,本文中提出的GECT算法在跟踪过程中,高响应分数的区域一直处于目标上,证明本算法在跟踪过程中高稳定性和高精确性。
Fig.7 Response score weighted visual tracking results
3.3.5 跟踪速度分析 为了研究本文中所提出的GECT算法在运行速度上的优势性,将GECT算法与ECO-VGG-16、ECO-ResNet-50在数据集VOT2018和OTB2015上进行对比,其中ECO-VGG-16是VGG-16作为ECO算法的特征提取网络,ECO-ResNet-50是ResNet-50作为ECO算法的特征提取网络。实验结果如表5所示。在跟踪速度上,GECT算法的速度为1.3frame/s,比ECO-ResNet-50的速度提升近250%,比ECO-VGG-16的速度提升近650%。结果表明,GECT算法在速度上的优势明显高于同样的深度特征的ECO-VGG-16算法和ECO-ResNet-50算法。
Table 5 The influence of feature extraction network on the tracking speed of VOT2018
3.3.6 全局平均池化对跟踪性能分析 为了研究本文中所提出的GECT算法中全局平均池化对跟踪结果的影响,对有无池化过程在数据集VOT2018上实验,其中GECT-NGAP算法表示无全局平均池化过程。实验结果如表6所示。GECT算法的精确度(0.512)高于无全局平均池化的GECT(GECT without global average pooling,GECT-NGAP)算法的准确度(0.498),GECT算法丢失的帧数为87帧,要少于GECT-NGAP算法的109帧, GECT算法整体的鲁棒性(0.407)高于GECT-NGAP算法的鲁棒性(0.512),GECT算法综合结果EAO指标(0.226)也高于GECT-NGAP算法EAO指标(0.211)。结果表明,GECT算法在采用全局平均池化时,跟踪结果整体水平高于无平均池化的GECT-NGAP算法。
Table 6 The impact of the pooling process on the tracking results of VOT2018
3.3.7 跟踪性能对比分析 为了验证GECT跟踪算法的有效性,采用GECT算法与主流相关滤波算法对比结果。对比的算法如下:基于手工特征的ECO算法(ECO algorithm based on handcraft features,ECO-HC)、空间正则化相关滤波器(spatially regularized correlation filters,SRDCF)、背景感知相关滤波(background-aware correlation filters,BACF)算法、基于线性核的对偶的相关滤波器(dual correlation filter,DCF)算法、核相关滤波 (kernel correlation filter,KCF)算法、比例自适应多特征(scale adaptive multiple feature,SAMF)算法、时空正则相关滤波器(spatial-temporal regularized correlation filters,STRCF) 算法等算法。
(1)在数据集 VOT2018的测试结果。多种跟踪算法在VOT2018测试跟踪结果如表7所示。本文中GECT算法的跟踪精度为0.512、鲁棒性为0.407、EAO为 0.226,在对比中主流的相关滤波算法中跟踪效果最好。由表7可知,本文中所提出的GECT算法在精确度和鲁棒性上排名靠前,EAO综合评价指标也比其它算法高,有效地证明了本文中算法在跟踪算法中的高精度性和高稳定性。
Table 7 Comparison test results of the algorithm on VOT2018
(2)在数据集OTB2015的测试结果。在公开数据集OTB2015进行对比,并采用一次跟踪评估(one-pass evaluation,OPE)作为评价方式。测试结果如表8所示。本文中所提算法其跟踪精度为0.847、成功率为0.620。相比其它的相关滤波算法,本文中所提算法在精确度和成功率上都排名较高,在OTB2015上也表现出了高精度和高成功率。
Table 8 Comparison test results of the algorithm on OTB2015
4 结 论
本文中提出的GECT目标跟踪算法利用GhostNet特征提取网络和全局平均池化方式提升了算法的跟踪性能。首先应用GhostNet在参数量和计算量的优势设计主干的特征提取网络,通过全局平均池化增加特征的表征能力。在减少目标跟踪算法参数量和计算量的同时,提高整个过程的跟踪速度;但在公共数据集OTB2015的精确度与成功率上仍然没有达到最优。下一步将在精确度与成功率上对本文中提出的GECT目标跟踪算法进一步研究。