混合高斯背景建模与更新

混合高斯背景建模与更新
混合高斯背景建模与更新

计算机学院专业实习报告专业名称计算机科学与技术

实习题目基于多摄像机协同的运动对象分割与三维重建系统之背景建模与运动前景分割

姓名李林

班级10010804 学号2008302499

实习时间

指导教师杨涛Northwestern Polytechnical University

2010年7月14日

目录

摘要 (1)

第一章基本原理 (2)

1.1高斯模型原理 (2)

1.2 混合高斯背景建模与更新 (3)

1.2.1 背景训练 (4)

1.2.2 模板匹配 (4)

1.2.3背景更新 (5)

第二章运动物体提取 (6)

2.1目标提取概述 (6)

2.2 提取过程 (6)

2.2.1 参数设置 (6)

2.2.2 模型建立 (7)

2.2.3 背景学习 (7)

2.2.4 模板匹配与背景更新 (9)

第3章其他增强效果算法 (10)

3.1阴影的检测和去除 (10)

3.1.1 阴影简介 (10)

3.1.2 阴影检测法 (11)

3.1.2 阴影去除 (13)

3.2形态学滤波 (14)

3.2.1 图像腐蚀与膨胀 (15)

3.2.2 开运算和闭运算 (16)

第四章最终成品 (18)

4.1 成品说明 (18)

4.1.1性能说明 (18)

4.1.2成品样式 (19)

4.1.3使用说明 (19)

第五章实习心得 (19)

摘要

背景建模与运动前景分割是指从视频或者连续的图像序列中将运动的区域分割出来,本次实行所需的运动物体提取只是用来为后面的形成3维图形提供图像数据,日常生活中视频监控系统已广泛应用于各大公共场所,如公司,机场,酒店等都备有监控系统。但对于大多数监控系统来说,都需要监控者保持对监控录像的观测。如何实现视频监控系统的自动监控,是近年来比较关注的问题。自动视频监控技术其主要内容之一就是能监视某一特定场景中的新目标的出现,首先检测视频序列图像中是否有变化,如图像变化,说明有新目标出现,则把这个目标从视频图像序列中分割提取出来,为下一步的目标识别和跟踪提取数据提供基础。因此,一个视频监控系统的好坏,运动目标能否良好的提取是非常关键的。

目前运动目标的提取已经取得很多成果,并且不断有新技术、新方法出现。但是,在实际应用中,由于自然环境复杂,目标机动性高,使得提取与跟踪时干扰因素多,提取不准确且匹配效率不高。要提高跟踪的精度需要对复杂环境下的目标提取和跟踪进行研究,但到目前为止,仍没有一种普遍适用、比较完善的方法,因此对这两方面作进一步研究仍有很大空间。

针对本次实习的特殊场景,经分析决定采用混合高斯模型对运动图像进行提取,弥补单高斯模型不能适应背景微变化的这一缺陷,例如光照明暗、阴影等变化。利用混合高斯模型对输入的视频进行学习,之后再对运动物体进行前景提取,形成二值图像,运动物体置为白色,背景值为黑色,由于在提取过程中会存在这一些噪声点,所以最后运用腐蚀与膨胀运算对图像进行去噪处理。最终设计完形成的图像预计效果为能基本提取出运动物体,可能遇到较为复杂的背景会存在一定的噪声。

目前,从现有的测试数据来看程序能基本提取出运动物体,基本达到了预定的效果,在设计之中起初运用了帧间差分法,测试数据背景较为简单时能基本提取前景,但换成了光照发生变化的背景后运动物体的提取有明显难以改善的噪声,之后考虑更改算法,现有的算法中,光流法效果较为明显,但其算法较为复杂,不适合本次实习的开发,其次较为合适的还有单高斯模型,但其由于在变化的场景中表现

不是很好,所以最终确定为采用混合高斯模型,GMM(Gaussian Mixture Model),高斯混合模型,是由Chris Stauffer 等人提出将其作为背景的统计模型,为同一场景中不同状态建立不同的高斯模型。该算法较其它的算法(如光流法,帧差法等)有良好的自适应性。本文采用了简化的GMM 对视频图像序列进行建模,并实现了对视频中的运动前景进行提取的效果。

本次实习的难点在于对于混合高斯模型算法的理解以及其参数的调试,不过经过两周的实习已对其有了一定的了解,总了来说较为圆满的完成了实习的任务。

第一章基本原理

1.1高斯模型原理

高斯分布,也称为正态分布。是伟大的数学家高斯(Gauss)与1809 年在研究误差理论时推导出来的。对于随机变量x,其概率密度为

(1)

其中μ为高斯分布的期望,σ为高斯分布的方差。如果一组数据符合高斯分布,那么这种数据中的大多数会集中在以μ为中心的-2σ到2σ范围内的这段区间里。其函数分布曲线如图1 所示。

图1 高斯分布示意图

在日常生活中,很多事件都是符合高斯分布的。对于某一场景中的视频图像,如果其背景相对静止,没有扰动因素,那么背景中的每个像素点在一段时间序列中的排列就可以用一个高斯分布来描述。但是在实际中,尤其是对于室外的场景,由于各种噪声的干扰,其背景变化是比较大的,会出现树枝摇动,光线变化等不同情况。因此用一个高斯分布就不能来完全描述实际的背景情况。这种情况下就需要采用多个高斯模型来描述动态的背景,为不同的状态建立不同的高斯模型。将k 定义为建立的高斯模型的数目,那么当前观测点的像素值的概率密度为:

(2)

其中, i t w, 是每个单高斯模型的权值, i,t?1,k μ为第i个单高斯模型的均值, i,t ?1,k σ为第i个单高斯模型的方差。

1.2 混合高斯背景建模与更新

在采集的视频图像中是包含彩色分量的,一些应用中则使用了协方差的方法来进行计算,这种方法计算量大但效果提升不高,不适合实时性的要求。因此,本算法中直接简化了这一过程,将彩色图像转为灰度图的方法来进行高斯混合建模。根据场景的复杂程度,高斯模型的数量k 可以取值为3~7 个,k 值越大,其能表征的场景就越复杂,但相应的计算量也增大。因此本算法中取k 值为3。采用GMM 进行背景建模主要包含3 个步骤:背景训练,模板匹配及背景更新的过程。

1.2.1 背景训练

首先对一段帧数的视频进行训练,通过训练帧中所得到模型计算出均值,方差和权重等各参数来从作为背景模型的参数。在训练过程中,不必对每个高斯模型都进行确定,如果对于某一像素点来说,在训练时间内其灰度值变化不大,即其一个到两个高斯模型内就已经能包含图像中90%以上的像素值,那么可直接将有较大的方差和较小的权值的参数赋予其他模型。本算法中将方差设为11,权值初始设置设为1。通过对背景的训练,可以消除背景中的扰动因素,以避免将运动物体视为背景模型,训练帧数越长,所得到的背景模型越精确,但一般训练时间不超过50 帧,否则会影响整系统的启动时间。

1.2.2 模板匹配

得到了背景模型后,通过模板匹配来进行前景分割。在进行模板匹配前,首先要对混合高斯模型中的三个单高斯模型进行降序排序,判断那个高斯模型最有可能与背景图像进行匹配。由于静态区域的点会比动态区域点的方差小,且运动物体出现会导致模型更新后该单高斯模型的权值降低,因此权值越大,方差越小,匹配度越高。通过公式:

dist

对混合模型中的各单个高斯模型进行优先级高低的排序后在进行匹配,其中dist 为马氏距离、fTb表示一阀值,var为模板中的方差。

