python数字图像处理基础(十)——背景建模

目录

    • 背景建模
      • 背景消除-帧差法
      • 混合高斯模型

背景建模

背景建模是计算机视觉和图像处理中的一项关键技术,用于提取视频中的前景对象。在视频监控、运动检测和行为分析等领域中,背景建模被广泛应用。其基本思想是通过对视频序列中的像素进行建模,找到视频中的静态背景,并将不同的像素标记为背景和前景,从而使后续的对象检测和跟踪更为可靠。

前景-感兴趣的、运动的;背景-不变

背景消除-帧差法

由于场景中的目标在运动,目标的影像在不同图像帧中的位置不同。该类算法对时间上连续的两帧图像进行差分运算,不同帧对应的像素点相减,判断灰度差的绝对值,当绝对值超过一定阈值时,即可判断为运动目标,从而实现目标的检测功能。

在这里插入图片描述
帧差法简单,但会引入噪音,还有空洞问题(前景只有白色轮廓,内部还是黑的)

混合高斯模型

混合高斯模型(Gaussian Mixture Model,简称GMM)是背景建模的一种常用方法。GMM模型假设一个像素的灰度值是由多个高斯分布混合而成的,这些高斯分布代表了不同的场景。对于每个像素,模型会使用多个高斯分布来表示其灰度值的分布,其中每个高斯分布具有特定的均值和方差。

在进行前景检测前,先对背景进行训练,对图像中每个背景采用一个混合高斯模型进行模拟,每个背景的混合高斯的个数可以自适应。然后再测试阶段,对新来的像素进行GMM匹配,如果该像素值能够匹配其中一个高斯,则认为时背景。由于整个过程GMM模型在不断更新学习中,所以对动态背景有一定的鲁棒性。最后通过对一个有树枝摇摆的动态背景进行前景检测,取得了较好的效果。

ps:鲁棒性:在计算机科学中,健壮性(英语:Robustness)是指一个计算机系统在执行过程中处理错误,以及算法在遭遇输入、运算等异常时继续正常运行的能力。 诸如模糊测试之类的形式化方法中,必须通过制造错误的或不可预期的输入来验证程序的健壮性。很多商业产品都可用来测试软件系统的健壮性。健壮性也是失效评定分析中的一个方面。

GMM背景建模的基本步骤如下:

  1. 初始化: 对于每个像素,初始化一个包含多个高斯分布的GMM模型。
  2. 更新: 在每一帧中,对于每个像素,根据当前帧的像素值,更新GMM的参数(均值、方差、权重等)。
  3. 分类: 对于每个像素,根据当前帧的像素值和GMM模型,判断该像素是属于背景还是前景。
  4. 学习: 对于被判断为背景的像素,根据学习率(learning rate)更新GMM的参数,以适应场景的变化。
  5. 提取前景: 将被分类为前景的像素提取出来,用于后续的对象检测和跟踪。

混合高斯模型的主要优势在于能够适应场景的变化,对光照变化和动态背景具有一定的鲁棒性。然而,在处理复杂场景和大规模运动时,可能需要更复杂的背景建模技术。

  • 在视频中对于像素点的变化情况应当是符合高斯分布
    在这里插入图片描述

  • 背景的实际分布应当时多个高斯分布混合在一起,每个高斯模型也可以带有权重
    在这里插入图片描述

混合高斯模型学习方法

1.首先初始化每个高斯模型矩阵参数。
2.取视频中T帧数据图像用来训练高斯混合模型。来了第一个像素之后用它来当做第一个高斯分布。
3.当后面来的像素值时,与前面已有的高斯的均值比较,如果该像素点的值与其模型均值差在3倍的方差内,则属于该分布,并对其进行参数更新。
4.如果下一次来的像素不满足当前高斯分布,用它来创建一个新的高斯分布。一般为3-5个

混合高斯模型测试方法

在测试阶段,对新来像素点的值与混合高斯模型中的每一个均值进行比较,如果其差值在2倍的方差之间的话,则认为是背景,否则认为是前景。将前景赋值为255,背景赋值为0。这样就形成了一副前景二值图。

下面是一个使用OpenCV中的背景建模函数cv2.bgsegm.createBackgroundSubtractorMOG()创建混合高斯模型的简单示例:

import cv2
import numpy as np

