Background Segmentation算法之Vibe

vibe是一种像素级的前景检测算法,实时性高,内存占有率低,前景检测准确率高。只需要一帧就可以完成初始化。

一种背景提取算法至少要考虑三方面问题:

  1. 模型是什么,它如何工作的
  2. 模型如何初始化
  3. 模型如何随时间进行更新

下面从上述三点对Vibe算法进行描述:

模型是什么,它又是如何工作的

将背景提取看成是分类问题,根据所选颜色空间中的邻域对新像素值进行分类。
在这里插入图片描述
对每个像素建模,如图中像素 υ ( x ) \upsilon \left ( x \right ) υ(x),它的样本模型就是 M ( x ) = { υ 1 , υ 2 , . . . , υ n } M\left ( x\right )=\left \{\upsilon _{1},\upsilon _{2},...,\upsilon _{n}\right \} M(x)={υ1,υ2,...,υn}.通过比较在半径为R的圆内,存在多少个它对应的样本像素点个数。
在这里插入图片描述
当圆内样本点个数达到预设的阈值(文章中设置为2)时,则可以判断新像素点为背景。

模型初始化

从一张图像进行初始化,克服了突然光照带来的影响。(环境发生改变,之前的背景模型可以丢弃,立刻开始新的模型初始化)

利用这个信息 neighboring pixels share a similar temporal distribution ,l利用用每个像素的空间邻域中的值填充像素模型。如下图:
在这里插入图片描述
可以对每个像素领域进行N次采用,获取设定的大小为N的初始化的样本值。
这种方式也存在缺点: he presence of a moving object in the first frame will introduce an artifact commonly called a ghost . 就是说,如果初始化帧存在移动物体(前景),后续的分割将存在"鬼影”。
the ghost is caused by the unfortunate initialization of pixel models with samples coming from the moving object

模型更新

the update process must be able to adapt to lighting changes and to handle new objects that appear in a scene
更新的问题考虑的就是模型中哪些样本应该被记忆,并且被记忆多长时间。
文中提出的更新策略主要有以下三个特点:

  • a memoryless update policy
    时间衰减原则:保证样本值保持在样本集合内存在的概率单调衰减;一个像素模型应该包含像素最近的样本,但是旧的样本不一定要被丢弃。并没有采取传统的先进先出策略。根据均匀分布,在样本模型中随机选择应该样本进行更新,使得样本在样本集更新后出现的概率为 N − 1 N \frac{N-1}{N} NN1,考虑到时间的连续性,概率等价于:
    在这里插入图片描述
    也可以被写成:
    在这里插入图片描述

  • a random time subsampling
    it is not necessary to update each background pixel model for each new frame.
    采用随机更新的策略,也就是对于一个被判定为背景点的像素,文中定义了一个 Φ = 1 16 \Phi =\frac{1}{16} Φ=161来决定该像素是否用来更新背景模型。这种做法的好处就是又可以扩大像素背景模型所覆盖时间窗口长度.

  • propagates background pixel samples spatially and allow the adaptation of the background pixel models that are masked by the foreground(空间一致性)
    目的是解决被前景所隐藏的背景像素。
    如果仅仅是保持时间特性显然是不够的,像素的空间一致性也不能被忽略
    作者提出对于一个像素点,它的样本集可以由它现在的像素值进行替换,同时,它周围邻域内像素点的样本集也可以由它进行替换。而替换的值及被替换样本集的像素点的选取都是随机的。有着扩散作用
    这就意味着每个像素点的所能影响的范围变成了一个区域,能够使模型对于相机的微小抖动具有良好的鲁棒性。即使像素发生微小偏移到了原始位置的邻域,由于之前的扩散更新作用,使得该像素点依旧可以判断为与之前位置一样。

总的来说模型更新可以分为三个随机:

  • 完成一次分割后,随机决定是否使用被判定为背景的像素点来更新模型
  • 在一次更新中,随机选取模型中的一个点进行更新
  • 在更新对应点的模型同时,随机更新邻域内某个点的背景模型

参考:

1. https://blog.csdn.net/zhangping1987/article/details/51860654?depth_1- utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
2. ViBe: A universal background subtraction algorithm for video sequences

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值