PbModel是基于概率模型的背景差分算法,其基本思想是像素点会因光照变化、运动物体经过产生多种颜色值,但是一段时间内,像素点处于静止状态的时间会比处于运动状态的时间长。因而一段时间内,像素点某个颜色值出现的概率会高于其他颜色值,高概率的颜色值即为该像素点的背景值

创新点

1.关注基于概率的背景模型的内存占用率和计算复杂度

  基于概率的背景模型是常用的背景建模方法,但是现有一些算法,其内存占用率高,计算复杂度大。

  该算法利用聚类减少内存占用率,将像素点可能出现的颜色值,按距离聚类,以聚类中心代替颜色值,从而减少内存占用率。

  利用不固定长度的帧序列建立背景模型,由于许多像素点一般都处于静止状态,只需要少量的帧序列就可以确定高概率的颜色值(即背景值),选取一个计算初始帧序列长度,从而确定大部分的背景值,然后针对少量的背景值,继续统计,并减小判断是否为高概率的阈值,保证算法的收敛,最终建立起完整的背景模型。

2.关注于前景检测的判定阈值

  分析背景差分图像的直方图信息,利用直方图的变化曲线来确定判定阈值,采用直方图变化曲线的波谷位置作为判定阈值

基本框架图

主要步骤:

1.建立背景模型

  1).初始化像素的聚类集合,C表示聚类里包含像素的数目,nxy表示聚类标号,x、y表示像素点位置。

  

  2).计算当前像素与像素聚类集合的距离,并计算最小距离和对应的聚类。

  

  3).判断最小距离是否小于阈值,若小于,则更新对应聚类,否则,新建一个聚类,添加到聚类集合中。

  

  4).判断是否到初始帧序号Fn,若达到,则计算像素各个聚类的概率,并求最大概率的聚类,否则,继续跳转步骤2)处理下一帧。

  

  5).判断最大概率是否大于阈值,若大于,则设置对应聚类的中心为该像素点的背景值。

  6).调整背景建模速度,根据帧序号调整阈值大小,帧序号越大,阈值越小。

  

  7).跳转步骤2)处理下一帧,直到所有像素点的背景值确定。

2.前景检测过程

  1).计算当前帧序与背景的差分图像。

  2).计算差分图像的直方图信息。

  3).平滑各个通道的直方图信息。

  

  4).计算各个通道的阈值大小。

  

  5).计算差值图像的阈值。

  6).利用阈值判定像是否为前景。

  

3.背景模型更新

  背景模型更新采用简单的图像混合算法,利用新像素值和背景模型的像素值的加权和,替换背景模型的像素值

  

  其中,(Rs,Gs,Bs)为当前像素值,(RB,GB,BB)为背像像素值,n为背景模型更新学习因子控制参数。

参考资料:

A Robust Object Segmentation System Using a Probability-Based Background Extraction Algorithm

