机器视觉基础系列四—简单了解背景建模算法

机器视觉基础系列四—简单了解背景建模算法

首先我们应该了解的是背景建模的定义是什么?又有哪些应用场景呢?

背景建模是指通过分析视频序列中的像素值变化情况,从中提取出静态背景部分,并将其用于目标检测、运动跟踪等计算机视觉任务中。在实际应用中,背景建模常用于视频监控、行人检测、车辆识别等领域。

在视频中,背景通常被定义为相对稳定的部分,例如墙壁、地面或天空等。背景建模的目标是将动态的前景对象与静态的背景进行分离,以便进一步分析和处理。

帧差法—背景建模

背景建模最简单的一种方法就是使用帧差法进行背景的建模。

帧差法实际上也是一种传统的目标跟踪算法有有一定的优点和缺点。

  • 优点是算法实现简单,程序设计复杂度低;对光线等场景变化不太敏感,能够适应各种动态环境,有着比较强的鲁棒性。

  • 缺点是不能提取出对象的完整区域,对象内部有“空洞”,只能提取出边界,边界轮廓比较粗,往往比实际物体要大。对快速运动的物体,容易出现鬼影的现象,甚至会被检测为两个不同的运动物体,对慢速运动的物体,当物体在前后两帧中几乎完全重叠时,则检测不到物体。故该方法一般适用于简单的实时运动检测的情况。

在这里插入图片描述

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

其对应的公式表示为:

