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. 基于DCT系数的实时监控中运动目标检测

    本文的主要内容来自2009 Advanced Video and Signal Based Surveillance会议的一篇论文“Real-Time Moving Object Detection ...

  2. 【计算机视觉】基于局部二值相似性模式(LBSP)的运动目标检测算法

    基于局部二值相似性模式(LBSP)的运动目标检测算法 kezunhai@gmail.com http://blog.csdn.net/kezunhai 本文根据论文:Improving backgro ...

  3. 【计算机视觉】基于Shading Model(对光照变化一定不变性)的运动目标检测算法

    光照模型(Shading Model)在很多论文中得到了广泛的应用,如robust and illumination invariant change detection based on linea ...

  4. 每天进步一点点------Sobel算子(3)基于彩色图像边缘差分的运动目标检测算法

    摘  要: 针对目前常用的运动目标提取易受到噪声影响.易出现阴影和误检漏检等情况,提出了一种基于Sobel算子的彩色边缘图像检测和帧差分相结合的检测方法.首先用Sobel算子提取视频流中连续4帧图像的 ...

  5. 基于Shading Model(对光照变化一定不变性)的运动目标检测算法

    光照模型(Shading Model)在很多论文中得到了广泛的应用,如robust and illumination invariant change detection based on linea ...

  6. 基于html5页面滚动背景图片动画效果

    基于html5页面滚动背景图片动画效果是一款带索引按钮的页面滚动动画特效代码.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="fullpage&q ...

  7. CVE-2010-2883:基于样本分析 PDF SING表字符溢出漏洞

    0x01 前言 CVE-2010-2883 漏洞的成因是由于 CoolType.dll 这个动态链接库在解析 SING 表中的 uniqueName 这个项时没有对长度进行限制,导致使用 strcat ...

  8. 基于Adaboost的人脸检测算法

    AdaBoost算法是一种自适应的Boosting算法,基本思想是选取若干弱分类器,组合成强分类器.根据人脸的灰度分布特征,AdaBoost选用了Haar特征[38].AdaBoost分类器的构造过程 ...

  9. segMatch:基于3D点云分割的回环检测

    该论文的地址是:https://arxiv.org/pdf/1609.07720.pdf segmatch是一个提供车辆的回环检测的技术,使用提取和匹配分割的三维激光点云技术.分割的例子可以在下面的图 ...

随机推荐

  1. springboot整合mybatis-plus逆向工程

    MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生.官方文档 代码生成器 AutoGenerator 是 ...

  2. 10 masterless、高可用、salt执行模块开发、sydic架构

    1.salt无master 官方文档: http://docs.saltstack.cn/topics/tutorials/quickstart.html 1.使用场景 1.在项目中使用salt,写一 ...

  3. 宽字符(UNICODE)字符集

    推荐使用宽字符(UNICODE)字符集,严格使用宽字符集的函数和定义.具体参考https://blog.csdn.net/qq_22642239/article/details/84822485

  4. linux command pushd popd

    Linux command pushd popd [Purpose]        Learning linux command  pushd popd   [Eevironment]        ...

  5. C# 父类代码动态转换子类

    百度上搜索C# 如何父类运行时转换成子类,没有得到相应答案,突然想起C# 有dynamic类型试试看结果成功了... 以后编写代码类似这样的代码 就可以删减掉了 if (en.type == EMap ...

  6. PHP开发框架CI——学习小记

    之前做后端开发的时候,因为都是很小的功能或项目,所以基本都是手写原生php.不过这样的开发效率在面对稍大一些的项目的时候是比较低的.因此花时间学习一下php相关框架CI的使用. MVC架构 在学习CI ...

  7. Light Switching(SPOJ LITE)—— 线段树成段更新异或值

    题目连接:http://www.spoj.com/problems/LITE/en/. 题意:有若干个灯泡,每次对一段操作,这一段原先是亮的,就关了:原先是关着的,就打开.询问某一段的打开的灯泡的个数 ...

  8. hadoop HA+Federation(高可用联邦)搭建配置(二)

    hadoop HA+Federation(高可用联邦)搭建配置(二) 标签(空格分隔): hadoop core-site.xml <?xml version="1.0" e ...

  9. 查看window用户登录日志

    查看window用户登录日志 能追踪Windows系统登录时间的三种方法 Windows登录日志详解 事件ID=4798应该对应的是锁定操作(Win+L)

  10. Mac 下python3 [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 解决方法

    原文:http://blog.yuccn.net/archives/625.html python3.6下使用urllib 的request进行url 请求时候,如果请求的是https,请求可以会出现 ...