一种基于背景模型的运动目标检测与跟踪算法第1页一种基于背景模型的运动目标检测与跟踪算法刘亚艾海舟徐光佑(清华大学计算机科学与技术系,智能技术与系统国家重点实验室,北京100084)摘要本文提出了一种静止摄像机条件下的运动目标检测与跟踪算法。它以一种改进的自适应混合高斯模型为背景更新方法,用连通区检测算法分割出前景目标,以Kalman滤波为运动模型实现对运动目标的连续跟踪。在目标跟踪时,该算法针对目标遮挡引起的各种可能情况进行了分析,引入了对运动目标的可靠性度量,增强了目标跟踪的稳定性和可靠性。在对多个室外视频序列的实验中,该算法显示了良好的性能,说明它对于各种外部因素的影响,如光照变化、阴影、目标遮挡等,具有很强的适应能力。关键词背景模型,混合高斯模型,Kalman滤波,运动目标检测与跟踪1引言视觉监视是指在一个繁忙环境中对人和车辆等进行实时的观察,并给出对它们行为和动作的描述。这一技术包括了运动目标的检测、跟踪、目标分类和行为理解等方面,涉及到计算机视觉、模式识别和人工智能领域的许多核心课题,是一个具有挑战性的困难问题。近年来随着集成电路和计算机技术的迅猛发展,视觉监视系统所要求的硬件设备成本大大降低,因此它获得了日益广泛的研究与应用。许多关于视觉监视的大规模研究项目已经在美国、欧洲和日本展开,同时它也成为许多国际学术会议关注的重要主题。已有多篇论著详细介绍了针对不同应用条件的视觉监视系统。Wren等的Pfinder是一个利用颜色和形状特征对大视角范围内的人进行跟踪的实时系统[1]。Olson等介绍了一种更通用的运动物体检测和事件识别系统[2]。它通过检测帧间图像变化来发现运动物体,在跟踪中上使用了一阶预测和昀近邻匹配技术。Haritaoglu等的W4是一个可以在室外对人进行实时检测和跟踪的视觉监视系统[3]。它将外形分析与跟踪技术相结合来跟踪人体各个部分的位置并为人的外形建立模型。Collins等介绍了由CMU和Sarnoff公司合作研究的一种视觉监视系统[4]。它使用多个相互协作的摄像机在复杂环境里对人和车进行连续的跟踪,并对目标类别和行为进行分析。运动目标检测与跟踪处于整个视觉监视系统的昀底层,是各种后续高级处理如目标分类、行为理解等的基础。运动目标检测系指从视频流中实时提取目标,一般是确定目标所在区域和颜色特征等。目标检测的结果是一种“静态”目标——前景目标,由一些静态特征所描述。运动目标跟踪则指对目标进行连续的跟踪以确定其运动轨迹。受跟踪的目标是一种“动态”目标——运动目标,与前景目标相比,描述它的特征中多了动态特征(如运动参数等)。针对静止摄像机的情况,本文的运动目标检测与跟踪算法流程如图1所示。我们通过为静止背景建模来检测前景点。具体的背景模型以Stauffer等提出的自适应混合高斯模型[5]为蓝本,并对其作了部分改进以更好地处理实际背景发生变化的情形。算法中采用一种可靠的连通区域检测算法完成前景目标的分割。目标跟踪时则通过匹配目标的位置、大小、形状和颜色等特征,建立运动目标与前景目标间的对应关系。算法中考虑了跟踪中多个目标相互遮挡的问题,分析了几种可能结果并分别加以处理。我们还为运动目标引入了可靠性度量以使目标跟踪过程更加稳定和可靠。一种基于背景模型的运动目标检测与跟踪算法第2页图1运动目标检测与跟踪处理流程2背景模型视觉监视的第一步工作是将前景目标所在的区域从背景中分割提取出来,即完成前景和背景的分离。这一工作一般有三种实现方法:背景消减、帧间运动分析和光流计算。后两种方法都可以用于运动摄像机的情形,对动态环境的适应能力比较强,但帧间运动分析的结果精度不高,难以获得目标所在区域的精确描述[6];光流计算的复杂度则非常高,难以符合视觉监视系统实时处理的要求[7]。背景消减适用于摄像机静止的情形。它为静止背景建立背景模型,通过将当前图像帧和背景模型进行比较,确定出亮度变化较大的区域,即认为是前景区域[1][3]。这种方法的计算速度很快,可以获得关于运动目标区域的完整精确的描述,但对场景中光照条件、大面积运动和噪声比较敏感,在实际应用中需采用一定的算法进行背景模型的动态更新,以适应环境的变化。出于处理速度和算法性能及应用场合的考虑,本文和大部分视觉监视系统一样,选择了建立背景模型作为检测前景区域的方法。按照所处理背景的自身特性,背景模型可分为单模态和多模态两种。前者在每个背景点上的颜色分布比较集中,可以用单个概率分布模型来描述(即只有一个模态),后者的分布则比较分散,需要多个分布模型来共同描述(具有多个模态)。自然界中的许多景物和很多人造物体,如水面的波纹、摇摆的树枝、飘扬的旗帜、监视器荧屏等,都呈现出多模态的特性[5]。昀常用的描述背景点颜色分布的概率分布是高斯分布(正态分布),下面就单模态和多模态两种情形下的背景模型分别加以说明和讨论。为叙述方便,我们用),,(Σµηx来表示均值为µ、协方差矩阵为Σ的高斯分布的概率密度函数。由于背景模型中对各个图像点的处理是完全独立的,所以若不作特殊说明,本文所有关于背景模型的描述都系针对同一图像点位置而言。2.1单高斯分布背景模型单高斯分布背景模型单高斯分布背景模型单高斯分布背景模型单高斯分布背景模型[4]适用于单模态背景情形,它为每个图像点的颜色分布建立了用单个高斯分布表示的模型),,(ttxΣµη,其中下标t表示时间。设图像点的当前颜色度量为tX,若ptttTX≤Σ),,(µη(这里pT为概率阈值),则该点被判定为前景点,否则为背景点(这时又称tX与),,(ttxΣµη相匹配)。在实际应用中,可以用等价的阈值替代概率阈值。如记tttXdµ−=,则可以根据ttTtdd1−Σ的值设置相应的前景检测阈值。在常见的一维情形中,以tσ表示均方差,则常根据ttdσ/的取值设置前景检测阈值:若Tdttσ/,则该点被判定为前景点,否则为背景点。单高斯分布背景模型的更新即指各图像点高斯分布参数的更新。引入一表示更新快慢的常数——更新率α,则该点高斯分布参数的更新可表示为tttd⋅+⋅−=+αµαµ)1(1(1)背景模型目标分割目标跟踪输入视频前景点集前景目标运动目标一种基于背景模型的运动目标检测与跟踪算法第3页Tttttdd⋅+Σ⋅−=Σ+αα)1(1(2)2.2多高斯分布背景模型多高斯分布背景模型多高斯分布背景模型多高斯分布背景模型多模态背景的情形则需要用多个分布来共同描述一个图像点上的颜色分布。Stauffer等[5]提出了一种自适应混合高斯模型,对每个图像点采用了多个高斯模型的混合表示。设用来描述每个点颜色分布的高斯分布共有K个,分别记为),,(,,ititxΣµη,Ki,...,2,1=。各高斯分布分别具有不同的权值itw,(1,=∑iitw)和优先级2/1,,−Σ=ititiwp,它们总是按照优先级从高到低的次序排序。取定适当的背景权值部分和阈值,只有在此阈值之内的前若干个分布才被认为是背景分布,其它则是前景分布。在检测前景点时,按照优先级次序将tX与各高斯分布逐一匹配,若没有表示背景分布的高斯分布与tX匹配,则判定该点为前景点,否则为背景点。多高斯分布背景模型的更新较为复杂,因为它不但要更新高斯分布自身的参数,还要更新各分布的权重、优先级等。若检测时没有找到任何高斯分布与tX匹配,则将优先级昀小的一个高斯分布去除,并根据tX引入一个新的高斯分布,并赋予较小的权值和较大的方差,然后对所有高斯分布重新进行权值归一化处理。若第m个高斯分布与tX匹配,则对第i个高斯分布的权值更新如下⋅−=⋅+⋅−=++++otherwisewmi)1()1(βββ(3)其中β是另一个表示背景更新快慢的常数——权值更新率。(3)表明只有与tX相匹配的高斯分布的权值才得到提高,其它分布的权值都被降低。另外,相匹配的高斯分布的参数也按照(1)、(2)被更新。在更新完高斯分布的参数和各分布权值后,还要对各个分布重新计算优先级和排序,并确定背景分布的数目。2.3背景模型的更新背景模型的更新背景模型的更新背景模型的更新背景模型的更新策略是背景模型设计中昀关键的技术。在模型更新时应当注意如下两条原则:(A)背景模型对背景变化的响应速度要足够快。背景的变化可能是①由光照变化等因素引起的背景本身颜色的变化,也可能是②背景区域的变化,如前景和背景的相互转化,即某个物体由运动转为静止或由静止转为运动(如停车场的汽车停下或开走)而导致前景物体被“融入”到背景中或背景的一部分“逃逸”而出转而成为前景。如果背景模型不能迅速跟上实际背景的变化,检测结果中就会出现大范围的噪声或不合理的长时间静止前景物体(如图2-a中静止的汽车启动后留下的“影子”)。(B)背景模型对运动目标要有较强的抗干扰能力。因为在背景模型的更新过程中,对背景模型上的每点而言都是受到了一个颜色序列的“训练”,不论实际场景中该点是一种基于背景模型的运动目标检测与跟踪算法第4页处于静止背景上还是在运动目标上。静止的背景或目标的这种“训练”是我们所希望的,而运动目标的“训练”则是不希望看到的。特别是当运动物体尺度较大或运动较慢时,这种长时间的“训练”可能会引起错误的检测结果,如在运动目标的尾部产生“空洞”,特别是两个颜色相近的物体交错而过时更加明显(图2-b)。(a)汽车启动后留下的“影子(b)行人对汽车的影响图2背景模型更新中的一些问题在前文描述的单/多高斯分布背景模型中,更新率α和权值更新率β都反应了模型更新的速度快慢。在单高斯分布背景模型中,较大的α符合原则(A)却不符合原则(B)的要求,较小的α则刚好相反。实验表明,很多时候无法找到一个合适的α能同时满足两方面的要求。一种比较容易想到的改进是赋予背景点较大的更新率,而赋予前景点较小的更新率。这种更新方式可以符合原则(B),但很多时候对(A)中情形②的效果很差,因为这时静止的前景点会由于更新率过小而很难被“融入”到背景中。为了解决这个问题,我们将背景模型更新与后面的跟踪结果相结合,赋予背景点和静止的前景点(静止目标)较大的更新率,而赋予运动的前景点(运动目标)较小的更新率。这实际上是用运动目标跟踪的结果来指导更新。经过这种改进可以在保护背景模型不受运动目标影响的同时迅速响应背景的变化。多高斯分布的背景模型在这些问题上的表现要比单高斯分布背景模型好得多。因为它本身有多个高斯分布,判定前景/背景并不单单依赖于某个高斯分布,更依赖于各个分布的权值和优先级。对(A)中的情形②,它可以通过引入新的高斯分布解决;对(B),由于只有相匹配的高斯分布的高斯参数才得到更新,所以受运动物体的干扰也不是那么严重。但它的不足依然存在,因为它并没有对(A)中静止目标的情况作特别处理,也没有考虑到(B)中的不同“训练”之间的区别。在测试实验中,它对背景变化的响应速度比较慢,大而慢的运动目标仍然容易带来“空洞”。我们对它的改进与对单高斯分布背景模型的改进相似,仍然是对背景点、静止前景点、运动前景点的更新率区别对待,只是作用的参数变成了权值更新率β,而不是高斯分布参数的更新率α。3运动目标分割要获得关于各前景目标的特征描述,就必须先将它们从前景点集中逐一分割出来。前景目标分割的依据通常是目标的空间连续性和颜色一致性。由于后者很多时候并不可靠,所以大部分视觉监视系统都选择了根据空间连续性来分割目标的连通区域检测算法[3][4]。常用的连通检测算子有4-连通和8-连通两种[8]。由于连通关系是一种等价关系,所以连通区域分割算法实质上就是将前景点集按连通关系划分为若干个等价类(连通集)。初始数据中的噪声(离散的噪声前景点和目标区域中的小孔等)会给连通区域检测带来不良影响,一种基于背景模型的运动目标检测与跟踪算法第5页因此在进行连通集划分前一般都要先进行去噪处理。这一步可以通过形态学运算实现,利用腐蚀和膨胀算子分别去除孤立的噪声前景点和填补目标区域的小孔。但这种处理也会影响目标原本的边缘和形状,特别是目标本身尺度较小的时候,它的边缘细节很容易为这种去噪处理所破坏。(从左到右依次为:初始前景