SACON(SAmple CONsensus)算法是基于样本一致性的运动目标检测算法。该算法通过对每个像素进行样本一致性判断来判定像素是否为背景。

算法框架图

  

  由上图可知,该算法主要分为四个主要部分,分别是邻域差分、SACON算法核心处理、空洞填充后处理、TOM(Time Out Map),其中TOM(Time Out Map)主要用于背景模型更新,其他部分属于前景目标检测。

背景模型建立

  SACON算法建立背景模型的方法是直接取视频序列的前N帧作为背景模型

  对于每个像素而言,其背景模型可以表示为:C(c1,c2,...,cN),对于彩色图像,ci=(r,g,b),对于灰度图像,则对应于灰度值。

前景目标检测

1.邻域帧间差分

  为了减少计算量,加快计算速度,采用邻域帧间差分法提取可能的运动像素。

2.SACON算法核心

  对于新像素,将其与对应的背景模型比较,判断新像素是否满足背景模型样本的一致性。判定方法如下:

  

  其中,两个公式分别计算新像素与背景模型的样本是否距离相近和统计距离相近的样本数目,当距离相近的样本数目大于阈值时,则判定新像素为背景,Bt(m) = 1。

  公式涉及的阈值主要有Tr和Tn当背景模型的样本集合的数目N越大,距离阈值Tr越大,则近似样本数目阈值Tn越大,因而Tn正比于N和Tr,Tn = a * N * Tr,a为比例因子。

3.后处理

  后处理主要包括两个操作:阴影去除和空洞填充。

  阴影去除:采用进一步的验证规则,去除阴影区域,验证规则如下:

  

  其中,{r,g,I}是归一化的色彩空间,r = R/(R+G+B), g = G/(R+G+B),I = (R+G+B)/3,具体细节请参考论文资料。

  空洞填充:对于检测到的前景,采用连通性分析,填充前景区域的内部空洞,主要通过形态学滤波实现。

背景模型更新

  考虑到背景的移出或前景的停止,SACON算法采用TOM(Time of Map)进行处理,将背景的移出和运动目标的停止而引起的变化很快的融入到背景中,具体的更新方法分为Pixel-level和Blob-level。

1.Pixel-level

  

  该方法主要统计像素m连续分为前景的次数,TOMt(m)。

  如果TOMt(m)的值超过一个阈值,则更新像素m对应的背景模型。

2.Blob-level

  

  如果一个目标(a blob)处于静止状态,则该目标所包含的所有像素的TOM都加1;

  如果不处于静止状态,则该目标所包含的所有像素的TOM都置为0;

  如果目标的TOM值大于阈值时,则该目标所包含的所有像素更新为背景像素。

  Blob-level的更新方法,主要是弥补Pixel-level的不足,当一个目标包含运动的部分和不运动的部分,不运动的部分会持续被判定会前景,从而会被Pixel-level更新为背景;而运动的部分会时而被判定为前景,时而判定为背景,不会被Pixel-level更新为背景;最终的更新后结果是一个目标被分割,部分被检测为前景,部分被检测为背景,不合理。

  Blob-level通过整体判断目标是否处于运动或静止,从而整体更新目标,保证了目标的完整性。

  

  如上图所示,描述一个人走入房间,坐下并打电话,打电话过程中,人大部分区域处于静止状态,只有部分区域处于轻微运动状态。

  (a)是原始图片,(b)是利用Pixel-level更新方法后的检测结果,(c)是结合Pixel-level和Blob-level更新方法的检测结果。

  由显示结果可以看出,Pixel-level将处于静止状态的区域更新为背景,而Blob-level方法判定人整体处于运动状态,因而人未被更新为背景。

注意:

1.背景更新时,背景模型样本集合的替换策略未说明,是先进先出,还是随机替换,每次替换的数目也未说明。

2.如何判定一个目标(a blob)是处于运动状态,还是处于静止状态,文中只是提到可以利用目标的中心和像素的数目判定,但具体的策略也未说明。