如果当前帧的像素值与所有的高斯分布模型都不匹配,则可以判断该点为前景点,但找到匹配的高斯模型后,还不能就将其判断为背景点。因为背景模型中还是可能包含一定的噪声和干扰因素,并不是所有的高斯模型能完全代表背景。但由于噪声等干扰因素不会在图像中长时间停留在某一位置,其相对应的权值就应该很小。在对高斯模型排序的过程中,需设定一个权值阀值T。如果排序后所得到的第一个高斯模型的权值大于该阀值,则 B 为1,否则,按顺序累加各高斯模型的权值,只到其权值大于该阀值,并将该高斯模型序号赋给B。其中 B 的定义如下:

(4)

T为为一阀值,这里设为0.9。在上面进行匹配成功的模型中,如果该匹配模型号小于B 值为背景,否则为前景。

1.2.3背景更新

由于场景中环境的不断变化,通过训练建立好的背景模型不可能适应新的背景的需要,因此,需要对背景进行实时更新,以保证前景提取的正确性。在背景模型更新过程中,引入了学习率alpha 这一概率。当学习率取值比较小,其适应环境变化的能力就低,需要给足够的时间才能更新背景模型。相反,当alpha 取值较大时,其对场景的适应性较强,能很快的变化背景模型,但是对于一段时间内停留的场景中的目标,却很容易学入背景中去。针对这种情况,算法对学习率进行调整,在图像中的不同处设定不同的学习速率,以保证场景变化的需要。学习率的变化范围应该在0~1 之间。

对k 个高斯模型进行更新,也就是对混合高斯模型中的三个参数,即权值,均值和方差进行调整。其权值的更新算法如下:

weight=(1-alpha)*weight+alpha*fCT+alpha*M

fCT为一参数,M 为匹配度,对于匹配上的模型取值为1,否则取值为0。可见当像素点与高斯模型不匹配时,其权值会降低。

对于匹配上的i 个高斯模型,需对均值和方差进行更新。更新算法如下:

未匹配的模型,其均值和方差都保持不变。如果对于当前点的像素值,其与所有的高斯分布模型都不匹配,则新建立一个高斯分布将混合高斯模型中排序最后一个的高斯模型替换掉,同样该分布应选取较大的方差和较小的权值,而其均值则设

为当前像素点的值。

第二章运动物体提取

2.1目标提取概述

目标提取方法分为两种:一种是静态背景下的目标提取,另一种动态背景下的目标提取。前一种情况通常发生在摄像头相对静止状态,后一种情况是摄像头发生相对运动的状态。这里只讨论静态背景下的目标提取技术。目前,运动提取算法主要有图像帧间差分法、光流法、背景减除法等。尽管在针对不同的场景采用的算法可能存在差别,但其基本过程都如下图:

2.2 提取过程

2.2.1 参数设置

在程序中有关混合高斯模型的参数有以下需要设置:

图像的宽度:Width

图像的高度:Height

每个像素点最大高斯数目:nM

每个新高斯模型的初始方差:Sigma

高斯模型更新的学习率:Alpha

公式(4)中的阀值:fCT

用来更新和生成新高斯模型的阀值:fTg

2.2.2 模型建立

图像为24位色,其中的每个像素点都是由RGB颜色控件表示,所以每个高斯模型设置如下的数据存储结构:

其中sigma表示为方差,muR、muG、muB分别表示RGB三色值的均值,weight表示每个模型在混合模型中权数。

在建立模型时首先获得图像的尺寸,为数据申请内存,之后先为每个像素点创建一个高斯模型,期中sigma的赋值为以初始化值,这里设置为11,muR、muG、muB均为第一张图像中每像素点的RGB值,由于每个像素点均只建立了一个模型,所以每个模型的weight都设为1.

2.2.3 背景学习

学习过程即为每个像素点更新高斯模型或者建立新的高斯模型,确定其参数,学习的好坏直接影响到后面运动物体提取的好坏,一般设置学习帧数不超于50帧,否则影响到程序启动的速度,在本次实习中,设置学习帧数为9帧,学习函数如下:

void GMMForeground::Train(IplImage* Frame)

输入一帧图像,以更新模型数据。

关于学习时学习率的设定:

如果alpha在学习过程中设置的较小的话,表明其学习较慢,这样在以后的运动物体提取中,可能会存在将背景识别为运动物体的现象,如下图:

上面一排均为背景噪声,此时是在学习率0.1,当把学习率设置为0.0001时效果图如下:

2.2.4 模板匹配与背景更新

程序中匹配与更新函数如下:

int GMMForeground::UpdatePixelBackgroundGMM(long posPixel,

float red, float green, float blue,

uchar* pModesUsed,

int m_nM,

float m_fAlphaT,

float m_fTb,

float m_fTB,

float m_fTg,

float m_fSigma,

float m_fPrune)

{

………………内容省略……………………

}

首先先把每个像素点中的所有高斯模型按照权值的大小进行降序的排列。

匹配时,求出当前像素点RGB值与模型中muR、muG、muB的差值分别记为dR、dG、dB,然后求出马是距离dist:

dist=dR*dR+dG*dG+dB*dB

用下列判断语句判断是否为前景点:

if ((totalWeight

bBackground=1;

之后进行模型的更新或新建:

若匹配上则对匹配上的模型需对其权值、均值、方差均进行更新,若未匹配则只对其权值进行更新,如果不存在匹配模型,则新建一个高斯模型,对于新建的模型其均值取当前像素点的像素值,权值与方差均取初始化值,将其排在后面。

匹配时更新算法:

weight=(1-alpha)*weight+alpha*fCT+alpha

muR = muR - k*(dR);

muG = muG - k*(dG);

muB = muB - k*(dB);

sigmanew = var + k*(dist-var);

if(sigmanew<4)

sigma=4;

else{

if(sigmanew>5*m_fSigma)

sigma=5*m_fSigma;

else

sigma=sigmanew;

}

不匹配时的更新算法如下:

weight=(1-alpha)*weight+alpha*fCT

第3章其他增强效果算法

3.1阴影的检测和去除

3.1.1 阴影简介

由于光线被物体遮挡,而在背景中形成一块无法被光线照射到的区域,即阴影。阴影按照形成原因不同可以分为两类:一类是遮挡物体自身由于没有被光源照射到而在背光区形成的叫做自影(Self-Shadow);另一类,前景物体遮挡住光源,而在背景区或者其他物体上形成的,叫做投影(Cast-Shadow)。如果将投影细分,还可以分为本影和半影,本影是由于直射光线的完全被物体遮挡形成的,而半影则对应的就是光线部分遮挡形成的。

依据阴影的形成机理,可以得出阴影区域和其他区域相比的特点。首先,由于

阴影区域的光线被遮挡,区域内亮度比较低,并且不随阴影覆盖的背景区的纹理和颜色的不同而发生显著的变化。其次,阴影与产生阴影的物体有着相似的轮廓并且与之在行为上互相关联。最后阴影区与非阴影区的色度是不同的,并且阴影的边界也会随着背景区几何形状的变化而产生变化。

3.1.2 阴影检测法

阴影存在虽说有着有利的一面,但是在图像处理中,往往会降低图像分割的准确性,这样在射频监控,目标跟踪,物体识别等计算机视觉应用领域就很容易产生错误。因此如何准确地检测出阴影便成为了一个很重要的研究内容。

根据光学原理,光线照到物体表面上时,对视频序列中的第K帧的任一像素点(x,y),它的亮度I(x,y)的值可以用如下的公式描述:

其中,Ek(x,y)与(x,y)处受到的光照有关,ρk(x,y)与该点表面的反射有关。由于视频序列运动目标提取跟踪系统的背景是静止的,所以背景像素点的反射特性是不会随时间变化而发生变化的,这样对所有的视频帧来说就有:

所以阴影区对Ik(x,y)的影响主要来自Ek(x,y),而对阴影区来说:

其中Cp,CA与光源和漫反射强度有关,θ是(x,y),如果在下一帧处成为阴影区域,则前后两帧(x,y)处的亮度比:

由此可见,在光源充足的情况下,由于CP值足够大,则Dk(x,y)的值会小于1并且发生显著变化。因此当阴影覆盖背景后该区域的亮度值在前后两帧之间发生很大的变化,检测这个亮度值,便可以检测出阴影。当然,这种方法并不完善,因为有的前景运动目标也会满足这个条件,容易产生误检。

RGB颜色模型阴影检测。颜色恒常理论和光学不变特性理论是RGB模型阴影检测的理论依据。颜色恒常指当一个物体的亮度发生变化时,物体的本质色彩是不会

发生变化的。物体表面的光谱反射特性不受亮度变化的影响,和物体的几何形状也没有关系,基本彩色是独立于亮度的。光学不变特性指当光源条件发生改变,或者场景发生改变时,机器视觉系统采用的彩色模型仍然具有目标识别能力,人的视觉系统就有这种特性。

常用的光学不变特性的算法有很多,如归一化色度坐标rgb,色调H和饱和度S,这种两种不变性算法公式如下所示:

式中,r,g,b代表归一化后的值,min是求最小值函数,其余各个分量值表示的是RGB与HIS色彩空间分量。他们对表面法向,光源强度和光照方向不敏感,在RGB空间,根据这些特性,选择了归一化rgb,结合阴影区覆盖前后亮度的差异,形成了亮度和归一化两个判据进行检测阴影。

HIS颜色模型阴影检测。HIS色彩空间能够精确的反应灰度信息和色彩信息,特别是图像中极亮或者极暗的区域。在实际的图像处理过程中,H、S、I三个分量并不是时刻作为参数存在的,三个参数的信息并不是总是有用的。当背景像素点被阴影覆盖后,其色调的变化是很小的,饱和度会略微的降低,但亮度会发生很大的变化,这与RGB中得到的结论是一样的。而真正的前景运动目标对背景的亮度、色度影像比较随即,取决于目标的颜色和纹理特征。这样可以依据阴影在亮度和色度变化特性,将其与前景目标分离出来。一句这些特性得算法公式:

式中,I(x,y),S(x,y),B(x,y)分别表示(x,y)处当前帧图像、阴影图像和背景图像。这里的α是根据光源的强弱设置的,光源亮度越强,α值越小;β值与去除噪声的影像有关,且0<α<β<1.S分量值在阴影区域通常较小,阴影区与背景区的S的差值一般是负值,即为负值。这里H值是必要条件,因为它关系到色度的控制,则这个阀值如何取得十分关键的。

3.1.2 阴影去除

对图像中的阴影区域进行检测之后,在不同应用场合,阴影的进一步处理方式各不相同。在遥感成像和摄影测量等领域,在检测出阴影之后,就要尽可能的减弱或消除阴影対原测量目标的影响,恢复阴影下的物体在没有被阴影遮挡前的样子,从而提高影像的质量和可观性,这个过程就成为阴影去除。这种情况下的阴影去除实际上就是将阴影区域中像素点的亮度和颜色回复到非阴影区域光照的情况下,从而使整幅图像具有视觉上的光照一致性。在视频序列中的目标追踪、目标形状提取应用中,在检测出阴影区域之后,必须将阴影与真正的目标进行分离处理,进而提取出目标物体。

阴影去除方面的算法主要有,基于区域补偿的阴影去除,基于二位积分的阴影去处,基于颜色比率的阴影去除等,都是针对减弱阴影对背景影像的算法。而运动目标提取系统中并不采用这些算法,只是简单的对阴影区进行分离替换:

如上图所示,在检测到前景帧的阴影区域后,对于阴影去的像素点(x,y)找出其对应于背景帧中的像素点的值B(x,y),并把前景帧中的F(x,y)替换为B(x,y),依据这个原则,一次循环替换阴影区中的值,直至结束,最终形成新的没有阴影的当前帧C(x,y)。背景帧和前景帧是在背景建模和运动目标处理之后的图像序列帧。

下面两幅图为去除阴影后的对比图:

去除阴影前

去除阴影后

从图像上看,去除阴影达到了较好的效果。

3.2形态学滤波

在目标提取、阴影处理之后得到的当前帧图像,效果并不是很好。无论是由于噪声的干扰,还是目标提取和阴影处理过程中残留的边缘问题,都需要改进图像效果,提高目标跟踪的精度。

数学形态学是法国巴黎矿业学院博士生塞拉和导师马瑟荣于1964年提出的,由一组形态学代数算子组成,最基本的形态学代数算子包括腐蚀,膨胀,开运算,闭运算等,通过组合这些算子,可以实现对图像形态、结构的分析和处理。图像的形态学处理是以数学形态学位理论基础,借助数学方法对图像进行处理的技术。在形态学处理中,图像所具有的几何特性将成为算法中最关键的信息,在几何层面上对图像进行分析和处理也就成了图像形态学所研究的中心内容。形态学处理可以完

成图像分割,特征提取,边缘检测,图像滤波等工作。具体来说,可以做到填充物体内细小空洞,连接临近物体,滤除图像孤立小噪声点,在不改变物体面积的情况下平滑其边界。因此在得到一帧图像的二值图像后,对其进行二值图像形态学处理以加强图像帧的显示效果。

在处理图像时,将被处理的图像成为目标,它是一切属于它的元素构成。对目标进行分析时,需要把目标分解为更小的组成部分,成为结构元素或者模板。

3.2.1 图像腐蚀与膨胀

在数学形态学运算中腐蚀的作用是消除物体的边界点。在图像处理中,对于小于结构元素的点是可以通过腐蚀运算消除的,即可以通过腐蚀处理,对目标区域中含有细小连接部分的区域进行分割。

腐蚀原理:

其中,A为(x,y)平面上的目标区域,S 为指定大小和形状的模板元素,S(x,y)是位于坐标(x,y)上的模板元素S所表示的区域,S(x,y)/A是差集,表示属于S而不属于A的元素的集合。

在图像处理中可以理解为,定义一个模板S,在图像中按照从左到右,从上到下的顺序扫描每个像素点,当位于某个像素点时,模板完全位于目标像素中,则保留当前像素点,否则,删除当前点。如图4.5所示,实现过程:模板S为一个3*3大小的十字形结构元素。被腐蚀的目标区域A(x,y)是一个8*8的二值化后的图像,逐个像素点进行扫描腐蚀的过程中,若当前扫描的像素点A(x,y)满足像素值为1(假设1代表图中的黑色区域的像素值),八邻域内上下左右直接相邻的像素点的值为1,其余值为0的像素点,则认为与模板S相匹配,A(x,y)值设为1,否则置为0,如A(4,4)的八邻域为第一个与模板S匹配的像素点,则经过腐蚀运算后其值为1。采用不同的模板对图像进行腐蚀操作得到的结果是不相同的,如上分别

采用了两种不同的结构元素进行腐蚀得到不同的效果。

图像的膨胀。在形态学运算中膨胀的作用是扩展物体的边界点。通过膨胀运算可以通过特定的结构元素对一些相邻较近的区域进行连接,不过,膨胀也会使得一些小的杂点和敏感点放大,膨胀原理:

其中A为(x,y)图像帧中的模板区域,S为指定大小的结构元素,定义位于坐标(x,y)上的结构元素S所表示的区域为S(x,y),S(x,y)∩A是交集,表示同时属于S和A的集合。从图像的左上角开始,按扫描顺序,当结构元素位于某像素点上时,结构元素与目标有交集,则保留此像素点,否则删除此像素点。

数字图像的膨胀处理如同图像腐蚀处理一样,同样是借助模板实现的,用模板表示结构元素的形状,可以把膨胀过程描述为:在目标区域中移动模板使之遍历目标图像的每一个像素,当模板处于像素坐标(x,y)处时,若模板中任意为1的位置对应的像素为1,则膨胀处理后坐标(x,y)对应位置的像素值设置为1,否则坐标(x,y)对应位置的像素设置为0.同样和图像的腐蚀一样,模板的大小不同,形状不同得到的膨胀后的图像与原目标图像也各不相同。和腐蚀不同的是,膨胀并不一定完全的将原目标包含,如果定义的模板经过模板中心,即模板中心为1,则膨胀后的图像是原目标的完全扩充,如果模板中不为1,则膨胀后的图像并不是原目标的完全扩充,而是腐蚀掉了一些原有的像素点的扩充。

3.2.2 开运算和闭运算

形态学处理中最基本的两个算子是腐蚀和膨胀,通过对它们之间的组合可以构造出新的形态学运算来实现一些复杂的功能。开运算和闭运算就是其中的两个,它们互为逆运算。对于目标图像A和结构元素S,定义A。S表示S对A做开运算,A?S表示S对A做闭运算。用A+S表示S对A进行膨胀,用A-S表示S对A进行腐

蚀,有如下关系:

由公式可知,对于目标图像A的开运算可以分解为先对A进行腐蚀,再进行膨胀。而A的闭运算可以分解为先对A进行膨胀,再对膨胀结果进行腐蚀。开运算对目标图像进行噪声消除,可以选择性地保留目标图像中符合结构元素几何性质的部分,过滤相对结构元素而言残损的部分。图像的闭运算用来对目标图像分开的区域进行连接及对图像中细小缝隙的填补,通过适当地选择结构元素,图像的闭运算可以使图像的填补结构具有一定的几何特征,使图像变得清晰和连贯,避免源图像中的线条加粗。

结构元素S在这里取包括八邻域的3*3范围。按照从左到右,从上到下的顺序扫描进行整个图像帧的形态学处理。经过实验证明,运动目标提取时产生的噪点和不连续边缘在经过开运算+腐蚀的组合处理过程能有效的去除,图像边缘的误识率降低。为目标跟踪奠定了基础。

本次实习中关于腐蚀与膨胀的操作指接引用的Opencv中的函数:cvErode(DstFrame,DstFrame,NULL);

cvDilate(DstFrame,DstFrame,NULL);

效果对比图如下

去噪前

高斯分布背景模型原理

高斯分布背景模型原理 背景差分法的关键是背景图像的描述模型即背景模型,它是背景差分法分割运动前景的基础。背景模型主要有单模态和多模态两种,前者在每个背景像素点上的颜色分布比较集中,可以用单分布概率模型来描述,后者的分布则比较分散,需要用多分布概率模型来共同描述。在许多应用场景,如水面的波纹、摇摆的树枝,飘扬的红旗、监视器屏幕等,像素点的值都呈现出多模态特性。最常用的描述场景背景点颜色分布的概率密度模型(概率密度分布)是高斯分布(正态分布)。 1 单高斯分布背景模型 单高斯分布背景模型适用于单模态背景情形, 它为每个图象点的颜色建立了用单个高斯分布表示的模型) ,(,t t x N σμ其中下标t 表示时间。设图象点的当前颜色度量为t X ,若(,,)ttt p N X T μσ ≤ (这里p T 为概率阈值) , 则该点被判定为前景点, 否则为背景点(这时又称t X 与) ,(,t t x N σμ相匹配)。 在常见的一维情形中, 以t σ表示均方差, 则常根据/t t d σ的取值 设置前景检测阈值:若/t t d T σ>,则该点被判定为前景点, 否则为背 景点。 单高斯分布背景模型的更新即指各图象点高斯分布参数的更新。引入表示更新快慢的常数——更新率α, 则该点高斯分布参数的更新可表示为 1(1)t t t d μαμα+=-?+? (1)

21(1)t t t d σασα+=-?+? (2) 单高斯背景模型能处理有微小变化与慢慢变化的简单场景,当较复杂场景背景变化很大或发生突变,或者背景像素值为多峰分布(如微小重复运动)时,背景像素值的变化较快,并不是由一个相对稳定的单峰分布渐渐过度到另一个单峰分布,这时单高斯背景模型就无能为力,不能准确地描述背景了。]1[ 2 混合高斯分布背景模型 与单高斯背景模型不同,混合高斯背景模型对每个像素点用多个高斯模型混合表示。设用来描述每个像素的高斯分布共K 个(K 通常取 3—5个),象素uv Z 的概率函数: ,,,1()(,,)K u v j u v u v j u v j u v j P Z N Z ωμ ==∑∑ 其中,j uv ω是第j 个高斯分布的权值, 背景建模和更新过程(仅针对单个像素): 1.初始化:第一个高斯分布用第一帧图像该点的像素值作为均值或前N 帧图像该点的像素值的平均值作为均值,并对该高斯分布的权值取较大值(比其它几个高斯分布大)。其余的高斯分布的均值均为0,权重相等,所有高斯函数的方差取相等的较大值。 2.权值归一化 3.选取背景

混合高斯模型的简要介绍

混合高斯模型跟高斯变量之和看起来有一点像, 注意不要把它们弄混淆了. 混合高斯模型给出的概率密度函数实际上是几个高斯概率密度函数的加权和: 计算均值和方差的公式不仅适用于几个(多维)高斯分布混合的情况, 还适用于非高斯分布的情况. 高斯变量之和就没什么好说的了, 几个高斯变量之和是一个新的高斯变量. 原理: 高斯模型就是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。 对图像背景建立高斯模型的原理及过程:图像灰度直方图反映的是图像中某个灰度值出现的频次,也可以认为是图像灰度概率密度的估计。如果图像所包含的目标区域和背景区域相比比较大,且背景区域和目标区域在灰度上有一定的差异,那么该图像的灰度直方图呈现双峰-谷形状,其中一个峰对应于目标,另一个峰对应于背景的中心灰度。对于复杂的图像,尤其是医学图像,一般是多峰的。通过将直方图的多峰特性看作是多个高斯分布的叠加,可以解决图像的分割问题。 在智能监控系统中,对于运动目标的检测是中心内容,而在运动目标检测提取中,背景目标对于目标的识别和跟踪至关重要。而建模正是背景目标提取的一个重要环节。 我们首先要提起背景和前景的概念,前景是指在假设背景为静止的情况下,任何有意义的运动物体即为前景。建模的基本思想是从当前帧中提取前景,其目的是使背景更接近当前视频帧的背景。即利用当前帧和视频序列中的当前背景帧进行加权平均来更新背景,但是由于光照突变以及其他外界环境的影响,一般的建模后的背景并非十分干净清晰,而高斯混合模型是是建模最为成功的方法之一。 混合高斯模型使用K(基本为3到5个)个高斯模型来表征图像中各个像素点的特征,在新一帧图像获得后更新混合高斯模型, 用当前图像中的每个像素点与混合高斯模型匹配,如果成功则判定该点为背景点, 否则为前景点。通观整个高斯模型,主要是有方差和均值两个参数决定,对均值和方差的学习,采取不同的学习机制,将直接影响到模型的稳定性、精确性和收敛性。由于我们是对运动目标的背景提取建模,因此需要对高斯模型中方差和均值两个参数实时更新。为提高模型的学习能力,改进方法对均值和方差的更新采用不同的学习率;为提高在繁忙的场景下,大而慢的运动目标的检测效果,引入权值均值的概念,建立背景图像并实时更新,然后结合权值、权值均值和背景图像对像素点进行前景和背景的分类。 到这里为止,混合高斯模型的建模基本完成,我在归纳一下其中的流程,首先初始化预先定义的几个高斯模型,对高斯模型中的参数进行初始化,并求出之后将要用到的参数。其次,对于每一帧中的每一个像素进行处理,看其是否匹配某个模型,若匹配,则将其归入该模型中,并对该模型根据新的像素值进行更新,若不匹配,则以该像素建立一个高斯模型,初始化参数,代理原有模型中最不可能的模型。最后选择前面几个最有可能的模型作为背景模型,为背景目标提取做铺垫。 目前,运动物体检测的问题主要分为两类,摄像机固定和摄像机运动。对于摄像机运动的运动物体检测问题,比较著名的解决方案是光流法,通过求解偏微分方程求的图像序列的光流场,从而预测摄像机的运动状态。对于摄像机固定的情形,当然也可以用光流法,但是由于光流法的复杂性,往往难以实时的计算,所以我采用高斯背景模型。因为,在摄像机固定的情况下,背景的变化是缓慢的,而且大都是光照,风等等的影响,通过对背景建模,对一幅给定图像分离前景和背景,一般来说,前景就是运动物体,从而达到运动物体检测的目的。 单分布高斯背景模型单分布高斯背景模型认为,对一个背景图像,特定像素亮度的分布满足高斯分布,即对背景图像B,(x,y)点的亮度满足: IB (x,y) ~ N(u,d)

改进混合高斯模型的运动目标检测算法

改进混合高斯模型的运动目标检测算法 Moving object detection algorithm of improved Gaussian mixture model For the traditional Gaussian mixture model cannot detect complete moving object and is prone to detect the background as the foreground region ,an improved algorithm was proposed for moving object detection based on Gauss mixture model. The Gaussian background model mixed with improved frame difference method for integration ,distinguished the uncovered background area and moving object region ,which could extract the complete moving object. To give a larger background updating rate of uncovered background area ,the background exposure of regional influences was eliminated. In complex scene ,it used the method of replacement by background model to improve the stability of the algorithm. The experiments prove that the improved algorithm has been greatly improved in the aspects of adaptability ,accuracy ,real-time ,

混合高斯模型(Mixtures of Gaussians)和EM算法

混合高斯模型(Mixtures of Gaussians)和EM算法 这篇讨论使用期望最大化算法(Expectation-Maximization)来进行密度估计(density estimation)。 与k-means一样,给定的训练样本是,我们将隐含类别标签用表示。与 k-means的硬指定不同,我们首先认为是满足一定的概率分布的,这里我们认为满足多项 式分布,,其中,有k个值{1,…,k} 可以选取。而且我们认为在给定后,满足多值高斯分布,即。由 此可以得到联合分布。 整个模型简单描述为对于每个样例,我们先从k个类别中按多项式分布抽取一个, 然后根据所对应的k个多值高斯分布中的一个生成样例,。整个过程称作混合高斯模型。 注意的是这里的仍然是隐含随机变量。模型中还有三个变量和。最大似然估计为 。对数化后如下: 这个式子的最大值是不能通过前面使用的求导数为0的方法解决的,因为求的结果不是 close form。但是假设我们知道了每个样例的,那么上式可以简化为: 这时候我们再来对和进行求导得到:

就是样本类别中的比率。是类别为j的样本特征均值,是类别为j的样例的特征的协方差矩阵。 实际上,当知道后,最大似然估计就近似于高斯判别分析模型(Gaussian discriminant analysis model)了。所不同的是GDA中类别y是伯努利分布,而这里的z是多项式分布,还有这里的每个样例都有不同的协方差矩阵,而GDA中认为只有一个。 之前我们是假设给定了,实际上是不知道的。那么怎么办呢?考虑之前提到的EM 的思想,第一步是猜测隐含类别变量z,第二步是更新其他参数,以获得最大的最大似然估计。用到这里就是:

混合高斯模型算法原理

混合高斯模型算法原理 混合高斯模型是一种经典的背景建模算法,用于背景相对稳定情况下的运动目标检测。它由单高斯模型发展而来,对于多模态的背景有一定的鲁棒性,如:树叶晃动、水纹波动等。在介绍混合高斯模型前,首先介绍单高斯模型。 1. 单高斯背景模型: 单高斯模型将图像中每一个像素点的颜色值看成是一个随机过程,并假设该点的像素值出现的概率服从高斯分布。该算法的基本原理就是对每一个像素位置建立一个高斯模型,模型中保存该处像素的均值和方差。如,可设),(y x 处像素的均值为),(y x u ,方差为),(2y x σ,标准差为),(y x σ。由于随着视频图像序列的输入,模型参数不断更新,所以不同时刻模型参数有不同的值,故可将模型参数表示为三个变量t y x ,,的函数:均值),,(t y x u 、方差),,(2t y x σ、标准差),,(t y x σ。用单高斯模型进行运动检测的基本过程包括:模型的初始化、更新参数并检测两个步骤。 1)模型初始化 模型的初始化即对每个像素位置上对应的高斯模型参数进行初始化,初始化采用如下公式完成: ?? ???===init std y x init std y x y x I y x u _)0,,(_)0,,()0,,()0,,(22σσ (1) 其中,)0,,(y x I 表示视频图像序列中的第一张图像),(y x 位置处的像素值,init std _为一个自己设的常数,如可设20_=init std 。 2)更新参数并检测 每读入一张新的图片,判断新图片中对应点像素是否在高斯模型描述的范围中,如是,则判断该点处为背景,否则,判断该点处为前景。假设前景检测的结 果图为out put ,其中在t 时刻),(y x 位置处的像素值表示为),,(t y x output ,),,(t y x output 的计算公式如下: ???-?<--=otherwise t y x t y x u t y x I t y x output ,1)1,,()1,,(),,(,0),,(σλ (2) 其中,λ是自己设的一个常数,如可设5.2=λ。以上公式表示的含义是:若新的图片中相应位置的像素值与对应模型中像素的均值的距离小于标准差的λ倍,则该点为背景,否则为前景。 模型的更新采用如下公式: ?? ???=-?+-?-=?+-?-=),,(),,()],,(),,(I [)1,,()1(),,(),,()1,,()1(),,(2222t y x t y x t y x u t y x t y x t y x t y x u t y x u t y x u σσασασαα (3) 其中,参数α表示更新率,也是自己设的一个常数,该常数的存在可以使得模型在背景的缓慢变化时具有一定的鲁棒性,如光照的缓慢变亮或变暗等。

高斯混合模型实现——【机器学习与算法分析 精品资源池】

实验算法高斯混合模型实验 【实验名称】 高斯混合模型实验 【实验要求】 掌握高斯混合模型应用过程,根据模型要求进行数据预处理,建模,评价与应用; 【背景描述】 高斯混合模型(Gaussian Mixed Model)指的是多个高斯分布函数的线性组合,理论上GMM 可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同的分布的情况。属于无监督机器学习,用于对结构化数据进行聚类。 【知识准备】 了解高斯混合模型的使用场景,数据标准。了解Python/Spark数据处理一般方法。了解spark 模型调用,训练以及应用方法 【实验设备】 Windows或Linux操作系统的计算机。部署Spark,Python,本实验提供centos6.8环境。【实验说明】 采用UCI机器学习库中的wine数据集作为算法数据,除去原来的类别号,把数据看做没有类别的样本,训练混合高斯模型,对样本进行聚类。 【实验环境】 Spark 2.3.1,Pyrhon3.X,实验在命令行pyspark中进行,或者把代码写在py脚本,由于本次为实验,以学习模型为主,所以在命令行中逐步执行代码,以便更加清晰地了解整个建模流程。【实验步骤】 第一步:启动pyspark: 1

命令行中键入pyspark --master local[4],本地模式启动spark与python: 第二步:导入用到的包,并读取数据: (1).导入所需的包 from pyspark import SparkContext, SQLContext, SparkConf from math import sqrt from pyspark.sql.functions import monotonically_increasing_id (2).读取数据源 df_wine = sc.textFile(u"file:/opt/algorithm/gaussianMixture/wine.txt").map( lambda x: str(x).split(",")).map(lambda x: [float(z) for z in x]) (3).数据转换为Data df_wine_rdd = sqlContext.createDataFrame(df_wine) (4).数据展示 df_wine_rdd.show() 1

混合高斯背景建模与更新

计算机学院专业实习报告专业名称计算机科学与技术 实习题目基于多摄像机协同的运动对象分割与三维重建系统之背景建模与运动前景分割 姓名李林 班级10010804 学号2008302499 实习时间 指导教师杨涛Northwestern Polytechnical University

2010年7月14日 目录 摘要 (1) 第一章基本原理 (2) 1.1高斯模型原理 (2) 1.2 混合高斯背景建模与更新 (3) 1.2.1 背景训练 (4) 1.2.2 模板匹配 (4) 1.2.3背景更新 (5) 第二章运动物体提取 (6) 2.1目标提取概述 (6) 2.2 提取过程 (6) 2.2.1 参数设置 (6) 2.2.2 模型建立 (7) 2.2.3 背景学习 (7) 2.2.4 模板匹配与背景更新 (9) 第3章其他增强效果算法 (10) 3.1阴影的检测和去除 (10) 3.1.1 阴影简介 (10) 3.1.2 阴影检测法 (11) 3.1.2 阴影去除 (13) 3.2形态学滤波 (14) 3.2.1 图像腐蚀与膨胀 (15) 3.2.2 开运算和闭运算 (16) 第四章最终成品 (18) 4.1 成品说明 (18) 4.1.1性能说明 (18) 4.1.2成品样式 (19) 4.1.3使用说明 (19) 第五章实习心得 (19)

摘要 背景建模与运动前景分割是指从视频或者连续的图像序列中将运动的区域分割出来,本次实行所需的运动物体提取只是用来为后面的形成3维图形提供图像数据,日常生活中视频监控系统已广泛应用于各大公共场所,如公司,机场,酒店等都备有监控系统。但对于大多数监控系统来说,都需要监控者保持对监控录像的观测。如何实现视频监控系统的自动监控,是近年来比较关注的问题。自动视频监控技术其主要内容之一就是能监视某一特定场景中的新目标的出现,首先检测视频序列图像中是否有变化,如图像变化,说明有新目标出现,则把这个目标从视频图像序列中分割提取出来,为下一步的目标识别和跟踪提取数据提供基础。因此,一个视频监控系统的好坏,运动目标能否良好的提取是非常关键的。 目前运动目标的提取已经取得很多成果,并且不断有新技术、新方法出现。但是,在实际应用中,由于自然环境复杂,目标机动性高,使得提取与跟踪时干扰因素多,提取不准确且匹配效率不高。要提高跟踪的精度需要对复杂环境下的目标提取和跟踪进行研究,但到目前为止,仍没有一种普遍适用、比较完善的方法,因此对这两方面作进一步研究仍有很大空间。 针对本次实习的特殊场景,经分析决定采用混合高斯模型对运动图像进行提取,弥补单高斯模型不能适应背景微变化的这一缺陷,例如光照明暗、阴影等变化。利用混合高斯模型对输入的视频进行学习,之后再对运动物体进行前景提取,形成二值图像,运动物体置为白色,背景值为黑色,由于在提取过程中会存在这一些噪声点,所以最后运用腐蚀与膨胀运算对图像进行去噪处理。最终设计完形成的图像预计效果为能基本提取出运动物体,可能遇到较为复杂的背景会存在一定的噪声。 目前,从现有的测试数据来看程序能基本提取出运动物体,基本达到了预定的效果,在设计之中起初运用了帧间差分法,测试数据背景较为简单时能基本提取前景,但换成了光照发生变化的背景后运动物体的提取有明显难以改善的噪声,之后考虑更改算法,现有的算法中,光流法效果较为明显,但其算法较为复杂,不适合本次实习的开发,其次较为合适的还有单高斯模型,但其由于在变化的场景中表现

混合高斯背景建模matlab代码

clear all % source = aviread('C:\Video\Source\traffic\san_fran_traffic_30sec_QVGA'); source = mmreader('SampleVideo.avi'); frameQYT=get(source,'NumberOfFrames'); % ----------------------- frame size variables ----------------------- fr = read(source,1); % 读取第一帧作为背景 fr_bw = rgb2gray(fr); % 将背景转换为灰度图像 fr_size = size(fr); %取帧大小 width = fr_size(2); height = fr_size(1); fg = zeros(height, width); bg_bw = zeros(height, width); % --------------------- mog variables ----------------------------------- C = 4; % 组成混合高斯的单高斯数目(一般3-5) M = 0; % 组成背景的数目 D = 2.5; % 阈值(一般2.5个标准差) alpha = 0.01; % learning rate 学习率决定更新速度(between 0 and 1) (from paper 0.01) thresh = 0.75; % foreground threshold 前景阈值(0.25 or 0.75 in paper) sd_init = 6; % initial standard deviation 初始化标准差(for new components) var = 36 in paper w = zeros(height,width,C); % initialize weights array 初始化权值数组 mean = zeros(height,width,C); % pixel means 像素均值 sd = zeros(height,width,C); % pixel standard deviations 像素标准差 u_diff = zeros(height,width,C); % difference of each pixel from mean 与均值的差p = alpha/(1/C); % initial p variable 参数学习率(used to update mean and sd) rank = zeros(1,C); % rank of components (w/sd) % ------initialize component means and weights 初始化均值和权值---------- pixel_depth = 8; % 8-bit resolution 像素深度为8位 pixel_range = 2^pixel_depth -1; % pixel range 像素范围2的7次方0—255(# of possible values) for i=1:height for j=1:width for k=1:C mean(i,j,k) = rand*pixel_range; % means random (0-255之间的随机数) w(i,j,k) = 1/C; % weights uniformly dist sd(i,j,k) = sd_init; % initialize to sd_init end end

GMM算法原理

高斯模型就是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。 对图像背景建立高斯模型的原理及过程:图像灰度直方图反映的是图像中某个灰度值出现的频次,也可以认为是图像灰度概率密度的估计。如果图像所包含的目标区域和背景区域相比比较大,且背景区域和目标区域在灰度上有一定的差异,那么该图像的灰度直方图呈现双峰-谷形状,其中一个峰对应于目标,另一 个峰对应于背景的中心灰度。对于复杂的图像,尤其是医学图像,一般是多峰的。通过将直方图的多峰特性看作是多个高斯分布的叠加,可以解决图像的分割问题。在智能监控系统中,对于运动目标的检测是中心内容,而在运动目标检测提取中,背景目标对于目标的识别和跟踪至关重要。而建模正是背景目标提取的一个重要环节。 我们首先要提起背景和前景的概念,前景是指在假设背景为静止的情况下,任何有意义的运动物体即为前景。建模的基本思想是从当前帧中提取前景,其目的是使背景更接近当前视频帧的背景。即利用当前帧和视频序列中的当前背景帧进行加权平均来更新背景,但是由于光照突变以及其他外界环境的影响,一般的 建模后的背景并非十分干净清晰,而高斯混合模型是是建模最为成功的方法之一。 混合高斯模型使用K(基本为3到5个)个高斯模型来表征图像中各个像素点的特征,在新一帧图像获得后更新混合高斯模型, 用当前图像中的每个像素点 与混合高斯模型匹配,如果成功则判定该点为背景点, 否则为前景点。通观整个高斯模型,主要是有方差和均值两个参数决定,对均值和方差的学习,采取不同的学习机制,将直接影响到模型的稳定性、精确性和收敛性。由于我们是对运动目标的背景提取建模,因此需要对高斯模型中方差和均值两个参数实时更新。为提高模型的学习能力,改进方法对均值和方差的更新采用不同的学习率;为提高在繁忙的场景下,大而慢的运动目标的检测效果,引入权值均值的概念,建立背景图 像并实时更新,然后结合权值、权值均值和背景图像对像素点进行前景和背景的 分类。 1、为图像的每个像素点指定一个初始的均值、标准差以及权重。 2、收集N(一般取200以上,否则很难得到像样的结果)帧图像利用在线EM算法得到每个像素点的均值、标准差以及权重。 3、从N+1帧开始检测,检测的方法: 对每个像素点: 1)将所有的高斯核按照ω/ σ降序排序 2)选择满足下式的前M个高斯核: M = arg min(ω/ σ> T) 3)如果当前像素点的像素值在中有一个满足:就可以认为其为背景点。 4、更新背景图像,用在线EM算法。

