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

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

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

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

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

帧差法—背景建模

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

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

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

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

在这里插入图片描述

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

其对应的公式表示为:

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.rhkb.cn/news/451020.html

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

相关文章

从0开始部署优化虚拟机

一,vm workstation 安装 CentOS-7 忽略 二、查看虚拟机IP ip address 得到 192.168.196.128/24 宿主机进行Ping测试 C:\Users\Administrator>ping 192.168.196.128正在 Ping 192.168.196.128 具有 32 字节的数据: 来自 192.168.196.128 的回复: 字节32 时间…

怎么向新闻媒体发稿?携手谛道文化,轻松实现新闻媒体发稿

在纷繁复杂的信息时代,企业与个人若欲崭露头角,一套行之有效的发稿策略无疑是突破重围的利剑。企业或个人该怎么向新闻媒体发稿呢?谛道文化新闻媒体发稿机构,在软文发布、新闻发布及媒体投放等方面具有卓越策略,无疑为…

I\O进程线程(Day30)

一、学习内容 多线程基础 1> 线程是任务器调度的基本单位,是进程的一个执行单元 2> 一个进程中可以包含多个线程,但是至少要包含一个线程称为主线程 3> 一个进程中的多个线程共享进程的资源,不会为线程再 单独分配内存空间 4> 线…

如何启动hive

检查mysql是否启动 通过Navicat测试mysql是否可以连接 找打hive配置文件所在目录 检查连接mysql的账号密码是否正确,如果不正确就要修改为正确的 初始化hive元数据存储的库:schematool -dbType <database_type> -initSchema 检查mysql中是否创建hive数据库,这里看到hive数…

WebGl 使用缓冲区对象绘制多个点

缓冲区对象是WebGL系统中为一块内存区域&#xff0c;可以一次性地向缓冲区对象中填充大量的顶点数据&#xff0c;然后将这些数据保存在其中&#xff0c;供顶点着色器使用。 1.类型化数组类型 在 webgl 中&#xff0c;需要处理大量的相同类型数据&#xff0c;所以引入类型化数组…

机器学习学习笔记-20241018

继续跟着小土堆去学习机器学习 文章目录 Flatten1. Flatten 的作用2. 何时使用 Flatten3. PyTorch 中的 Flatten Sequentia优化器模型的保存与加载模型的完整训练 Flatten 在神经网络中&#xff0c;Flatten 操作是将高维的输入&#xff08;如二维图像或三维特征图&#xff09…

LabVIEW提高开发效率技巧----减少UI更新频率

在LabVIEW开发中&#xff0c;图形化用户界面&#xff08;UI&#xff09;的更新频率对程序的响应速度有着显著影响。频繁的UI更新会占用大量资源&#xff0c;导致系统性能下降。本文将详细介绍如何通过减少UI更新频率来提升LabVIEW程序的运行效率&#xff0c;从多个角度进行分析…

Jenkins入门(二):流水线方式部署多模块Springboot项目

目录 一、环境准备 1. 搭建配置Jenkins (在上一篇基础上进行) 2. 安装mysql 3. 安装redis 4. 配置docker-componse 5. 启动docker-componse 二、脚本准备 1. Jenkinsfile 2. deploy.sh 3. Dockerfile 三、Jenkins流水线配置 新增版本号参数 流水线选择代码里面的Je…

游戏逆向基础-找释放技能CALL

思路&#xff1a;通过send断点然后对send的data参数下写入断点找到游戏里面的技能或者攻击call 进入游戏先选好一个怪物&#xff08;之所以要先选好是因为选怪也会断&#xff0c;如果直接左键打怪的话就会断几次&#xff09; 断下来后对参数下硬件写入断点 硬件断点断下来后先…

Java | Leetcode Java题解之第475题供暖器

题目&#xff1a; 题解&#xff1a; class Solution {public int findRadius(int[] houses, int[] heaters) {Arrays.sort(houses);Arrays.sort(heaters);int ans 0;for (int i 0, j 0; i < houses.length; i) {int curDistance Math.abs(houses[i] - heaters[j]);whil…

