混合高斯背景建模matlab代码

混合高斯背景建模matlab代码
混合高斯背景建模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

end

%----- process frames -处理帧--,这里去第八帧

n = 8;

fr = read(source,n); % read in frame 读取帧

fr_bw = rgb2gray(fr); % convert frame to grayscale 转换为灰度图像

% calculate difference of pixel values from mean 计算像素差值

for m=1:C

u_diff(:,:,m) = abs(double(fr_bw) - double(mean(:,:,m)));

end

% update gaussian components for each pixel 更新每个像素的背景模型

for i=1:height

for j=1:width

match = 0;

for k=1:C

if (abs(u_diff(i,j,k)) <= D*sd(i,j,k)) % pixel matches component像素匹配了模型

match = 1; % variable to signal component match 设置匹配记号

% update weights, mean, sd, p 更新权值,均值,标准差和参数学习率

w(i,j,k) = (1-alpha)*w(i,j,k) + alpha;

p = alpha/w(i,j,k);

mean(i,j,k) = (1-p)*mean(i,j,k) + p*double(fr_bw(i,j));

sd(i,j,k) = sqrt((1-p)*(sd(i,j,k)^2) + p*((double(fr_bw(i,j)) - mean(i,j,k)))^2);

else % pixel doesn't match component 几个模型中都没有匹配的

w(i,j,k) = (1-alpha)*w(i,j,k); % weight slighly decreases 权值减小

end

end

bg_bw(i,j)=0;

for k=1:C

bg_bw(i,j) = bg_bw(i,j)+ mean(i,j,k)*w(i,j,k); %更新背景

if(bg_bw(i,j)>thresh)

k=k-1;

M=k;

end%???? 这里有问题,背景权值和大于阈值时,背景建模的数目M取k-1,

end

% if no components match, create new component 如果没有匹配的模型则创建新模型

if (match == 0)

[min_w, min_w_index] = min(w(i,j,:));

mean(i,j,min_w_index) = double(fr_bw(i,j));

sd(i,j,min_w_index) = sd_init;

end

rank = w(i,j,:)./sd(i,j,:); % calculate component rank 计算模型优先级

rank_ind = [1:1:C];

% calculate foreground 计算前景

while ((match == 0)&&(k>M))%????? 这里用于前景计算的高斯模型应该是C-M,所以这里k>M

if (abs(u_diff(i,j,rank_ind(k))) <= D*sd(i,j,rank_ind(k)))

fg(i,j) = 0; %black = 0

else

fg(i,j) = fr_bw(i,j);

end

k = k+1;

if(k==5)

k=k-1;

break

end

end

end

end

figure(1),subplot(3,1,1),imshow(fr) %显示输入图像

subplot(3,1,2),imshow(uint8(bg_bw)) %显示背景图像

subplot(3,1,3),imshow(uint8(fg)) %显示前景图像

混合高斯模型的简要介绍

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

高斯分布背景模型原理

高斯分布背景模型原理 背景差分法的关键是背景图像的描述模型即背景模型,它是背景差分法分割运动前景的基础。背景模型主要有单模态和多模态两种,前者在每个背景像素点上的颜色分布比较集中,可以用单分布概率模型来描述,后者的分布则比较分散,需要用多分布概率模型来共同描述。在许多应用场景,如水面的波纹、摇摆的树枝,飘扬的红旗、监视器屏幕等,像素点的值都呈现出多模态特性。最常用的描述场景背景点颜色分布的概率密度模型(概率密度分布)是高斯分布(正态分布)。 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.选取背景

混合高斯模型算法原理

混合高斯模型算法原理 混合高斯模型是一种经典的背景建模算法,用于背景相对稳定情况下的运动目标检测。它由单高斯模型发展而来,对于多模态的背景有一定的鲁棒性,如:树叶晃动、水纹波动等。在介绍混合高斯模型前,首先介绍单高斯模型。 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) 其中,参数α表示更新率,也是自己设的一个常数,该常数的存在可以使得模型在背景的缓慢变化时具有一定的鲁棒性,如光照的缓慢变亮或变暗等。

混合高斯背景建模与更新

计算机学院专业实习报告专业名称计算机科学与技术 实习题目基于多摄像机协同的运动对象分割与三维重建系统之背景建模与运动前景分割 姓名李林 班级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 的运动目标检测方法研究 一、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謀荞抟箧飆鐸怼类蒋薔。

高斯混合模型

高斯混合模型(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) 式中ρ为学习率,即反映当前图像融入背景的速率。

几种背景建模方法的研究