混和高斯模型的推导和实现

基于GMM 的运动目标检测方法研究 一、GMM 数学公式推导 1、预备知识: (1)设离散型随机变量X 的分布率为: {} 2,1,P ===k p a X k k 则称()∑= k k k p a X E 为X 的数学期望或均值 (2)设连续型随机变量X 的概率密度函数(PDF )为f(x) 其数学期望定义为:()()dx x xf X E ? +∞ ∞ -= (3)()()()[] 2 X E X E X D -=称为随机变量x 的方差,()X D 称为X 的标准差 (4)正态分布:() 2,~σμN X 概率密度函数为:()()??????? ?--= 22221 σμσ πx e x p (5)设(x,y)为二维随机变量,()[]()[]{}Y E Y X E X E --若存在,则 称其为X 和Y 的协方差,记为cov(x,y) ()()[]()[]{}()XY E Y E Y X E X E Y X =--=,cov 2、单高斯模型:SGM (也就是多维正态分布) 其概率密度函数PDF 定义如下: ()() ()()μμπμ--- -= x C x n T e C C x N 12 1 21 ,; 其中,x 是维数为n 的样本向量(列向量),μ是期望,C 是协方差矩阵,|C|表示C 的行列式,1-C 表示C 的逆矩阵,()T x μ-表示()μ-x 的转置。 3、混合高斯模型:GMM 设想有 m 个类:m 321????,,,, ,每类均服从正态分布。 各分布的中心点(均值)分别为:m 321μμμμ,,,,