【工具篇】MLU运行XInference部署手册

文章目录 前言一、平台环境准备二、代码下载三、安装部署1.正常pip 安装 四、运行结果展示1.如果界面404或没有东西请这样做2.运行效果 前言 Xorbits Inference&#xff08;Xinference&#xff09;是一个功能强大、用途广泛的库&#xff0c;旨在为语言、语音识别和多模态模型提…

Python | Leetcode Python题解之第478题在圆内随机生成点

题目&#xff1a; 题解&#xff1a; class Solution:def __init__(self, radius: float, x_center: float, y_center: float):self.xc x_centerself.yc y_centerself.r radiusdef randPoint(self) -> List[float]:u, theta random.random(), random.random() * 2 * mat…

js简单基础笔记

一 . js特点 1. Js是一门解释型语言&#xff0c;不用编译&#xff0c;而是直接执行 2. js是一门动态语言&#xff0c;其中的任何内容都是不确定的 3. 语法结构和Java&#xff0c;c都很像 4. ​ js是一门面向对象的语言 5.js严格区分大小写 二 . js使用 1…

【AI知识】距离度量和相似性度量的常见算法

本文介绍一些AI中常见的距离度量和相似性度量算法&#xff1a; 1. 欧几里得距离&#xff08;Euclidean Distance&#xff09; 欧几里得距离是最常见的距离度量方法&#xff0c;用来计算两个向量之间的“直线距离”&#xff0c;也被成为L2范数。 公式如下&#xff0c;其中 x…

6、ES6

文章目录 一.关于ES6二.关于变量声明let声明变量const 声明常量 三.变量的解构赋值四.字符串的扩展五.函数的扩展函数默认参数rest参数箭头函数(函数的新写法) 六.数组的扩展七.对象的扩展语法上的简化对象的解构赋值 八.Symbol&#xff1a;新的数据类型(类似于字符串)独一无二…

学习中,师傅b站泷羽sec——xss挖掘过程

某职业技术学院网站xss挖掘&#xff1a; 资产归纳 例如&#xff1a;先把功能点都看一遍&#xff0c;大部分都是文章 根据信息搜集第一课学习到一般主站的防御力是比较强的&#xff0c;出现漏洞的点不是对新手不友好。 在资产验证过程中还是把主站看了一遍 没有发现有攻击的机会…

未来人工智能的发展对就业市场的影响 人工智能在生活中的相关

人工智能&#xff08;Artificial Intelligence&#xff09;&#xff0c;英文缩写为AI.是新一轮科技革命和产业变革的重要驱动力量&#xff0c; 是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学. 人工智能的发展对就业市场的影响主要…

论文笔记:RelationPrompt :Zero-Shot Relation Triplet Extraction

论文来源: ACL Findings 2022 论文链接:https://arxiv.org/pdf/2203.09101.pdf 论文代码:http://github.com/declare-lab/RelationPrompt 本篇论文是由阿里达摩院自然语言智能实验室于2022年发表的关于零样本关系抽取的顶会论文,本篇博客将记录我在阅读过程中的一些笔记…

修改pq_default.ini禁用降噪,解决S905X3电视盒硬解视频画质模糊、严重涂抹得像油画、水彩画的问题

笔者使用一台处理器芯片为 S905X3 的电视盒将近一年&#xff0c;性能比之前的 RK3328 的盒子有所提升&#xff0c;但我对它视频解码方面感到越来越不爽&#xff0c;该盒子的硬解视频总是开启美颜降噪和锐化&#xff0c;导致硬解视频的画质模糊&#xff0c;细节都被磨平&#xf…

使用Jenkins部署项目

部署中的痛点 为什么要用Jenkins&#xff1f;我说下我以前开发的痛点&#xff0c;在一些中小型企业&#xff0c;每次开发一个项目完成后&#xff0c;需要打包部署&#xff0c;可能没有专门的运维人员&#xff0c;只能开发人员去把项目打成一个exe包&#xff0c;可能这个项目已…