[刘亭 杨丰瑞 刘雄风]
遮挡情况下的运动目标跟踪方法研究
[刘亭 杨丰瑞 刘雄风]
摘要
针对现有目标跟踪算法在目标被不同程度遮挡尤其是长时间完全遮挡时难以准确跟踪目标,本文提出了一种新的遮挡跟踪算法。根据目标与模板的相似度判断目标的遮挡情况。当目标被大面积遮挡时,采用改进粒子滤波算法预测目标位置;当目标被完全遮挡时,采用改进三帧差法来检测运动物体,然后将检测结果进行模板匹配得到原目标。实验结果表明,本文跟踪算法在目标被部分遮挡、严重遮挡以及长时间完全遮挡时都能有效跟踪目标,具有较好的适用性和准确性。
关键词:目标遮挡 完全遮 粒子滤波 三帧差法
刘亭
女,重庆邮电大学,硕士研究生,主要研究方向:视频图像处理。
杨丰瑞
男,重庆重邮信科(集团)股份有限公司,重庆邮电大学,教授,博士,主要研究方向:通信新技术应用、视频图像处理通信。
刘雄风
男,重庆邮电大学,硕士研究生,主要研究方向:通信新技术应用。
视频图像中的运动目标跟踪问题是计算机视觉领域的核心问题之一[1]。而遮挡问题作为目标跟踪过程中最常见的问题,一直是目标跟踪领域研究人员关注的难点和重点问题。能否有效地判断和处理遮挡,特别是严重遮挡和完全遮挡,是评判一个目标跟踪算法鲁棒性的重要依据[2]。
目前最常用的目标跟踪方法[4]有CamShift算法、Kalman滤波算法和粒子滤波算法。CamShift算法实时性好且具有抗部分遮挡的能力,但是当目标被完全遮挡时该算法就不能准确跟踪目标。Kalman滤波算法虽然能够预测遮挡情况下的目标位置,但是该算法要求系统满足线性高斯性。粒子滤波算法[4]能够处理非线性非高斯动态系统,且粒子滤波使用的颜色直方图特征对目标的旋转、形变以及局部遮挡具有较好的鲁棒性。但是当光照发生变化或者背景中存在相似色等干扰时,仅使用颜色这一种特征跟踪目标就容易出现跟踪失败的问题。
现有的遮挡目标跟踪算法大多是针对部分遮挡和短时间完全遮挡,当目标被长时间完全遮挡后重新出现时,就难以再次捕获目标。为保证目标在不同遮挡程度下都能被准确跟踪,本文通过计算目标和模板之间的相似程度来判断目标的遮挡情况,然后根据遮挡程度采用不同的方法跟踪目标。当目标未被遮挡或小面积遮挡时,采用CamShift算法跟踪目标。当目标被大面积遮挡时,采用颜色特征和LBP纹理特征相融合的粒子滤波算法,提高粒子滤波算法在光照变化及相似色干扰情况下的鲁棒性,并且利用积分直方图来计算颜色和纹理特征的直方图,减少计算时间;当目标被严重遮挡甚至完全消失时,采用改进三帧差法检测运动物体,然后根据模板匹配结果重新得到目标。
1.1粒子滤波算法
粒子滤波算法是在蒙特卡罗模型和递推贝叶斯[5]估计的基础上提出的。它的基本思想[5]是用一组加权的随机样本(即粒子)来表示系统的后验概率密度函数,用样本均值来代替非线性非高斯系统中难以实现的积分运算,进而得到系统状态的最小方差估计。系统的动态模型为[6]:
式中,x_k和z_k分别表示k时刻目标的状态值和观测值,v_(k-1)和w_k分别表示过程噪声和观测噪声。假设初始状态的先验分布为p(x_0),则系统的状态预测方程和更新方程分别表示为[7]:
1.2三帧差法
传统的帧差法是通过前后两帧图像在同一位置像素点的灰度值之差来判断该点是否为运动物体,如果差值大于预设阈值,则该像素点即为目标物体的一部分。为了得到更加准确的运动目标,在此基础上提出了三帧差法[8]:将当前帧与前后两帧图像进行差分,即
然后对差分结果进行二值化,即:
最后将二值化处理后的图像做“与”操作,结果即为运动目标区域。
1.3积分直方图
积分直方图[9]中任意点P(x,y)处的值等于从图像的原点(0,0)处到该点所形成的矩形区域内所有点直方图的累加,记为I(x,y)。
在实际计算过程中,点P(x,y)的值为:
式中,I表示该点的积分直方图,G表示该点的直方图。
根据积分直方图就可以快速计算指定范围内任意小区域的直方图。如图1,区域W的积分直方图可表示为
图1 积分直方图
本文提出的遮挡情况下的目标跟踪算法是为了实现在不同遮挡情况下对目标的准确跟踪。通过遮挡判断确定目标是否被遮挡以及被遮挡的程度,然后根据遮挡情况采用不同的方法来跟踪目标。由于CamShift算法简单高效且具有抗部分遮挡的能力,所以当目标未被遮挡或小面积被遮挡时,采用CamShift算法跟踪目标;当目标被大面积遮挡时,采用改进粒子滤波跟踪目标;当目标被完全遮挡时,启用改进三帧差法检测运动物体,然后对检测得到的运动物体进行模板匹配得到原目标。该算法的大致流程如图2。
图2 算法流程
2.1遮挡判断
在没有遮挡的情况下本文采用基于直方图特征的CamShift算法跟踪目标,而当目标被大面积遮挡时,CamShift算法无法准确跟踪目标。因此,本文采用Bhattacharyya距离[10]来计算当前帧目标和模板的之间的匹配程度,进而判断目标是否被遮挡。即:
2.2改进粒子滤波
当目标被大面积遮挡时,本文采用改进粒子滤波算法预测目标位置。由于纹理特征对光照变化和背景相似色干扰不敏感,所以本文采用融合颜色特征和纹理特征的方法来解决单一颜色特征无法保证在光照变化和复杂环境下准确跟踪目标的问题。粒子滤波跟踪算法需要计算所有粒子区域的直方图,但是通常不同粒子所在的区域有很多重叠的部分,这些被多次计算的重叠部分大大降低了算法的实时性。针对该问题,本文采用积分直方图的方法来减少计算粒子直方图的时间,提高算法的实时性。
2.2.1特征融合
颜色特征是目标跟踪算法中最常用的视觉特征之一,它对目标旋转、尺度变化及姿态变化都有较好的鲁棒性。假设目标区域内有N个像素点,中心为,半径为h,则目标区域的颜色直方图为,
其中:
在得到颜色分布后,通过计算Bhattacharyya距离来判断候选目标与目标模板之间的相似程度。
为了适应跟踪过程中出现的光照变化,结合LBP纹理特征对目标进行描述,LBP算子可表示为:
式中,T为预先设置的阈值。
由于加权融合对噪声不敏感,不能提高融合跟踪的可信度,而乘性融合采用特征权值乘积的形式给出多个特征的联合分布情况,可以有效地提高跟踪的精度,所以本文采用乘性融合来得到目标颜色和纹理的融合特征权值。
2.2.2算法流程
改进的粒子滤波算法的大致流程如下:
(2)读取下一帧,根据状态转移模型更新粒子参数,得到新的候选样本,i=1,…,N;(3)预测一个区域R使其包含所有的粒子对应的区域;(4)采用公式(13)计算区域R的颜色和纹理特征积分直方图,分别为和;
(6)采用Bhattacharyya系数分别计算当前粒子所在区域与模板之间的相似程度,记颜色相似度为,纹理相似度为;
(7)对颜色特征和纹理特征进行乘性融合,得到粒子的权值,即;
(8)对粒子权值进行归一化,然后对粒子集做加权平均即可得到预测的目标位置。
2.3改进三帧差法
当目标完全被遮挡时,采用改进三帧差法来检测运动物体。针对传统帧差法检测得到的目标容易出现较大空洞和边缘信息不完整的问题,本文采用边缘差分和图像差分相结合的办法,提取当前帧和上一帧图像的边缘信息得到边缘差分图像,然后将前后两帧边缘差分结果和图像差分结果进行或运算,再做形态学处理,最终得到运动目标。
2.3.1边缘检测算子
常用的边缘检测算子包括:Canny算子、Roberts算子、Laplacian算子等。但是Roberts算子提取的边缘信息比较略粗略,不能准确描述物体的边缘信息;Laplacian算子对噪声比较敏感,容易导致边缘信息不连续。而Canny算子抗噪性能较好,能够检测出真正的弱边缘信息,所以本文采用Canny算子检测目标边缘信息。
2.3.2去噪处理
通常情况下,分割出来的运动目标图像中包含许多离散的噪声,这将导致目标边缘出现断点现象,所以本文采用形态学处理来去除噪声影响,即首先利用腐蚀运算去除孤立的噪声前景点,然后利用膨胀运算填补目标边缘的缺失部分。
2.3.3目标匹配
检测得到的运动物体可能不是原跟踪丢失的物体,所以在检测得到运动物体之后,需要判断该物体是否为原跟踪目标,本文采用公式(14)Bhattacharyya距离来衡量运动物体与目标模板之间的相似程度。若相似度大于预设阈值,则说明检测结果和目标模板很相似,该检测结果即为原跟踪目标;若相似度小于预设阈值,则检测结果与目标模板之间差异较大,检测结果不是原跟踪目标,读取下一帧重新捕获运动目标。
2.3.4算法流程
本文改进的三帧差法捕获目标的大致流程如下:
(5)将或运算的结果进行二值化处理和形态学处理得到运动物体。
(6)将检测得到的运动物体和目标模板进行匹配,进而重新捕获原目标。
本实验在Visual Studio 2013和OpenCV2.4.8环境下进行,主要在部分遮挡、完全遮挡以及有无光照影响的场景下进行测试。实验参数:通过鼠标选定目标的初始位置,粒子数量设定为100,遮挡判断的阈值为0.6,为0.25。将本文算法与CamShift算法、粒子滤波算法的跟踪结果进行比较。实验结果如图3、4、5。
部分遮挡:由图3(a),4(a),5(a)可以看出,CamShift算法、粒子滤波算法和本文算法都具有抗部分遮挡的能力。
光照影响下的遮挡:根据3(b),4(b),5(b)可以得出,在光照影响下,CamShift算法、粒子滤波算法容易出现跟踪失败,而本文算法在光照影响下仍能准确跟踪被遮挡的目标。
长时间完全遮挡:由图3(c)、(d),图4(c)、(d),图5(c)、(d)可知,CamShift算法、粒子滤波算法在目标被长时间完全遮挡时,无法准确预测目标位置,而本文算法却能在目标重新出现时准确捕获目标,实现目标的准确跟踪。
图3 CamShift算法跟踪结果
图4 粒子滤波算法跟踪结果
图5 本文算法跟踪结果
本文提出的遮挡情况下的运动目标跟踪算法能够准确判断目标的遮挡情况,然后根据遮挡情况采用不同的响应机制。无论目标是被部分遮挡还是长时间完全遮挡,本文算法都能有效跟踪目标。
参考文献
1许慧芳,许亚军.智能视频监控系统中运动目标跟踪的研究[J].电视技术,2014,38(19):228-231
2田园.目标跟踪中抗遮挡跟踪算法研究[D].哈尔滨工业大学,2010
3薛陈,朱明,刘春香.遮挡情况下目标跟踪算法综述[J].中国光学与应用光学,2009,2(5):387-392
4韩磊,郭晓金,齐威等.改进的粒子滤波算法[J]. 电视技术,2012,36(7):16-23
5Doucet A,Godsill S,Andrieu C.On sequential Monte Carlo sampling methods for Bayesian filtering[J].Statistics and Computing,2000,10(3):197-208
6胡士强,敬忠良.粒子滤波原理及其应用[M].北京:科学出版社,2010:21-23
7杨欣,刘加,周鹏宇,周大可.基于多特征融合的粒子滤波自适应目标跟踪算法[J].吉林大学学报(工学版),2015,02:533-539
8刘红,周晓美,张震.一种改进的三帧差分运动目标检测[J].安徽大学学报(自然科学版),2014,38(06):55-59
9Porikli F.Integral histogram:A fast way to extract histograms in cartesian spaces[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.San Diego,CA,USA:[s.n.],2005:829-836
10Swain M J,Ballard D H.Color indexing [J].International Journal of Computer Vision(S0920-5691),1991,7(l):11–32
收稿日期:(2015-12-10)
DOI:10.3969/j.issn.1006-6403.2016.03.005