自适应混合背景模型的实时跟踪
Chris Stauffer W.E.L Grimson
Bob Kuo 译
麻省理工学院人工智能实验室
剑桥市, MA 02139
摘要
实时分割动态区域的通用方法包括“背景减除法”或者是无运动物体的估计图像与当前图像的误差阈值。对于这个问题有许多方法,不同之处在于背景模型使用的类型和更新模型的程序使用。这篇文章讨论的是每个像素作为一个混合高斯模型,并且用线性逼近去更新这个模型。从背景处理中,自适应混合模型的高斯分布可以评估并决定哪个像素值最可能为背景点。每个像素点根据是否为高斯分布被分类,它对于背景建模是非常有效的方法。
这个结果在一个稳定的,实时的户外跟踪下可以处理灯光的变化,复杂场景的重复动作和长时间的场景变化。这个系统已经连续运行了16个月,一天24小时,包括雨天和雪天。
1 介绍
在过去,计算障碍限制了复杂的实时视频处理的应用。结果,大部分系统太慢以至于不能实用,或者有太严格控制条件的成功。最近,更快的计算机已经使研究者可以考虑更复杂、稳健的实时分析数据流模型。这些新的方法允许研究者在不同的条件下去开始现实世界模型的处理。
考虑视频监控的问题。一个稳健的系统不应该依靠小心的摆放镜头。它应该是稳健的无论是在它可视的区域还是光照发生变化。它应该有能力去处理复杂区域的移动,物体在可视区域的覆盖,阴影,光线变化,场景中移动元素的影响(例如树的摇摆),缓慢移动物体,和场景中物体的进入或者移除。传统背景建模方法的失败就在于上面的条件无法满足。我们的目标就是创建一个稳健的,自适应的跟踪系统,它是足够灵活的去处理各种光照条件,复杂场景的移动,多目标的移动和对于观察场景的随意改变。这个目标跟踪首选应用在监控行业。
1.1 以前的工作与当前的不足
由于需要手动初始化,大部分研究者已经放弃了非自适应背景建模方法。没有重新初始化,背景误差将会随着时间的推移积累,是的这种方法只有在高监督、短期跟踪应用中有用,场景改变后将没有意义。
一个标准的自适应背景建模方法是平均时间序列的图像,创建一个近似于当前无运动物体的静态图像。然而在物体连续运动,背景可视的这个时间段,这种方法是有效的。当多物体运动并且移动缓慢的情况下,这种方法是不鲁棒的。它也不能处理双峰背景,当背景暴露的时候恢复很慢,整个场景有一个单一的设定阈值。
对于许多背景建模方法,场景灯光的变化可能很引出问题。Ridder et al.[5]模型中每个像素使用卡曼滤波使得他们的系统更具有鲁棒性对于在场景中灯光的变化。然而这个方法有一个像素自动阈值,它仍然恢复的很慢并且不能很好的处理双峰背景。Koller et al.[4]已经成功的集成这种方法到自动跟踪监控应用。
Pfinder[7]针对跟踪目标使用了多类统计模型,但是背景模型使用了像素单高斯。当室内为空并初始化后,系统会有不错的表现。在室外场景中这个跟踪器没有好的表现。
Friedman and Russell[2]最近完成了像素级的EM框架来检测车辆,这个与我们的工作最相似。他们的方法尝试去明确的区分三种像素值,预先区分出道路的颜色、阴影的颜色及车辆的颜色。他们尝试去消除阴影的影响是有效果的,但是他们还不能确定针对不在这三种分布的像素值的行为。例如,像素可能是单背景颜色或者多背景颜色的重复运动、阴影或者反射的结果。
1.2 我们的方法
相对于所有像素值作为一个特定分布的显著模型,我们简单的认为一个特定的像素为一个混合高斯模型。基于持久性与每个混合高斯的方差,我们可以判断哪个高斯符合背景颜色。直到有一个高斯一直支持并满足这个像素点时才被认为背景点,否则为前景点。
我们的系统可以很好的处理光线的变化、场景元素的反复移动、复杂区域的跟踪、缓慢移动的物体及场景中物体的进入或者移除。缓慢移动的物体要花更长时间才能融入背景,因为他们的颜色方差值比背景颜色方差值大很多。并且重复的变化可以被学习,背景模型可以被维护,当物体被移动时,它可能被其它分布临时代替,不过很快即可恢复。
我们的背景模型包括两个重要的参数:alpha,学习常数,T,背景所占数据的比例。不需要改变参数,我们的系统已经在人机交互下使用于室内场景16个月,并且连续用于监控室外场景。
2 方法
假如每个像素值是在特定的场景特定的光照下,像素的单高斯模型将是足够的,然而会产生一些噪声。假如仅仅光线随时间变化,像素的自适应单高斯也是足够的。事实上,多曲面多出现在特定像素的视锥和光线条件改变的情况下。因此,自适应多高斯将是必须的。我们使用混合自适应高斯来逼近这一个过程。
每次高斯参数被更新,高斯函数用一个简单的启发被评估,假设出最可能是背景处理的一部分。不匹配于任何一个背景像素的高斯分布的值用连接组件分组。最后,连接组件使用一个多假设跟踪器在视频中被跟踪。如图1:
图1:程序的执行。(a) 当前图像,(b) 最可能的背景模型的高斯函数平均值的图像,
(c) 前景像素点,(d) 具有叠加跟踪信息的当前图像。注意:在这个例子中阴影被认为
是前景,假如表面长时间的被阴影覆盖,这点的高斯函数有足够的理由认为该点为背景。
2.1 在线混合模型
我们把随着时间变化的特定像素值看做一个“像素进程”。“像素进程”就是一个像素值的时间序列,例如灰度图像的标量或者色彩图像的矢量。t为时间,{x0, y0}为指定的像素值,I为图像序列。
一些“像素进程”由(R, G)标量点显示在图2(a)-(c)
图2:多幅图像表现的为一个像素点的红、绿标量值随时间序列的变化。它说明了
实际场景的一些不同点。(a) 两个像素标量点在2分钟内的变化。(b) 显示了水表面
镜面反射像素值的双向模型分布。(c) 显示了另一个镜面闪烁的双向模型。
说明了自适应系统对于自动阈值的需要。图2(b) 和 (c) 的高亮处需要一个多模型表示。
每个像素的值代表光线照射到感兴趣物体上并反射到sensor上的辐射光的测量值。在固定的场景和固定的光线下,这个值相对应该是一个常数。假如我们假设它是独立的,高斯噪声在采样过程中产生,它的密度分布由一个中心在均值处的单高斯分布描述。不幸的是,大部分视频序列包括光线的变化、场景的变化和移动的物体。
假如光线的变化发生在静态场景中,使用高斯函数去跟踪这些变化是有必要的。假如一个静物被放到场景中并且没有融入到背景,除非它放置的时间超过了之前的物体,在任意时间内,相应的像素被考虑为前景。在前景估计中,这个可以引起积累误差,产生不好的跟踪行为。这些因素表明对于高斯参数的估计,越近的观察越能起到重要的决定。
假如移动物体在场景中出现,一个辅助方面的变换就会发生。甚至一个颜色相对固定的移动物体预计会生成更大的方差比一个静止的物体。并且,通常来说,应该会有更多的数据支持背景分布模型,因为它们被代替,而不同的物体像素值具有不同的颜色。
在我们的选择模型和更新程序中有主导因素。每个像素的历史值,{X1,...,Xt},由一个混合K高斯分布建模。当前值的获取方式为:
K是分布数,wi,t是一个在t时刻,第i个高斯评估的权重值(多少数据被这个高斯函数所占据),ui,t是第i个高斯函数在t时刻的平均值,∑i,t是第i个高斯函数在t时刻的矩阵协方差,ƞ是高斯概率密度函数
K由可利用的内存空间和计算功率来决定。当前,使用的为3-5。并且,由于计算能力的原因,协方差矩阵假设为如下的格式:
这个假设为红、绿、蓝像素值是独立的并且有相同的方差。然而这是不确定的,这个假设在牺牲一些精度的情况下,可以让我们避免一个昂贵的矩阵转换问题。
从而,每个像素值在场景中的分布为一个混合高斯特征分布。一个新的像素值,通常用混合模型的最主要的部分代表并更新这个模型。
假如像素进程是一个平稳的进程,一个标准的期望值最大化方法为最大化可能的观测到的数据。不幸的是,每个像素进程会随着世界改变的状态而变化,所以我们用一个近似的方法从本质上把新的观察值作为大小为1的样本,并且用一个标准的学习规则去集成那个新的数据。
因为图像的每个像素都有一个混合高斯模型,在最近数据的窗口执行一个精确的EM算法是昂贵的。取而代之,我们执行一个在线的K均值近似算法。每个新的像素值Xt,用来检测是否符合已经存在的K高斯分布,直到出现一个匹配的值。匹配被定义为一个像素值在2.5标准偏差的分布内。这个阈值在性能上能够被微弱扰动。每个像素值/每个分布阈值都是有效的。当不同的区域有不同的光线时,这是非常有用的(参考图2(a)),因为物体在阴影处的噪声比在有光线下的少。一个统一的阈值常常导致物体在进入阴影区域时会消失。
假如没有一个K分布匹配当前的像素值,可能性最小的分布将会被当前值的均值、初始化方差和低优先级的权重代替。
K分布在t时刻的权重优先级ωk,t,公式如下:
公式中α为学习率的平方,Mk,t=1表示匹配,Mk,t=0表示剩余模型。近似计算后,权重值被重新归一化。1/α定义为时间常数,它决定了分布参数改变的速度。ωk,t is effectively a causal low-pass filtered average of the (thresholded) posterior probability that pixel values have matched model k given observations from time 1 through t.这相当于期望的值在之前的值上存在一个指数窗口。
μ和α参数对于不匹配的分布仍然相同。分布的参数匹配于新观察值,被更新如下:
由于英文水平和专业知识所限,无法继续翻译······