一、Vibe 算法的优点

Vibe背景建模为运动目标检测研究邻域开拓了新思路,是一种新颖、快速及有效的运动目标检测算法。其优点有以下两点:

1、思想简单,易于实现。Vibe通常随机选取邻域20个样本为每个像素点建立一个基于样本的背景模型,具有初始化速度快、内存消耗少和占用资源少等优点,随后,利用一个二次抽样因子φ,使有限的样本基数能近似表示无限的时间窗口,即在较少样本前提下,保证算法的准确性,最后,并采用一种领域传播机制保证算法的空间一致性。

2、运算效率高。有两方面的原因:一是Vibe背景模型是基于少量样本的背景模型,二是优化了背景模型中的相似度匹配算法。Vibe背景模型是一种基于N个样本的背景模型,为得到最佳N值,分别选取N为5、15、20、25进行了实验对比,如图3.3所示,实验结果表明,N取20、25时,检测结果理想,考虑计算负载,N取20最优。与混合高斯的3-5个高斯模型的计算匹配比较,基于20个样本的背景模型计算具有计算开销低、检测速度快等优点。Vibe的背景模型相似度匹配函数只与R和Umin
有关,背景模型中的样本与待分类像素的欧式距离小于R的个数超过Umin 时,匹配背景模型,判断为背景,在实际实现过程中,优化算法,一旦找到Umin 个匹配样本时,停止计算,判断待分类像素为背景,该方法大大减少了整个算法的计算量,从而提高运算效率。

3、样本衰减最优。有人通过增加样本基数(上至200个)来处理复杂场景,也有人结合两个子模型分别处理快速更新和缓慢更新的情况。其实,选取被替换样本更新背景模型,实质上是样本寿命问题,传统方式采用先进先出的替换策略。Vibe背景模型中每个样本被选中为替换样本的概率是相等的,与样本存在时间的长短无关,这种策略保证背景模型中的样本寿命呈指数衰减,模型更新达到最佳状态。

二、Vibe 算法的缺点

Vibe背景建模有思想简单、易于实现、运算效率高等优点,但算法自身也存在着局限性。主要有鬼影、静止目标、阴影前景和运动目标不完整等问题。

第一个问题:鬼影问题。如图3.4所示,Vibe背景建模利用第一帧作为初始帧初始化背景模型,图(d)是图(c)用Vibe算法检测到的结果,因第一帧(如图(b)所示)中存在着运动目标,并非真实的背景图像(如图(a)所示),检测结果中出现鬼影,如图3.4(d)所示。产生鬼影的根源可归纳为两类:(1)背景模型的初始帧存在着运动目标;(2)运动目标的状态转变,从静止到运动,背景模型的更新速率无法与背景变率相同步,出现虚假目标,即鬼影。

第二个问题:静止目标问题。如图3.5所示,图(a)红框中的人在等地铁,从图(a)到图(c)经过498帧,长时间驻留未运动,该人物运动目标逐渐被背景吸收。本文将在450帧以上都没有明显位移的运动目标区域定义为静止目标区域。产生静止目标问题的根源可归纳为两类:(1)运动目标从运动到静止,(2)运动目标运动缓慢。当Vibe背景模型的更新速度过快时,将静止或缓慢运动目标吸收为背景的一部分,此时这两种运动目标就检测不出来了。

第三个问题:阴影前景问题。如图3.6所示,图(b)和图(d)分别是用Vibe 算法对人体运动目标(a)和车体运动目标(c)的检测结果,由于光线被人体或车体运动目标所遮挡,投射阴影区的背景被误检为运动目标前景。阴影的存在导致检测出来的运动目标形状不准确,影响后续目标分类、跟踪、识别和分析等其他智能视频处理模块。产生阴影前景问题的根源是:光线被运动目标前景遮挡,投射阴影区的颜色比背景的颜色暗,即阴影和背景颜色值的距离相差较大,背景差分后被误检为运动目标前景。

第四个问题:运动目标不完整问题。如图3.7所示,图(a)中的人内部出现空洞,图(b)中的人中间出现断层,图(c)中的人上半身出现边缘残躯,图(d)车体的挡风玻璃出现空洞。运动目标通常可分为非刚性物体和刚性物体,人属于非刚性物体,车属于刚性物体,这两种常见检测对象的检测结果都出现了不完整现象。总结图3.7的实验结果,可将运动目标不完整现象分为三类:a)运动目标内部有大量空洞。(b)运动目标边缘残缺,呈现C字型凹陷。(c)运动目标中间有断层。

