【背景建模】PBAS

时间:2022-09-03 08:30:25

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

【背景建模】SACON http://www.cnblogs.com/dwdxdy/p/3530862.html

【背景建模】VIBE http://www.cnblogs.com/dwdxdy/p/3527891.html

创新点:

1).引入控制论的思想,使前景判断阈值和背景模型更新率自适应变化,随背景的复杂程度变化。

2).引入背景复杂程度的度量方法,根据背景复杂程度调整前景判断阈值和背景模型更新率。

基本框架:

  【背景建模】PBAS【背景建模】PBAS

  R(xi)为自适应的阈值,T(xi)为自适应的更新率,dmin(xi)为背景复杂度的度量。

主要步骤:

1).建立背景模型

  PBAS算法采用类似SACON算法背景建模方法,收集前N帧像素以及梯度幅值作为背景模型;

2).前景检测

  其检测过程与VIBE算法类似,计算样本集合中满足匹配条件的样本个数,若小于阈值#min,则表示为背景,不同之处在于不同像素的判断阈值R(xi)不同;

  【背景建模】PBAS

  B(xi)是背景模型,表示像素点xi的样本集合,F(xi)是前景图像,表示像素点xi的判断结果。

3).背景模型更新

  其更新过程与VIBE算法类似,随机选择需要被替换的样本,随机选择像素邻域的样本集合更新,不同之处在于更新率不同,VIBE是固定的更新率,而PBAS的更新率是自适应的,并且更新邻域样本集合是用邻域的新像素值进行更新,而不是用新像素值本身。

4).背景复杂度计算

  当新像素值与样本集合的最小距离小于阈值时,该说明该像素可能为背景,此时最小距离可以描述背景的复杂度,距离越大,背景越复杂。因而,采用样本集合中样本更新时的最小距离的平均值作为背景复杂度的度量。

  【背景建模】PBAS

5).自适应调整判断阈值

  背景越复杂,其判断阈值应该越大,保证背景像素不被误判为前景,背景越简单,微小的变化都是由前景引起,判断阈值应该越小,调整策略如下:

  【背景建模】PBAS

   Rinc/dec是阈值的变化量,Rscale用于控制背景复杂度对判断阈值的调整。

6).自适应调整更新率

  背景越复杂,其出现错误判断的概率越大,对应的背景更新应该越少,减少错误判断对背景模型的影响,其更新策略如下:

  【背景建模】PBAS

  F(xi)表示前景检测结果,Tinc和Tdec分别表示更新率增加、减小的幅度,Tlower和Tupper分别表示更新率上下限。

算法实现注意事项:

1).参数的设置,可以根据实际的应用调整参数的大小,一般的参数设置如下:

N = 35, #min = 2, Rinc/dec = 0.05, Rlower = 18, Rscale = 5, Tdec = 0.05, Tinc = 1, Tlower = 2, Tupper = 200

2).基于像素的前景判断、背景复杂度计算、判断阈值和更新率的更新计算,计算复杂度,比较耗时,建议采用GPU通用计算技术实现。

参考资料:

Background Segmentation with Feedback: The Pixel-Based Adaptive Segmenter

http://www.mmk.ei.tum.de/~hom/pbas

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

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

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

  2. 【计算机视觉】背景建模之PBAS

    本文是根据M. Hofmann等人在2012年的IEEE Workshop on Change Detection上发表的"Background Segmentation with Feed ...

  3. 背景建模技术(六):帧处理(FrameProcessor)模块

    前面几篇文章简单介绍了BgsLibrary的入口函数.视频分析和视频捕获模块,本文将简单介绍帧处理模块,即对每一帧进行处理的函数,也就是真正调用背景建模算法的接口处. 下面贴出源码供大家分析: #in ...

  4. 【背景建模】SOBS

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

  5. 【背景建模】PbModel

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

  6. 【背景建模】VIBE

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

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

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

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

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

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

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

随机推荐

  1. SQL语句总结

    SQL UNION 操作符合并两个或多个 SELECT 语句的结果. 语法: SELECT column_name(s) FROM table1        UNION        SELECT ...

  2. pip install robotframework-sshlibrary提示: Microsoft Visual C++ 9.0 is required

    win7下 pip install robotframework-sshlibrar时提示: error: Microsoft Visual C++ 9.0 is required (Unable t ...

  3. linux网址

    1. 上海爱墨电子科技有限公司 http://www.shaimo.cn/showproduct.asp?piccat_id=196&pic_id=780 2. http://lxr.free ...

  4. linux命令分块总结---多操作才是真理

    ps:其实学习linux系统,多多联系我们现在使用的Windows系统,这样就可以事半功倍的学习: 一. 启动,关机,登入,登出相关命令 [login]: 登录 [logout] :登出 [shutd ...

  5. Python的优势及应用领域

    Python的优势 Python是一门解释型语言,是比较容易入门. Python的程序代码更接近英语,更好好理解. Python的扩展库非常丰富. Python与C的粘合性非常好. Python的缺点 ...

  6. SQL数字型注入代码审计

    数字型注入 SQL注入攻击,简称注入攻击,是发生于应用程序与数据库层的安全漏洞. 简而言之,是在输入的字符串之中注入sql指定,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器 ...

  7. JSON的多种转换

    String message = httpSend(url, empName, loginPassWd); // 解析json字符串 message = message.replaceAll(&quo ...

  8. Java 集合 线程安全

    Java中常用的集合框架中的实现类HashSet.TreeSet.ArrayList.ArrayDeque.LinkedList.HashMap.TreeMap都是线程不安全的,如果多个线程同时访问它 ...

  9. Nature 为引,一文看懂个体化肿瘤疫苗前世今生

    进入2017年,当红辣子鸡PD-1疗法,一路横扫多个适应症.而CAR-T治疗的“小车”在获得FDA专委会推荐后也已经走上高速路,成为免疫治疗又一里程碑事件.PD-1.CAR-T之后,下一个免疫治疗产品 ...

  10. 生产环境rails console spring自动启动的问题

    在生产环境执行rails console没反应无法进入控制台,或者执行rails console的时候spring自动启动,导致所有的类名都无法识别,报错:NameError: uninitializ ...