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. 洛谷P1006 传纸条【dp】

    题目:https://www.luogu.org/problemnew/show/P1006 题意: 给定一个m*n的矩阵,从(1,1)向下或向右走到(m,n)之后向上或向左走回(1,1),要求路径中 ...

  2. Luogu P4781【模板】拉格朗日插值

    洛谷传送门 板题-注意一下求多个数的乘积的逆元不要一个个快速幂求逆元,那样很慢,时间复杂度就是O(n2log)O(n^2log)O(n2log).直接先乘起来最后求一次逆元就行了.时间复杂度为O(nl ...

  3. MySql大小写配置

    新安装mysql5.7版本后,linux环境下默认是大小写敏感的.可以在客户端执行以下命令: SHOW VARIABLES LIKE '%case%' 可以看到 lower_case_table_na ...

  4. Verilog状态机使用技巧

    “没有什么难处是通过增加一个状态机不能够解决的,如果不行,那就俩..” 在实现某种功能时,若感觉该功能的各种可能状态间的切换太绕了,此时,增加一个状态机往往能使思路变得清晰,功能的实现也就简单明了了. ...

  5. eclipse运行内存超出

    问题分析: 1:可能是eclipse自身的运行内存不够 2:可能是java中的jre内存不够 修改方法: 1 改eclipse的运行内存 在eclipse.ini文件中 -startupplugins ...

  6. javascript数据结构之单链表

    下面是用javascript实现的单链表,但是在输出的时候insert方法中存在问题,chrome的console报错说不能读取空的属性,调试了很久都没有通过,先在这里存着,以后再来修改一下. //数 ...

  7. 想学习linux操作系统,于是选择了在win8 虚拟机VM player 里装了Linux版本Centos7

    第一次接触linux,第一次玩linux的命令行哈. 以下python使用的都是自带的python2.x版本 先新建一个简单的文件夹py_studydir 新建该文件夹下面的一个py文件 写入pyth ...

  8. 理清gcc、libc、libstdc++的关系

    当你在linux下写C/C++代码的时候,是不是会遇到许多编译链接的问题? 时不时报个glibc,gcc,g++等相关的错误? 很多时候都无从下手,而且比较混乱. 这也是编译链接过程中经常出现的问题. ...

  9. HDFS CheckPoint && SavePoint

    HDFS CheckPoint && SavePoint 标签(空格分隔): Hadoop HDFS CheckPoint HDFS 将文件系统的元数据信息存放在 fsimage 和一 ...

  10. solr安装记录

    [root@localhost bin]# ./solr start -force*** [WARN] *** Your open file limit is currently 1024.   It ...