产生运动目标不完整问题的根源主要有以下两点:(1)Vibe算法自身存在缺陷。基于统计学原理的Vibe样本模型受限于模型的样本个数,当样本趋于无穷大时才能准确描述场景,这在实际应用中是不可能实现的;(2)场景或运动目标的 复杂性和多变性。主要有三种情况:1)瞬时的光线突变,背景模型来不及更新,2)前景与背景颜色相近,将前景误判为背景,3)噪声干扰,出现孤立噪声点和连通噪声区域。

【计算机视觉】背景建模--Vibe 算法优缺点分析的更多相关文章

  1. 【原创】Kmeans算法 优缺点分析

    优点: 原理简单(靠近中心点),实现容易(1.2 天),聚类效果中上(依赖K的选择) 缺点: 1. 无法确定K的个数 (根据什么指标确定K) 2. 对离群点敏感 (容易导致中心点偏移) 3. 算法复杂 ...

  2. 背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战

    背景建模技术(二):BgsLibrary的框架.背景建模的37种算法性能分析.背景建模技术的挑战 1.基于MFC的BgsLibrary软件下载 下载地址:http://download.csdn.ne ...

  3. 【背景建模】VIBE

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

  4. ViBe(Visual Background extractor)背景建模或前景检测

    ViBe算法:ViBe - a powerful technique for background detection and subtraction in video sequences 算法官网: ...

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

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

  6. [转]前景检测算法--ViBe算法

    原文:http://blog.csdn.net/zouxy09/article/details/9622285 转自:http://blog.csdn.net/app_12062011/article ...

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

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

  8. 【背景建模】PbModel

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

  9. 【背景建模】PBAS

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

随机推荐

  1. HDU-3336-Count the string(扩展KMP)

    链接: https://vjudge.net/problem/HDU-3336 题意: It is well known that AekdyCoin is good at string proble ...

  2. Python XML 解析Ⅱ

    make_parser方法 以下方法创建一个新的解析器对象并返回. 参数说明: parser_list - 可选参数,解析器列表 parser方法 以下方法创建一个 SAX 解析器并解析xml文档: ...

  3. 对Webpack 应用的研究-----------------引用

    对大多数 Web 应用来说,页面性能直接影响着流量.这是一个经常为我们所忽视的事实.用户长时间的等待流失的不仅仅是跳出率.转化率,还有对产品的耐心和信赖.很多时候我们没有意识到性能问题,那是因为平常开 ...

  4. LibreOffice/Calc:在表格中始终显示某列/某行

    本文适用于LibreOffice Calc 5.1.6.2 + Ubuntu 16.04,熊猫帮帮主@cnblogs 2018/3/5 编写表格时,我们常常使用表格最左侧的一列和最上方的一行作为序号列 ...

  5. codeforces643D

    阿狸的基环内向树森林 Background 当阿狸醒来的时候,发现自己处在基环内向森林的深处,阿狸渴望离开这个乌烟瘴气的地方.“明天还有与桃子的约会呢”,阿狸一边走一边说,“可是,这个森林的出口在哪儿 ...

  6. jQuery事件之绑定事件

    语法: $(selector).bind(eventType[, eventData], handler(eventObject)); 参数解释: eventType(String): 一个包含一个或 ...

  7. Android中定义广播监听,其他页面发送

    private LocalBroadcastManager broadcastManager; /** * 注册广播接收器 */ private void receiveAdDownload() { ...

  8. 27.Python列表(list)、元组(tuple)、字典(dict)和集合(set)详解

    本章将会介绍 Python 内置的四种常用数据结构:列表(list).元组(tuple).字典(dict)以及集合(set). 这四种数据结构一但都可用于保存多个数据项,这对于编程而言是非常重要的,因 ...

  9. Spring常用的jar+普通构造注入

    常用工具 jar 说明 提供AOP(面向切面编程)实现:spring -aop spring提供对AspectJ框架的整合:spring-aspects 提供 IoC(控制反转)的基础实现:sprin ...

  10. mysql 日常操作-DDL

    1 修改字段类型 需求修改表字段类型 alter table  表名    modify column 修改的字段(列名) 类型(修改的类型) ALTER TABLE sys_entry_item m ...