# 读取视频
cap = cv2.VideoCapture('your_video.mp4')

# 创建混合高斯模型
bg_subtractor = cv2.bgsegm.createBackgroundSubtractorMOG()

while True:
    ret, frame = cap.read()
    if not ret:
        break

    # 应用背景建模器
    fg_mask = bg_subtractor.apply(frame)

    # 可选:对二值图像进行一些后处理,如膨胀和腐蚀
    kernel = np.ones((5, 5), np.uint8)
    fg_mask = cv2.morphologyEx(fg_mask, cv2.MORPH_CLOSE, kernel)

    # 显示原始帧和背景建模结果
    cv2.imshow('Original Frame', frame)
    cv2.imshow('Foreground Mask', fg_mask)

    if cv2.waitKey(30) & 0xFF == 27:  # 按ESC键退出
        break

cap.release()
cv2.destroyAllWindows()

在这个示例中,cv2.bgsegm.createBackgroundSubtractorMOG()函数创建了一个默认配置的混合高斯模型。可以通过调整参数来适应不同的场景。

此外,OpenCV中还提供了其他一些背景建模函数,如cv2.createBackgroundSubtractorKNN()等,它们也可以用于不同的场景和需求。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/331982.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

构建中国人自己的私人GPT—限时免费部署

在现实生活中,很多公司或个人的资料是不愿意公布在互联网上的,但是我们又要使用人工智能的能力帮我们处理文件、做决策、执行命令那怎么办呢?于是我们构建自己或公司的本地专属GPT变得非常重要。 先看效果: 解方程,24小…

用友GRP-U8 obr_zdybxd_check.jsp SQL注入漏洞复现

0x01 产品简介 用友GRP-U8R10行政事业内控管理软件是用友公司专注于国家电子政务事业,基于云计算技术所推出的新一代产品,是我国行政事业财务领域最专业的政府财务管理软件。 0x02 漏洞概述 用友GRP-U8R10行政事业内控管理软件 obr_zdybxd_check.jsp 接口处存在SQL注入漏洞…

day-13 拿出最少数目的魔法豆

思路 将beans的每个数值当做袋子最后豆子剩余数,选择取豆子最少的一种方案 解题方法 //从小到大,将每个beans[i]作为剩余豆子数 //对于beans[i],i之前的全为零,i之后的全变为beans[i] ansMath.min(ans,sum-(beans.length-i)*bean…

esp32-idf eclipse 定时器的使用demo

esp32定时器的使用demo 1、介绍 ESP32芯片包含两个硬件定时器组。每组有两个通用硬件定时器。它们都是基于16位预分频器和64位自动重载功能的向上向下计数器的64位通用定时器。 2、API接口函数 创建定时器函数: esp_timer_create(); esp_err_t esp_timer_create …

动态pv(nfs方式挂载)

1、定义 发布pvc之后可以生成pv,还可以在共享服务器上直接生成挂载目录 pvc直接绑定和使用pv 2、动态pv依赖两个组件 (1)provisioner卷插件:k8s本身支持的动态pv创建不包括nfs,需要声明和安装一个外部插件provisio…

16.鸿蒙HarmonyOS App(JAVA)滑块组件Slider与评级组件Rating

16.鸿蒙HarmonyOS App(JAVA)滑块组件Slider与评级组件Rating ability_main.xml <?xml version"1.0" encoding"utf-8"?> <DirectionalLayoutxmlns:ohos"http://schemas.huawei.com/res/ohos"ohos:height"match_parent"oh…

「优选算法刷题」:盛最多水的容器

一、题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器…

第29关 阿里云开源的k8s容器秒级事件监控软件-Kube-eventer

------> 课程视频同步分享在今日头条和B站 大家好&#xff0c;我是博哥爱运维。这节课给大家分析一款K8S上宝藏级秒级事件监控报警的开源软件kube-eventer&#xff0c;它是由阿里云开源的&#xff0c;并且难得的还一直有在更新。 天下武功&#xff0c;唯快不破。对于报警监…

ClickHouse学习笔记(六):ClickHouse物化视图使用

文章目录 1、ClickHouse 物化视图2、物化视图 vs 普通视图3、物化视图的优缺点4、物化视图的用法4.1、基本语法4.2、准备表结构4.3、准备数据4.4、查询结果 1、ClickHouse 物化视图 ClickHouse 的物化视图是一种查询结果的持久化&#xff0c;它的存在是为了带来查询效率的提升…