参考资料:

http://blog.csdn.net/kezunhai/article/details/9500637

http://www.dotblogs.com.tw/dragon229/archive/2012/01/13/65615.aspx

Background Subtraction Based on a Robust Consensus Method

SACON: A Consensus Based Model for Background Subtraction

  

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

  1. 背景建模SACON

    http://www.cnblogs.com/dwdxdy/p/3530862.html

  2. 【背景建模】PBAS

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

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

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

  4. ViBe(Visual Background extractor)背景建模或前景检测

    ViBe算法:ViBe - a powerful technique for background detection and subtraction in video sequences 算法官网: ...

  5. 目标检测之vibe---ViBe(Visual Background extractor)背景建模或前景检测

    ViBe算法:ViBe - a powerful technique for background detection and subtraction in video sequences 算法官网: ...

  6. 【计算机视觉】背景建模之PBAS

    本文是根据M. Hofmann等人在2012年的IEEE Workshop on Change Detection上发表的"Background Segmentation with Feed ...

  7. 【背景建模】SOBS

    SOBS(self-Organizing through artificial neural networks)是一种基于自组织神经网络的背景差分算法,主要是借鉴神经网络的特性,一个网络输入节点,对应 ...

  8. 【背景建模】PbModel

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

  9. 【背景建模】VIBE

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

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

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

随机推荐

  1. Web Workers 的基本信息

    问题:JavaScript 并行性 要将有趣的应用(例如从侧重服务器端的实施)移植到客户端 JavaScript,存在很多制约瓶颈.其中包括浏览器兼容性.静态类型.可访问性和性能.幸运的是,随着浏览器 ...

  2. 【转】Windows Phone在隔离存储里存取图片文件

    一共两个页面,第一个为MainPage.xaml,代码如下: <!--ContentPanel - place additional content here--> <Grid x: ...

  3. 如何用Python寻找重复文件并删除

    在实际生活中,经常会有文件重复的困扰,即同一个文件可能既在A目录中,又在B目录中,更可恶的是,即便是同一个文件,文件名可能还不一样.在文件较少的情况下,该类情况还比较容易处理,最不济就是one by ...

  4. sizzle源码分析 (4)sizzle 技术总结及值得我们学习的地方

    分析sizzle源码并不是为了去钻牛角尖,而是去了解它的思想,学习下期中一些技术的运用. 1,sizzle中的正则表达式jquery源码中充斥着各种正则表达式,能否看懂其源码的关键之一就是对正则表达式 ...

  5. ButterKnife--View注入框架

    俗话说,不会偷懒的程序员不是好程序员!作为一名Android的开发者,我们已经厌烦了经常写大量的findViewById以及setOnClickListener代码.而ButterKnife是一个专注 ...

  6. 通过Nginx部署Django(基于ubuntu)

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...

  7. 如何解决Android SDK中离线文档打开慢的问题

    原文:http://blog.csdn.net/hansel/article/details/39268511 Android SDK中的离线文档虽然都是本地文件,但是有很多Javascript, C ...

  8. Windows Azure Cloud Service (38) 微软IaaS与PaaS比较

    <Windows Azure Platform 系列文章目录> 最近一直想总结Azure IaaS和PaaS的区别与比较,写个博文详细说明一下.建议读者在阅读之前,先熟悉微软PaaS和Ia ...

  9. SQL--子查询

    什么是子查询 子查询:顾名思义,在一个查询中,有另外一个查询,这个查询就叫做,主查询的子查询. [把一个查询的结果,在另一个查询中使用就叫子查询.(将一个查询语句,作为一个结果集,供其他SQL语句使用 ...

  10. 在IIS服务器上部署svg/woff/woff2字体

    在url没错的前提下,字体文件报404错误,如.woff,.woff2 出错原因: IIS不认SVG,WOFF/WOFF2这几个文件类型 解决方案: 在IIS服务器上部署svg/woff/woff2字 ...