方差分别为:m 321σσσσ,,,, 每一类在所有的类中所占的比例为 ()()()()m P P P P ????,,,,321 其中()11=∑=m i i P ?。 同时,已知 个观察点: 。其中,用大写P 表示概率,用小写p 表 示概率密度。 则依此构想,可得概率密度函数为: ()()()()()()()() ()()()μμπ??σμ?σμ?σμ--- =-∑ =?++?+?=x C x m i d i m m m T e C P P N P N P N x p 12 1 12221112,,, 其中d 是维数,|·|是行列式 但是在利用GMM 进行目标检测时,这些模型的参数可能已知,也可能不知道,当参数已知时,可以直接利用GMM 进行目标检测,在未知的情况下,需要对参数进行估计。对参数估计时,还要考虑样本分类是否已知。 (1)样本已知: 最大似然估计: 可以直接采用MLE (最大似然估计)进行参数估计: 未知量为集合:()()()m P P C C ??μμλ,,1m 1m 1 ,,,,,,= 将衡量概率密度函数优劣的标准写出:()()∏==n k k x P x p 1||λλ 即为: ()() () ()()i k T i k x C x n k m i d i e C P x p μμπ?λ--- ==-∏∑ =12 1 11 | |2| 只要定出该标准的最大值位置,就可以求出最优的待定参数。为了 求出这个最