几种背景建模方法的研究 摘要:在本文中,我们比较了各种背景建模算法在城市交通视频序列中,对于检测运动车辆和行人的影响。我们考虑了不同的方法,从简单的技术,如帧差分和中值滤波到更多复杂的概率建模技术。说明各种算法在不同情况下性能优劣。 关键词:运动目标检测,帧差法,中值滤波法,混合高斯分布法 目前背景提取的算法很多,有基于时间轴的滤波方法,如中值滤波;有基于统计模型的方法,如混合高斯分布模型。虽然方法很多,但是很难找到一种在各种情况下都表现最好的算法。本文主要比较帧差法,中值滤波,混合高斯滤波在不同情况下的性能优劣。 1 帧差法 帧差法是最为常用的运动目标检测和分割方法之一,基本原理就是利用基于时间序列图像中相邻两帧或者几帧图像逐个像素进行对比得到一副差值图像,然后通过事先确定的阈值对差值图像进行二值化处理。在环境亮度变化不大的情况下,如果对应像素值变化小于事先确定的阈值时,可以认为此处为背景像素如果图像区域的像素值变化很大,可以认为这是由于图像中运动物体引起的,将这些区域标记为

前景像素,利用标记的像素区域可以确定运动目标在图像中的位置。 简单的两帧差对噪声有一定的敏感性,而且对象运动的速度不能太快,否则由于背景被运动物体的遮挡和重现使得计算出的运动区域的掩模要大于运动物体的尺寸。两帧间运动物体的位移越大,这种差距就越大。由于相邻两帧间的时间间隔非常短,用前一帧图像作为当前帧的背景模型具有较好的实时性,其背景不积累,且更新速度快、算法简单、计算量小。 2中值滤波 选择像素灰度,通过包含运动目标的序列帧提取初始背景。对视频中的任意一个像素点,只有在前景运动目标通过该点时,它的灰度值才会发生明显变化,其余大部分时间处,该点的灰度值是基本保持不变的,总是在一个区域内波动,因此可以用这个区域内的中值作为该点的背景值。 若有L帧视频图像,只有当L帧图像内有一半以上是背景的灰度值,目标灰度和噪声很少的情况下,该算法才具有可行性。在该算法中,L的选择很关键,如果取值过大,算法的运算时间较长,若小,检测运动缓慢的目标时将会产生漏检,甚至出现空洞现象。 3混合高斯 建立背景模型,假定初始背景中不含运动目标。其基

目标检测中的背景建模方法

目标检测中背景建模方法 背景建模或前景检测的算法主要有: 1. Single Gaussian (单高斯模型) Real-time tracking of the human body 2. 混合高斯模型(Mixture of Gaussian Model) An improved adaptive background mixture model for real-time tracking with shadow detection 3. 滑动高斯平均(Running Gaussian average)---Single Gaussian Real-time tracking of the human body 4. 码本(CodeBook) Real-time foreground–background segmentation using codebook model Real-time foreground-background segmentation using a modified codebook model 5. 自组织背景检测( SOBS-Self-organization background subtraction) A self-Organizing approach to background subtraction for+visual surveillance 6. 样本一致性背景建模算法(SACON) A consensus-based method for tracking A consensus-based method for tracking-Modelling background scenario and foreground appearance SACON-Background subtraction based on a robust consensus method 7. VIBE算法 ViBe-A Universal Background Subtraction 8. 基于颜色信息的背景建模方法(Color) A statistical approach for real-time robust background subtraction and shadow detection 9. 统计平均法 10. 中值滤波法( Temporal Median filter) Automatic congestion detection system for underground platform Detecting moving objects,ghost,and shadows in video streams 11. W4方法 12. 本征背景法 A Bayesian computer vision system for modeling human interactions 13. 核密度估计方法 Non-parametric model for background subtraction

单高斯背景建模程序

/*******************单高斯背景建模v1.0************************* ************************2010.01.22****************************/ #include #include #include #include #include int main(int argc,char**argv) { //新建窗口 cvNamedWindow("origin", CV_WINDOW_AUTOSIZE); cvNamedWindow("processing", CV_WINDOW_AUTOSIZE); double alpha = 0.05;//背景建模alpha值 double std_init = 20;//初始标准差 double var_init = std_init * std_init;//初始方差 double lamda = 2.5 * 1.2;//背景更新参数 //视频文件

CvCapture *capture =NULL; //读取视频文件 if(argc == 1) { //从摄像头读入 capture = cvCreateCameraCapture(0); } else if(argc == 2) { //从文件读入 capture = cvCreateFileCapture(argv[1]); } else { //读入错误 printf("input error\n"); return-1; } IplImage *frame =NULL;//原始图像 IplImage *frame_u =NULL;//期望图像

相关文档
最新文档