Vibe算法是一种基于背景更新的前景检测算法,其原理是通过提取像素点(x, y)周围的像素值及以前的像素值建立像素点的样本集,然后再将另一帧(x,y)处的像素值与样本集中的像素值进行比较,如果其与样本集中的像素值的距离大于某阈值的话,则认为该像素点为前景像素点,否则为背景像素点。
在原文https://ieeexplore.ieee.org/document/4959741/?arnumber=4959741&tag=1中,新帧像素值与样本集中像素的比较通过如图所示方法进行:

其中pt(x)为新帧的像素值,R为设定值,p1、p2、p3….为样本集中的像素值,以pt(x)为圆心R为半径的圆被认为成一个集,当样本集与此集的交集大于设定的阈值#min时,可认为此为背景像素点(交集越大,表示新像素点与样本集越相关)。我们可以通过改变#min的值与R的值来改变模型的灵敏度。
这部分便是检测运动的原理。
下面是背景更新的一些规则:
为了随着时间的推移准确地检测出运动的对象,我们需要对模型进行不断地更新。
原文作者对于两种更新:盲目更新(前景像素点可被用于填充背景)及保守更新(前景像素点永不用于填充背景)的缺点进行了描述,盲目更新对慢速运动的目标检测不完整,而保守更新则将在原来静止的物体突然运动时产生Ghost现象(如被认为为背景的车辆突然运动,则原来它所在的位置将被认为成前景区域,而前景区域的像素点永不用于填充背景,则此处在二值图像上一直为白色)。因此作者提出了背景更新的几个原则:
1、时间衰减原则:
让我们来看看作者的描述

Previous methods use first-in first-out policies to update their models. To properly deal with wide ranges of events in the scene background, some authors (e.g. [6]) choose to include large numbers (up to 200) of samples in the pixels models. Others [4], [5] even incorporate two temporal sub-models to successfully handle fast and slow modifications.

From a theoretical point of view, it might be better to guarantee a monotonic decay for the probability of a sample value to remain inside the set of samples. It improves the relevance of the estimation and allows the use of fewer samples. We manage to do this by choosing, randomly, which sample to replace when updating a pixel model. Once the sample to be discarded has been chosen, the new value replaces the discarded sample (see Figure 2). Mathematically, one shows that, according to this updating mechanism, the probability for a pixel sample present a time t0 to be still present at t1 later time is [(n-1)/n]^(t1-t0)

大致意思是其他几种前景检测的模型可能通过选取了大量的样本来更新模型并坚持先进先出原则(即先进入样本集的样本先出来),但作者觉得让样本在样本集中出现的概率随时间地延长而减小在数学上可能会取得更加好的效果,于是他让在t0时刻出现在样本集中的样本出现在t1时刻的概率为 [(n-1)/n]^(t1-t0)。
即样本值保留在样本集中的概率随着时间的增大而变小,这就保证了像素模型在时间上面的延续特性。
2、空间一致性原则:
如果仅仅是保持时间特性显然是不够的,像素的空间一致性也不能被忽略。摄像头的微小抖动及背景中缓慢移动的物体都有可能影响到像素模型的准确性,而通常我们解决这种问题的方法是设定阈值(如帧间差分法),但作者提出了一个更有弹性的方法:
对于一个像素点,它的样本集可以由它现在的像素值进行替换,同时,它周围领域内像素点的样本集也可以由它进行替换。而替换的值及被替换样本集的像素点的选取都是随机的。这意味着什么呢?这意味着像素点不仅可以影响自己的样本集,也可以影响周围像素的样本集,这样,每个像素点的所能影响的范围变成了一个区域,而它对这个区域的影响又是随机的。这样做有什么作用呢?回到我们之前考虑的情况,考虑一个空间坐标点(x,y,z),其在上一帧图像中的位置为(x0, y0)假设摄像头产生微小震动,则原来的空间坐标点的位置在下一幅图片中的位置发生了改变,假设变为第二帧图像的坐标(x1, y1),由于这个位置的改变是微小的,所以很明显(x1, y1)在(x0, y0)的领域里面,即在(x0, y0)的影响范围内,这就保证了像素点在空间上的连续性。而且由于影响的选取是随机的,这就模拟了摄像头随机的抖动方向。

原创文章,转载请直接使用链接。

