SOBS(self-Organizing through artificial neural networks)是一种基于自组织神经网络的背景差分算法,主要是借鉴神经网络的特性,一个网络输入节点,对应多个中间节点,将背景模型中的一个像素映射到模型的多个位置,并采用了像素邻域空间相关的更新方式,使邻域的信息进一步融入模型中,使得算法具有邻域空间相关性。

算法伪代码

  

背景模型建立

  选择背景模型的映射大小,一般选取n = 3,即一个像素点对应于模型中的3*3块,背景模型相比于原始图像扩大了9倍。

  

  选择HSV颜色空间,选取第一帧数据作为背景模型的初始化数据。如上图示例所示,ai(h,s,v) = a(h,s,v)。

前景目标检测

  计算当前像素点与其对应的模型块里像素点的最小距离,距离计算方法如下:

  

  若最小距离小于阈值,则判定为背景,更新背景模型;

  

  否则,进行阴影判断,阴影判断方法如下:

  

  若判定为阴影,则只标识为背景,不更新背景模型。

背景模型更新

  若像素判定为背景,且不属于阴影,则按一定的权值更新背景模型中最佳匹配像素周围的像素点,更新公式如下:

  

  其中,a(t)是常数,wi,j是背景建模时,背景模型中每个像素对应的权重,初始为高斯权重,背景模型中最匹配像素的位置为(x',y')。

  

  如图所示,假如f与f1最匹配,则黑色框的背景像素都将更新,即(b9,c7,c8,e3,f1,f2,e6,f4,f5)。

注意:算法中的每个像素都要与背景模型中的n*n个像素背景求最小值,在一定程度上影响了处理速度。

算法改进

1.背景模型更新方法优化

  SOBS算法中,背景模型更新时,只是以是否存在最佳匹配的背景像素点为更新准则,没有利用最佳匹配像素点的最小距离值,具体更新方法如下:

  

  由上述公式所示,有两种更新方法可选择,最小距离d(cm,pt)越小,对应的更新因子ai,j(t)值越大,当前像素点对背景模型的贡献度越大

2.背景判定准则优化

  SOBS算法中,背景判定准则是背景模型中是否存在最小距离小于阈值的像素。

  这种判定准则存在的问题是若有噪声的影响,导致像素对应模型块中刚好存在唯一一个像素的距离小于阈值,此时,会把噪声点判定为背景,产生误检

  优化方法是引入满足匹配的像素数目作为判定准则,优化背景判定过程,具体方法是以最佳匹配像素表示背景,并计算与之对应的原始像素周围满足匹配的像素点数目(反向计算匹配过程),计算方法如下:

  

参考资料:

A Self-Organizing Approach to Background Subtraction for Visual Surveillance Applications

Multivalued Background/Foreground Separation for Moving Object Detection

The SOBS algorithm: what are the limits?

