运动目标检测 之 Vibe背景模型算法

Vibe是一种像素级的背景建模算法,用于视频中的目标检测。它通过为每个像素点存储样本集,用新像素值与样本集比较来识别前景。该算法具有快速初始化、内存占用少、不易产生Ghost区域的优点。本文深入讲解了Vibe的初始化、背景模型更新策略及其源码实现,阐述了如何通过随机采样和前景计数来有效更新和消除Ghost区域。
摘要由CSDN通过智能技术生成

前段时间研究了下Vibe目标检算法并做了代码实现,今天得空讲下我对Vibe算法的理解。

算法官方网站:http://www.telecom.ulg.ac.be/research/vibe/

综述:
ViBe是一种像素级视频通过背景建模的方式来检测前景目标的算法。具体的思想就是为每个像素点存储了一个样本集,样本集中采样值就是该像素点过去的像素值和其邻居点的像素值,然后将每一个新的像素值和样本集进行比较来判断是否属于背景点。
相对一般的目标检测算法有以下几个优点:
1、背景的初始化比较迅速,通常一帧就能搞定,但实际运行时可以能也可能因此而引入Ghost区域。但随着程序运行Ghost区域会被消除。
2、占用内在较少,每个像只需要比较一次,且比较算法简单,不会占用太多内存。
3、不易引入Ghost区域,所谓Ghost区域就是:在前后背景的目标检测中当一个原本静止的物体开始运动,背景差检测算法可能会将该目标原本所覆盖的区域错误的检测目标区域,这块区域就成为Ghost。当然原来运动的物体变为静止的也会引入Ghost区域。

下面分几大模块讲述Vibe目标检测的主要思想:

1、Vibe模型的初始化:
通用的检测算法的初始化需要一定长度的视频序列来完成背景模型构造,不利于对实时性要求较高的目标检测。ViBe的初始化仅仅通过一帧图像即可完成,就是:对于一个像素点,随机的选择它的3X3领域内的点的像素值作为,该点的背景模型样本集,本源码中为每个像素点建立总量为20的样本集来表达该点的背景(这是根据图像中相近的像素点总是相似的)。这种初始化方法能快速建立初始的背景模型,同时它能规避一些的噪声的影响,如果了解一些去噪算法的人知道去噪其实就是利用相邻像素相近的原理来滤波实现去噪,比如高斯去噪。另外它有个缺点,初始时容易引起Ghost区域,比如第一帧如果有前景目标在图像中,会在初始时把其设成背景像素点。

源码如下:

    for(usYIdx = 1; usYIdx < usVibeAreaHgt-1; usYIdx++)   /*周围一圈的图像信息不要了*/
    {
        uiYTtlIdx = usYIdx * usVibeAreaStp;

        for(usXIdx = 1; usXIdx < usVibeAreaWth-1; usXIdx++)
        {
            uiXTtlIdx = uiYTtlIdx + usXIdx;

            for(ucSmpleIdx = 0; ucSmpl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值