一、引言

       高斯混合模型(Gaussian Mixed Model,GMM)是一个概率模型,用于表示一个由多个高斯分布(正态分布)组成的数据集合。

       高斯混合模型就是用高斯概率密度函数正态分布曲线)精确地量化事物,它是一个将事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型,用于表示一个由多个高斯分布(正态分布)组成的数据集合。高斯混合模型是由多个高斯分布函数组成的线性组合。理论上,GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同分布的情况。下面给出一个基于GMM的视频运动目标检测实例。

二、程序代码

clear all;
close all;
clc;
disp('input video');                  %显示提示信息
video=VideoReader('.\Imaging1.avi') ;%读取视频文件
get(video)                            %获取视频信息 
disp('output video');                 %显示提示信息
implay('.\Imaging1.avi');            %播放视频
Detecting(video);                     %运用运动目标检测函数

function Detecting(video)

% 创建视频播放器

player = vision.VideoPlayer;

% 创建前景检测器

detector = vision.ForegroundDetector(... %vision.ForegroundDetector基于GMM的前景检测核心函数,

'NumGaussians', 3, ... % 每个像素用3个高斯分布建模背景-“3”可依据实际情况进行调整

'NumTrainingFrames', 50); % 用前50帧训练初始背景模型-“50”可依据实际情况进行调整

% 处理每一帧

while hasFrame(video)

frame = readFrame(video);

% 检测前景

foreground = detector(frame);

% 在播放器中显示结果

step(player, foreground);

end

% 清理

release(player);

end

       撰写博客不易,如果你觉得本文对您的学习和研究有所帮助,请关注、点赞,欢迎转发!您的鼓励和支持是我撰写博客的最大动力!

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