【背景建模】PbModel的更多相关文章

  1. 【背景建模】SOBS

    SOBS(self-Organizing through artificial neural networks)是一种基于自组织神经网络的背景差分算法,主要是借鉴神经网络的特性,一个网络输入节点,对应 ...

  2. 【背景建模】VIBE

    ViBe是一种像素级的背景建模.前景检测算法,该算法主要不同之处是背景模型的更新策略,随机选择需要替换的像素的样本,随机选择邻域像素进行更新.在无法确定像素变化的模型时,随机的更新策略,在一定程度上可 ...

  3. 【背景建模】PBAS

    Pixel-Based Adaptive Segmenter(PBAS)检测算法,是基于像素的无参数模型,该算法结合了SACON和VIBE两个算法的优势,并在这两个算法的基础上改进而来,SACON和V ...

  4. [MOC062066]背景建模资料收集整理

    一.相关博客 背景建模相关资料收集,各个链接都已给出. 资料,不可能非常完整,以后不定期更新. -----------------切割线----------------- 这个哥们总结的非常好啊,看完 ...

  5. OpenCV ——背景建模之CodeBook(2)

    1,CodeBook的来源 先考虑平均背景的建模方法.该方法是针对每一个像素,累积若干帧的像素值,然后计算平均值和方差,以此来建立背景模型,相当于模型的每一个像素含有两个特征值,这两个特征值只是单纯的 ...

  6. OpenCV ——背景建模之CodeBook(1)

    1,CodeBook算法流程介绍 CodeBook算法的基本思想是得到每个像素的时间序列模型.这种模型能很好地处理时间起伏,缺点是需要消耗大量的内存.CodeBook算法为当前图像的每一个像素建立一个 ...

  7. OpenCV4Android背景建模(MOG、MOG2)

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃     很久以前的笔记了,分享给大家吧...OpenCV4Android中用于背景建模的类主要 ...

  8. 背景建模或前景检測之PBAS

    申明,本文非笔者原创,原文转载自:http://blog.csdn.net/kcust/article/details/9931575 Pixel-Based Adaptive Segmenter(P ...

  9. 背景建模技术(七):预处理(PreProcessor)模块

    预处理(PreProcessor)模块是BgsLibrary中一个必选的模块,是真正进入背景建模算法的“预处理”过程,其主要功能包括‘去模糊’.‘获得灰度图’.'应用Canny算子‘等可选模块. 下面 ...

随机推荐

  1. C++11模板类使用心得

    1.推荐使用std::shared_ptr<TaskT>代替指针TaskT*使用,shared_ptr是一种智能指针,能自主销毁释放内存,在c++11中被引入,在多线程编程中有很大的用处, ...

  2. 每天学点前端——基础篇1:css盒子模型,绝对定位和相对定位

    什么是css盒子模型(Box Model)? W3C中解释为:规定了元素框处理元素内容.内边距.边框和外边距的方式: MDN:文档中的每个元素被描绘为矩形盒子.渲染引擎的目的就是判定大小,属性--比如 ...

  3. 原生JS实现分页效果2.0(新增了上一页和下一页,添加当前元素样式)

    虽然写的很烂,但至少全部都是自己写的,因为这个没有固定的顺序,所以就没有封装,如果你技术好的话,可以你写的分享给我,谢谢. <!DOCTYPE html><html lang=&qu ...

  4. java中自动装箱的问题

    package wrapper; public class WrapperDemo { public static void main(String[] args) { Integer a=new I ...

  5. Oracle如何实现从特定组合中随机读取值

    在这里,我们会用到DBMS_RANDOM包和CASE WHEN语句,思路如下: 一.利用DBMS_RANDOM.RANDOM函数随机生成数值,然后对数值进行取模,如果我们要在10个元素中随机读取的话, ...

  6. JavaScript垃圾回收(二)——垃圾回收算法

    一.引用计数(Reference Counting)算法 Internet Explorer 8以下的DOM和BOM使用COM组件所以是引用计数来为DOM对象处理内存,引用计数的含义是跟踪记录每个值被 ...

  7. iOS_UIImage_图片剪切

    - (UIImage *)imagecutWithRect:(CGRect)rect { CGImageRef subImageRef = CGImageCreateWithImageInRect(s ...

  8. android之数据存储之SQLite

    SQLite开源轻量级数据库,支持92-SQL标准,主要用于嵌入式系统,只占几百K系统资源此外,SQLite 不支持一些标准的 SQL 功能,特别是外键约束(FOREIGN KEY constrain ...

  9. [logstash-input-http] 插件使用详解

    插件介绍 Http插件是2.0版本才出现的新插件,1.x是没有这个插件的.这个插件可以帮助logstash接收其他主机或者本机发送的http报文. 插件的原理很简单,它自己启动了一个ruby的服务器, ...

  10. 使用James搭建一个自己的邮箱服务器

    ---第一天开发--- 下载Apache James 3.0邮箱服务器,解压到响应的目录 可以看到目录结构: H:\code\JavaCode\James\apache-james-3.0-beta4 ...