混合高斯背景建模

一、理论

混合高斯背景建模是基于像素样本统计信息的背景表示方法,利用像素在较长时间内大量样本值的概率密度等统计信息(如模式数量、每个模式的均值和标准差)表示背景,然后使用统计差分(如3σ原则)进行目标像素判断,可以对复杂动态背景进行建模,计算量较大。

在混合高斯背景模型中,认为像素之间的颜色信息互不相关,对各像素点的处理都是相互独立的。对于视频图像中的每一个像素点,其值在序列图像中的变化可看作是不断产生像素值的随机过程,即用高斯分布来描述每个像素点的颜色呈现规律【单模态(单峰),多模态(多峰)】。

对于多峰高斯分布模型,图像的每一个像素点按不同权值的多个高斯分布的叠加来建模,每种高斯分布对应一个可能产生像素点所呈现颜色的状态,各个高斯分布的权值和分布参数随时间更新。当处理彩色图像时,假定图像像素点R、G、B三色通道相互独立并具有相同的方差。对于随机变量 X 的观测数据集{ x1 , x2 ,…, xN }, xt =( rt , gt , bt )为 t 时刻像素的样本,则单个采样点 xt 其服从的混合高斯分布概率密度函数:


其中k为分布模式总数,η(xt,μi,tτi,t)为t时刻第i个高斯分布,μi,t为其均值,τi,t为其协方差矩阵,δi,t为方差,I为三维单位矩阵,ωi,tt时刻第i个高斯分布的权重。

详细算法流程:



由于能力有限,代码来自实验室的师兄写的代码,我从中学到了很多内容。

//混合高斯背景建模
/*****************************************************************************************************
 * File name: MixtureGaussian.cpp
 * Author: source code by RamiYim
 * Version: cs-hhu-cn0.0
 * Date: 20150208
 * Description: background modelling by mixture gaussian
 * Others:
 * Function List: mixtureGaussian();
 * History: ,<20150208>,,
 *
******************************************************************************************************/
/*
#include "cv.h"
#include "highgui.h"
#include
using namespace std;
/*************************************************************************************************
  Function:void mixtureGaussian()
  Description:
  Calls:
  Called By:main()
  Input:
  Output:
  Return:
  Others:建立彩色的背景
  Histroy:


你可能感兴趣的:(opencv视频处理)