无迹卡尔曼滤波Cam-Shift视频监控跟踪算法改进

2021-03-16 08:30何文乐
无线电工程 2021年2期
关键词:无迹卡尔曼滤波图像

何文乐

(中山市中等专业学校,广东 中山 528400)

0 引言

随着信息科技的发展,视频监控系统已经广泛应用到各行业。智能视频监控运动目标跟踪的目的是通过获得目标特征,提取目标运动参数。针对不同的监控场景,学术界做出了许多建设性的探讨,总体分为以下4类:特征跟踪算法、3D模型跟踪算法、运动边缘跟踪算法以及区域跟踪算法。

为了实现对运动目标实时精准定位及跟踪,很多学者对目标跟踪方法做了很多研究和改进。例如,Paragios和Deriche[1]同短程线的运动轮廓结合Levelset理论在视频图像序列中对多个运动目标实现跟踪;Polana和Nelson[2]首次提出用矩形框作为跟踪窗口对每个跟踪目标进行定位及跟踪,其中矩形框的质心表示目标跟踪特征;Isard和Blake[3]提出基于随机微分方程描述复杂的运动模型的方法,并与可实时更新的模板相结合应用于对人的跟踪。2000年,Jang和Choi[4]通过对目标区域的纹理颜色、边缘等特征构件区域模型,并通过卡尔曼滤波算法来对运动目标进行跟踪。

近年来,目标跟踪算法的研究一直作为智能视频监控发展的重要课题,国内外学者进行了大量研究,各种运动目标跟踪算法优化也大量涌现,并且很多运动目标跟踪方法已经在一些领域得以应用。但目前运动目标跟踪算法仍然面临很多问题有待研究解决。

本文的创新点是通过重新构建无迹卡尔曼滤波目标模型,针对监控画面中的运动目标的尺寸大小、变形旋转和被遮挡等变化的特点,优化跟踪窗口设计,并结合无迹卡尔曼滤波Cam-Shift(Continuously Adaptive Mean-Shift)进行设计,每一次目标跟踪,均根据上一次目标的质心作为下一次目标跟踪的参考点,并根据质心的位置调整跟踪窗口的大小,从而模拟运动目标的运动轨迹,实现目标跟踪。

1 Cam-Shift算法

1.1 均值漂移跟踪算法

均值漂移(Mean-Shift)这一概念最早由Fukunage在1975年提出,其最初的含义正如其名:偏移的均值向量,随着理论与技术的不断发展,目前在聚类、图像平滑、分割和跟踪等方面有着广泛的应用。

1.1.1 Mean-Shift工作原理分析

Mean-Shift目标跟踪算法通过分别计算出目标区域和候选区域内像素点的特征值概率,来描述目标模型以及候选模型;然后根据比较相似函数度量初始帧目标模型和当前帧的候选区域模板的相似性,选出相似值最大的候选模型;同时计算出目标模型的Mean-Shift向量,表示运动目标由初始位置向正确位置移动方向向量。基于Mean-Shift的快速收敛性,多次迭代计算Mean-Shift向量,算法收敛于运动物体的真实位置,目标跟踪效果好。

Mean-Shift跟踪算法的工作原理如图1所示。

图1 Mean-Shift工作原理Fig.1 Working Principle of Mean-Shift

1.1.2 Mean-Shift跟踪算法优缺点分析

Mean-Shift跟踪算法计算量不大,在目标区域已知的情况下完全可以做到实时跟踪,对目标模型的变形、遮挡等情况不敏感,具有一定的鲁棒性。但传统的Mean-Shift跟踪算法也存在着局限性:缺乏必要的模板更新;目标跟踪过程中由于窗口宽度大小保持不变,当目标尺度有所变化时,跟踪就会失败;当目标速度较快时,跟踪效果不好;直方图特征在目标颜色特征描述方面略显匮乏,缺少空间信息。

1.2 Cam-Shift跟踪算法分析

