ViBe 背景提取算法原理

ViBe算法是一种视觉背景提取方法,通过像素点模型和背景判定实现背景和前景的分离。它不依赖PDF,而是用一组采样值集合作为背景模型,根据像素值与模型中采样值的接近程度进行背景判断。算法初始化时,单帧图像即可建立像素点模型,并随时间更新以适应亮度变化和新物体出现。更新策略包括无记忆的更新、随机时域二次采样和空域选点更新,保证模型的准确性和时间一致性。
摘要由CSDN通过智能技术生成

本文由原始文档的部分章节翻译得到:

ViBe: A universal background subtraction algorithm for video sequences

Olivier Barnich and Marc Van Croogenbroeck, Member, IEEE

声明:本文并非全文翻译,本人并未联系作者取得授权,如有侵权,会立即删除。

III. ViBe 算法描述

背景提取算法至少必须妥善处理以下 3 个方面的问题才能得到理想的结果:

  1. 算法的像素点模型怎样得到并且怎样工作?
  2. 像素点模型怎样初始化?
  3. 怎样在工作过程中更新像素点模型?

前述 3 个问题的答案会在本章内容中说明。

大多数论文都研究了问题 1 和问题 3。只有少部分论文讨论了问题 2,而问题 2 却是解决数字摄像场景下快速响应的关键。

而且,在大多数情况下,像素点模型和更新策略缺少关联性。比如,一些算法计算当前像素值值 p 和模型值 b 差值的绝对值,如果该值小于门限值 T 时认为当前像素点为背景。为了适应时间变化,用 p 值的统计方差更新 T 值,但是该统计方差却由时间域平均计算得到。于是,这种门限值 T 的调整速率完全由当前帧率和背景像素点数目决定,但是对于由网络带宽决定帧率的网络摄像机而言,这种方式并不合适。

接下来描述的背景提取算法称为 ViBe (VIsual Background Extractor)。附录 A 中 C 语言形式的伪代码可以供读者参考。

A. 像素模型及背景判定

目前几乎所有的背景判定算法都是在给定色域空间,计算每个背景像素点的概率密度函数(pdf: probability density function)(或者给定像素点的统计学参数,比如均值或者方差),再由 pdf 进行计算完成判定。

对于高斯分布而言,由于均值和方差完全足以决定 pdf,因此没有任何区别。尽管主流的背景提取算法都是基于 pdf 或者统计参数,但是却很少有对于此类统计显著性的研究。

事实上,有效的背景提取计算并不一定必须使用 pdf。一种替代方案就是使用实际观察得到的像素值构建像素点模型以达到,随着时间增长而增大的统计显著性。这种方案最基本的假设就是已经被观察到的像素值再次出现的概率要大于未被观察到的像素值。

不选择 pdf 算法的原因在于:pdf 模型的偏差十分普遍,计算相当复杂,对异常值比较敏感,而且,pdf 的计算还涉及到统计样本数目选取的问题。

如果我们把背景提取问题作为一个分类问题看待,为了排除异常值的干扰,我们可以根据一个新的像素点值在指定颜色空间的邻近值来对该像素点进行分类。基于这种思想,我们选用一组采样值的集合作为背景像素点模型,而不是一个精确计算的模型。这种办法与主流算法最大的区别就在于,不用计算 pdf,而且只需要将像素值与模型中的各采样值进行比较即可。像素值会与集合中部分采样值接近,而与大多数采样值差异区大。这种方法的思想就是,少量数值相近的采样值比单纯大量的采样值更容易估计出背景像素值的统计分布。在某种意义上与 pdf 算法中排除 pdf 极值或者 pdf 区域截取是一样的思想。为了保证像素点模型的准确性,背景像素点采样必须谨慎,只有真正的背景像素点才能加入到模型中去。

(译者:以下的内容都是针对坐标 x 的 1 个像素点的判断,图像中所有像素点都得进行相同的判断计算,并使用独立的像素点模型。)

假设 v ( x ) v(x) v(x) 为图像中坐标为 x 的像素点在当前色域中的数值,用 v i v_{i} vi 表示序号为 i 的背景采样值。x 像素点的 N 个背景采样值的集合表示为 M ( x ) = { v 1 , v 2 , . . . , v N } M(x)=\{v_{1}, v_{2}, ..., v_{N}\} M(x)={ v1,v2,...,vN}。N 个采样值来源于之前的图像帧。为方便理解,我们暂时不考虑时间对采样值集合的影响。

为了对 v ( x ) v(x) v(x) 进行背景判断,我们需要找到其与 M ( x ) M(x) M(x) 像素点模型中的最为接近的采样点。在当前色域中,以 v ( x ) v(x) v(x) 为中心,R 为半径定义一个空间区域 S R ( ( v ( x ) ) S_{R}\big((v(x)\big) SR((v(x)),将落入该区域的采样点的数目称为基数(cardinality,用 # 表示)。如果基数大于等于指定的门限值 #min

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值