基于混合高斯建模方法的运动目标检测方法研究与实现毕业论文

摘要 运动目标检测是计算机视觉研究领域的基础,它是从图像序列中去除静止的背景区域,将运动区域的前景检测并提取出来,如何有效地把感兴趣的目标如人、物等前景目标从复杂场景中分割出来,并对目标行为做出相应的检测,是计算机视觉研究的热点和难点。 本文对视频图像读取、图像灰度化等处理过程做了简单的阐述,并分别对均值滤波、中值滤波和高斯滤波这三种不同的滤波方法进行比较,分析各种方法的优缺点,同时提出使用高斯滤波方法。最后利用搭建在Visual C++6. 0上的OpenCV软件进行设计,使用混合高斯背景的建模方法实现对运动目标的检测。矚慫润厲钐瘗睞枥庑赖。 在背景的各种建模方法中,混合高斯背景模型以其简便、灵活、高效的特点成为该领域的经典方法,能够很好消除背景的微小扰动对运动目标检测所产生的影响,比较准确地检测出复杂环境下的运动目标,具有较好的鲁棒性和实时性。聞創沟燴鐺險爱氇谴净。 关键词:运动目标检测;OpenCV;混合高斯背景模型

ABSTRACT Moving target detection is the foundation of computer vision research field, which is still to remove the background from an image sequence region, the prospect of a motion area detected and extracted, how effectively the target of interest, such as human, material and other foreground objects from a complex scene carved out, and make the appropriate test target behavior, is hot and difficult computer vision research.残骛楼諍锩瀨濟溆塹籟。 In this paper, the video image reading, image processing such as Gray did a brief explanation, and respectively, mean filter, median filter and Gaussian filter three different methods to compare the advantages and disadvantages of each method, At the same time proposed to use a Gaussian filter. Finally, build in Visual C ++ 6. OpenCV software 0 of design, using a mixed Gaussian background modeling methods to achieve the detection of moving targets.酽锕极額閉镇桧猪訣锥。 In the background of the various modeling methods, Gaussian mixture background model with its simple, flexible and efficient characteristics of a classical method in the field, can be a good influence to eliminate background small perturbations generated by the moving target detection, more accurate moving objects detected in complex environments, robust and real-time.彈贸摄尔霁毙攬砖卤庑。 Key Words: Moving Object Detection; OpenCV; The background model謀荞抟箧飆鐸怼类蒋薔。

