基于高斯混合模型(GMM)的视频运动目标检测
一、引言
高斯混合模型(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
撰写博客不易,如果你觉得本文对您的学习和研究有所帮助,请关注、点赞,欢迎转发!您的鼓励和支持是我撰写博客的最大动力!
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)