基于视频图像序列移动目标的检测与跟踪
2018-02-26许向阳姚洪猛
许向阳 姚洪猛
摘要 针对三帧差法前景检测时出现“空洞”现象,本文提出了一种融合三帧差法与自适应码本算法的前景检测方法。首先利用三帧差法对目标进行前景检测得到目标的轮廓信息,利用自适应码本算法对目标进行前景检测得到目标的内部信息。其次将检测出目标的轮廓信息与内部信息作逻辑或运算,便可以得到完整的目标前景信息。然后利用Camshift跟踪算法对运动目标实时跟踪,最后将运动目标的轮廓和运动轨迹标记出来。实验表明,在目标的颜色相对比较明显的情况下该方法具有很好的鲁棒性和精确性。
【关键词】空洞现象 三帧差法 码本算法Camshift 算法
随着智能监控技术的不断发展,能否准确的检测出视频中移动的目标,对后期的目标分析起到了很大作用。传统的检测方法有帧差法、光流法等。帧差法是一种通过图像序列相邻帧作差获得移动目标运动信息的方法,该方法计算量相对较小、处理简单、对动态场景有较强的适应性、能够快速有效的检测出移动目标的运动情况,但帧差法不能提取出完整的目标前景信息,它往往存在“空洞”现象;光流法计算量较复杂,既可以对目标进行检测也可以对目标进行跟踪,但光流法需要特定的硬件对其支持,一般很难满足实时跟踪的要求。
因此,本文提出一种融合三帧差法与自适应码本算法目标前景检测法,并采用质心算法与经典Camshift跟踪方法相结合对该方法进一步的验证。
1 三帧差法
本文基于固定场景下对目标进行检测,为了能够检测到相对完整的前景信息,将目标前景信息从目标的轮廓信息和目标的内部信息两方面分别去考虑。
为了能够提取出完整的目标轮廓信息,本文采用三帧差法对目标的轮廓信息进行提取。由于三帧差法主要检测的是前后两帧相对变化的部分,无法检测出重叠的部分,导致检测出的目标具有明显的“空洞”现象,但是前景却保留了目标的轮廓信息。
根据三帧差法的思想,首先选取图像序列连续三帧图像Ik-1(X,y),Ik(X,y),Ik+l(X,y),通过公式(1)、公式(2)计算出相邻两帧图像的差值DSR(k,k-1)、DSRck+l,k)。再通过公式(3)、公式(4)选择合适阈值T进行图像二值化处理。利用公式(5)对每一个像素点得到二值图像进行逻辑与运算,得到中间帧图像Ik(x,y)的二值化图像Dk(x,y),最后将二值化图像进行形态学处理,提取出相对完整目标轮廓信息。
2 码本算法
码本算法是Kim等提出的一种新颖的背景建模方法。为了能够提取出目标的内部信息,本文采用自适应码本算法,通过实时更新码本中的码字,来建立新的码本模型。具体步骤如下:
首先,建立背景模型。根据公式(6)、公式(7)为当前图像中的每一个像素点建立一个码本(CB)数组,每一个码本(CB)数组由n个码字(CE)组成,每一个码字是由6个元素组成的数组。
CB= {CE1,CE2,CE3,…,CEn,T}
(6)
式中:n为一个码本中所包含的码字数目,当n较小时,退化为简单背景;当n较大时,可以对复杂背景进行建模,T为码本更新的次数。
式中:learnHigh和learnLow分别为更新时的学习上下界;max和mm分别为记录当前像素的最大值和最小值;lastUpDate为上次更新的时间;stale为陈旧时间,用来删除很少使用的码字。
其次,检测像素是否更新。令当前训练图像P中的一个像素为P(x,y),背景阈值的增长判定阈值为Bounds。该像素的码本更新算法步骤如下,如图1。
Step1:遍历码本中的每一个码字,若满足条件: leamLow<=P(x,y)<=learnHigh,则跳转到step3;
Step2:创建一个新的码字并添加到码本数组中,将新添加的码字的max与mm都赋值为P(x,y)、learnHigh赋值为P(x,y)+Bounds、learnLow赋值为P(x,y)-Bounds,再跳转到step5;
Step3:更新该码字的上次更新时间的lastUpDate,若当前像素值P(x,y)大于该码字的max,则将P(x,y)值赋予max;若当前像素值P(x,y)小于该码字的max,则将P(x,y)值赋予mm;
Step4:更新该码字的学习上下界,以增加背景模型对于复杂背景的适应能力。若leamHigh< P(x,y)+ Bounds,则 learnHigh +1;若leamLow> P(x,y) - Bounds,則learnLoW-l;
Step5:更新码本中每一个码字的时间stale,如此反复更新;
然后,前景和背景的分离。对于当前待检测图像上的像素P(x,y)。遍历它对应像素背景模型码本中的每一个码字,若存在码字使得P(x,y)< max+ maxMod并且P(x,y)>min minMod,则P(x,y)被判断为背景,否则被判断为前景。其中:前景的范围上下界为minMod和maxMod。
最后,分离出的前景信息将包含大部分目标的内部信息,再腐蚀膨胀操作使目标的内部信息尽可能的全部提取出来。
3 改进算法
针对三帧差法的对目标前景检测时出现“空洞现象”。本文提出一种融合三帧差法的码本算法。主要将三帧差法与自适应码本算法相结合,提取出相对完整前景信息。改进算法流程图如图1所示。
为了减小光照对目标信息的提取的影响,首先对目标是否受外界光照因素的影响进行判断。若是,则通过混合高斯建模,来降低光照对目标的干扰后。再对目标进行前景的信息提取;若否,直接对目标进行前景的信息提取。然后将提取出的前景信息进行背景差分计算后,与三帧差法提取出目标的轮廓信息进行或操作,来弥补三帧差法前景检测时内部“空洞”现象。最后,对目标作形态学处理,使前景图像更加清晰、完整便于后期对移动目标作实时跟踪处理。
4 实验结果与分析
4.1 前景检测结果与分析
实验在window7系统下,采用开源OpenCV2库和软件VS2012,对移动目标进行实验仿真。图2(a)为室内视频场景;图2(b)采用传统的三帧差法;图2(c)采用码本算法;图2(d)为本文方法。
由图2(b)分析得:传统的三帧差法经过腐蚀膨胀可以有效的提取目标的轮廓信息;图2(c)分析得:码本算法通过对背景的实时更新,有效提取了前景的内部信息;图2(d)分析得:本文方法能有效的提取出相对完整的前景信息,抑制外部环境对前景检测的影响,提高了移动目标前景检测的鲁棒性。
4.2 跟踪结果与分析
本文采用Camshift算法与质心算法结合对目标进行跟踪,进一步说明本文方法对前景检测的优越性。图3为三帧差法跟踪效果图,图4为本文方法跟踪效果图。
由图3分析得:在采用相同的跟踪方法下。由于三幀差法前景检测时出现空洞现象,边缘并不是连续的,导致再对目标进行连通区域连接时会将目标分为多个子目标,从而出现多个被标记的目标,导致标记出现偏差或者多个目标被标记。图4分析得:目标在跟踪窗口中移动,移动目标运动的方向和路径波动不大。有效的解决移动目标遮挡问题,当目标发生尺寸变化,其跟踪窗口也随之改变,有效避免了目标跟踪丢失问题。
5 结束语
本文采用融合三帧差法与自适应码本算法的前景检测方法。通过验证:该方法能够提取出相对完整前景对象,有效解决了三帧差法前景检测时,目标出现“空洞”的问题;该方法结合Camshift跟踪算法,有效解决了目标变形、遮挡时目标跟踪丢失的问题;该方法结合质心算法能够直观的观察到移动目标的运动状态和轨迹。因此,在智能监控系统中,对移动目标进行检测与跟踪分析时,本文方法可以提取相对完整的前景信息,在环境相对简单情况下,可以对目标做到实时跟踪处理,便于对监控视频中移动目标的内容分析。
参考文献
[1]张英,车进,牟晓凯等,改进的Meanshift运动目标跟踪算法[J]电视技术,201 6,40 (10): 97-100.
[2]周同雪,朱明,视频图像中的运动目标检测[J].液晶与显示,2017,32 (01): 40-47.
[3]叶勇,管业鹏,李晶晶,基于混合高斯模型与码本算法的前景目标检测[J].计算