孙紫君, 黄福珍
(上海电力学院 自动化工程学院, 上海 200090)
计算机视觉是所有从二维图片中获得情景信息的计算机处理方法的总称[1]。目标跟踪是国内外计算机视觉领域的研究热点[2-3],在机器人、视频监控、人机交互和无人驾驶等领域应用广泛。通常目标在视频或图像序列中存在着外观变形、尺度变化、光照变化、快速旋转运动、背景相似干扰和视野丢失等现象[4-5]。这些现象的存在,使得目标跟踪具有一定的难度。研究人员针对不同的问题提出了不同的解决方法。这些方法可以分为两大类:一是生成类方法,二是判别类方法。生成类方法是在前一视频帧的目标区域建模,在当前帧寻找与模型最相似的区域;判别类方法是在前一视频帧的目标区域和背景区域中提取正负样本进行训练,从而得到一个目标分类器,利用训练好的目标分类器找到待检测目标的位置。
基于相关滤波(Correlation Filtering,CF)的跟踪方法属于判别类方法[6]。CF方法的跟踪性能良好,计算效率极高,能够跟踪较复杂的目标,是目标跟踪领域的研究热点之一。在跟踪过程中,CF方法通过前一帧的训练数据集训练分类器,利用训练好的分类器跟踪当前帧的目标,同时更新分类器。HENRIQUES J F等人[7-8]将核函数引入误差最小平方和滤波(Minimum Output Sum of Squared Error,MOSSE)算法,提出了基于循环结构核(Circulant Structure Kernels,CSK)算法,并在该算法的基础上改进得到了核相关滤波(Kernelized Correlation Filters,KCF)算法。KCF算法加入了多通道方向梯度直方图(Histogram of Oriented Gradient,HOG)特征,提高了跟踪器的跟踪精度。但当跟踪的目标外观发生变化时,仅利用图像的单一特征进行跟踪会产生模型误差,从而影响目标跟踪的稳健性。
针对上述问题,本文在KCF算法的基础上,提出了一种多特征融合的核相关滤波跟踪方法。从特征融合入手,将优缺点可以互补的特征进行融合,同时在数据集上进行实验,以验证改进算法的跟踪性能。
KCF算法是利用循环矩阵构造训练样本。假设基础样本x是一组1×n维的向量[x1,x2,x3,…,xn],通过循环移位可以得到样本矩阵X,表示为
(1)
其中矩阵X的第一行为向量x,其他各行是向量x向右移动1,2,3,…n-1位得到的样本。文献[7]表明,所有的循环矩阵都能够在傅里叶域使用离散傅里叶矩阵进行对角化,即
(2)
式中:F——离散傅里叶矩阵;
FH——F的复共轭的转置;
∧——离散傅里叶变换。
样本训练是为了找到一个函数f(xi)=wTxi,让样本xi与其对应的yi的均方误差最小。
(3)
式中的λ是正则化参数,其作用是提高分类器的泛化能力,防止过度拟合。
由线性最小二乘法解得
w=(XHX+λI)-1XHy
(4)
利用循环矩阵的特性,将式(2)代入式(4)中,再进行离散傅里叶变换,可得
(5)
α=(K+λI)-1y
(6)
(7)
对于待检测样本z,其对应的回归值为
(8)
当待检测样本z数量较多时,采用循环矩阵构造检测样本。定义训练样本和检测样本的核矩阵为
KZ=C(kxz)
(9)
结合式(8)和式(9)可得
f(z)=(KZ)Tα
(10)
为了提高计算速度,将式(10)转化到傅里叶域计算,此时目标函数可以表示为
(11)
跟踪目标对应的位置,就是目标函数的最大响应值,详细的算法计算过程可以参考文献[8]。
在跟踪算法中,特征表达的是否有效直接决定跟踪结果的好坏。为了平衡特征表达能力和计算复杂度,在KCF算法的基础上提出了融合具有相互互补性的特征。在不同的跟踪场景中,不同的特征对目标的描述各有侧重,本文主要介绍灰度特征、HOG特征和局部二值模式(Local Binary Patterns,LBP)特征。
2.1.1 灰度特征
灰度(Gray)特征是跟踪算法中使用较早的一种特征,例如在MOSSE算法和CSK算法中均采用了灰度特征进行目标描述。灰度特征是先将原始图像转化为灰度图,然后对灰度值进行归一化,使得光照变化对该特征的影响减弱。灰度特征如图1所示。
图1 灰度特征示意
2.1.2 HOG特征
HOG特征的主要思想是,在图像中计算图像的梯度或边沿方向的分布情况来反映部分图像目标的表示和形状[9]。HOG特征通过计算每个像素点的梯度(包括大小和方向两个方面),将输入图像划分为若干大小的单元格,再将单元格中的梯度方向划分成不同的方向。单元格中的每个像素在不同的梯度方向上的加权投影,最终形成梯度直方图,几个相邻的单元格就形成了一个块。其详细的特征提取过程可参考文献[10]。输入图像和单元格为4×4的HOG特征可视化结果如图2所示。
图2 HOG特征可视化结果示意
2.1.3 LBP特征
LBP算子是在一个3×3的窗口内,将窗口内的中心像素点灰度值设为阈值,并将其周围8个邻域内的各像素点的灰度值与中心像素点的灰度值进行比较。若灰度值大于中心点的灰度值,则在该位置标记为“1”,否则标记为“0”。最终将二值化后的结果按照一定的顺序组成一个8位二进制数,即该数表示的就是该点的LBP值。其详细的特征提取过程可参考文献[11]。LBP算子的特征可视化结果如图3所示。
图3 LBP算子可视化结果示意
灰度特征只有一维,便于与其他特征融合;同时它计算简单、复杂度较低,可以最大程度地描述目标本身的状态。当图像目标尺寸较小或图像的分辨率较低时,计算过程复杂的特征描述子并不能够完全描述目标,这时采用灰度特征可以改善跟踪效果。
HOG特征属于局部形状特征,对光照影响和几何形变不敏感,计算复杂度也较低,符合实时目标跟踪的要求。当跟踪场景中有形变、光照变化以及局部遮挡发生时,利用HOG特征跟踪目标效果良好。在目标和背景颜色相近、目标边缘或者背景有噪声的场景中,HOG特征和灰度特征无法有效地描述目标,此时则可以利用纹理特征对跟踪目标进行补充描述。LBP特征的描述方法与HOG特征相似,易与HOG特征融合。
多特征融合需要融合的特征对目标的描述有互补性,还要有相似的计算过程。由上述介绍可知,3种特征在不同的场景中对目标的跟踪各有优劣,三者之间存在一定的互补性且将这3种特征进行融合是可行的。
针对HOG特征,本文采用的是快速Felzenszwalb’s HOG特征[12]。该特征将梯度方向分为9个,利用9个方向通道的直方图计算HOG特征。其中,有2×9维方向通道的对比度敏感,有1×9维的方向通道的对比度不敏感,还有1×4维的纹理通道。因此,本文采用的HOG特征的总维数是18+9+4=31维。
针对LBP特征,本文采用的是LBP算子的等价模式。对于标准LBP特征,将其二进制数串记为首尾循环,若其中从0到1或者从1到0跳变次数小于等于两个,则称该局部二进制模式为等价模式[13]。利用等价模式,LBP算子就可以从原始的256种减少到58种,其特征维数就可以降为58维。
通常,按照融合系统中数据抽象的层次,图像融合可以划分为像素级融合﹑特征级融合和决策级融合3个级别[14]。文献[15]指出,采用特征级图像融合方法描述所识别的性能要优于像素级图像融合和决策级图像融合。特征融合的方法一般有串联融合和并联融合两种。串联融合后形成新的特征矩阵,此时特征矩阵的维数为特征向量维数相加;并联融合后形成的新特征矩阵维数为特征向量中维数的最大值。当需要融合的特征向量维数较多时,串联融合会使融合后的新特征向量维数也较多,会加大需计算的特征通道数,进而影响算法的跟踪速度。并联融合不会增加需计算的特征通道数,但要求融合的特征向量之间具有相似的特征维数,从待融合特征本身而言,待融合的特征还需有相似的表达方式和归一化的表达空间。
在3种待融合特征中,HOG特征和LBP特征具有相似的特征表达方式。HOG特征(31维)和LBP特征(58维)特征维数相似,若这两者之间采用串联融合,算法需计算的特征通道就会增加,所以串联融合不适用于这两种特征的融合,应采用并联融合。灰度特征只有一维,采用串联融合不会给其他特征造成特征维数的负担。相比于其他融合方式,串联融合和并联融合较为常见且易于编程实现。本文先将HOG特征(31维)和LBP特征(58维)并联融合,再串联融合灰度特征,融合后的特征为HLG(HOG+LBP+Gray)特征(59维)。特征层融合的方法如图4所示。
图4 特征层融合法
改进的KCF算法首先从输入的视频帧中读取候选图像块,将融合好的HLG特征进行特征提取,然后训练分类器,通过训练好的分类器检测出目标的位置,最后更新跟踪模型的参数。改进的KCF算法流程如图5所示。
图5 KCF算法流程示意
改进算法的详细步骤如下。
步骤1 参数初始化。从数据集中读入第一帧和跟踪目标的初始位置pos,创建跟踪目标框并将跟踪框的大小扩大为2.5倍,大小记为M×N,同时对跟踪框进行余弦加权。
步骤4 样本检测。先提取下一帧图像的HLG特征,再通过步骤3中更新的model_xf计算检测核相关矩阵,model_alphaf计算响应值。找到响应值中最大的值,即为跟踪的目标位置。重复步骤2到步骤4,直到所有的图像序列加载完成。
本实验的数据集采用的是文献[4]提出的OTB(Object Tracking Benchmark)数据集。OTB数据集中的视频序列包含了光照变化、尺度变化、遮挡、目标变形、目标运动模糊、目标快速移动、目标平面内旋转、目标超平面旋转、目标离开视野、背景杂乱和低分辨率等不同的运动场景。通过灰度特征、LBP特征、HOG特征和新合成的HLG特征,选取数据集中较为典型的Basketball,Skating1,Shaking,Tiger2,Couple,Freeman4序列进行了跟踪。利用灰度特征跟踪目标的实验结果如图6所示。LBP特征跟踪目标的实验结果如图7所示。HOG特征和HLG特征跟踪目标的实验结果如图8所示。
由图6可以看出,图6(a)中跟踪框出现漂移现象;图6(b)中由于目标和背景太过接近,跟踪框无法确定目标的准确位置;图6(c)和图6(d)中出现了目标丢失的情况;图6(e)中的跟踪较好;图6(f)中出现了短暂的目标丢失,但最终仍能实现对目标的跟踪。由图6(e)和图6(f)可以看出,灰度特征在跟踪目标较小、目标在平面内快速移动的场景中跟踪效果较好。
由图7可以看出,图7(a)和图7(b)、图7(e)和图7(f)序列中都出现了目标丢失的情况,跟踪效果不佳,但在图7(c)和图7(d)序列中的跟踪效果较佳,在目标跟踪的过程中没有出现目标丢失和跟踪框的漂移。可见LBP特征在背景复杂、光照变化强烈、有部分遮挡的场景中可以很好地跟踪到目标。
图8 HOG特征和HLG特征实验结果
图8中每组序列的上面一行是HOG特征的跟踪效果,下面一行是新合成的HLG特征的跟踪效果。由于原算法采用的是HOG特征,故将HOG特征和HLG特征的跟踪效果进行对比。由图8可以看出,HLG特征的跟踪效果要优于HOG特征的跟踪效果。由图6和由图7可以看出,LBP特征和灰度特征均不能很好地实现实时跟踪,都存在一定的缺陷。由此可知,相较于单一的特征,融合后的特征能够适应在更多的场景中进行跟踪,且跟踪效果较好,弥补了原算法仅使用单一特征跟踪目标的缺陷。
跟踪效果的好坏与跟踪准确度有很大的关系。本实验采用跟踪准确度作为定量分析指标。在跟踪过程中,准确度定义为跟踪框中心距离目标真实位置中心在一定阈值范围以内的帧数占视频序列总帧数的比例[16]。图9为改进算法和KCF算法在OTB数据集上进行跟踪测试时的跟踪性能示意。
图9 算法跟踪准确度比较
由图9可以看出,本文所提算法在KCF算法的基础上,较好地提高了跟踪目标的准确度。当阈值为20像素时,原算法准确度是0.609,本文算法准确度是0.649,其准确度较原算法提高了4%,表明在跟踪过程中,本文算法完全可以在满足跟踪实时性的同时具有一定的跟踪精度。
本文提出的多特征融合的核相关滤波跟踪算法,较好地克服了目标尺度变化、光照变化、目标形变等挑战属性;利用融合后的特征表达,在具有挑战性的场景中对目标进行跟踪,获得了较好的跟踪效果。由于本文所提算法计算速度快、编程简单、易于实现,所以能够适用于更多场景中对目标的实时跟踪。本文算法的不足之处是目标尺度无法实现自适应的变化,今后可以从目标尺度自适应的方向进行改进,以增加目标跟踪的准确率。