一种抗遮挡尺度自适应核相关滤波器跟踪算法
2018-11-22黄影平
居 超,黄影平,胡 兴
(上海理工大学 光电信息与计算机工程学院,上海 200093)
跟踪是计算机视觉中一个基础的问题,在视频监控,人机交互和机器人感知等领域有重要的应用。这里说的目标跟踪,通用单目标跟踪,第一帧给定矩形框,这个框在数据库里被人工标注,在实际情况下大多是检测算法的结果。然后需要跟踪算法在后续帧紧跟住这个框,一旦跟踪框跟丢了目标就认为跟踪失败。近年来,随着相关滤波概念的引入和深度学习理论的提出,目标跟踪技术得到了显著的提高。然而,尺度变化、外观形变、光照变化、快速运动、遮挡和背景相似干扰等问题仍未得到很好的解决。
1 国内外文献综述
目标视觉跟踪主要分为两大类:生成模型方法和判别模型方法。生成类方法是在当前帧对目标区域建模,在下一帧寻找与模型最相似的区域即预测位置,如卡尔曼滤波(Kalman filtering)、粒子滤波(particle filter,PF)和均值偏移算法(mean-shift)等。判别类方法是在当前帧以目标区域为正样本,背景区域为负样本,机器学习方法训练分类器,下一帧用训练好的分类器找最优区域。经典判别类方法有STRUCK(structured output tracking with kernels)算法[1]和 TLD(tracking-learningdetection)算法[2]等。与生成类方法不同的是,判别类方法的分类器采用机器学习,训练中用到了背景信息,这样分类器就能专注区分前景和背景,所以判别类方法效果普遍比生成类好。
Bolme 等[3]提出一种最小输出误差平方和(minimum output sum of squared error, MOSSE)算法,首次将相关滤波的方法引入跟踪领域。相关是度量两个信号相似值的指标,相关值越高,那么两个信号之间就越相似。对于跟踪而言,就是要设计出这样一个滤波器,当它作用在跟踪目标上时,响应达到最大,最大响应值对应的位置就是目标所在的位置。Henriques等[4]在MOSSE算法基础上提出循环结构的检测跟踪(circulant structure of tracking-by- detection with kernels, CSK)算法。引入循环矩阵实现了密集采样,从而将整张图片的特征利用起来。引入核函数的方式则将分类器变为非线性分类器,原先低维线性不可分或者非线性可分的情况得以解决,使得分类器能够运用在高维的特征空间里。但是CSK并未解决尺度不变性、灰度特征和由循环矩阵引起的边届效应等问题。核相关滤波器(kernel correlation filter, KCF)算法[5]的提出在多通道特征以及核方法上作了优化,使用多通道的HOG特征替换掉CSK单通道的灰度特征,采用高斯核函数优化运算。然而,由于KCF在跟踪过程中设定目标框的大小始终不变,但实际跟踪过程中目标大小必然时常发生变化,这样就会出现目标框在跟踪过程中漂移,从而导致跟踪失败。另外,KCF在跟踪过程中对于目标被遮挡的情况也未有很好的解决之道。
针对多尺度问题,Li等[6]基于KCF算法采用HOG+CN特征,提出平移滤波器在多尺度缩放的图像块上进行目标检测,取响应最大的那个平移位置及所在尺度,以此解决多尺度问题。Danelljan等[7]提出分类尺度空间跟踪器(discriminative scale space tracking ,DSST)方法,只用了HOG特征,分类相关滤波器(discriminative correlation filter,DCF)用于平移位置检测,又专门训练类似MOSSE的相关滤波器检测尺度变化,开创了平移滤波加尺度滤波。近年来,针对遮挡问题,有些学者也提出相应的方法,比如使用分块的方法对目标进行跟踪。分块的总体思想[8-9]是将跟踪目标分割成不同部分进行特征学习,然后分别跟踪,最后融合起来得到目标最终的位置。
国内也有众多学者针对KCF存在的问题提出了各种改进方法。潘振福等[10]借鉴分类尺度空间跟踪器法,利用尺度金字塔策略将图像映射到一维特征向量作为输入得到最佳尺度输出,以此解决多尺度问题。杨德东等[11]提出利用空间正则化和在线SVM分类器重定位组件方法解决跟踪失败情况下目标重定位问题。本文结合自适应核相关滤波器(scale adaptive kernel correlation filter tracker with feature integration,SAMF)算法[6],采用尺度池原理解决了KCF跟踪过程中的尺度问题。同时本文还提出一种抗遮挡机制,当目标被遮挡时,停止对分类器模型进行更新和尺度预测,避免由于尺度的更新造成漂移和失败。
2 KCF跟踪算法基本原理
2.1 样本表示
KCF中所有的训练样本是由目标样本循环位移得到的,一个向量 x =[x1,x2,···,xn]∈ Rn,可以通过不断乘上排列矩阵得到n个循环移位向量,将这n个向量依序排列到一个矩阵中,就生成了循环矩阵X,表示成
扩展到二维情况就是把图像向上、向下分别移动不同的像素得到新的样本图像,这样就可以扩展到n2个样本,从而用来训练分类器。KCF不严格区分正负样本,更多的样本可以得到更好的训练效果。
循环矩阵的计算可以直接把所有的样本都转换为对角矩阵进行处理,简化计算
式中,F是离散傅里叶矩阵,为常量,FH为F的复共轭转置矩阵。
2.2 分类器训练
设训练样本集为(xi,yi),训练的目的就是使用岭回归(脊回归)函数
式中:w为分类器参数;z为待检测图像。
寻找一个线性回归函数,要使得误差函数
取得最小值,其中λ为正则化参数,以保证分类器的泛化性能。解法是对函数求导,使导数等于0,然后求得w,即是要求的函数,写成复数域的形式为
式中: x =[x1,x2,···,xn]T的每一行表示一个向量,y是列向量,每个元素对应一个样本的标签,XH表示X的复共轭转置矩阵。
利用式(2)的循环矩阵对角化来简化式(6)中的脊回归公式得到
使用点积运算代替矩阵运算,极大地提高了运算速度,则得到
接下来,使用核函数把线性问题映射到非线性核空间,这样在低维空间不可分到核空间之后就可分了。设非线性函数为ϕ(x),则此时的分类器权重系数为
对输入的训练样本线性组合,令
于是从寻找最优w问题转换为寻找a的最优解,将式(10)代入式(9)推导出
2.3 快速检测
待检测的样本可由预测区域和其循环移位的样本得到,设为
那么响应函数为
由zj判断前后帧之间目标移动的位置。
KCF采用高斯核函数,其计算公式为
则测试样本的响应可表示为
响应函数的最大值所对应的检测区域即为当前帧的目标区域。
3 改进的多尺度核相关滤波器算法
3.1 尺度不变性
尺度变化是目标跟踪过程中比较基础的问题,传统的KCF算法没有自适应尺度更新。当目标缩小时,滤波器就会学习到大量背景信息;当目标扩大时,滤波器就错误跟踪到目标局部纹理,这两种情况都很大程度上会导致模型漂移和目标丢失。
本文受到SAMF的启发,采用尺度池方法。对检测的目标进行尺度缩放得到不同的尺度值Si,通过滤波器之后计算相应的响应值 FSi,然后比较不同尺度响应值的大小,最大对应的尺度值则为最佳的目标尺度值。更新最佳尺度值用于目标跟踪,能够解决跟踪过程中尺度不变性的问题,如图1所示。
图1 基于尺度池方法的尺度不变性算法原理框图Fig.1 Block diagram of the basic principle for the KCF algorithm
SAMF采用7个尺度,步长Si={0.985, 0.99,0.995, 1.0, 1.005, 1.01, 1.015},但是在计算大图像块时计算量很高。本文为了跟踪的实时性,不大幅度降低处理速度,因而降低尺度数量,增加步长,采用步长Si={0.95, 1.0, 1.05}的3个尺度作为尺度池计算最佳尺度。
3.2 有遮挡情况下的跟踪处理方法
3.2.1 抗遮挡检测机制
首先使用平均峰值相关能量[12](average peak-to correlation energy, APCE)和相关滤波响应峰值(Fmax)作为跟踪置信度指标判断目标是否受到遮挡。响应峰值可由式(16)响应函数取到最大值得出,一般来说Fmax的值越大说明跟踪效果越好。但是Fmax并不能完全反映响应图的振荡程度,在目标被遮挡时Fmax不一定小于历史平均峰值,所以只用Fmax作为判断指标并不能完全反映跟踪的目标是否处于被遮挡状态。因此,结合一个新的跟踪置信度指标APCE来加以判断:
式中:Fmax表示响应峰值;Fmin表示响应最低值;Fw,h表示在(w,h)位置的响应值。这个判据可以反映响应图的振荡程度,当APCE突然减小时,就是目标被遮挡,或者目标丢失的情况,如图2和图3所示。
图2 Jogging图像序列第66帧、74帧和83帧Fig.2 66th frame, 74th frame and 83rd frame of the Jogging image sequence
图2 采集自Benchmark50数据库Jogging序列,从中可以看出目标从部分遮挡到完全遮挡再到无遮挡的过程。图3反映了Jogging图像序列各帧Frame的Fmax和APCE值,可以看出,第74帧附近目标被遮挡时,Fmax与APCE相对于这段视频APCE的历史均值下降得很明显;第83帧无遮挡时,相对于第74帧两者的值都明显提高。因此,本文选择结合APCE和Fmax的特点,当二者都以一定比例大于历史均值时,模型才更新,这样既减少了模型漂移情况,又加快了运行速度。
本文的改进算法使用两个阈值threshold1和threshold2来判断模型是否需要更新,实验中threshold1用来判断 Fmax,threshold2用来判断APCE,分别取值0.5和0.4。
3.2.2 模型更新策略
KCF算法中对模型系数α前后帧结果进行了线性插值
图3 Jogging图像序列各帧Fmax和APCE值Fig.3 Fmax and APCE values of each frame in the Jogging image sequence
式中:α为下一帧分类器检测的模型参数;αpre为前一帧分类器训练样本得到的参数;β为线性插值因子,传统KCF算法中取固定常量;αx'由当前新的目标区域训练得到。
线性插值的目的是为了让模型不至于剧烈变化,但是目标一旦被遮挡若干帧之后,可能模型就再也回不去了,因为模型已经完全被遮挡物污染掉了,β取固定常量就显得不合理。
因此本文提出一种抗遮挡的方法,对β取值的策略为
即当目标受到遮挡时,停止更新分类器模型。
当目标被遮挡时,跟踪目标因水平运动上的遮挡而停止在竖直方向上移动,所以不会同时有尺度上的变化,因此当目标被遮挡时同时停止尺度的更新可以避免由于尺度的更新造成漂移和失败。
3.3 改进算法流程
结合之前的尺度不变性和抗遮挡方法分析,在传统KCF跟踪算法的基础上,本文提出的改进核相关滤波器算法流程如下所示:
a. 参数初始化;
b. 读取第i帧序列;
c. if (i=0),使用第一帧和目标框来初始化跟踪器;
d. else;
e. 基于当前帧计算目标位置响应值f;
f. 计算跟踪置信度指标Fmax和APCE,以及响应均值¯;
g. if Fmax>threshold1*¯&& APCE> threshold2*¯;
h. 使用尺度池计算最佳目标尺度值Sl;
i. 使用 β=0.012来更新分类器模型系数α =(1-β)αpre+βαx′;
j. 根据步骤h和步骤i来更新跟踪器和目标区域;
k. else;
l. 停止尺度更新,β取值为0,停止更新分类器模型;
m. 返回步骤 b。
4 实验结果
4.1 实验环境及参数
本实验基本配置,VS2012+opencv3.0,Intel®Core(TM) i5-3380M CPU,主 频 2.90GHZ,8G内存。在实验中,传统的KCF参数保持不变,padding窗口为目标的250%,高斯核标准差σ为0.6,线性插值因子β为0.012,正则化参数λ为0.000 1,尺度因子为3,步长为1.05.
4.2 评价指标及结果分析
为了评估本文跟踪算法的性能,参考Wu等[13]提出的OTB(online object tracking)视频序列跟踪效果评价指标,采用了中心位置误差(center location error,CLE)、重叠精度(overlap precision, OP)和每秒处理帧率(FPS)作为评价指标。CLE是跟踪结果的中心坐标与人工标定的实际中心坐标之间的欧氏距离,可用来衡量成功率,结果越小性能越优。当CLE小于某个阈值时认为跟踪成功(一般取值20pixel),表1(见下页)列出了CLE阈值小于20pixel的帧数占视频总帧数的百分率大小。OP表示跟踪得分,即精确度,定义为给定跟踪框Bt与实际跟踪框Ba区域面积的交集与并集比。当比值score大于给定阈值时认为跟踪成功(一般取值0.5),表1列出了OP作为性能指标时跟踪成功的帧数占视频总帧数的百分率。
表1中的结果均在同一实验环境下运行得到,视频集选用OTB标准视频序列,这些序列包含光照变化(BlueCar2)、目标遮挡(Jogging,Women)、尺度变化(CarScale)、快速移动(Car4)、旋转(Dog)等问题,有助于更好地评价跟踪性能好坏,实验时选取的CLE和OP阈值分别为20pixel和0.5。
表1 多个视频序列测试不同算法评价指标对比Tab.1 Comparison of evaluation indexes of different algorithms for the multiple video sequence testing
表1表明,本文提出的改进算法在目标出现遮挡时改善效果明显,成功率和精确度显著提高,尺度不变性适应良好。在面对快速移动,光照变化等条件影响时,该算法依然保留了KCF算法的高效性。虽然由于算法复杂性提高,FPS略有下降,但依然保证了算法的实时跟踪性。
根据传统KCF算法与本文算法在多个视频序列中的跟踪结果标注出跟踪结果框(bounding boxes),如图4所示。
图4 两种算法在OTB典型的遮挡和尺度变化数据集Jogging,CarScale上的跟踪效果Fig.4 Tracking effects of the two algorithms on the OTB data sets,Jogging and CarScale,under typical occlusion and scale change
Jogging视频序列中,左侧行人在第68帧出现部分遮挡时,两种算法均能正常跟踪。第74帧出现完全遮挡情况后,KCF分类器模型受到污染,模型更新失败,导致第87帧与第100帧中目标丢失,而本文的算法仍能成功跟踪。Carscale视频序列中车辆由远及近尺度变化明显,与KCF算法相比,本文提出的算法具有自适应尺度不变性,提升了跟踪的精确度。
5 结束语
针对传统KCF算法不具有尺度问题,本文结合自适应核相关滤波器算法,采用尺度池原理解决了KCF跟踪过程中的尺度问题。同时本文还提出一种抗遮挡机制,当目标被遮挡时,停止对分类器模型进行更新和尺度预测。经计算在处理遮挡问题时,提升效果显著,同时具有自适应尺度变化,在保证实时性的同时提高了算法准确度和鲁棒性。