Cam-Shift对视频序列的所有图像帧都作Mean-Shift运算,具体过程为将上一帧视频图像的结果作为下一帧视频图像Mean-Shift算法的搜索窗口的初始值,多次反复迭代。Mean-Shift是针对单张视频图像帧来搜索最优迭代结果,Cam-Shift是针对所有视频序列进行处理,并在视频图像序列每一帧图片均使用Mean-Shift算法来寻找最优迭代结果。由于Cam-Shift是针对所有视频图像序列反复迭代,确保其能够适应窗口大小,即使运动目标的尺寸大小发生改变,该算法也可以自适应地调整目标区域,在复杂的监控环境更好地实现对目标的跟踪。

与Mean-Shift相同的是,2种算法均通过一个权值图像对运动目标进行跟踪,其中权值最大的地方对应着密度最大处,即表示运动目标可能出现的区域,Cam-Shift和Mean-Shift跟踪算法都能够迭代地收敛于密度最大处。

1.2.1 构建目标模型

(1)

在Cam-Shift算法中,为了将全职显示为灰度图像,一般通过比例变换将权值映射到[0,255]。

1.2.2 模型跟踪过程

(1)目标位置

① 计算0阶矩和1阶矩

0阶矩:

(2)

1阶矩:

(3)

② 计算目标位置

(4)

(2)基于二阶矩的目标尺度和方向估计

(5)

令:

则有:

(6)

式中,l1,l2分别为目标的长轴和短轴长度;θ为目标的方向角。

1.2.3 Cam-Shift跟踪算法优缺点

Cam-Shift跟踪算法的优缺点如下:

① Cam-Shift跟踪算法是基于颜色统计做的跟踪,在监控画面的背景与前景运动目标有相近似的颜色时,当目标快速运动,可能会出现跟踪错误的过程。

② Cam-Shift跟踪算法由于在颜色空间RGB到HSV变换过程中,在监控画面的亮度或对比度不强的情况下,映射关系不稳定,导致一些非目标点的像素也被判断为目标区域,出现跟踪错误的现象。

③ Cam-Shift算法由于只在初始位置(而不是从每个像素点)开始迭代,若初始位置目标跟踪出现错误,收敛的位置还是原位置,会产生跟踪信息丢失的现象。

④ Cam-Shift算法是对直方图反投影所形成的二值图像进行处理的,如果背景较为复杂或者物体的纹理较为丰富,那么此二值图像的噪声就很多,将直接干扰算法对物体位置的判断。所以对于复杂背景或者纹理丰富的物体跟踪效果较差。

基于上述不足,为了提高目标跟踪的精准性和增强对干扰的鲁棒性,本文提出了基于无迹卡尔曼滤波Cam-Shift算法改进。

2 融合无迹卡尔曼滤波Cam-Shift算法改进

2.1 构建目标模型

无迹卡尔曼滤波(Unscented Kalman Filter,UKF)是重要的非线性滤波方法。UKF算法是通过一组代表均值和方差分布的采样点来对非线性系统进行非线性计算,在不对非线性方程线性近似的条件下,达到线性卡尔曼滤波器的滤波效果。

UKF基于传统卡尔曼滤波器的基本结构,不要求系统是近似线性的,也不要求状态函数和量测函数必须是连续可微的,它甚至可以应用于不连续系统。不论系统非线性程度如何,无迹变换理论上至少能以三阶泰勒精度逼近任何非线性高斯系统状态的后验均值和协方差,因此与传统的扩展卡尔曼滤波(EKF)算法相比,UKF算法对运动目标具有较小的跟踪误差。

(7)

对应于ξι的一阶、二阶权系数表示为:

(8)

(9)

(10)

(11)

在获得新的量测后,进行滤波量更新,则有:

(12)

由式(12)可见,该算法过程主要分别是对时间及量测的更新。

2.2 优化跟踪窗口

当监控画面中运动目标的尺寸大小、变形旋转和被遮挡等变化时,ωi的变化也会导致跟踪搜索窗口的尺寸随之改变。包含干扰信息的跟踪窗口与目标模板的误差增大,最后导致跟踪失败。因此本文提出一个参数λ限制跟踪窗口的尺寸产生突变,使其保持在一定范围内。经过多次实验,参数λ∈[0.8,1.2],目标跟踪窗口比较稳定。跟踪窗口的优化具体如下:

