计算机系统应用软件技术·算法SoftwareTechnique·Algorithm基于OpenCV的视频运动目标检测与跟踪①袁宝红1,张德祥1,2,张玲君11(安徽大学电气工程与自动化学院,合肥230601)2(安徽大学计算智能与信号处理教育部重点实验室,合肥230601)摘要:针对视频文件中运动目标检测与跟踪这一问题,提出一种先检测后跟踪的方法.首先利用平均背景法完成对背景模型的更新,从而检测出运动目标,在此基础上利用投影法来投影出运动目标的大小,昀后再利用MeanShift算法对运动目标进行跟踪.在跟踪过程中,通过OpenCV编写程序实现对运动目标的检测与跟踪.实验验证,该方法在实现运动目标的精确检测与跟踪的基础上,减少了运算量,提高了跟踪的速度.关键词:目标检测;跟踪;平均背景法;MeanShiftDetectingandTrackingofMovingTargetinVideoSequenceBasedonOpenCVYUANBao-Hong1,ZHANGDe-Xiang1,2,ZHANGLing-Jun11(TheInstituteofElectricalEngineeringandAutomation,AnhuiUniversity,Hefei230039,China)2(KeyLab.ofIntelligentComputingandSignalProcessingofMOE,AnhuiUniversity,Hefei230601,China)Abstract:Inordertosolvethemovingtargetdetectingandtrackinginvideosequence,thealgorithmtrackingfollowdetectingisproposed.First,itupdatedbackgroundmodelusingtheaveragingbackgroundmethod,anddetectedthemovingtarget.Thenthesizeofthemovingtargetwasacquiredbyprojectionmethod.Finally,ittrackedthemovingtargetusingtheMeanShifttrackingalgorithm.Duringtheobjecttracking,itprogrammedbytheOpenCVtoachievethemovingtargetdetectingandtracking.Theexperimentsshowthatthealgorithmnotonlyrealizethedetectingandtrackingofthemovingtargetexactly,butalsoreducetheamountofcalculationandimprovethetrackingefficiency.Keywords:targetdetecting;tracking;averagingbackgroundmethod;Meanshift1引言视频中的目标检测与跟踪是指计算机代替人眼进行对外界物体运动的感知和理解分析,从而利用这样的只能系统为人类生活工作提供便利.目前,运动目标检测与跟踪在医学研究、交通监视、客流量统计、天文观测等领域有着非常重要的实用价值,有着广阔的发展前景.因为它不但可以提供目标的运动轨迹,也为场景中运动目标的运动分析、场景分析提供了可靠的数据来源.针对视频中的运动目标跟踪,国内外学者进行了大量的研究提出了许多有效的方法:Comaniciu等提出基于核的目标跟踪[1],通过核函数的处理,引入了BH系数来实现对目标的跟踪;Stauffer等提出了自适应高斯模型[2],通过匹配目标的位置、大小、形状和颜色等特性,建立运动目标与前景目标间对应关系来实现跟踪.针对一般视频,本文先检测出运动目标,利用投影提取运动目标的信息,然后采用基于颜色特征建立模型,计算目标模型与候选模型间的相似度,通过求相似函数昀大值得到关于目标的MeanShift向量,由MeanShift算法的收敛性,不断迭代计算MeanShift向量,在当前帧中,昀终目标会收敛到目标的真实位置,从而达到跟踪的目的.2目标检测运动目标的检测就是对包含运动信息的视频序列运用适当的技术进行处理,把与背景存在相对运动的①基金项目:国家自然科学基金资助项目(61272025);安徽省教育厅自然科学研究基金重点项目(KJ2011A013)收稿时间:2012-10-16;收到修改稿时间:2012-11-302013年第22卷第5期·Algorithm软件技术·算法91前景区分开的过程.它是计算机视觉信息提取中的一个重要问题,也是更高层次视频分析,如基于对象的视频编码、目标跟踪、运动分析基础.目前,运动目标检测主要有三种方法:背景差分法[3]、帧间差分法和光流法.在实时监控系统中背景差分法仍是运动目标检测的昀常用方法,但是存在不足,有的学者提出结合对称差分法和背景减法[4].本章在背景差分法的基础上,提出平均背景法[5]更新背景的概念.2.1背景差分法每一帧图像可以分为背景区域和运动区域.背景差分法[6]是利用当前帧图像与背景图像的差分来检测运动区域,其基本原理如图1所示:图1背景差分法原理图设当前帧图像为),(yxfk,背景帧图像为),(yxBk,则它们的差分图像为:|),(),(|),(yxByxfyxDkkk−=(1)对得到的kD进行二值化,当差分图像中像素大于或等于给定的阈值时,则认为该像素点是前景像素,反之,则认为该像素是背景像素点.该方法在背景较为稳定的情况下,能够较完整地提取目标点,检测效果好.但对于背景变化的场景,例如光照、背景的抖动、背景中新物体的加入等情况比较敏感,检测结果的准确性会降低.2.2平均背景法平均背景法是一种学习背景场景和分割前景目标的方法.传统的背景差分法所采集到的背景图像随着时间的推移,会对光照和外部条件造成的场景变化比较敏感,会出现许多伪运动目标点,影响到检测的效果.一种折中的解决办法是采用平均背景法.它通过计算每个像素的平均值和标准差作为它的背景模型,我们用平均值和标准差来描述每一个像素的变化.当一个像素值大于平均值与平均差所设定的阈值时,我们就认为是前景.例如在同一个视频中,一个前景目标经过摄像机的前面,这时的像素值超过该阈值,于是就区分出来.2.3平均背景法在OpenCV中的实现平均背景法分为3个步骤:(1)计算平均像素值积累背景图像和每一帧图像差值的绝对值,通常需要30~1000帧的图像.计算累计图像的平均像素值和平均像素方差,为转化背景的统计模型提供数据.平均像素值公式是:(2)其中,)(x,yfk和)(1x,yfk−为连续两帧图像,n为图像的总帧数.在OpenCV中用函数cvAcc()实现积累图像.像素的平均方差观测公式为:(3)在OpenCV中用函数cvAbsDiff()计算每帧图像之间的绝对差图像.(2)建立背景统计模型一旦积累到足够多帧的图像之后,就将其转化为一个背景统计模型,即计算每一个像素的均值和方差观测.在建立背景统计模型时,设置一个高阈值和一个低阈值,实验中我们分别取值为7和6,使得对于每一帧图像的绝对差大于平均值7倍的像素和绝对差小于平均值6倍的像素都被认为是前景.在OpenCV中用cvInRange()实现将图像分割成前景区域和背景区域.(3)判断当背景统计模型建立后,后续帧进入前景判断模块,就可以检测出运动目标.3目标跟踪目标跟踪就是在连续的图像序列中对某一或几个感兴趣的运动目标进行不间断跟踪与定位.运动目标跟踪一直是计算机视觉领域中重要的研究课题,他在许多领域都有广泛的应用.如:工业过程控制、医学研究、视频监控、军事目标跟踪等.在不同的应用领域都要求能对运动目标进行准确快速的跟踪.本章利用平均背景法提取出运动目标,在此基础上利用投影法来投影出运动目标的位置和大小,然后再对运动目标建立目标模型.具体方法就是计算目标特征空间中每个特征值的概率,可以选择颜色和纹理等,本文选择颜色建立起目标模型;然后在后续帧图像可能存在目标区域再计算特征空间每个特征值,这样就建立了候|)()(|1)(Aver11x,yfx,yfnx,yknkk−=+=∑|)()(|1)(AbsDiff11x,yfx,yfnx,yknkk−=−=∑计算机系统应用软件技术·算法SoftwareTechnique·Algorithm选目标模型.利用Bhattacharyya相似函数[7](简称BH系数)度量初始帧目标模型和当前帧候选模型的相似性,通过求相似函数昀大值得到关于目标的MeanShift向量,这个向量即是目标从初始位置向正确位置移动的向量,由MeanShift算法的收敛性,不断迭代计算MeanShift向量,在当前帧中,昀终目标会收敛到目标的真实位置,从而达到跟踪的目的[8].3.1目标模型的建立设{ix}niL2,1=为目标所在区域归一化的n个像素点集,目标区域以0为中心.函数)(xk是一个各向同性的具有单调递减的凸函数,它的值为各点加权后的值.由于外层的像素值很容易被遮挡或受背景影响,所以通过加权方法增强了密度估计的稳定性[9].该方法通过引入一个加权因子来降低目标模型中背景像素的影响,从而提高目标跟踪的精度以及局部遮挡情况下目标跟踪的效果.离中心越远,权值越小.特征值muL2,1=的目标模型中出现的概率可以表示为:(4)其中,h是跟踪窗口半径(或称核函数带宽).(5)是一个标准化的常量系数,使得;)(xδ函数用于判断目标区域中像素ix的颜色值)(ixb是否属于第u个单元的颜色索引值,等于为1,否则为0.3.2候选模型的建立运动目标在第二帧以及以后的每帧中可能包含目标的区域称为候选目标,中心为y.候选目标区域中像素点}{ix表示niL2,1=,则特征值muL2,1=在候选目标模型中出现的概率可以表示为:(6)其中hC为归一化因子,使,则:(7)3.3相似性度量相似函数在目标模型和候选模型之间定义了一个距离值,用来衡量两者之间的相似程度.为了在不同的目标间进行比较,这个距离应该是一个度量空间.这种函数有很多,比如:Bhattacharyya函数,Fisherlineardiscriminant[10],Kullback散度及直方图交集等.在MeanShift算法中,引入了BH系数来衡量目标模板和候选目标区域对应的直方图之间的相似程度,即:(8)其中q为目标模板,p为候选目标模板,muL2,1=.],[qpρ在0-1之间,值越大,表示两个模板越相似.在理想情况下,候选目标模型和目标模型相似程度可以达到100%.但是在实际的应用场景中,是不可能达到的.为了使],[qpρ昀大,将当前帧的目标中心先定位为前一帧中目标中心的位置,从这一点开始寻找昀优匹配的目标.4目标检测与跟踪实现与分析视频中运动目标的检测和跟踪是智能视觉系统的重要研究课题,是各种后续高级处理的基础.为了验证目标跟踪的跟踪效果,将分别在视频文件中对运动的汽车进行跟踪实验,算法是在VC++环境下并且借助于OpenCV函数库实现的.图2分别是对汽车视频的190、220、250帧中的目标进行检测,并且进行跟踪.图3是对另一小车跟踪的40,50,60,70帧.实验说明,进行的目标跟踪算法能准确的检测出运动物体,并能够实时跟踪运动物体.5结论在目标跟踪过程中,利用目标的颜色特征进行的跟踪,在某些情况下很难实现.为此,本文中提出平均背景法先把运动目标从背景中区分出来,并把目标的颜色特征融合到目标模型中,昀终利用MeanShift实现目标跟踪.遮挡是目标跟踪中的常见现象,遮挡表现为目标信息的逐渐丢失,而目标跟踪算法的关键就