GMM(Gaussian of Mixture Models),中文为混合高斯模型,主要作用是将场景中前景和背景分离,提取场景背景信息和某一时刻所拍摄图像前景信息。它是对图像的每个像素建立多个高斯模型,每个模型包含均值、方差、权值和匹配数4个参数;利用第一帧图像每个像素值对每个像素对应各个高斯模型进行初始化,用后续帧每个像素与该像素对应当前混合高斯模型进行匹配,利用匹配结果更新每个像素混合高斯模型,更新场景背景图像,设置当前图像对应前景图像。基于GMM运动目标检测,是在得到某一张图片对应前景图片的基础上,对图片近景轮廓检测,提取符合要求的轮廓以达到检测目标的目的。基于GMM运动目标检测原理很多论文、博客已经写得很详细,这里主要总结下Opencv算法实现流程以及一些参数的设置。
1. 创建高斯模型
初始化一些阈值参数,并根据第一幅图像每个像素像素值对此像素第一个高斯模型和其他高斯模型个参数值进行初始化。
(1)初始化下列参数阈值:
(2)创建高斯模型
每个像素有n_gauss个高斯模型,每个模型包含权值、均值、方差和匹配总数参数。利用第一帧图像创建高斯模型:每个像素第一个高斯模型参数初始化如下:
其他几个高斯模型参数化如下:
2. 更新模型
将当前图像每个像素的像素值与其对应的 个高斯模型进行匹配,根据匹配结果对其混合高斯模型进行更新,并按照高斯模型权值与方差的比值大小对每个像素对应混合高斯模型进行排序。本章节用 分别表示像素pix第K个高斯模型的参数。
2.1 高斯模型匹配
当前图像像素pix值与其已有模型进行匹配,记录匹配信息:初始化,对于K=1~n_gauss,如果match_sum[k]>0,则计算