EM算法在高斯混合模型中的应用

EM 算法在高斯混合模型中的应用 1.定义 对于一个随机信号生成器,假设他的模型参数为Θ,我们能观测到的数据输出为X ,不能观测到的数据输出为Y ,且随机系统模型结构的概率密度函数为 (,|)p x y Θ (1) 能够观测到的一部分数据输出数据12{,,...,}N x x x ,模型的另一部分输出数据 未知,模型的参数Θ也未知。EM 算法就是要求我们从观测数据12{,,...,}N x x x 中估计出参数Θ。 2.EM 算法的描述 假设每一对随机系统的输出样本(,)n n x y 对于不同的n 相互独立,这样当(,,)p x y Θ,x 和y 都已知的情况下,概率(,,)p x y Θ也已知。未观测的输出y 的概率分布也属于待求参数Θ。 根据独立性假设有: 1(,|)(,|)N n n n p x y p x y =Θ=Θ∏ (2) 3.EM 算法的基本思路 基本问题是求解下面的方程的解: arg max (,|)p x y Θ=Θ (3) 由于X 是确定量,Y 是未知的,因此即使给定了Θ,也无法求得(,|)p x y Θ的值,因此我们只能退一步求: arg max (|)p x Θ=Θ (4) 其中 (|)(,|)[(|),(|,)]y Y y Y p x p x y p y p x y ∈∈Θ=Θ=ΘΘ∑∑ (5) 表示考虑了未知数据y 的所有可能的取值Y 后对(|,)p x y Θ求平均值。 最后根据log 函数的单调性得到(4)的等效形式: arg max log (|)p x Θ=Θ (6) 对于(6)给出的最优化问题,考虑用下面的递推算法解决,即:先给定一个估值k Θ并计算(|)k p x Θ,然后更新k Θ得到1k +Θ并且有 1log (|)log (|)k k p x p x +Θ>Θ (7) ()log (|)log [(|)(|,)] |(|,)log (|,)(|,)(|)(|,)(|,)log (|,)(,) y Y k k y Y k k y Y k p x p y p x y p y p x y p y x p y x p y p x y p y x p y x B ∈∈∈Θ=ΘΘΘΘ? ?=Θ??Θ???? ??ΘΘ≥Θ????Θ??? ?=ΘΘ∑∑∑ (8) 其中,等号在(,)k k B ΘΘ时成立,即: (,)log (|)k k k B p x ΘΘ=Θ (9)

