【计算机视觉】背景建模--Vibe 算法优缺点分析
一、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 算法优缺点分析的更多相关文章
- 【原创】Kmeans算法 优缺点分析
优点: 原理简单(靠近中心点),实现容易(1.2 天),聚类效果中上(依赖K的选择) 缺点: 1. 无法确定K的个数 (根据什么指标确定K) 2. 对离群点敏感 (容易导致中心点偏移) 3. 算法复杂 ...
- 背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战
背景建模技术(二):BgsLibrary的框架.背景建模的37种算法性能分析.背景建模技术的挑战 1.基于MFC的BgsLibrary软件下载 下载地址:http://download.csdn.ne ...
- 【背景建模】VIBE
ViBe是一种像素级的背景建模.前景检测算法,该算法主要不同之处是背景模型的更新策略,随机选择需要替换的像素的样本,随机选择邻域像素进行更新.在无法确定像素变化的模型时,随机的更新策略,在一定程度上可 ...
- ViBe(Visual Background extractor)背景建模或前景检测
ViBe算法:ViBe - a powerful technique for background detection and subtraction in video sequences 算法官网: ...
- 【计算机视觉】背景建模之PBAS
本文是根据M. Hofmann等人在2012年的IEEE Workshop on Change Detection上发表的"Background Segmentation with Feed ...
- [转]前景检测算法--ViBe算法
原文:http://blog.csdn.net/zouxy09/article/details/9622285 转自:http://blog.csdn.net/app_12062011/article ...
- [MOC062066]背景建模资料收集整理
一.相关博客 背景建模相关资料收集,各个链接都已给出. 资料,不可能非常完整,以后不定期更新. -----------------切割线----------------- 这个哥们总结的非常好啊,看完 ...
- 【背景建模】PbModel
PbModel是基于概率模型的背景差分算法,其基本思想是像素点会因光照变化.运动物体经过产生多种颜色值,但是一段时间内,像素点处于静止状态的时间会比处于运动状态的时间长.因而一段时间内,像素点某个颜色 ...
- 【背景建模】PBAS
Pixel-Based Adaptive Segmenter(PBAS)检测算法,是基于像素的无参数模型,该算法结合了SACON和VIBE两个算法的优势,并在这两个算法的基础上改进而来,SACON和V ...
随机推荐
- 把task加入websocket服务端程序
服务端代码 <?php //task任务要实现两个方法onfinish ontask //还要设置worker_num date_default_timezone_set("PRC&q ...
- 201871010126 王亚涛 《面向对象程序设计 (Java)》第十七周学习总结
内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/12 ...
- Vue上传通过“服务端签名后直传”上传文件到阿里云 报错 400 Bad Request
我报错的原因是 formData.append('file', file) 放在签名前面了 解决办法 formData.append('file', file) 一定在最后 /** * 上传文件到 o ...
- IE8下,去除iframe的边框
iframe边框通过css设定在FF下正常在ie下却还存在边框,设置frameborder="0"和border="0"可以去掉讨厌的iframe边框 < ...
- Python身份运算符
运算符 描述 实例 is is 是判断两个标识符是不是引用自一个对象 x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False is not ...
- linux C线程
一个应用程序可以启动若干个线程: 线程,是程序执行的最小单位: 一般一个最简单的程序最少有一个线程,就是程序本身,也是主函数: 一个线程阻塞不会影响另一个线程: 多线程的进程可以尽可能多的利用系统CP ...
- AtCoder AGC031D A Sequence of Permutations (群论、置换快速幂)
题目链接 https://atcoder.jp/contests/agc031/tasks/agc031_d 题解 这居然真的是个找规律神题... 首先要明白置换的一些基本定义,置换\(p\)和\(q ...
- sparkOnYarn报错org.apache.hadoop.fs.FSDataInputStream
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FSDataInpu ...
- 深入使用Vue + TS
深入使用TS 支持 render jsx 写法 这里一共分两步 首先得先让 vue 支持 jsx 写法 再让 vue 中的 ts 支持 jsx 写法 让 vue 支持 jsx 按照官方做法,安装Bab ...
- JNA调用DLL
1.引入pom <dependency> <groupId>net.java.dev.jna</groupId> <artifactId>jna< ...