(13)

通过以上方法对跟踪窗口进行优化,使得目标捜索区域始终在既定合理的范围内变化,防止跟踪窗口发生突变,提高对运动目标的跟踪效果。

2.3 结合无迹卡尔曼滤波的Cam-Shift跟踪算法设计

结合UKF的Cam-Shift跟踪算法(K_Cam-Shift)运动目标跟踪过程中,视频连续2帧图像序列时间间隔较短,目标位移变化较小,假定该情况下2帧时间间隔内做匀速运动,T表示视频相邻2帧图像序列的时间间隔。

2.3.1 设置跟踪参数

设某运动目标在时刻k的变量为X(k),则其所在的位置和速度定义的运动状态向量定义为:X(k)=[x(k),y(k),vx(k),vy(k)],分别表示运动目标在时间k对应在x轴和y轴上的位置及速度。其中,

运动目标在时刻k观测状态向量定义为:z(k)=[xw(k),yw(k)],表示此时观测目标的位置。初始化状态矩阵为:

(14)

式中,Δt表示t(k)和t(k-1)的时间间隔,可以采用帧数差分来表示,即此时Δt=1。噪声方差矩阵为:

(15)

2.3.2 模型跟踪过程

UKF算法通过既得的目标信息,计算出在当前帧中对要被跟踪的预估值,得到的预测坐标,再基于Cam-Shift算法在该坐标处为被跟踪的目标进行多次计算迭代,以至达到目标的实际位置。K_Cam-Shift跟踪算法流程图如图2所示。

图2 K_Cam-Shift跟踪算法流程Fig.2 Process of K_Cam-Shift tracking algorithm

具体跟踪过程如下:

① 利用起始跟踪窗口的位置和大小表示Cam-Shift跟踪算法的输入,并对其初始状态向量X(0)进行初始化。并用这个参数初始化卡尔曼滤波器。

3 实验结果及分析

为了验证改进后的Cam-Shift算法性能,采用了3组场景,每组实验分别抽样4组图,本实验编程环境为Matlab2011b。

3.1 实验仿真

(1)实验1:单目标跟踪

针对单目标跟踪,通过将原始图像序列(如图3所示),分别经过Mean-Shift算法(如图4所示)、Cam-Shift算法(如图5所示)、K_Cam-Shift算法(如图6所示)进行比较。

(a)第3帧

(b)第34帧

(c)第74帧图3 原始图像序列Fig.3 Original image sequence

(a)第3帧

(b)第34帧

(c)第74帧图4 Mean-Shift算法跟踪效果Fig.4 Tracking effect of Mean-Shift algorithm

(a)第3帧

(b)第34帧

(c)第74帧图5 Cam-Shift算法跟踪效果Fig.5 Tracking effect of Cam-Shift algorithm

(a)第3帧

(b)第34帧

(c)第74帧图6 K_Cam-Shift算法跟踪效果Fig.6 Tracking effect of K_Cam-Shift algorithm

跟踪目标为运动的人。由图4可以看出,传统Mean-Shift算法无法及时收敛;由图5可以看出,相比传统的Mean-Shift算法,传统的Cam-Shift算法有了一定的改进,能够自适应调节跟踪窗口,但仍存在无法正确收敛的跟踪;由图6可以看出,K_Cam-Shift在目标由小变大的过程中均保持很好的跟踪效果。

(2)实验2:目标遮挡跟踪

针对目标遮挡跟踪,通过将原始图像序列(如图7所示),分别经过Mean-Shift算法(如图8所示)、Cam-Shift算法(如图9所示)、K_Cam-Shift算法(如图10所示)进行比较。

(a)第18帧

(b)第56帧

(c)第99帧图7 原始图像序列Fig.7 Original image sequence

(a)第18帧

(b)第56帧

(c)第99帧图8 Mean-Shift算法跟踪效果Fig.8 Tracking effect of Mean-Shift algorithm

(a)第18帧