ViBe算法原理详解相关推荐

  1. CRF(条件随机场)与Viterbi(维特比)算法原理详解

    摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...

  2. TOPSIS(逼近理想解)算法原理详解与代码实现

    写在前面: 个人理解:针对存在多项指标,多个方案的方案评价分析方法,也就是根据已存在的一份数据,判断数据中各个方案的优劣.中心思想是首先确定各项指标的最优理想值(正理想值)和最劣理想值(负理想解),所 ...

  3. 离线强化学习(Offline RL)系列3: (算法篇)策略约束 - BRAC算法原理详解与实现(经验篇)

    论文原文:[Yifan Wu, George Tucker, Ofir Nachum: "Behavior Regularized Offline Reinforcement Learnin ...

  4. 一致性哈希算法原理详解

    一.普通 hash 算法 (取模算法): 在了解一致性哈希算法之前,我们先了解一下缓存中的一个应用场景,了解了这个应用场景之后,再来理解一致性哈希算法,就容易多了,也更能体现出一致性哈希算法的优点,那 ...

  5. DES加解密算法原理详解与实现

    [DES密码编写] 1. Equipment (1) operating system version :WIN 10 (2) CPU instruction set: x 64 (3) softwa ...

  6. CORDIC算法原理详解及其Verilog实现

    CORDIC算法原理详解及其Verilog实现 本文的verilog代码 链接:https://pan.baidu.com/s/1GGbRjxO5CxoIODQAg1l6Lw 提取码:jo0h *本文 ...

  7. 机器学习,深度学习基础算法原理详解(图的搜索、交叉验证、PAC框架、VC-维(持续更新))

    机器学习,深度学习基础算法原理详解(图的搜索.交叉验证.PAC框架.VC-维.支持向量机.核方法(持续更新)) 机器学习,深度学习基础算法原理详解(数据结构部分(持续更新)) 文章目录 1. 图的搜索 ...

  8. XGBoost核心算法原理详解

    XGBoost算法原理详解 前言 boosting和bagging的区别 bagging boosting 提升树-基于残差的训练 学习路径 构造目标函数 Additive Training(叠加式的 ...

  9. DPC密度峰值聚类算法原理详解二

    DPC密度峰值聚类算法原理详解二 1.计算数据点两两之间的距离 1.使用 Numpy 模块查找两点之间的欧几里得距离: 2.使用 distance.euclidean() 函数查找两点之间的欧式距离: ...

  10. Isolation Forest算法原理详解

    本文只介绍原论文中的 Isolation Forest 孤立点检测算法的原理,实际的代码实现详解请参照我的另一篇博客:Isolation Forest算法实现详解. 或者读者可以到我的GitHub上去 ...

最新文章

  1. STM32 HAL库详解 及 手动移植
  2. ckeditor5加字数_CKEditor5基本使用
  3. JAVA语言程序设计课后习题----第四单元解析(仅供参考)
  4. C语言声明数组变量时,在什么情况下,可不指定数组大小
  5. 浙大网新实训项目介绍
  6. SpringMVC4零配置--web.xml
  7. Dotnet 6.0,你值得拥有
  8. 使用IDEA 连接mysql数据库,执行sql指令
  9. node 后台文章编辑器_我如何使用Node从报纸网站上刮掉7000篇文章
  10. 无数老板做企业还在卖产品赚差价
  11. 监控WebLogic9/10的项目部署到Tomcat报[Unsupported protocol: t3]异常的解决办法
  12. 家庭上网用路由器和ADSL的连接
  13. 躺在床上刷抖音,不如来写第一个 GO 程序入门篇
  14. 纵向时间线html,51个css时间轴
  15. 单基因gsea_单基因突变+肿瘤突变负荷+免疫细胞浸润文章套路
  16. 哈尔滨工业大学计算机科学与技术学院许博文,王轩-哈尔滨工业大学(深圳)计算机科学与技术学院...
  17. 微信小程序-云开发上传文件、图片
  18. 创建工作生活新范式 开拓经济增长新空间
  19. Veracrypt和Cryptomator的使用方式对比
  20. Linux yest2图形安装ftp,Debian 无痛起步法 ( 线上最新版 ): 了解 Debian 系统的哲学

热门文章

  1. 淘宝店铺装修旺铺基础版全屏轮播代码效果1920PX海报
  2. 学习中科院杨力祥c++
  3. 手机音频拼接软件_5款适合新手的手机音频剪辑APP
  4. 韦东山嵌入式Linux学习——015 Nand Flash(2)-Nand Flash编程实现读地址信息
  5. html 新浪微博分享申请,新浪微博API申请流程详解
  6. 计算机视觉应用期末试卷,计算机视觉期末复习
  7. 贪吃蛇c加加代码_贪吃蛇 C语言源代码
  8. IP属地信息哪里来的?手把手教你实现通过IP查询属地信息
  9. USBCAN、CAN分析仪、CANCANFD综合测试分析软件LKMaster主要功能一览
  10. 工业级ERPS环网协议交换机千兆4光8电工业级冗余环网以太网交换机工业光纤环网交换机