一种基于改进均值漂移的实时目标检测与跟踪算法
雷颖惠,张娟,杨文佳
(北京理工大学 自动化学院,教育部复杂系统智能控制与决策重点实验室,北京,100081)
摘要:针对随动监控系统下的运动前景目标,提出一种改进的实时目标检测与跟踪方法。首先,在运动目标初次进入视频场景时,通过基于自适应混合高斯模型的方法提取运动目标。然后,利用融合了卡尔曼滤波的均值漂移算法对运动目标进行预测跟踪,使其能处于随动系统的视野中心。提出的算法既保证了检测跟踪的实时性,又增大了对运动目标进行跟踪的视野范围。实验结果表明:该算法能够实时自动地对运动目标进行检测与随动跟踪。
关键词:卡尔曼滤波;均值漂移;目标检测;目标跟踪
中图分类号:TP301 文献标志码:A 文章编号:1672-7207(2011)S1-0823-06
Real-time moving object detection and tracking based on improved mean shift
LEI Ying-hui, ZHANG Juan, YANG Wen-jia
(Key Laboratory of Complex System Intelligent Control and Decision, Ministry of Education,
School of Automation, Beijing Institute of Technology, Beijing 100081, China)
Abstract: An improved real-time target detection and tracking method was proposed based on moving foreground object in the servo monitoring system. This method extracts moving object based on adaptive mixture of Gaussian when the object comes into the video scene, then tracks the moving object using improved MeanShift algorithm, and makes it in the center of the scene. The algorithm not only ensures the real-timing of the detection and tracking, but also enlarges the sight of the camera when the object is tracked. The experiment results show that this method can automatically detect moving object and do servo tracking.
Key words: Kalman filter; mean shift; moving foreground segmentation; moving object tracking
在计算机视觉研究领域中,旨在赋予监控系统观察分析场景内容能力的智能视频监控技术是近年来备受关注的前沿方向,因为实现监控的自动化和智能化具有巨大的应用潜力[1]。运动目标的检测和跟踪是智能监控系统的重要研究内容,是其他高层处理如目标分类与识别、行为理解及语义描述等的基础。
在摄像机静止的情况下背景模型已知,目标检测比较容易,目前主要的方法有背景减除方法[2]、帧间差方法[3]和光流方法[4]等。当摄像机运动时,由于背景也在运动,传统的静止背景图像序列下的目标检测技术无法应用, 使得运动目标检测任务变得更有挑战性。目前,学者们提出的这类情况下的检测方法的基本思想是[5]:利用全局运动参数估计和背景补偿技术把问题转化为静止摄像机下的目标检测问题。但这些方法都依赖于精确的运动模型和仿射模型,在非标定系统中难以应用,且运算量大,无法应用于实时的检测系统中。
运动目标跟踪算法中常用的有卡尔曼滤波、均值漂移算法以及粒子滤波等。其中均值漂移算法[6]是一种基于核函数密度逐渐增加的无参数估计方法,以其无需先验知识、收敛速度快等优点得到了广泛的应用。但它在某些场景下存在一些不足,比如如果目标在连续的两帧中偏移较大,其跟踪结果往往出现偏差,甚至跟踪失败,且对复杂背景下的灰度成像运动目标的跟踪性能也需要提高。
本文针对随动监控系统下的运动前景目标,提出了一种实时检测与跟踪的方法。
1 问题分析
1.1 系统描述
设备示意图如图1所示。高精度云台装在三脚架上,上面装载有镜头和数字CCD面阵相机,云台通过串口线和PC机相连,数字CCD面阵相机和PC机通过1394转接卡实现通信。系统需要对数字相机采集到的图像中的运动目标进行主动检测和跟踪。
图1 设备示意图
Fig.1 Equipment schematic diagram
1.2 解决方案
在传统的视频监控系统中,摄像机通常是静止的,而单个摄像机在一定角度内的观察范围有限。在实际应用中,为了确保对可疑目标或者感兴趣目标的大视野、大场景的跟踪,在不增加摄像头的前提上,利用摄像机进行随动跟踪是很好的解决手段。然而,目前摄像机运动情况下的目标检测算法存在诸多问题,如运算量大、不能应用于实时系统、背景复杂情况下检测结果不佳等。
为此,本文构建了以下方法框架:工作时,系统首先处于检测状态,数字相机采集图像传输给PC机,对出现的运动目标进行检测,当目标完全进入场景后进入跟踪模块,PC机通过发送目标位置与视野中心的误差信号控制高精度云台转动,搭载在其上面阵相机在云台转动的同时进行图像采集,采集到的图像序列用于随动跟踪。
系统具体算法流程图如图2所示。其中,K为检测和跟踪模块的标识,K=0时系统为实时检测状态,K=1时系统为随动跟踪状态。
图2 检测与跟踪算法流程图
Fig.2 Flowchart of detection and tracking algorithm
前景分割是对目标进行识别与跟踪的基础,分割结果的质量直接影响以后处理的效果。针对摄像机静止情况下的复杂背景,选择以混合高斯背景模型为基础,对运动目标进行检测并提取目标轮廓,待目标稳定后系统进入跟踪模块。
在跟踪模块中,背景时刻处于无规则的动态变化之中,运动目标可能会发生姿态变化、尺度变化,随着光线变化而产生的颜色变化等,而且目标很可能会遭遇背景中相似颜色和相似形状物体的干扰,更是对实时稳定地跟踪运动目标提出了巨大的挑战。本文针对均值漂移算法的不足,采用了结合卡尔曼滤波的均值漂移算法对移动目标进行跟踪。
2 运动目标检测
运动目标检测就是当场景中有新目标进入或者场景中有目标移动时,通过算法检测出运动目标,再利用目标分割的方法把进入场景中的运动目标(前景)从背 景图像中分离出来,然后判断其真实性,是跟踪、识别等后续处理的基础性工作。
本文采用了Stauffer等[7]提出的自适应混合高斯模型对背景进行建模,进行运动目标的检测。下面分2个方面进行描述。
2.1 基于混合高斯模型的背景建模
混合高斯模型的基本思想[7]是:对每一个像素点,定义K个高斯模型表示该像素点在某段时间内不同的状态。考虑到算法的速度以及算法有效性,K值一般取在3~5之间。K个状态中一部分表示像素点为背景时的状态,其余部分则表示像素点为前景时的状态。假设Xt为像素点在时间t的颜色值,则其概率函数可表示为:
(1)
其中:为t时刻的第i个高斯分布的概率密度函数,其均值为μi,t;协方差矩阵为Σi,t;ωi,t为第i个高斯分布在t时刻的权重,且有。
初始化混合高斯模型,可以通过计算一段没有前景运动物体的视频序列图像中的像素均值和方差来得到。考虑到在实际运用中事先获取多帧背景图像的可行性不大,再加上背景的多变性,该方法的鲁棒性并不高。
本文认为第一帧视频图像为场景背景的可能性较大,即使第一帧图像有运动目标,相对于整幅图像来说,运动目标区域也只占较小的一部分,取第一帧图像的像素值作为混合高斯模型中某个高斯分布的初始均值,并对该高斯分布的权值取相对较大值,取其它高斯分布的均值为零,权重相等。混合高斯模型中所有高斯函数的方差取相等经验值。
当得到新的视频帧图像后,根据新的像素值把混合高斯模型的所有参数更新,然后把所有高斯函数的权值归一化,并把各个高斯分布按权值从大到小排列。分布位置越靠前,它是背景分布的可能性越大,否则它是背景分布的可能性越小,排在最后的高斯分布将会被新建立的分布所取代。实验表明,在参数初始化时存在运动目标的复杂监控场景,取第一帧图像来初始化混合高斯模型会加快场景背景的生成速度,在提取的背景中,只有少数像素区域存在由运动目标背景学习生成的错误静态背景。
2.2 运动目标检测
利用混合模型中的背景模型具有权值较大、方差较小的特点,本算法使用相对值ωi,t/σi,t来衡量各高斯分布作为背景模型的优先级。
根据优先级较高的前M个高斯分布建立的背景模型,按照优先级次序将像素点在时间t的颜色值Xt与M个高斯分布逐一匹配,若不满足匹配条件,则判定该点为前景点,否则就为背景点,从而完成了自适应混合高斯模型下的目标检测。
因为跟踪模块需要给定初始搜索窗口,因此,在目标检测的同时,还要判断运动目标是否已经完全进入场景。本文对检测得到的运动目标前景进行计算,当目标大小在一定时间内不再变化时认定目标已完全进入场景,然后,将目标的基本参数,即位置和颜色信息传送给跟踪模块,从而实现对运动目标的随动 跟踪。
3 运动目标跟踪
自从Comaniciu等[6]把非刚性物体的跟踪问题近似为优化问题后,均值漂移在目标跟踪领域得到了很好的应用。该算法实时性好,对于目标的旋转、部分阻挡、变形以及背景运动都不敏感,但是在跟踪连续性上存在较大问题。如果目标在连续的两帧中偏移较大,传统的均值漂移算法会使得跟踪不能继续。根据运动连续性, 采用机动性较强的卡尔曼滤波来预测均值漂移算法中目标起始中心是解决该缺陷较为有效的方法之一[8-9]。
在本文的跟踪模块中,系统发送误差信号使得云台随着目标的运动而运动,不仅场景中存在运动的目标,场景本身也存在大范围的运动。为了实时、稳定地跟踪运动目标,本文将卡尔曼滤波器融于均值漂移算法,把滤波器对于目标点在场景中位置的最优估计作为每一帧中均值漂移算法的起始点,相当于对目标位置进行全局的预估计,由均值漂移算法在起始点的邻域内迭代得到最终位置,进而用于下一帧的滤波估计,两种算法交替使用,相互补充。
3.1 均值漂移算法
均值漂移方法[10]是一种寻找概率密度极大值的梯度上升法,它提供了一种新的目标描述与定位框架,其基本思想是:通过反复迭代搜索特征空间中样本点最密集的区域,搜索点沿着样本点密度增加的方向“漂移”到局部密度极大值点。基于均值漂移方法的目标跟踪技术通常采用核概率密度来描述目标的特征,由于目标的直方图具有特征稳定、抗部分遮挡、计算方法简单以及计算量小等特点,本文采用直方图对目标进行建模,然后进行相似性度量,利用均值漂移向量来迭代搜索目标位置。
均值漂移算法中用相似性函数描述目标模型和目标候选模型之间的相似程度,本文采用的Bhattacharyya系数是一种散度型测量,其直接的几何意义是两2个向量间角度的余弦值。Comaniciu等[6]证明了在均值漂移算法中Bhattacharyya系数是优于其他相似性函数的一种选择。
假设目标区域的中心为x0,候选目标中心为y,其中有n个像素用{xi}i=1, …, n表示,特征值的个数为m个,用u(u=1, …, m)表示。目标与候选目标的直方图模式分别为:目标和候选目标,使用Bhattacharyya系数作为目标与候选目标的直方图模式的相似性函数,定义为:
(2)
在均值漂移算法迭代过程中,需要对描述目标模型与目标候选之间相似程度的Bhattacharyya系数进行泰勒展开并取前两项进行逼近,要求目标点在连续两帧中偏移量不能超过核函数的带宽。目标如果在图像平面移动很快或被其它景物遮挡,无法满足泰勒展开的前提条件,会导致目标跟踪点停留在Bhattacharyya 系数的局部极值,而该局部极值却小于目标所在处的Bhattacharyya 系数, 一旦误差积累到相当程度后则会导致目标漏跟。下面引入卡尔曼滤波器解决这个 问题。
3.2 结合卡尔曼滤波器的均值漂移算法
卡尔曼滤波器用于估计线性系统的状态,它能利用测量值修正估计的状态,提供可靠的状态估计。使用卡尔曼滤波器作为预测器,要建立系统的状态方程,不同于以往单纯对目标点的运动进行建模[11]。卡尔曼滤波器观测模型建立如下[12]。
假设运动目标中心在X,Y轴上的运动都是一个由随机加速度扰动的匀速直线运动。目标运动状态向量表示为。其中:x(m)和y(m)分别是目标中心在X和Y轴上的位置分量,x′(m)和y′(m)分别是目标中心在X和Y轴上的速度。目标观测向量表示为,其中xc(m)和yc(m)分别为目标中心在X和Y轴上的观测值。则目标状态方程和观测方程可采用如下等式表示:
X(m)=F(m, m-1)X(m-1)+W(m) (3)
Y(m)=H(m)X(m)+V(m) (4)
式中:F(m, m-1)是状态转移矩阵;W(m)是零均值高斯状态噪声;H(m)是测量矩阵,是零均值高斯测量噪声,且W(m)和V(m)为相互统计独立。
本文中跟踪模块算法的步骤如下:在k时刻系统进入跟踪模块时,由检测模块得到(k-1)时刻的目标中心坐标,首先发送误差信号使得云台随着目标而运动;利用卡尔曼滤波预测k时刻目标的位置;然后,以一步预测的结果为中心,应用均值漂移在邻域内迭代寻优,收敛点即是当前帧k时刻目标点所在;最后以收敛点作为卡尔曼滤波器的观测值,预测(k+1)时刻目标起始位置。
本文对采用的跟踪算法做了实验。在实验中,分别采集了40帧采用融合卡尔曼滤波的均值漂移算法给出的目标的X轴、Y轴坐标,和实际运动目标的坐标位置进行比较,如图3和图4所示。空心方形表示融合卡尔曼滤波的均值漂移得到的目标位置点,而空心圆点表示目标的实际位置点,可以看出本文采用的算法能很好的跟踪目标。
图3 X轴上跟踪得到的目标位置点与目标实际位置点
Fig.3 Target position in X-axis obtained by proposed method, compared with actual location
为了实现对目标的稳定跟踪,本文分析了运动目标跟踪过程中可能出现的情况,当跟踪模块得到的位置信息在一定时间内没有发生变化时本文认为可能出现目标丢失状态,此种情况下则重新进入运动目标检测模块。
图4 Y轴上跟踪得到的目标位置点与目标实际位置点
Fig.4 Target position in Y-axis obtained by proposed method, compared with actual location
在实时性方面,由于使用卡尔曼滤波器预测搜索窗口初始位置的计算量只占整个目标跟踪模块运算量的很小一部分,不会影响到整个目标跟踪算法的实时性; 相反,它可以减少每帧内均值漂移算法迭代的次数,从而提高了目标的跟踪效率。
4 实验结果与分析
实验采用装载在固定三脚架上的维视图像公司MV-5959高精度视觉转台,装有1个MV-VS078 FC高速工业CCD相机,所采集视频图像为真彩色格式,帧率25 帧/s,每帧图像为640×480像素;PC机主频2.93 GHz,内存1 GB,操作系统为Microsoft Windows XP Professional;程序编写环境为VC 6.0。
在混合高斯模型检测运动物体时,假定像素的R、G、B三颜色通道相互独立,取值均在[0,255]范围内,并且所有的高斯模型都是基于像素的,即每个像素建立一个模型,像素之间的背景模型相互独立,本实验中取高斯模型个数K=3。
图5所示为室外环境下测试的结果演示。图5(a)所示为混合高斯建模得到的初始的场景背景。图5(b)和(c)表示在运动目标刚进入场景尚未稳定时,系统使用混合高斯模型对场景建模,得到的分割后的前景用蓝色框标示并在显示器上显示。从图5(b)和(c)可以看出:尽管场景远处存在运动的车辆,对运动目标的正确检测并没有造成影响。
图5 室外环境下运动目标的检测与跟踪实现
Fig.5 Detection and tracking in scenes of outdoor environment
当目标的大小无明显变化时系统认为目标完全进入场景,此时系统发送误差信号使得云台随着目标而运动,调用结合卡尔曼滤波的均值漂移算法对目标进行跟踪,得到的结果用红色框标示并显示,如图5(d)所示。在图5(d)的第一排中,运动目标运动速度较快,云台无法及时的转动到使目标处于场景中心的位置,由于本文算法中卡尔曼滤波的加入,对这种两帧之间目标运动量过大的情况没有出现跟丢的情况。
由实验结果可以看出,目标检测和跟踪2个模块衔接顺利并得到了较好的效果。
5 结论
提出了一种基于运动摄像机的实时跟踪方法。首先在摄像机静止情况下以混合高斯背景模型为基础对运动目标进行检测,然后,采用结合卡尔曼滤波的均值漂移算法对运动目标进行随动跟踪。提出的方法在不增加摄像头的前提下,既增大了对运动目标进行跟踪的视野范围,又保证了检测跟踪的实时性。实验结果表明该算法可以有效地实现对运动目标的检测和运动场景下的目标跟踪。
参考文献:
[1] Gavrila D M. The visual analysis of human movement: A survey[J]. Computer Vision and Image Understanding, 1999, 73(1): 82-98.
[2] Haritaoglu I, Harwood D, Davis L S. W4: Real-time surveillance of people and their activities[J]. IEEE Transaction on Pattern Analysis and Machine Intelligence(S0162-8828), 2000, 22(7): 809-830.
[3] Lipton A, Fujiyoshi H, Patil R. Moving target classification and tracking from real-time video[C]//Proceeding of IEEE Workshop on Applications of Computer Vision. Princeton, NJ, USA, 1998, 19-21.
[4] Barron J, Fleet D, Beauchemin S. Performance of optical flow techniques[J]. International Journal of Computer Vision, 1994, 12(1): 43-77.
[5] Tsaig Y, Averbuch A. Automatic segmentation of moving objects in video sequences: A region labelingapproach[J]. IEEE Transactions on Circuits and System forVideo Technology, 2002, 12(7): 597-612.
[6] Comaniciu D, Ramesh V, Meer P. Kernel-based object tracking [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2003, 25(5): 564-577.
[7] Stauffer C, Grimson W. Adaptive background mixture models for real-time tracking[J]. IEEE Conference on Computer Vision and Pattern Recognition. Fort Collins, Colorado, 1999: 246-252.
[8] Eberhart R C, Kennedy J. A new optimizer using particle swarm theory[C]//Proceeding on 6th International Symposium on Micro Machine and Human Science. Nagoya, 1995: 39-43.
[9] 朱胜利, 朱善安, 李旭超. 快速运动目标的MeanShift跟踪算法[J]. 光电工程, 2006, 33(5): 66-70.
ZHU Sheng-li, ZHU Shan-an, LI Xu-chao. Algorithm for tracking of fast motion objects with mean shift[J]. Opto-Electronic Engineering, 2006, 33(5): 66-70.
[10] 虞旦, 韦巍, 张远辉. 一种基于卡尔曼预测的动态目标跟踪算法研究[J]. 光电工程, 2009, 36(1): 52-63.
YU Dan, WEI Wei, ZHANG Yun-hui. Dynamic target tracking with Kalman filter as predictor[J]. Opto-Electronic Engineering, 2009, 36(1): 52-63.
[11] 周芳芳, 樊晓平, 叶榛. 均值漂移算法的研究与应用[J]. 控制与决策, 2007, 22(8): 841-847.
ZHOU Fang-fang, FAN Xiao-ping, YE Zhen. Mean shift research and applications[J]. Control and Decision, 2007, 22(8): 841-847.
[12] 李庆瀛, 褚金奎, 李荣华,等. 基于卡尔曼滤波的移动机器人运动目标跟踪[J]. 传感器与微系统, 2008, 27(11): 66-68, 71.
LI Qing-ying, CHU Jin-kui, LI Rong-hua, et al. Moving object tracking algorithm for mobile robot based on Kalman filter[J]. Transducer and Microsystem Technologies, 2008, 27(11): 66-68, 71.
(编辑 袁赛前)
收稿日期:2011-04-15;修回日期:2011-06-15
基金项目:省部级重点基础项目(9140A17051010BQ0104)
通信作者:雷颖惠(1989-),女,湖南邵阳人,硕士研究生,从事目标检测与跟踪研究;电话:15001385910; E-mail: yinghuilei@yahoo.cn