(b)第56帧

(c)第99帧图9 Cam-Shift算法跟踪效果Fig.9 Tracking effect of Cam-Shift algorithm

(a)第18帧

(b)第56帧

(c)第99帧图10 K_Cam-Shift算法跟踪效果Fig.10 Tracking effect of K_Cam-Shift algorithm

跟踪目标是行驶过程受遮挡速度较快的汽车。由图8可以看出,传统的Mean-Shift跟踪算法均无法及时收敛,搜索窗口为整个监控画面,因此跟踪失败;由图9和图10可以看出,相比传统Cam-Shift跟踪算法,K_Cam-Shift跟踪算法在整个汽车行驶的跟踪过程中,其搜索窗口更接近汽车行驶的真实位置,跟踪效果更好。

(3)实验3:多目标跟踪

针对目标遮挡跟踪,通过将原始图像序列(如图11所示),分别经过Cam-Shift算法(如图12所示)、K_Cam-Shift算法(如图13所示)进行比较。

(a)第24帧

(b)第35帧

(c)第54帧图11 原始图像序列Fig.11 Original image sequence

(a)第24帧

(b)第35帧

(c)第54帧图12 Cam-Shift算法跟踪效果Fig.12 Tracking effect of Cam-Shift algorithm

(a)第24帧

(b)第35帧

(c)第54帧图13 K_Cam-Shift算法跟踪效果Fig.13 Tracking effect ofK_Cam-Shift algorithm

跟踪目标是多辆在高速公路快速行驶的汽车,属于多目标跟踪。由图12和图13可以看出,相比传统Cam-Shift跟踪算法,本文提出的K_Cam-Shift跟踪算法在多辆汽车行驶的跟踪过程中,跟踪效果更好。

3.2 实验结果分析

为了评估目标检测算法的性能,本文以实验1的Man1.avi前25帧视频图像序列对Mean-Shift算法、Cam-Shift算法及K_Cam-Shift算法的跟踪窗口坐标参数,来验证各跟踪准确率:

(16)

式中,TP表示正确跟踪的数目;FN表示错误跟踪的数目。各算法的跟踪性能如图14所示。

图14 各算法的跟踪性能Fig.14 Tracking performance of each algorithm

现实生活中,视频监控系统对运动目标跟踪实时性要求高,因此满足精准率的同时尽量减少计算量,以达到实时跟踪的效果。下面对以上3种跟踪算法的快速收敛性进行比较分析,如表1所示。

表1 各跟踪算法运行效率Tab.1 Operation efficiency of each tracking algorithm 单位:s

由表1可以看出,本文提出的K_Cam-Shift的运行效率均高于传统的Mean-Shift及Cam-Shift跟踪算法。以实验1为例,Mean-Shift的效率为109 ms/frame,Cam-Shift的效率为96 ms/frame,本文算法效率为78 ms/frame,效率比Mean-Shift算法提高30%,比Cam-Shift算法提高20%,更好满足实时性的要求。

4 结束语

介绍了Mean-Shift算法和Cam-Shift算法的跟踪原理及过程,其中包括Cam-Shift算法的跟踪原理包目标模型描述、候选模型描述以及迭代过程。针对Mean-Shift及Cam-Shift跟踪算法缺点,提出一种融合无迹卡尔曼滤波器的Cam-Shift算法改进,由实验结果分析,本文提出的跟踪算法性能和效率都相比传统算法更好,在视频监控运动目标跟踪效果较好。今后,将基于本文提出的改进算法对多目标视频跟踪、存在多个干扰的目标跟踪进行进一步的研究以提高优化算法的鲁棒性。

猜你喜欢
无迹卡尔曼滤波图像
基于深度强化学习与扩展卡尔曼滤波相结合的交通信号灯配时方法
没停
善行无迹
巧用图像中的点、线、面解题
有趣的图像诗
卡尔曼滤波在信号跟踪系统伺服控制中的应用设计
我是一面等风的旗
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
基于有色噪声的改进卡尔曼滤波方法
旋转导向系统有色噪声的改进无迹卡尔曼滤波方法