背景差分法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
背景差分法又称背景减法,背景差分法的原理是将当前帧与背景图像进行差分来得到运动目标区域,这种方法较帧差法能更好的识别和提取运动目标,是目前运动分割中最常用的一种方法。
但是需要构建一幅背景图像,这幅背景图像必须不含运动目标,并且应该能不断的更新来适应当前背景的变化,构建背景图像的方法有很多,比较常用的有基于单个高斯模型的背景构建,基于混合高斯模型的背景构建,基于中值滤波器的背景构造,基于卡尔曼滤波器的背景构造,基于核函数密度估计的背景模型构造。
背景差分法法是静止背景下运动目标识别和分割的另一种思路。
如不考虑噪音n(x ,y ,t)的影响,视频帧图像I(x ,y ,t)可以看作是由背景图像b(x ,y ,t)和运动目标m(x ,y ,t)组成:
(,,)(,,)(,,)I x y t b x y t m x y t =+ (4-14)
由式(4-14)可得运动目标m(x ,y ,t):
(,,)(,,)(,,)m x y t I x y t b x y t =- (4-15)
而在实际中,由于噪音的影响,式(4-15)不能得到真正的运动目标,而是由运动目标区域和噪音组成的差分图像d(x ,y ,t),即:
(,,)(,,)(,,)(,,)d x y t I x y t b x y t n x y t =-+ (4-16)
得到运动目标需要依据某一判断原则进一步处理,最常用的方法为阈值分割的方法:
(,,)(,,)(,,)0(,,)I x y t d x y t T m x y t d x y t T ≥⎧=⎨<⎩ (4-17)
式中T 为一阈值,图4-1为背景差分法的流程图:
图4-1 背景差分法的流程图
背景差分法较帧差法更能准确地提取运动目标,帧差法如果不与其他方法进行结合只能提取运动变化区域(包括真正的运动目标、被覆盖和显露的背景)而不能直接提取运动目标。
然而,当我们运用背景减法时还要考虑很多问题:(1)要得到背景图像b(x,y,t),最简单的方法就是将第一帧没有运动目标的图像帧作为背景图像。
然而在实际环境中随着时间的推移背景图像是不断变化的,引起背景变化的因素很多,如:光线的变化,环境的变化等等。
因此不能简单的将一帧没有运动目标的图像帧作为背景而不进行更新。
(2)可能在场景中有很多干扰,比如场景中有树枝和叶子在风中晃动、水面的波动等等,这些运动不能简单的判断为运动目标。
(3)照明的变化和天气的变化都可能影响检测的结果。
(4)背景的变化,比如一辆汽车从原先背景中离开,物体改变了放置的位置,而这些情况下不能被认为真正的运动目标。
(5)运动目标影子的影响。
由这些需要考虑的问题我们可以得出在背景差分法中需要对背景图像进行
及时更新,这样才能保证检测结果的正确性,背景更新的方法很多,下面详细论述。
4.2.1 基于单个高斯模型的背景构建
Wren 等人提出了基于单个高斯模型的背景构建方法,该方法假定连续视频帧中每个象素均是独立的,并且其灰度值遵循高斯分布,随着新的视频帧到来,要更新每个像素点所遵循的相应高斯分布中的参数,其中均值定义为:
1(1)t t t I μααμ-=+- (4-18)
式中t I 是该像素当前灰度值,1t μ-是前几帧该像素灰度值的均值,α是一个
经验值,它决定背景更新的快慢,当α很小的时候,背景更新缓慢,反之,更新较快。
方差σ2用它的无偏估计来代替,当t t t I k μσ->时,该像素为运动目标点,
否则就属于背景。
Koller 等人指出上述方法不能很适当的更新背景,原因是在计算t μ时,属于运动目标的像素点也参加了计算,这样的结果就是会将运动目标的像素点叠加到背景中,因此Koller 等人提出了以下定义:
11(1)((1))t t t t M M I μμααμ--=+-+- (4-19)
式中参数M=0(上一次计算中属于背景的像素)或1(属于运动目标)。
4.2.2 基于混合高斯模型的背景构建
混合高斯模型是指用多个高斯分布来共同描述一个像素点的像素值分布, Stauffer 等人提出了一种自适应的混合高斯模型背景构建的方法,每个像素点的灰度值分布都由多个高斯分布混合表示。
设一个像素点的像素观察值为{X 1,…,X t },则当前像素值的概率可表示为:
,,,1()*(,,)K
t i t t i t i t i P X w X ημ==∑∑ (4-20)
其中,K 为用来表示像素值的高斯分布的个数,ωi ,t 表示t 时刻第i 个高斯分布的权值,1(1)K
i t i w ==∑,µi ,t 表示第i 个高斯分布的均值,,i t ∑表示第i 个高斯
分布的协方差矩阵,而第i 个高斯分布函数,,(,,)t i t i t X ημ∑表达式为:
1,1()()2,,12,1
(,,)(2)T t t t t i t x x t i t i t n
i t X e μμημπ----∑=∑∑
(4-21) 其中,n 为自由变量的个数,K 的值一般取3-5,协方差矩阵可表示为:
2,i t i I σ=∑ (4-22)
文中用第一幅图像每点的像素值作为该点对应混合高斯分布的均值,并给每个高斯模型赋一个较大的方差和较小的权值。
当新的图像到来的时候,要对各个像素点的混合高斯模型的参数进行更新,理想的情况是在每一时刻t ,用包含新的观察数据的一段时间内的数据,开始采用K 均值算法来近似估算混合高斯模型的参数,但是这种匹配算法计算比较复杂,不能达到实时计算的要求,因此用一种近似算法,即把K 个高斯分布按权值和标准差之比ω/σ从大到小进行排列,然后选择均值μi ,t-1,k 和X i ,t 最接近的高斯模型,并且满足:
,,1,1()/ 2.5i t i t i t X μσ---< (4-23)
如果找到某个高斯模型k η与,i t X 匹配,则用下列公式更新k η的各个参数:
,1,(1)i t t i t X μαμα-=-+ (4-24)
22,,1,,,,(1)()()T i t i t i t i t i t i t X X σασαμμ-=-+-- (4-25)
对所有高斯分布的权值用下面的公式进行更新:
,,,,1,,(1)i k t i k t i t k w w M αα-=-+ (4-26)
式中M i ,t ,k 对于匹配的高斯模型取l ,没有匹配的高斯模型取0。
如果没有一个高斯模型与X i ,t 进行匹配,将ω/σ比值最小的高斯模型用均值为X i ,t ,方差
较高,权值较低的新构造的高斯模型代替。
文中算法的最后一步是进行景物模型的构造,在每一时间,从每一点的多个高斯分布中选择一个或几个作为背景模型,其他均表示前景模型,如果当前值与背景模型匹配,则把该点判定为背景,否则判定为前景。
选择背景模型的方法为:首先将每一点的混合高斯模型按权值和标准差的比值 (即:ω/σ)按从大到小的顺序排列,根据下式选择前B 个模型作为背景模型:
1arg min ()b
b k k B w T ==>∑ (4-27)
式中的T 表示作为背景中的点,它的像素值保持不变的概率,如果T 选择过小,则背景通常为单峰,这种情况下采用单一高斯模型的背景构造方法更简单,如果T 选择过大,则背景通常为多峰,这样采用混合高斯模型的背景构造方法更适合处理这种有重复运动的背景(比如树枝的摇动,水面的波动等等)。
4.2.3 基于Kalman 滤波器的背景构造
WU Yi-Ming 等人使用Kalman 滤波器来对背景进行不断的更新,一阶Kalman 滤波器的背景更新公式为:
*1()()(()())k k k B p B p g I p B p +=+- (4-28)
其中增益因子
12(1())()k k g M p M p αα=-+ (4-29)
如果
()()()()1
()()()()0k k k k k k k k I p B p s p M p I p B p s p M p ->⇒=-≤⇒= (4-30)
其中I (p )表示当前帧图像中p 点像素值,B (p )表示背景图像中p 点的像素值, M(P)为运动目标的二值图像中的p 点的像素值。
如果p 点属于运动目
标则像素值为1,否则为0,s(p)为像素点p 的阈值,将运动目标分离出来,α1、α2为权值系数,决定了序列背景图象的自适应性,α2必须足够小,才能从背景序列图象中有效的分割出运动目标,α1必须大于或等于10α2,但如果α1太大,越来越多的运动变化将存储于序列背景图象,将会丧失算法的去噪特性。
式中的s k (p )可由自适应阈值选取方法得到。
4.2.4基于核函数密度估计的背景模型构造
基于核函数密度估计的背景模型构造方法与以上的背景构造方法不同,该方法无需事先假定背景模型函数,也无需估计模型参数和对参数进行优化。
Elgammal 等人提出了能处理复杂背景的基于核函数密度估计的背景模型构造方法,选用的核函数为高斯函数,假定X 1,…,X n 为一像素点的N 个连续的采样值,在t 时刻得到该点像素值为X t 的概率可用核函数的密度估计来计算:
1
1()()()(,)N
t h t i i h t i t i i p X K X X N K X X X X η==--=-∑∑ (4-31)
式中K h 表示窗口宽度为h 的核函数,N 表示样本的个数。
核估计首先需要得到待估计量的一个训练样本集,Elgammal 等人直接将视频序列中的像素值作为样本,但是视频序列中可能包含运动目标,这样做势必会将属于运动目标的像素作为背景来计算,这样就会产生误差,因此可以将视频序列中相邻两帧的差分作为样本:
111(,)(,)(,);(,)(,)(,)(,);
t
t t t t t t I x y I x y I x y T S x y S x y I x y I x y T ---⎧-<⎪=⎨->⎪⎩ (4-32) S 为背景样本,I 为视频帧图像,T 为阈值,如果两帧图像的差小于某一阈值则视为背景样本,否则不参与运算。
假定取得M 个背景样本,核函数为高斯函数的背景估计为:
2
2
()
2
1
1
((,))
t t
I S
M
h
t
j
p I x y
M
-
=
=(4-33)根据P(I t(x,y)),利用下式来判断某一像素是否属于运动目标:
1((,))
(,)
0((,))
t p
t
t p
p I x y T
M x y
p I x y T
<
⎧
=⎨
>
⎩
(4-34)M t(x,y)为0则说明该点属于背景点,为1属于运动目标。
为了使背景不断更新,背景样本需不断更新,背景样本的更新可使用队列先进先出的形式,并且不断使用核密度函数估计公式不断更新背景。