高斯混合模型GMM实现matlab

高斯混合模型GMM实现matlab (1 )以下matlab代码实现了高斯混合模型: function [Alpha, Mu, Sigma] = GMM_EM(Data, Alpha0, Mu0, Sigma0) %%EM 迭代停止条件 loglik_threshold = 1e-10; %%初始化参数 [dim, N] = size(Data); M = size(Mu0,2); loglik_old = -realmax; nbStep = 0; Mu = Mu0; Sigma = Sigma0; Alpha = Alpha0; Epsilon = 0.0001; while (nbStep < 1200) nbStep = nbStep+1; %%E-步骤 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for i=1:M % PDF of each point Pxi(:,i) = GaussPDF(Data, Mu(:,i), Sigma(:,:,i)); end % 计算后验概率 beta(i|x) Pix_tmp = repmat(Alpha,[N 1]).*Pxi; Pix = Pix_tmp ./ (repmat(sum(Pix_tmp,2),[1 M])+realmin); Beta = sum(Pix); %%M- 步骤 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for i=1:M % 更新权值 Alpha(i) = Beta(i) / N; %更新均值 Mu(:,i) = Data*Pix(:,i) / Beta(i); %更新方差 Data_tmp1 = Data - repmat(Mu(:,i),1,N);

基于阴影消除和混合高斯模型的视频分割算法

第35卷第3期 光电工程V ol.35, No.3 2008年3月Opto-Electronic Engineering March, 2008文章编号:1003-501X(2008)03-0021-05 基于阴影消除和混合高斯模型的视频分割算法 王勇,谭毅华,田金文 ( 华中科技大学图像所,多谱信息处理技术国防重点实验室,武汉 430074 ) 摘要:针对固定场景监控中复杂背景、光照变化、阴影等影响视频分割的问题,提出了一种有效的混合高斯模型的自适应背景更新算法,各像素点根据其像素值出现的混乱程度采取不同个数的高斯分布描述,通过对背景模型的学习与更新、高斯分布生成准则等方面的改进和优化,采用基于形态学重构的阴影消除方法使得前景目标分割的性能得到了有效地提高。文中同时给出了光照突变检测及其背景更新方法。通过对各种实际场景的实验仿真表明,该算法能够快速准确地建立背景模型,准确分割前景目标,与其它算法比较具有更强的鲁棒性。 关键词:视频分割;背景建模;混合高斯模型;阴影消除 中图分类号:TN911.73 文献标志码:A Video Segmentation Algorithm with Gaussian Mixture Model and Shadow Removal WANG Yong,TAN Yi-hua,TIAN Jin-wen ( State Key Laboratory for Multi-spectrum Information Processing, Institute for Pattern Recognition and Artificial Intelligence, Huazhong University of Science and Technology, Wuhan 430074, China ) Abstract:Background subtraction based on Gaussian Mixture Model (GMM) is a common method for real-time video segmentation of moving objects. An effective adaptive background updating method based on GMM is presented. The number of mixture components of GMM is estimated according to the frequency of pixel value changes, and the performance of GMM can be effectively improved with the modified background learning and update new distribution generation rule and shadow removal based on morphological reconstruction. The detection of sudden illumination change and background updating are also proposed. Compared with existing approaches, experimental results with different real scenes demonstrate the robustness of the proposed method. Key words:video segmentation; background modeling; mixture Gaussians model; shadow removal 1 引 言 在背景减除的实时视频监控及运动目标检测与跟踪领域中经常采用混合高斯方法为背景建模。混合高斯背景模型是一些高斯函数的加权和,能够描述像素的双峰或多峰状态,能够对比较复杂、光照缓慢变化和存在小幅度重复运动的背景(喷泉、摇动的树木、雨雪天气等情况)准确建模。前期的研究者通常采用EM 算法估计混合高斯模型参数,但由于EM算法固有的缺陷[1]限制了其应用,目前GMM基本采用在线K均值估计的统计建模方法。文献[2]中背景模型的学习与更新都采用一个小的常量α,虽能保证背景模型的稳定性,但影响了高斯成分的收敛速度,对于动态背景的适应能力较差。文献[3]对学习率因子做了改进,将它与时间建立联系,使学习算法具有了自适应性,提高了收敛速度。文献[4]结合EM算法推导了基于最大后验概率准则的高斯模型参数迭代公式,该算法虽具有较好的适应性和分割效果,缺点是计算复杂并且选取合适的参数比较困难。采用背景减除得到的前景目标通常包含运动阴影,且与物体轮廓相连。如果不进 收稿日期:2007-04-23;收到修改稿日期:2008-01-20 作者简介:王勇(1980-),男(汉族),湖北仙桃人,博士生,主要研究工作是模式识别与智能系统。E-mail: wy112708@https://www.360docs.net/doc/304870418.html,

高斯混合模型

高斯混合模型(Gaussian Mixture Model, GMM) (2011-12-30 23:50:01) 标签: 分类:工作篇 校园 高斯混合模型 高斯模型就是用高斯概率密度函数(正态分布曲线)精确地量化事物,将一个事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。对图像背景建立高斯模型的原理及过程:图像灰度直方图反映的是图像中某个灰度值出现的频次,也可以以为是图像灰度概率密度的估计。如果图像所包含的目标区域和背景区域相比比较大,且背景区域和目标区域在灰度上有一定的差异,那么该图像的灰度直方图呈现双峰-谷形状,其中一个峰对应于目标,另一个峰对应于背景的中心灰度。对于复杂的图像,尤其是医学图像,一般是多峰的。通过将直方图的多峰特性看作是多个高斯分布的叠加,可以解决图像的分割问题。在智能监控系统中,对于运动目标的检测是中心内容,而在运动目标检测提取中,背景目标对于目标的识别和跟踪至关重要。而建模正是背景目标提取的一个重要环节。 我们首先要提起背景和前景的概念,前景是指在假设背景为静止的情况下,任何有意义的运动物体即为前景。建模的基本思想是从当前帧中提取前景,其目的是使背景更接近当前视频帧的背景。即利用当前帧和视频序列中的当前背景帧进行加权平均来更新背景,但是由于光照突变以及其他外界环境的影响,一般的建模后的背景并非十分干净清晰,而高斯混合模型 (GMM)是建模最为成功的方法之一。 英文翻译及缩写:Gaussian mixture model (GMM) 混合高斯模型使用K(基本为3到5个)个高斯模型来表征图像中各个像素点的特征,在新一帧图像获得后更新混合高斯模型,用当前图像中的每个像素点与混合高斯模型匹配,如果成功则判定该点为背景点, 否则为前景点。通观整个高斯模型,他主要是有方差和均值两个参数决定,,对均值和方差的学习,采取不同的学习机制,将直接影响到模型的稳定性、精确性和收敛性。由于我们是对运动目标的背景提取建模,因此需要对高斯模型中方差和均值两个参数实时更新。为提高模型的学习能力,改进方法对均值和方差的更新采用不同的学习率;为提高在繁忙的场景下,大而慢的运动目标的检测效果,引入权值均值的概念,建立背景图像并实时更新,然后结合权值、权值均值和背景图像对像素点进行前景和背景的分类。具体更新公式如下: μt= (1 - ρ)μt- 1 +ρxt (1) ?2t = (1 - ρ)?2t- 1 +ρ( xt -μt ) T ( xt -μt ) (2) ρ =αη( xt | μκ,?κ ) (3) | xt -μt - 1 | ≤ 2. 5?t- 1 (4) w k , t = (1 - α) w k , t - 1 +αMk , t (5) 式中ρ为学习率,即反映当前图像融入背景的速率。

相关文档
最新文档