1. 引言
近年来,随着人工智能技术的快速发展,目标追踪算法作为计算机视觉领域的重要分支,已经取得了显著的进步和广泛的应用。当前,在多个领域中,包括无人驾驶技术、视频监控、无人机检测、人机交互、增强现实等,都用到了目标追踪技术[1]。在这些实际应用场景中,如何确保算法能够高效且准确地追踪动态目标,无疑是一个复杂且有难度的任务。因此在这些应用场景中需要一种可靠的目标追踪算法,能够满足各种任务的需求。经过这些年的技术发展和算法改进,目标追踪技术在追踪目标时已经有了较好的跟踪效果。在2010年,Bolme等人就已提出了Minimum Output Sum of Squared Error (MOSSE)方法进行滤波器的目标跟踪训练,并取得较好的效果[2]。在此基础上,又发展出来Circulant Structure Kernel (CSK)、Background Aware Correlation Filters (BACF)等跟踪算法,都取得较好的跟踪效果。
尽管目标跟踪技术已经取得了显著的进展,但要实现更加鲁棒、准确和实时的跟踪算法,仍需克服一系列技术方面的障碍[3]-[8]。当跟踪的目标被其他物体遮挡或从视野中暂时消失时,重新定位和继续跟踪目标成为一个难题。在复杂或动态的背景下,上述MOSSE、CSK等算法可能难以区分目标和背景,尤其是当背景包含与目标类似的颜色和纹理时,对追踪的目标可能会更难识别。尽管上述算法在准确性上表现出色,但它们可能无法实时处理高分辨率视频,这限制了它们在实时应用(如自动驾驶车辆)中的使用。在此背景下,根据前面所提到的一些目标追踪算法所遇到的问题,在2014年Joao Fhenriques等人又提出了KCF目标跟踪算法[9],此算法在跟踪精度和速度上都有所提升。
KCF目标追踪算法是一种比较流行的跟踪算法,它因为在实时视频处理中的高效性而受到广泛的关注。KCF目标追踪算法首先对训练样本进行特征提取(如图像像素值或HOG特征[10]);其次,这些提取的特征被用来构建一个循环矩阵,其中每一行都是通过将原始特征向量循环移位得到的。KCF算法的核心在于利用循环矩阵和快速傅里叶变换(FFT)来提高计算效率。FFT允许在频域中进行计算,这比在时域中进行相同的计算要快得多。
在KCF算法中,循环矩阵的每一行都被FFT转换到频域,这使得可以快速计算目标的位置和尺度。KCF算法的另一个关键特点是它通过核技巧引入非线性。核技巧允许算法在高维空间中学习复杂的目标表示,而无需显式地在这个高维空间中进行计算,从而提高了效率。
然而,KCF目标跟踪算法在处理遮挡和背景干扰方面仍存在一些局限性。首先,KCF算法在处理遮挡情况时的性能不足。当跟踪的目标被其他对象遮挡时[11]-[13],算法可能失去跟踪目标或错误地跟踪遮挡物体。其次在动态或复杂的背景中,KCF算法可能难以区分目标和背景,尤其是当背景包含与目标相似的颜色或纹理时。此外,光照条件的变化可能导致目标外观的显著变化,从而影响跟踪准确性。尽管KCF算法在处理小尺度和缓慢移动的目标时表现良好,但它在处理快速运动和尺度变化显著的目标时效果不佳。这是由于算法缺乏有效的机制来适应这些快速和大幅度的变化[14]-[18]。
针对原始KCF目标追踪算法的一些局限性,本文提出了一种引进边缘检测算子、多特征融合、尺度自适应相结合的改进型KCF目标追踪算法。通过引进的LOG算子[19],对初始帧图像进行处理,能够突出图像中的边缘和纹理信息,增强目标的特征。将颜色特征与方向梯度直方图进行线性融合,在处理目标被遮挡场景时,可以获取目标图像更多特征信息。通过尺度池解决算法的自适应尺度问题。最后通过OTB-100数据集验证了改进的算法相较于原始KCF目标追踪算法的有效性。
2. KCF目标追踪算法
KCF目标追踪算法是一种利用在线学习机制进行目标跟踪的算法,它使用岭回归[20]来适应不同分数的样本,通过引入核方法提高了对目标与背景之间的分类效果。此外,算法中循环矩阵的傅里叶对角化特性被用于加速样本的训练进程。KCF目标跟踪算法的计算过程可以分为:模型建立、在线匹配、模版更新三个主要部分[21]。
1) 模型建立:目标函数为:
(1)
采用正则化式防止分类器过拟合,其表达式为:
(2)
式中,
表示系数向量,
表示正则项系数,xi表示第i个数据样本,yi表示样本类别,其中
用来防止过拟合。求解方程组极值时,只需对
微分,令导数等于0,即可求得最小值:
(3)
转化为傅里叶域为:
(4)
引入核函数:假设映射函数为
,则
变化为
(5)
参数
求解变为求解参数
,设各样本之间乘积核函数的矩阵为
(6)
目标函数最终转化为
(7)
最后求得核函数岭回归的解为
(8)
核空间的核矩阵为
,通常情况下非线性函数
的表达式是不知道。现令K表示核空间的核矩阵,则可得到:
(9)
(10)
式(10)中符号
表示的是K矩阵的第一行的傅里叶变换。
2) 在线匹配:
定义
是训练样本和测试样本间在核空间的核矩阵。可得各个测试样本的响应:
(11)
式中的
表示核矩阵
的第一行,确定最大值
所在的位置,即为我们要找的目标位置。
3) 模版更新:
在模型更新阶段,通过线性插值的方法对目标的样本向量
以及样本模型x进行更新,公式如下:
(12)
(13)
3. 本文跟踪算法主要内容
3.1. 引入边缘检测算子
对于原始的KCF目标追踪算法在对初始帧目标图像的计算中,没用利用更多的图像边缘信息,这对需要模版信息进行位置更新的追踪算法来说是可以提升的地方。因此,本文通过在原始KCF目标跟踪算法初始帧中加入LOG算子,在一些复杂场景下可以获取目标更多的纹理细节,得到很好的跟踪效果。在实际应用中,引入LOG算子到KCF跟踪算法中可能会增加计算量,因为需要先对图像进行卷积操作以获得LOG特征。因此,需要权衡引入LOG特征后的性能提升和额外计算成本之间的关系。在一些应用场景下,例如在高质量的视频流中,或者在计算资源不是主要限制因素的情况下,使用LOG算子可以显著提升跟踪性能[22]。
LOG算子的核心思想是先对图像进行高斯平滑,然后再用Laplacian算子进行边缘检测。LOG算子把高斯平滑操作和Laplacian操作结合起来,使边缘检测更加精确和有效[23]。
为了抑制噪声,在使用拉普拉斯算子进行边缘检测之前,通过与高斯函数做卷积对图像进行先平滑处理,可表示为
(14)
其中,高斯函数的表达式为
(15)
式中,
为标准差,决定了图像的平滑程度。
根据卷积的微分性质,可知
(16)
根据上述公式表明,用高斯函数与一幅图像做卷积,再用拉普拉斯算子计算所得的结果,等价于用
直接与这幅图像做卷积。所以直接计算高斯函数的拉普拉斯算子,将拉普拉斯算子和高斯函数组合成为单一的高斯拉普拉斯算子
,再与图像做卷积,
是拉普拉斯算子。
不考虑
的归一化常数
,高斯函数关于x方向的一阶偏导数可以表示为下述公式
(17)
根据式(17),进一步计算高斯函数关于x方向的二阶偏导数为
(18)
同理,计算高斯函数关于y方向的二阶偏导数为
(19)
在二阶偏导数的基础上,LOG算子
定义为:
(20)
上式就是高斯拉普拉斯函数(Laplacian of the Gaussina),又称为LOG滤波器、墨西哥草帽算子,式中
即为LOG算子。
3.2. 多特征线性融合的KCF
为了克服原始KCF目标追踪算法在处理复杂环境时由于仅依赖单一特征而导致跟踪准确度不足的问题,本文提出了一种多特征融合的技术以增强跟踪效果。具体来说,本文的算法融合了HOG特征和CN特征[24],以此来提升目标跟踪过程中的准确性。HOG是一种基于梯度信息的图像特征,可以很好地反映目标图像的局部形状信息,并依据局部梯度的大小把图形的局部外观以及形状特征化,更好地应用到跟踪算法中。由于CN特征对光照具有一定的不变性,融合这类特征可以帮助KCF算法更好地处理光照变化对跟踪的影响。特别是在一些复杂的场景下,CN特征能提供补充信息,帮助算法在复杂情况下维持稳定跟踪。本文使用多特征线性融合机制,将多通道应用在图像特征。设数据多通道串联到一个向量
,进行下式的多特征融合
(21)
在上式中:
表示各特征向量的傅里叶变换,
表示各特征向量的系数,
表示各特征向量的傅里叶变换的共轭变换。通过多特征线性融合的方式,能够获得更多目标图像的信息,使追踪效果具有更好的鲁棒性。
3.3. 基于尺度自适应方法改进的KCF目标追踪算法
原始的KCF目标跟踪算法在对视频监控中的目标长时间追踪时会导致KCF的性能有所下降。主要原因在于追踪目标的过程中,随着目标位置信息以及背景的变化,追踪目标的尺度未能及时做出改变。目标在跟踪过程中可能会发生旋转或者倾斜,导致目标在图像中的外观发生变化。目标在跟踪过程中可能会发生形变,例如由于目标自身的变形或者外界干扰导致目标外观的变化。传统的KCF目标跟踪算法跟踪器的尺度是固定的,当正在追踪的目标尺度变大时,跟踪器只能学习到高层次的信息;而目标尺度变小时,跟踪器也仅能学习到许多背景信息,这些都会降低跟踪的准确度。
针对因为尺度变化导致KCF跟踪算法准确性降低的问题,在本文中提出使用尺度池的方法来解决算法的自适应尺度问题。首先,通过对目标的缩放转换成不同的尺度Si,然后在对所有的尺度进行计算,得到不同尺度对应的响应值Fsi,通过比较响应值的大小,找到最大的响应值,最大响应值对应的尺度为最佳尺度。通过尺度池的应用,KCF算法能够有效地适应目标尺度的变化,提高了跟踪的准确性和稳定性。同时,尺度池也使得KCF算法能够处理不同尺度的目标,提高了算法的通用性和适用性。使用尺度池方法进行尺度计算的原理如图1所示。
Figure 1. Schematic diagram of scale pool method
图1. 尺度池方法原理图
在本文中,为了尽可能保证算法追踪目标的准确度,设置尺度池Si = {1, 0.98, 0.99, 0.996, 1.00, 1.01, 1.015}。
3.4. 改进算法流程图
与原始的KCF目标跟踪算法相比,在原始算法的基础上使用了LOG算子,在特征提取中也加入了颜色特征,最后的尺度计算方法中也使用了尺度池。这些方法的加入,对原始的KCF目标追踪算法有很大的提升。具体的改进算法流程如下图2所示。
本文所提出的改进算法首先是将获取的第一帧图片使用LOG算子进行边缘特征提取,这可以突出图像中的边缘结构,因为边缘处的灰度值变化较大,对应于拉普拉斯算子的响应。接着通过将HOG特征与CN特征进行线性融合,弥补了HOG特征无法描述目标颜色特征的不足。通过尺度池计算不同尺度对应的响应值,最大值即为最佳尺度,也为最佳响应值。改进的跟踪算法基本过程在下表中有解释,具体请详见表1。
Figure 2. Improved algorithm flowchart
图2. 改进算法流程图
Table 1. Basic process of improving algorithms
表1. 改进算法基本流程
改进KCF目标跟踪算法 |
输入:视频序列,初始帧中的目标位置P0 (x0, y0);输出:后续帧中跟踪目标的位置Pt (xt, yt)。算法步骤://初始化Step1:在视频序列中,获取第一帧中目标的位置信息,并使用LOG算子处理第一帧图像,通过特征提取获得
和
并线性融合,利用样本训练得到一个相关滤波器;for t = 2:END//特征提取Step2:根据目标在上一帧中的位置Pt − 1 (xt − 1, yt − 1)在当前帧中进行采样,提取样本特征,并经窗函数处理;//检测Step3:将处理后的样本特征与相关滤波器进行运算得到相应响应,根据响应最大值确定当前帧的目标位置Pt (xt, yt);//更新Step4:根据当前帧的目标位置Pt (xt, yt)确定训练样本,跟新训练滤波器;end |
4. 算法测试及结果分析
4.1. 实验标准与参数
在本文中所使用的数据集为OTB-100,采用成功率图(Success Plot)和跟踪精度图(Precision Plot)两个标准对所改进的跟踪算法进行定量分析。实验平台软件使用Matlab2022a,硬件CPU为AMD 5800H,主频为3.8 GHz,内存为16 GB,PC的操作系统为Windows 10 64bit。通过数据集验证本文中的算法是有效的。本文算法初始化参数设置如下:正则化参数
,高斯内核带宽
。
4.2. 使用边缘检测算子的实验结果与分析
在下图中,本文使用了OTB-100数据集中的Soccer数据目标人物的头部作为跟踪目标,通过跟踪目标的头部框图以验证LOG边缘检测算子的实际效果。
根据下面所给出的实验结果图可以看出图3是在未引入LOG算子的情况下使用数据集Soccer得出的结果图,可以看出跟踪结果并未在目标的头部。图4是在引入LOG算子的测试结果,可以看出跟踪结果在目标的头部。从实验结果图可以得出使用了LOG算子的改进算法在跟踪目标背景复杂的情况下也能准确无误的跟踪中目标,而未使用此算子改进的算法未能准确跟踪中目标,从而导致跟踪目标发生失败。所以,LOG算子的加入有助于提高算法的准确性。
Figure 3. Test results without using LOG operator
图3. 未使用LOG算子测试结果
Figure 4. Test results using log operator
图4. 使用LOG算子测试结果
从下图的行人移动被遮挡后跟踪效果图分析出,原始KCF算法在跟踪目标被遮挡后目标无法被重新跟踪,最后跟踪失败。而从本文的改进算法的结果图来看,当目标被遮挡后再次无遮挡物时,目标仍然能够被准确跟踪,体现出改进算法的准确性。根据数据集中的Jogging-1数据测试跟踪精度结果得出跟踪精度也比较高,最后能够成功跟踪被遮挡的目标。
Figure 5. Tracking results of initial KCF algorithm
图5. 原始KCF算法跟踪结果图
Figure 6. Tracking results of improved KCF algorithm
图6. 改进KCF算法跟踪结果图
4.3. 与其他算法的性能比较
Figure 7. Comparison results of success rate
图7. 成功率对比结果图
为了验证本文改进算法跟踪的精准度和鲁棒性,本文选取了4种常见的跟踪算法进行实验对比。其中Tracking Learning Detection (TLD)算法结合了跟踪、学习和检测的技术,用于追踪视频序列中的目标物体,该算法能够在目标遮挡、尺度变化和形变等情况下有效地跟踪目标。相较于改进型KCF算法,TLD算法包含学习机制,计算复杂度较高,实时性不如改进型KCF。Circulant Structure of Tracking by Detection with Kernels (CSK)是一种基于相关滤波器的目标跟踪算法,该算法具有快速的速度和良好的性能,能够应对一定程度的目标外观变化和图像噪声。但是在有些复杂场景下的准确度不如改进型KCF算法。通过对上述几种目标跟踪算法的分析,认为本文的改进算法在提取目标特征方面有较大的优势,在跟踪目标的准确度和鲁棒性等方面会有较好的效果。本文改进算法的对比实验结果如下图所示。通过在OTB-100数据集上验证改进的算法,实验结果表明,改进的算法在跟踪成功率与跟踪的精度上面都有所提高,验证了本文算法的有效性。
Figure 8. Precision comparison results
图8. 精度对比结果图
5. 结束
本文提出了一种在原始的KCF目标追踪算法基础上加入了LOG算子以及使用多特征融合和尺度池的目标跟踪算法。使用LOG算子对数据的初始帧图像进行边缘处理,处理后的图像可以获得更多的边缘信息;同时将CN特征与HOG特征进行线性融合,使用融合的特征作为新的特征。CN特征对光照变化较为鲁棒,而HOG特征对目标的形状和边缘特征敏感。通过线性融合,可以在不同方面增强鲁棒性,使得目标跟踪算法更具适应性,不容易受到光照变化或形状变化的影响。加入的尺度池能够适应不同的目标尺度。尺度池通过对不同尺度的特征进行整合,使得KCF算法能够更好地适应这些尺度变化。通过使用OTB—100数据集对改进的算法进行验证评估,改进后的算法相较于原始的KCF目标跟踪算法在精度上提升明显,具有很好的跟踪效果。同时对比其他算法,在跟踪成功率与跟踪的精度上面都有所提高,证明改进的算法具有更好的跟踪效果。
基金项目
辽宁工业大学博士科研启动基金(XB2022004)。