鸿蒙OS4.0兼容性测试

背景 OpenHarmony兼容性测评主要是验证合作伙伴的设备和业务应用满足OpenHarmony开源兼容性定义的技术要求&#xff0c;确保运行在OpenHarmony上的设备和业务应用能稳定、正常运行&#xff0c;同时使用OpenHarmony的设备和业务应用有一致性的接口和业务体验。 OpenHarmony兼容…

MySQL存储函数和存储过程练习题

一、创建表的要求 字段名 数据类型 主键 外键 非空 唯一 自增 id INT 是 否 是 是 否 name VARCHAR(50) …

Peter:经济形势不好,一个最大的原因就是诚信道德的缺失 | 程客有话说002

《程客有话说》是我们最新推出的一个访谈栏目&#xff0c;邀请了一些国内外有趣的程序员来分享他们的经验、观点与成长故事&#xff0c;我们尝试建立一个程序员交流与学习的平台&#xff0c;也欢迎大家推荐朋友或自己来参加我们的节目&#xff0c;一起加油。本期我们邀请的程序…

【前端设计】输入框

欢迎来到前端设计专栏&#xff0c;本专栏收藏了一些好看且实用的前端作品&#xff0c;使用简单的html、css语法打造创意有趣的作品&#xff0c;为网站加入更多高级创意的元素。 html <!DOCTYPE html> <html lang"en"> <head><meta charset&quo…

python数字图像处理基础(六)——模板匹配、直方图

目录 模板匹配概念单对象模板匹配多对象模板匹配 直方图1.查找直方图2.绘制直方图3.掩膜的应用 模板匹配 概念 模板匹配和卷积原理很像&#xff0c;模板在原图像上从原点开始滑动&#xff0c;计算模板与图像被模板覆盖的地方的差别程度&#xff0c;这个差别程度的计算方法在o…

基于WEKWS模型的语音唤醒关键词识别

一、模型描述 1.1 论文解读 本文所使用的模型网络结构继承自论文《Compact Feedforward Sequential Memory Networks for Small-footprint Keyword Spotting》&#xff0c;文中研究了将低秩矩阵分解与传统FSMN相结合的紧凑型前馈顺序记忆网络&#xff08;cFSMN&#xff09;用…

中北数据结构2023真题

雪雾: 设计一个算法&#xff0c;将一个节点值为自然数的单列表拆分成两个单列表&#xff0c;原表中值为偶数的节点保留&#xff0c;而值为奇数的节点&#xff0c;按他们在原表的相对次序组成一个新的单列表 #include <stdio.h> #include <stdlib.h>typedef struct…

一文教你V3+TS(保姆级教程)

TS 与 JS 的区别 基础类型 ts 的常用类型 ts 的常用基础类型分为两种&#xff1a; js 已有类型 原始类型&#xff1a;number/string/boolean/null/undefined/symbol 对象类型&#xff1a;object&#xff08;包括&#xff0c;数组、对象、函数等对象&#xff09; 每次编写前…

oracle11g的闪回技术-闪回表-时间戳

--数据库闪回表 --1创建表&#xff08;登录模式system&#xff09; CREATE table dept2 as select * from dept;--此语句如果加上where条件可用于工作中数据的临时备份 select * from dept2;--查询新建表信息 --进入sql>set time on 通过时间点闪回 记录弹出的时间点&#…

软件测试|使用Python生成PDF文件

简介 PDF&#xff08;Portable Document Format&#xff09;是一种常用的文档格式&#xff0c;具有跨平台兼容性、保真性、安全性和交互性等特点。我们日常生活工作中的合同、报告、论文等通常都采用PDF格式&#xff0c;以确保文档在不同的操作系统&#xff08;例如 Windows、…

腾讯云轻量化应用服务器_轻量化应用服务器_轻量化私有云

腾讯云轻量应用服务器开箱即用、运维简单的轻量级云服务器&#xff0c;CPU内存带宽配置高并且价格特别便宜&#xff0c;大带宽&#xff0c;但是限制月流量&#xff0c;轻量2核2G3M带宽62元一年、2核2G4M优惠价118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c…