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. 4、docker镜像:花卷结构、commit镜像

    1.是什么 docker images 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码.运行时.库.环境变量和配置文件. ...

  2. 响应json数据之发送ajax的请求

    一.前端异步请求代码: <span style="font-size:14px;">$.ajax ({ type: "POST", //请求的方式 ...

  3. Ubuntu操作及Linux基础知识

    part 1: Ubuntu操作基础 1.调整字体的大小 调大:crtl+shift+“+”  调小:crtl+“-” 2.不要把虚拟机全屏的时候截屏,要不然会认为是Linux系统截屏而非Window ...

  4. ila核数据输出

    在Tcl Console中输入以下命令(其中dataxxxx表示文件名,hw_ila_2则为ila窗口名): write_hw_ila_data -csv_file -force dataxxxx [ ...

  5. docker学习---docker基础知识

    目录 docker的基础 1.安装docker 2.使用镜像 3.镜像迁移|导入和导出 4.docker Hub介绍 5.搭建私有镜像仓库 5.1.docker开源的镜像分发工具--docker Re ...

  6. qt install (1)

    直接在命令行安装 sudo apt-get install qt5-default qtcreator 命令行安装的卸载 sudo apt-get remove qt5-default qtcreat ...

  7. windows内核情景分析之中断处理(毛德操)[转]

    中断处理 每个cpu有一张中断表,简称IDT. IDT的整体布局:[异常->空白->5系->硬](推荐采用7字口诀的方式重点记忆) 异常:前20个表项存放着各个异常的描述符(IDT表 ...

  8. HDU–5988-Coding Contest(最小费用最大流变形)

    Coding Contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)To ...

  9. Docker容器常用命令汇总

    Docker常用命令总结如下: # 查看docker详细信息 docker info # 获取当前节点所有容器 docker ps -a # 管理容器生命周期 docker [start|stop|r ...

  10. Fiddler主界面图标简单说明

    Fiddler主界面图标简单说明: 名称 含义 # 抓取HTTP Request的顺序,从1开始,以此递增 Result HTTP状态码 Protocol 请求使用的协议,如HTTP/HTTPS/FT ...