D n ( x , y ) = ∣ f n ( x , y ) − f n − 1 ( x , y ) ∣ R n ′ ( x , y ) = { 255 , D n ( x , y ) > T 0 , else  \begin{array}{l} D_{n}(x, y)=\left|f_{n}(x, y)-f_{n-1}(x, y)\right| \\ R_{n}^{\prime}(x, y)=\left\{\begin{array}{l} 255, D_{n}(x, y)>T \\ 0, \text { else } \end{array}\right. \end{array} Dn(x,y)=fn(x,y)fn1(x,y)Rn(x,y)={255,Dn(x,y)>T0, else 

我们对这一个公式简单的来进行一下解读,fn代表的是第n帧图像(x,y)位置处的像素点。fn-1代表的是该像素点在上一帧的像素值。

如何其值为0代表该点没有在视频中发生运动可以视为背景,若发生变化则表示的是该物体进行运动。255白色保留

帧差法非常简单,但是会引入噪音和空洞问题这个算法实际上更像说是一种背景消除的操作,我们对背景的信息进行了过滤。

混合高斯模型—GMM

GMM的公式推导

这里的Gmm高斯混合模型实际上也就是对应机器学习中的高斯混合聚类的推导过程。

定义:

P ( x ) = ∑ i = 1 k α i ⋅ ϕ ( x ∣ μ i , Σ i ) P(\boldsymbol{x})=\sum_{i=1}^{k} \alpha_{i} \cdot \phi\left(\boldsymbol{x} \mid \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right) P(x)=i=1kαiϕ(xμi,Σi)

该模型由K个混合成分组成,每个混合成分为一个高斯分布,其中x属于Rn而a i是混合系数。

α i ≥ 0 , ∑ i = 1 k α i = 1 , ϕ ( x ∣ μ i , Σ i ) 为多元高斯分布  \alpha_{i} \geq 0, \sum_{i=1}^{k} \alpha_{i}=1, \phi\left(x \mid \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right) \text { 为多元高斯分布 } αi0,i=1kαi=1,ϕ(xμi,Σi) 为多元高斯分布 

ϕ ( x ∣ μ i , Σ i ) = 1 ( 2 π ) n 2 ∣ Σ i ∣ 1 2 exp ⁡ ( − 1 2 ( x − μ i ) T Σ i − 1 ( x − μ i ) ) \phi\left(\boldsymbol{x} \mid \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right)=\frac{1}{(2 \pi)^{\frac{n}{2}}\left|\boldsymbol{\Sigma}_{i}\right|^{\frac{1}{2}}} \exp \left(-\frac{1}{2}\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)^{\mathrm{T}} \boldsymbol{\Sigma}_{i}^{-1}\left(\boldsymbol{x}-\boldsymbol{\mu}_{i}\right)\right) ϕ(xμi,Σi)=(2π)2nΣi211exp(21(xμi)TΣi1(xμi))

其生成数据的方式为:首先,依概率ai:选择第i个高斯混合成分。接着根据该混合模型的概率分布

ϕ ( x ∣ μ i , Σ i ) \phi\left(\boldsymbol{x} \mid \boldsymbol{\mu}_{i}, \boldsymbol{\Sigma}_{i}\right) ϕ(xμi,Σi)

来生成样本。

已知数据集D={x1,x2,···xm}中的样本中的样本均由某个高斯混合模型生成,而每个样本是由哪个高斯混合成分生成的是未知的,属于一个隐变量,我们令其为zj∈{1,2,.,k}表示生成样本xj的高斯混合成分,结合高斯混合模型生成数据的方式易知的分布律为P(zj=i)=ai

可以用EM算法来进行求解。

GMM背景建模应用

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

在视频中对于像素点的变化情况应当是符合高斯分布背景的实际分布应当是多个高斯分布混合在一起,每个高斯模型也可以带有权重

在这里插入图片描述

学习步骤:T至少也要是200

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

在这里插入图片描述

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

渗透测试导论

渗透测试的定义和目的 渗透测试(Penetration Testing)是一项安全演习,网络安全专家尝试查找和利用计算机系统中的漏洞。 模拟攻击的目的是识别攻击者可以利用的系统防御中的薄弱环节。 这就像银行雇用别人假装盗匪,让他们试图闯…

LeetCode1004.最大连续1的个数

题目链接:1004. 最大连续1的个数 III - 力扣(LeetCode) 1.常规解法(会超时) 遍历数组,当元素是1时个数加一,当元素是0时且已有的0的个数不超过题目限制时,个数加一,若上…

Lumerical学习——优化和参数扫描(Optimization and parameter sweeps)

一、概要介绍 这部分介绍优化和参数扫描项目设定的方法。在有大量数据模拟计算过程中这个特性允许用户使处理方法自动地查找期望的参数值。 ① 创建一个参数扫描任务 ② 创建一个优化任务 ③ 创建一个良率分析任务 ⑤ 打开所选择项目的编辑窗口,编辑其属性…

基于Java+SpringBoot+Uniapp的博客系统设计与实现

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…

嵌入式C++中内存分配基本实现方法

大家好,今天主要给大家分享一下,如何使用计算机中的内存空间进行分配,观察具体现象。 第一:C语言动态空间分配方式 第二:C++中动态内存分配方法 new 可以自动计算数据类型的大小 与 类型的转换 malloc 只能手动进行。 2.new 可以在分配空间的时候初始化 malloc 不行。 第三…

【优选算法】——双指针(上篇)!

🌈个人主页:秋风起,再归来~🔥系列专栏:C刷题算法总结🔖克心守己,律己则安 目录 前言:双指针 1. 移动零(easy) 2. 复写零(easy) 3…

计数型信号量

一,什么是计数型信号量? 计数型信号量相当于队列长度大于1 的队列,因此计数型信号量能够容纳多个资源,这在计数型信号量被创建的时候确定的。 计数型信号量相关 API 函数 函数描述xSemaphoreCreateCounting()使用动态方法创建计数…

工业相机详解及选型

工业相机相对于传统的民用相机而言,具有搞图像稳定性,传输能力和高抗干扰能力等,目前市面上的工业相机大多数是基于CCD(Charge Coupled Device)或CMOS(Complementary Metal Oxide Semiconductor)芯片的相机。 一,工业相机的分类 …

Java 虚拟机实战(基础篇 1万字)

此笔记来自于黑马程序员 基础篇 初识 JVM(Java Virtual Machine) 什么是 JVM JVM 本质上是一个运行在计算机上的程序,他的职责是运行 Java 字节码文件 JVM 的功能 翻译成字节码 即时编译 Java语言如果不做任何优化,性能不如C、C等语言。Java 支持跨…

嬴图 | 图数据库系列 之 图算法与可解释性

2024年诺贝尔物理学奖颁发给了机器学习与神经网络领域的研究者,这是历史上首次出现这样的情况。这项奖项原本只授予对自然现象和物质的物理学研究作出重大贡献的科学家,如今却将全球范围内对机器学习和神经网络的研究和开发作为了一种能够深刻影响我们生…

手机怎么玩GTA5?GameViewer远程助你手机畅玩GTA5侠盗飞车

原来手机也可以玩电脑游戏!如果你想随时随地用手机玩GTA5,网易GameViewer远程能帮你实现,它的按键映射功能会让你在体验GTA5时非常好。你不仅可以享受4K蓝光144帧高画质的 驾驶、第三人称射击,还有开放世界探索,还可以…

服务器软件之Tomcat

服务器软件之Tomcat 服务器软件之Tomcat 服务器软件之Tomcat一、什么是Tomcat二、安装Tomcat1、前提:2、下载3、解压下载的tomcat4、tomcat启动常见错误4.1、tomcat8.0 startup报错java.util.logging.ErrorManager: 44.2、java.lang.UnsatisfiedLinkError 三、Tomca…

高级算法设计与分析 学习笔记13 线性规划

注意是线性规划不是动态规划哦 好家伙,这不是凸优化吗? 凸优化标准形式: 先改成统一最大化(凸优化那边怎么是统一最小化?) 原来的x2正负无所谓,但我希望每个x都是有限制的,所以把它改…

MySQL初识

在了解什么是MySQL前,我们先了解一下什么是数据库?? 1. 数据库简介 1.1 什么是数据库 数据库是20世纪60年代末发展起来的⼀项重要技术,已经成为计算机科学与技术的⼀个重要分⽀。数据库技术主要是⽤来解决数据处理的⾮数值计算问…

基于SpringBoot+Vue+uniapp的电影信息推荐APP的详细设计和实现

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更专注于业务逻辑而不…

PCL 点云配准-4PCS算法(粗配准)

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 加载点云数据 2.1.2 执行4PCS粗配准 2.1.3 可视化源点云、目标点云和配准结果 2.2完整代码 三、实现效果 3.1原始点云 3.2配准后点云 PCL点云算法汇总及实战案例汇总的目录地址链接…

猫分鱼干 -算法题解

题目 假如有一群猫排成一行,要分配鱼干,每一只猫都有一个等级值。你作为管理员有很多鱼干但是需要按下边的分配制度分配: 1. 每一只猫至少要分配一斤鱼干,鱼干分配最小单位是斤,必须保证是整数。 2. 猫比他们邻居有更高…

沥川的算法学习笔记:基础算法(1)----快速排序

1.快速排序 快速排序是一种高效的排序算法,它利用了分治的思想。快速排序的基本思想是选择一个基准元素,将数组分成两个子数组,其中一个子数组的元素都小于等于基准元素,另一个子数组的元素都大于等于基准元素,然后对这…

JavaCove部署文档

1. 基础配置 1.1服务器: 2 核 2G 1.2. 一个域名 1.3. 项目地址: gitee:https://gitee.com/guo-_jun/JavaCove github:https://github.com/nansheng1212/JavaCove 2. CentOS 安装 Docker 官方网站上有各种环境下的 安装指南,这里主要介绍…

jquery实现点击菜单实现高德地图定位点与数据展示联动效果

🍊jquery实现点击菜单实现高德地图定位点与数据展示联动效果 版本介绍: jQuery v3.7.1高德地图JS API 2.0 代码仓库 ⭐ Gitee:实现点击菜单实现高德地图定位点与数据展示联动效果 1.启动说明 📔 推荐VS Code编辑器插件Live Ser…