基于OpenCV的室内环境下多目标跟踪
2013-08-16张宝峰赵建平朱均超
张宝峰,赵建平,朱均超
(天津理工大学 自动化学院 天津市复杂系统控制理论及应用重点实验室,天津 300384)
视频跟踪[1]是指对视频帧图像序列中所有动态目标进行运动检测、特征提取与匹配和跟踪,获得目标运行参数,如目标质心位置、速度、加速度以及运动路线等。视频跟踪为下一步图像处理与分析、运动目标行为理解奠定了基础。多运动目标跟踪是指在相同的时刻对多个运动目标进行判断、相似度匹配和跟踪,其关键是目标模型和背景环境模型的建立、待跟踪目标的判定和对遮挡问题的处理。视频跟踪技术在民宅安防、仓库安全、智能交通监控和导弹航迹等方面具有广泛的应用[2]。
目前,对室内静态背景下常用的跟踪方法是基于颜色特征的运动目标跟踪方法。然而,由于背景和目标易受颜色相似性的干扰,且人是一个非刚性运动物体,活动具有灵活自主性,实时跟踪这个运动对象是很困难的,尤其是当其发生形变或被严重遮挡时。本文对运动目标跟踪主要分为遮挡和不遮挡两种趋势进行研究,通过对两种趋势算法的研究,将基于特征和基于区域的运动目标跟踪方法混合进行计算。经过实验验证,这种混合算法可以达到多运动目标跟踪快速性、准确性和实时性的要求。
1 无遮挡时多目标跟踪算法
对视频序列帧图像内的多个目标进行跟踪的算法有很多种,目前常用的算法有Kalman滤波算法[3]、基于均值偏移的 Meanshift算法[4]、Camshift算法[5]和粒子滤波算法[6]等。Kalman滤波算法是一个带回馈估计的方法,由滤波器先作出与之相适应的估计,然后以含有噪声的测量信息进行反馈。它适合于高斯分布的线性、正态系统状态的预测估计,不适合具有随意运动性的人体目标的跟踪。Camshift算法是改进的Meanshift算法,它的搜索框可以自由变换,此外,它与粒子滤波算法一样是基于概率统计的方法,需要迭代求解。Camshift算法一般情况下是根据目标颜色特征信息进行跟踪,由于跟踪特征单一,因此极易发生漂移现像,但是它的跟踪速度快,尤其对没有遮挡情况下的运动目标可以快速准确地进行跟踪。因此,通过Camshift算法可以对发生遮挡前待跟踪目标的运动区域进行提取,并在此基础上对待跟踪目标是否会发生遮挡进行及时预测。若遮挡不存在,则需要通过基于颜色直方图和分块的方法分别对目标的灰度特征进行提取,并对最近提取的m帧图像灰度特征信息进行保存;反之,则需进入遮挡处理过程[7]。无遮挡处理流程框图如图1所示。
图1 无遮挡处理流程框图
2 区域相应与特征匹配相结合的跟踪方法
基于区域的运动目标跟踪方法[8]是指:首先把图像分为不同的小区域块,然后对各个小区域块采用高斯分布建立它们的目标模型和背景模型,最后将属于待跟踪目标的像素划分为一些与背景不同的小区域块,通过跟踪包含目标的小区域块完成整个待定目标的跟踪。由于人体运动目标在慢速运动时各帧之间的位移通常很小,因此可以在目标当前帧所处地点的小邻域内寻找是否有除待跟踪目标外运动物体的对应像素,如果有,则表明目标有遮挡的趋势。基于区域相应跟踪算法只能判定目标是否存在遮挡,并不能解决遮挡问题。基于特征的运动目标跟踪是指通过提取一些可以比较明显地表示待跟踪目标信息的特征描述运动目标,运用特征匹配方法实现对视频图像中多运动目标的跟踪。通常情况下,可以用颜色、边缘、纹理、有明显标记区域对应的点、线、曲线等特征描述运动目标,再通过目标区域与候选区域进行特征相似度匹配,实现运动目标跟踪。目前,最常用的基于特征的跟踪方法是颜色直方图法,对颜色直方图的提取可以采用二阶直方图或加权颜色直方图。当目标颜色与背景颜色相似度很大时,基于颜色直方图特征的跟踪方法会导致错误跟踪。本文将区域相应和颜色特征匹配相结合,对多运动目标进行跟踪,将室内静态背景中的待跟踪目标分为进入室内、离开室内、合并、分离和正常5种运动状态。首先,需要对输入视频序列的各帧图像进行图像预处理,预处理的关键是对目标区域进行分块,得到运动目标;然后,利用区域相应法判别目标处于哪种状况;最后,当目标处于分离状况时,采用基于颜色直方图的特征提取方法,利用基于余弦匹配进行颜色相似度计算,从而再次跟踪运动目标。图2所示为存在遮挡时跟踪算法框图。
图2 存在遮挡时跟踪算法框图
2.1 对输入视频图像预处理
视频图像预处理主要是采用基于分块的方法将表示目标区域的视频帧图像分割成若干个均匀一致的小方块,假设各小方块的宽度都是M个像素,若分割得到的小方块内像素个数与待跟踪目标重合的像素个数少于一半或更多,则剔除这样的小方块。通常情况下,对目标分块后要求小方块个数大于10,考虑到人体目标在行进过程中姿势、形态或体积可能发生变化,因此需要应自动调整跟踪时小方块宽度的大小。调整方法为:
其中,s为目标区域包含的像素个数。
2.2 基于区域的跟踪
经过图像预处理,各个运动目标块在空间中所处的具体位置已经明确,假设视频帧率为30 f/s,则相邻两帧图像间隔小于33.4 ms。对于室内环境下运动的人体目标,相邻两帧空间范围上位置变化很小。所以只要第i帧与第i+1帧目标块有重合的部分,就可以判定前后两帧中运动目标属于同一目标。可能出现以下5种情形:
(1)合并事件:第 i帧上的两个或两个以上目标块同时与第i+1帧上的一个目标块在位置上重合。
(2)分离事件:第 i帧上的一个目标块同时与第 i+1帧上的两个或两个以上目标块重合。
(3)进人室内:第i+1帧上的目标块在第i帧上没有一个目标块与其在位置上有重合,可判断目标在第i+1帧进人室内。
(4)离开室内:第i帧上的目标块在第i+1帧上找不到一个目标块与其在位置上有重合,可判断目标在第i+1帧离开室内。
(5)正常:第i帧上的一个目标块与第i+1帧上的一个目标块在位置上有重合区域,判断它们属于同一运动目标。
从上面的分析可以看出,区域相应法可以对目标进入室内、离开室内、一般情况和合并事件进行直接判定,但是对于分离后的目标还需要采用颜色特征描述对其加以区分,因为各个目标的颜色分布不同。首先需要建立目标颜色直方图模型,然后按照一定的相似度匹配准则对目标进行再次跟踪判定。
2.3 遮挡时的处理
如果当前帧为第i帧并已进入遮挡处理过程,利用人体运动目标慢速移动时帧间位移较小的特点,重新对待跟踪目标做一个比上一帧大一点的搜索框。利用分块方法将新搜索框内的目标区域分成宽度为M的若干子块,并将子块转化成向量的形式 vtest=[v1,v2,…,vN]。 当对遮挡发生前m帧提取的目标灰度特征向量集Vsample进行标记后,将vtest与Vample中的各个向量进行相似度匹配,通过匹配程度大小即可判断该子块是否属于待跟踪目标。假定 v是 Vsample中的一个向量,记‖v-vtest‖为向量 vtest与v间的欧式距离,于是可把存在遮挡趋势的跟踪难点转变为简单的对搜索框内每个子块分类。分类的方式是令 f=min‖v-vttest‖(v∈Vsample),若 f比原来设定好的阈值小,则把vtest对应的子块归为待跟踪目标,并将其标号设为1;反之,将其标设为0。当搜索框内一切子块都被分类后,仍然需要对其进行平滑处理。分类后若某个子块相邻范围内的其他子块标号大多数与该子块不一样,此时需要将该子块重新进行标号。
2.4 多目标分离后对应的跟踪算法
2.4.1 目标颜色模型的建立和更新
颜色直方图Hi(X|m)统计了在第i帧中目标m上颜色 X=(r,g,b)的数目,可计算目标 m 在每帧上的颜色分布(X|m)为:
其中,Ai(m)为第 m个目标在 i帧中的总像素数。由于每个目标的颜色分布是不恒定的,因此建立并更新i帧上目标 m的颜色模型 Pi(X|m)为:
2.4.2 颜色相似度计算
用颜色相似度[9]sij(X|m,n)计算帧间两个目标颜色模型 Pi(X|m)和 Pj(X|n)的匹配程度,当颜色相似度大于某一动态阈值时,即可认为这两个目标属于同一目标;小于某一动态阈值时,认为它们属于不同的目标。在运动跟踪中,通常采用基于欧氏距离的匹配方法计算颜色相似度,即:
归一化后:
通过实验发现,欧式距离相似度匹配方法并不能比较准确地区分出运动目标,因此本文利用一种新的颜色相似度匹配准则——基于余弦匹配的计算方法,公式如下:
其中,“·”表示点积。在实际跟踪中,可能会有多个运动目标同时分裂,这多个目标为一群,这个群分裂后可能不只分裂成单一目标群,而是分成多个小目标群,此时就需要判断每一小目标群分别包含哪些目标。针对这个问题,本文提出的算法如下。
(1)假设有 N个单一目标在第 i帧上发生合并,这N 个目标的颜色模型 Pi(X|n)(n=1,2,…,N)都为已知。
(2)这N个目标在第 j帧上分离成 M块,M≤N,计算这 M 块的颜色分布 Pj(X|m)(m=1,2,…,M)。
(3)可用式(7)计算第 n个目标在分裂后分别处于第几块:
2.4.3 计算复杂度
实验过程中拍摄得到的视频序列帧图像是24 bit真彩色的 RGB 图像。RGB 颜色空间 X=(r,g,b)共有 224种颜色。由于选择的颜色种类过多会导致程序效率变低,因此需要对目标的颜色特征进行采样,采样公式为:
其中,r_value、g_value、b_value分别为像素 r、g、b 3 个分量的值;n表示采样后每个通道的位数。实验中取n=3,这样采样结果的精确度符合实验要求,同时在程序上大大减少了计算量。
3 实验结果分析
按照上述混合方法设计的室内静态环境下多目标跟踪算法程序是在VC 6.0和OpenCV 1.0在Windows 7的环境下编写的,实验视频的帧率为30 f/s,每一个像素24 bit。图3所示为一组跟踪结果。
图3 跟踪结果图
本文通过简单的Camshift跟踪算法处理无遮挡情况下多目标的跟踪,采用基于区域与基于特征匹配相结合的算法处理多遮挡情况下目标的跟踪问题。首先采用基于区域相应的方法进行初次跟踪判定,然后利用颜色模型的相似性按照一定的匹配原则进行二次判定。但是该方法不能解决遮挡时的跟踪问题,分块的方法很好地解决了这一问题。当遮挡过程中目标的姿势、形态和体积发生较大的变化时,这些跟踪方法有一定的局限性。
[1]伏亚文.结合模糊理论的视觉识别与跟踪技术研究[D].南京:南京理工大学,2009.
[2]李谷全,陈忠泽.视觉跟踪技术研究现状及其展望[J].计算机应用研究,2010,27(8):2814-2818.
[3]蒋恋华,甘朝晖.多目标跟踪综述[J].计算机系统应用,2010,19(12):271-274.
[4]KALMAN R E.A new approach to linear filtering and prediction problems[C].Transactions of the ASME-Journal of Basic Engineering, 1960,82:35-45.
[5]Cheng Yizong.Mean shift, mode seeking and clustering[J].IEEE Transactions on Pattern Analysis and Machine Intelligence, 1995,17(8):790-799.
[6]BRADSKI G R.Computer vision face tracking for use in a perceptual user interface[J].Intel Technology Journal, 1998,2(2):1-15.
[7]CARPENTER J,CLIFFORD P.Improved particle filter for non linearproblems[J]. IEEE ProofRadar.Sonarand Navigation, 1999,146(1):2-7.
[8]白金涛.视频序列中运动目标跟踪算法的研究 [D].天津:天津大学,2009.
[9]陆玉传.基于PTZ相机的运动目标检测与跟踪技术研究[D].南京:东南大学,2010.