text: 基于MATLAB的GMM和K
  GMM和KDE介绍
  GMM是一种利用一定数量的小高斯函数混合逼近某变量的概率密度函数的方法，是在概率估计中常用的参数化模型，今年被广泛应用于模式识别领域。
  一有限的GMM的描述非常简单，即由高新分布函数的任何凸组合形成一混合模型。
  相反，当 alpha 取值较大时，其对场景的适应性较强，能很快的变化背景模型，但是对于一段时间内停留的场景中的目标，却很容易学入背景中去。
  出于处理速度和算法性能及应用场合的考虑，本文和大部分视觉监视系统一样，选择了建立背景模型作为检测前景区域的方法。
  为叙述方便，我们用 )，( Σ µ η x 来表示均值为µ 、协方差矩阵为Σ的高斯分布的概率密度函数。
  由于背景模型中对各个图像点的处理是完全独立的，所以若不作特殊说明，本文所有关于背景模型的描述都系针对同一图像点位置而言。
  单高斯分布背景模型适用于单模态背景情形，它为每个图像点的颜色分布建立了用单个高斯分布表示的模型
  ,其中下标 t 表示时间。
  设图像点的当前颜色度量为
  为概率阈值),则该点被判定为前景点，否则为背景点(这时又称
  相匹配)。
  则可以根据
  的值设置相应的前景检测阈值。
  为每个像素建立混合高斯模型后，当输入但前采样值xt的时候。
  更具贝叶斯理论，后验概率
  代表了该像素值由状态K产生的可能性。
  我们可以得到M个分布中最有可能产生当前采样值的分布K，只要我们知道该分布是代表前景还是背景物体，就可以划分当前像素是前景还是背景像素。
  当前的输入可能不是由M个表面中的任何一个产生的。
  典型的情形是，一个以前为出现过的前景物出现在该像素的位置。
  赋予该分布一个较小的但非0的先验概率值和一个很大的方差。
  在实际应用中，一般选择M等于3。
  三个分布中两个用来描述背景表面，一个描述前景表面。
  实际上这是应用GMM模型最小的选择，如果少于两个背景表面的话，就没必要用这个算法了，用一个平均背景图像做简单的减除会更简单些。
  在M=3的情况下，算法只用一个高斯分布表示前景就可以工作，是应为能够用它来粗略的表示任何前景。
  对于M个分布，必须估计出其中哪些代表背景模型。
  进行EM算法参数估计的过程为:
  ·首先初始化参数
  ·E-步
  ·M-步
  ·循环到条件满足。
  GMM的参数估计是利用了EM算法，可以较好地估计出变量的概率密度函数。
  从样本集估计概率密度函数是很多基于统计的机器学习方法的基础。
  核密度估计KDE算法是一种的非参数密度沽计方法， 其有代表性的应用包括判别分析然而由于传统KDE算法的计算复杂度很高，使其只能用于处理小规模和低维的数据集，从而极大地限制了其在实际问题中的应用。
  其中h是控制估计光滑性的参数，也称为窗宽K是以训练样本点为中心的对称的单峰核函数。
  在室外监控系统中，场景不可能完全静止，而固定安装的摄像机也会存在一定的抖动，此时背景不可能再用图像序列中的一幅图像来完全表示。
  在实际应用中，核估计中窗宽h的选择非常关键，甚至比核函数的选择更为重要。
  如果h取得太小，会使密度分布曲线具有毛刺不光滑，而h太大则会产生过度光滑现象。
  在背景模型估计中，h需要表示特征量值由于图像局部噪声引起的变化。
  由于样本中位数不易受到异常值的影响，故采用连续两帧图的样本绝对差中位数来计算。
  假设某一像素灰度值的局部分布为
  这也就是说，将不同的采样值对模型的贡献视为同等，对相同或差别不大的采样值需要重复计算。
  而事实上，训练序列中大部分像素点的变化是有限的，n个采样中存在一些相似甚至相同的值，可用L个具有代表性的值来表征。
  场景的不断变化需要背景模型及时地进行更新以快速反映这些变化。
  给定一个新观测值，采用选择性更新机制，不将前景物体用于背景模型的更新:首先判定一个像素是属于背景还是前景，一般采用前一时刻的检测作为更新前的判定依据。
  如果当前像素点在前一时刻分割二值掩码中的值为1，则表示在当前帧中此坐标点的像素属于前景物体，不参与模型参数更新。
  对于当前帧中属于背景的点，如果其与当前背景模型中样本点的欧氏距离小于2h，则不更新模型;否则，用当前值作为一个新的采样来更新背景模型。
  建立了背景的动态模型后，用背景帧差值法来检测运动物体就可以通过阈值化来实现。
  如果式中估计得到的概率小于某一阈值th，则该像素归为前景点;否则归为背景点。
  阈值通常需要在实验中选定。
  KDE的计算复杂度问题，自算法本身提出时起，就已经引起了研究人员的关注。
  对于一个具有
  价个样本的测试样本集T，定义它的全局对数似然为:
  双树递归算法的基本思想如下:分别对训练样本和测试样本构造一棵mrkd-tree，分别称为Stree和Ttree,然后从两树的树根结点对开始同时对这两棵树进行遍历。
  确定优先选取结点对的准则，依州逐个考察当前最优先的结点对。
  在遍历的过程中，根据所需的计算精度， 只需要在其中某些结点对之间进行核函数的计算，而其他一些结点对之间不发生关系，这样就大大降低了KDE的计算复杂度。
  在Ttree的每一层，都估计全局变量Lr的一个上界和一个下界，当遍历在Ttree的某一层满足了:
  时，算法终止，其中e为一个预定的小的正数。
  ，该像素对应的第j个背景样本的像素值为
  ，则t时刻像素i的概率
  可以通过下式进行估计:
  采用单阈值进行分类，会带来如下问题:如果要降低误报率必定会导致漏报率的增加;反之如果要降低漏报率会导致误报率的增加;因此用单阈值很难协调这对矛盾。
  根据误报率调整阈值，需要场景的先验知识，当场景改变时，需要人工干预。
  本文从像素概率直方图分析出发给出了一种自适应前景、背景阈值的双阈值选择方法，用于像素的分类。
  在更新背景模型时采用Long-term模型和Short-term模型，在Long-term模型中采用盲目更新机制，即不管分类的结果，以速率W/N把采样直接更新到该模型中去，W为时间窗口的大小，N为背景样本的采样数目。
  在Short-term模型中采用选择更新机制，即只有分类为背景的样本才包括在该模型中。
  采用Short-term，如果检测结果不正确，会导致负样本被模型预测为正样本(false positives)。
  采用Long-term模型，由于不是最近的背景模型，会导致负样本被模型预测为正样本，会导致正样本被模型预测为负样本(false negatives)。
  Matlab，Matrix Laboratory的简称，是美国Mathworks公司于1984年推出的数值计算机仿真软件，经过不断的发展和完善，如今已成为覆盖多个学科、具有超强数值计算能力和仿真分析能力的软件。
  一. MATLAB的特点
  一种语言之所以如此迅速地普及，显示出如此旺盛的生命力，是由于它有着不同于其它语言的特点。
  MATLAB具有功能强劲的工具箱，其包含两个部分:核心部分和各种可选的工具箱。
  功能性工具箱能用于多种学科，而学科性工具箱是专业性比较强的，例如control toolbox，image processing toolbox，signal processing toolbox等。
  2. 界面友好，编程效率高
  3. 开放性强
  二. MATLAB的主要功能
  MATLAB之所以成为世界顶级的科学计算与数学应用软件，是因为它随着版本的升级与不断完善而具有越来越强大的功能。
  1.数值计算功能
  2符号计算功能
  MATLAB符号运算的独特之处:无需事先对变量赋值，而所得的结果以标准的符号形式表达，符号计算的整个过程以字符进行。
  3数据分析功能
  MATLAB可以将计算数据以二维、三维乃至四维的图形表现。
  这不仅使数据间的关系清晰、明了，而且对于揭示其内在本质有着非常重要的作用。
  4动态仿真功能
  MATLAB提供了一个模拟动态系统的交互程序SIMULINK，用户通过简单的鼠标操作，就可建立起直观的系统模型，并进行仿真。
  5图形文字统一处理功能
  MATLAB Notebook成功地将Microsoft Work与MATLAB集成为一个整体，为文字处理、科学计算、工程设计营造了一个完美、统一的工作环境。
  它既拥有Word强大的文字处理功能，又能通过Word访问MATLAB的数据计算和可视化结果。
  在MATLAB通信工具箱中有SLMULINK仿真模块和MATLAB函数，形成一个运算函数和仿真模块的集合体，用来进行通信领域的研究、开发、系统设计和仿真。
  第四章 利用MATLAB实现GMM
  4.1 基于MATLAB的GMM实现
  根据上面的讨论，我们基本了解GMM的基本工作原理，下面我们介绍利用MATLAB来实现GMM的基本工作原理。
  计算图像的平均灰度值有利于简化静态图像和动态图像的区分，我们通过计算图片的平均灰度值，使静态的物体变为黑色，而使动态的物体变为白色。
  代码段四:这里就是我们所得到多维高斯函数的叠加功能。
  4.2 仿真结果以及分析
  利用MATLAB实现KDE
  5.1 基于MATLAB的KDE实现
  通过以上的理论分析，我们基本可以得到KDE算法的基本实现过程。
  然后对通过算法后的点利用reshape函数进行重构图像，得到我们所要的像素值。
  代码段四:最后我们得到了图像的最后需要的像素值来达到动态物体的跟踪效果。
  5.2 仿真结果以及分析
  通过上面的代码分析，我们得到了所要的效果。
  通过这个程序，我们可以看到，只有动的人物被检测出来了，但是背景的树叶没有被检测出来，完好的解决了GMM算法中存在的问题。
  通过这个程序，我们可以看到，只有动的汽车被检测出来了，但是背景的树叶没有被检测出来，完好的解决了GMM算法中存在的问题。
  通过这个程序，我们可以看到，只有动的人物被检测出来了，但是背景环境物体没有被检测出来，完好的解决了GMM算法中存在的问题。
  通过以上的对比，很显然KDE的效果比GMM效果更加理想，所以在大多数的情况下，我们一般采用KDE算法作为移动物体的动态检测算法。