一、前言
此示例演示如何使用基于高斯混合模型 (GMM) 的前景检测器检测和计数视频序列中的汽车。
检测和计数汽车可用于分析交通模式。检测也是执行更复杂的任务(例如按类型跟踪或分类车辆)之前的第一步。
此示例演示如何使用前景检测器和 blob 分析来检测和计数视频序列中的汽车。它假定相机是静止的。该示例重点介绍如何检测对象。
二、步骤
步骤1 - 导入视频并初始化前景检测器
该示例不是立即处理整个视频,而是首先获取一个初始视频帧,其中移动对象从背景中分割出来。这有助于逐步介绍用于处理视频的步骤。
前景检测器需要一定数量的视频帧才能初始化高斯混合模型。此示例使用前 50 帧初始化混合模型中的三种高斯模式。
训练后,检测器开始输出更可靠的分割结果。下面的两个图显示了探测器计算的一个视频帧和前景掩模。
第 2 步 - 在初始视频帧中检测汽车
前景分割过程并不完美,通常包含不需要的噪声。该示例使用形态开口来消除噪声并填充检测到的对象中的间隙。
接下来,使用视觉找到与移动汽车对应的每个连接组件的边界框。斑点分析对象。该对象通过拒绝包含小于 150 像素的 blob 来进一步筛选检测到的前景。
为了突出显示检测到的汽车,我们在它们周围绘制绿色框。边界框的数量对应于在视频帧中找到的汽车数量。在处理的视频帧的左上角显示找到的汽车数量。
步骤 3 - 处理其余的视频帧
在最后一步中,我们处理剩余的视频帧。
输出视频显示汽车周围的边界框。它还在视频的左上角显示汽车数量。
三、程序(文末附程序链接)
使用Matlab R2022b版本,点击打开。(版本过低,运行该程序可能会报错)
程序下载:基于matlab使用高斯混合模型检测和计数视频序列中的汽车资源-CSDN文库