【背景建模】SOBS的更多相关文章

  1. 【背景建模】PbModel

    PbModel是基于概率模型的背景差分算法,其基本思想是像素点会因光照变化.运动物体经过产生多种颜色值,但是一段时间内,像素点处于静止状态的时间会比处于运动状态的时间长.因而一段时间内,像素点某个颜色 ...

  2. 【背景建模】VIBE

    ViBe是一种像素级的背景建模.前景检测算法,该算法主要不同之处是背景模型的更新策略,随机选择需要替换的像素的样本,随机选择邻域像素进行更新.在无法确定像素变化的模型时,随机的更新策略,在一定程度上可 ...

  3. 【背景建模】PBAS

    Pixel-Based Adaptive Segmenter(PBAS)检测算法,是基于像素的无参数模型,该算法结合了SACON和VIBE两个算法的优势,并在这两个算法的基础上改进而来,SACON和V ...

  4. [MOC062066]背景建模资料收集整理

    一.相关博客 背景建模相关资料收集,各个链接都已给出. 资料,不可能非常完整,以后不定期更新. -----------------切割线----------------- 这个哥们总结的非常好啊,看完 ...

  5. OpenCV ——背景建模之CodeBook(2)

    1,CodeBook的来源 先考虑平均背景的建模方法.该方法是针对每一个像素,累积若干帧的像素值,然后计算平均值和方差,以此来建立背景模型,相当于模型的每一个像素含有两个特征值,这两个特征值只是单纯的 ...

  6. OpenCV ——背景建模之CodeBook(1)

    1,CodeBook算法流程介绍 CodeBook算法的基本思想是得到每个像素的时间序列模型.这种模型能很好地处理时间起伏,缺点是需要消耗大量的内存.CodeBook算法为当前图像的每一个像素建立一个 ...

  7. OpenCV4Android背景建模(MOG、MOG2)

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃     很久以前的笔记了,分享给大家吧...OpenCV4Android中用于背景建模的类主要 ...

  8. 背景建模或前景检測之PBAS

    申明,本文非笔者原创,原文转载自:http://blog.csdn.net/kcust/article/details/9931575 Pixel-Based Adaptive Segmenter(P ...

  9. 背景建模技术(七):预处理(PreProcessor)模块

    预处理(PreProcessor)模块是BgsLibrary中一个必选的模块,是真正进入背景建模算法的“预处理”过程,其主要功能包括‘去模糊’.‘获得灰度图’.'应用Canny算子‘等可选模块. 下面 ...

随机推荐

  1. 如何优雅的使用vue+vux开发app -03

    如何优雅的使用vue+vux开发app -03 还是一个错误的示范,但是离优雅差的不远了... <!DOCTYPE html> <html> <head> < ...

  2. SpringBoot常用配置简介

    SpringBoot常用配置简介 1. SpringBoot中几个常用的配置的简单介绍 一个简单的Spring.factories # Bootstrap components org.springf ...

  3. 关于页面查询多数据查询问题(foreach)

    最近纠结的一个问题,就是页面综合查询总报错,之前用过传参用list传就没问题,但现在用map总是报错,缓释直接贴图吧,希望对遇到问题的朋友有帮助页面传来参数,之前是 这样写的,直接将拿来的数据封装成一 ...

  4. Express框架使用以及数据库公共操作类整理(Win7下的NodeJs)

    具体步骤: 1.安装开发工具WebStorm: 2.安装node/npm(下载地址:https://nodejs.org/download/)选择适合你的xxx.mis安装: 3.安装express框 ...

  5. 图像映射map

    <map>标签:带有可点击区域的图像映射 定义一个客户端图像映射.图像映射(image-map)指带有可点击区域的一幅图像. 效果图: 点击相应蓝色标签可进入详情页面浏览. 代码: < ...

  6. Deep learning:四十八(Contractive AutoEncoder简单理解)

    Contractive autoencoder是autoencoder的一个变种,其实就是在autoencoder上加入了一个规则项,它简称CAE(对应中文翻译为?).通常情况下,对权值进行惩罚后的a ...

  7. go环境import cycle not allowed问题处理

    1.前言 今天在搭建Go语言环境,从https://golang.org/dl/上下载一个Go语言环境.环境变量配置刚开始如下配置: GOROOT=/home/go/bin     go执行文件目录 ...

  8. Azure ARM (7) ARM Template - 使用Visual Studio编辑

    <Windows Azure Platform 系列文章目录> 之前介绍的ARM Template,都是使用文本编辑器来编辑JSON文件的. 文本讲介绍如何使用Visual Studio, ...

  9. Azure China (7) 使用WebMetrix将Web Site发布至Azure China

    <Windows Azure Platform 系列文章目录> 本章介绍的是,使用世纪互联运维的Azure云服务. 1.首先我们登陆Azure管理界面.http://manage.wind ...

  10. Theano入门神经网络(一)

    Theano是一个Python库,专门用于定义.优化.求值数学表达式,效率高,适用于多维数组.特别适合做机器学习.一般来说,使用时需要安装python和numpy. 首先回顾一下机器学习的东西,定义一 ...