余乐,郑力新
(华侨大学 工业智能化技术与系统福建省高校工程研究中心,福建 泉州 362021)
摘要:为了实现工业相机对动态目标的准确、实时跟踪,提出了基于卡尔曼滤波的算法。通过创建背景模型来估计出当前背景,进而得到前景区域,并对前景区域进行相关处理,最后通过计算补集得到更新后的背景。此方法能根据不同场景信息调整前景与背景阈值,减弱背景区域造成的噪声影响,实时地根据场景变化快速、自动更新背景,并对每一位置的像素进行背景估计。通过在VS2010平台上结合JAI软件开工具包(Software Development Kit,SDK)调用Halcon函数库实现了卡尔曼滤波动态跟踪,其中JAI SDK用于开发千兆网相机,几乎支持所有千兆网相机。实验结果表明,该算法能够实现对目标的实时动态跟踪,实时性强,准确度高。
关键词:动态跟踪;卡尔曼滤波;Halcon;JAI SDK
0引言
动态目标跟踪是在视频流的每一幅图像中确定出感兴趣的运动目标的位置,并把不同帧中的同一目标对应起来,是机器视觉领域的热点研究之一,广泛应用在交通监控、车辆跟踪中。在机器视觉研究领域,随着技术不断发展,目标跟踪越来越受到研究者的重视,具有广阔的应用前景。
本文设计一种在C#编程环境下通过工业相机获取实时画面并同步根据背景估计的前一个状态、当前图像值以及该像素在前一个状态中的分类,决定卡尔曼滤波器的参数,进行卡尔曼滤波和相关图像形态学处理的方法,实现实时运动目标跟踪。
1研究现状
可变部分模型(Deformable Parts Model,DPM)[1]是一个非常成功的目标检测与跟踪算法,它的核心思想是模板匹配。而国内动态目标跟踪研究和使用较多的是相邻帧差法、背景差分法等[2]。相邻帧差法根据目标与背景灰度的不同,将下一帧图像与上一帧图像变量做比较,将每两帧连续图像对应像素相减,以去除不动的物体及背景,再求出与上一帧图像差异之处,也就是移动的物体区域,此方法具有很强的自适应性,但在运动目标快速运动过程中不能准确实时跟踪。背景差分法是构建一个背景图像模型,将当前帧图像与该背景图像进行差分来得到运动目标区域,背景差分法较帧差法能更准确、快速地提取运动目标,但该方法易受光照影响且背景更新效果差。另外,当场景中有目标由运动状态转入比较长时间的静止状态之后,由于背景的实时更新,很可能将该目标纳入背景图像当中,当这个目标再从静止状态突然运动时,采用当前帧与背景相减的方法就会出现错误的跟踪检测结果[36]。因此,在综合上述方法及其问题的基础上提出卡尔曼滤波算法。卡尔曼滤波背景估计根据像素是背景还是前景选取不同的系数,从而不会出现上述错误[7];采用工业相机实时拍摄,因其具有快门速度非常高、拍照速度快等特点,可以抓拍快速运动的物体。
2卡尔曼滤波理论
卡尔曼滤波是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。估计背景的过程中,认为背景是稳定状态的,观测值是存在噪声影响的。通过前一时刻ti-1状态值估计后一时刻ti状态值估计值,系统方程[8]为:
ti时刻状态最优估计值:
其中,A(ti)表示系统矩阵,H(ti)为测量矩阵,z(ti)表示系统当前测量值,K(ti)为卡尔曼增益,其值分别为:
A=1a1,2
0a2,2H=10
3基于卡尔曼跟踪算法的实现
卡尔曼滤波利用反馈控制系统估计运动状态:利用前一状态值和当前状态测量值,估计出当前最优状态值和背景,进而获得运动物体的区域。也就是说,卡尔曼滤波可以分为预测和更新两个步骤[9]。其实现流程如图1所示。
Halcon是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境。应用范围几乎没有限制,涵盖医学、遥感探测、监控及工业领域的各类自动化检测。Halcon支持Windows、Linux和Mac OS X操作系统环境,整个函数库可以用C、C++、C#、Visual Basic和Delphi等多种普通编程语言访问。Halcon为大量的图像获取设备提供接口,保证了硬件的独立性。它为百余种工业相机和图像采集卡提供接口,包括GenlCam、GigE和IIDC 1394。
在Halcon平台下,从已获取的前一状态(如同前一帧图像获得的背景值)通过creat_bg_esti()函数创建背景模型,估计出当前背景,即当前状态估计值,然后结合当前测量值(如同视频中当前帧图像)运用run_bg_esti()函数对当前图像估计其背景(即此处的当前状态最优估计值)并返回前景区域,估计出来的最优背景值作为下一次循环的前一状态[10],循环往复。返回前景后前景区域处理流程如图2所示。
在创建初始化背景及进行背景估计时,为了提高对每个像素的运算处理速度,对相机镜头获取的图片进行了缩放处理,在缩小的1/2图像基础上估计背景和提取前景。通过对前面循环返回的背景区域不断地进行更新,根据跟踪目标具有一定大小的特点,可以选取一定面积的区域作为滤波特征,消除微小运动对提取目标的影响,滤波后将目标区域用最小外接矩形框住用以跟踪运动物体。
本文算法的具体实现过程是:通过调用Halcon提供的函数库,在Visual Studio 2010平台下结合JAI SDK进行二次开发,通过工业相机镜头获取实时图像画面,通过开发完成的算法实现实时动态目标跟踪。
4实验结果与分析
本文使用的工业相机为加拿大生产的千兆网相机PointGrey BFLYPGE13E4MCS,16 MB大帧缓存,数据更安全更可靠;相机镜头为日本产Computar M1614MP2。焦距16 mm,系统矩阵参数a1,2=a2,2=0.7。卡尔曼增益K之前景适应时间Gain1=0.001,卡尔曼增益K之背景适应时间Gain2=0.01,且Gain2≥10Gain1。卡尔曼增益K根据z(ti)是否属于前景区域在Gain1与Gain2之间切换。
本次实验通过相机的第一帧图像获取初始背景图像,通过卡尔曼滤波算法自动更新背景。根据不同场景设置不同前景与背景阈值,在不同场景环境下的实验效果图如图3所示。
5结论
本次实验利用卡尔曼滤波算法准确估计出背景,解决了背景估计中可能会出现的把目标当背景的现象。对于场景的变化、阴影等带来的影响有很好的处理效果,对于快速变化的运动目标也能准确跟踪。针对不同场景可以实时调节前景与背景阈值、相机曝光时间等参数。实验表明,本算法可以实现对动态目标的实时跟踪。本算法实验还存在一些问题:只有当前景与背景灰度相差较大时准确率较高,而当前景目标的灰度与背景灰度相近时,前景目标有时候难以被提取。由于条件限制,实验在室内进行,这也是后期将继续探究的工作。
参考文献
[1] Tang Siyu. Detection and tracking of occluded people[J]. Internationat Journal of computer Vision, 2014, 110(1): 5869.
[2] 于成忠. 基于背景差法的运动目标检测[J]. 东南大学学报, 2005, 35(11): 159161.
[3] SAEED I A K. Real time, dynamic target tracking using image motion[C].Taipei:IEEE International Conference on Mechatronics,2005:241246.
[4] 孙欢. 交通监控系统中帧差法与背景差分法优劣分析[J]. 电子科技, 2012, 25(10): 13.
[5] 林佳乙. 基于背景差分法和帧间差分法的视频运动检测[J].仪器仪表学报, 2008, 29(4): 111114.
[6] 许俊波. 目标检测与跟踪方法研究[D].武汉:中国地质大学, 2007.
[7] 朱铮涛.基于卡尔曼滤波的背景估计及其算法实现[J]. 微计算机信息,2007,23(10): 291293.
[8] Wang Hongman, Huo Lingling, Zhang Jing. Target tracking algorithm based on dynamic template and Kalman filter[C]. 2011 IEEE 3rd International Conference on Communication Software and Networks, 2011:330333.
[9] 胡鹏.Kalman滤波在视频目标跟踪中的应用研究[D].重庆:重庆大学,2010.
[10] 武岫缘. 一种改进的目标监测与跟踪算法[J]. 微型机与应用, 2013, 32(22): 4143.