背景建模(一) Evaluation of Background Subtraction Techniques

转自http://blog.sina.com.cn/s/blog_78fd98af0101h9bf.html

以前做过一些关于背景建模,运动目标检测的工作,打算进行一下小结,那么就先从这篇CVPR2011这篇评测的文章说起吧。Evaluationof Background Subtraction Techniques for Video Surveillance(PDF)

Sebastian Brutzer, Benjamin Hoeferlin (University of Stuttgart),Gunther Heidemann (University of Stuttgart)

这篇文章的项目主页:http://www.vis.uni-stuttgart.de/index.php?id=sabs

可以在这个网页上下载最新的数据库,以及一些评测的代码(注意是评测的代码,不是背景建模方法的代码)。

这篇文章对近年来背景建模的一些方法做了一些比较,比较的方法有:


背景建模(一) Evaluation of Background Subtraction Techniques_第1张图片


本人感觉这篇文章之所以能够发在CVPR这种高级别的会议上,主要有一下原因:

1.作者公开发布了一个数据,而且这个数据库是合成,所以比较方便用来量化评价其他方法;

2.表面上工作量很大,之所以说表面上工作量很大,作者虽然比较了9中方法,但是这些方法在网上几乎都有源代码(集成在opencv中的),还有一些是已经公开了可执行程序的了。而作者的工作量不是很大。我们可以看Features那一列,基本上都是color为特征,而作者忽略了纹理特征的背景建模。纹理特征奥鲁大学做LBP的人在06年就发表了用纹理做背景建模的文章,而且是发表在PAMI上面的,作者不能不知道吧,试问他比较的这九中方法那种发表在PAMI上了。再说2010CVPR上面有一篇Stan Li的文章也是用纹理做,两篇文章效果都很好。

也不知道作者为什么没有比较......以后我们会介绍这两个经典的方法的;

3.分析的还可以,貌似所有cvpr的文章分析的都不错。


作者分析了背景建模有以下的难点:

  • Gradual illumination changes: It is desirable thatbackground model adapts to gradual changes of the appearance of theenvironment. For example in outdoor settings, the light intensitytypically varies during day.
  • Sudden illumination changes: Sudden once-off changes arenot covered by the background model. They occur for example withsudden switch of light, strongly affect the appearance ofbackground, and cause false positive detections.
  • Dynamic background: Some parts of the scenery may containmovement, but should be regarded as background, according to theirrelevance. Such movement can be periodical or irregular (e.g.,traffic lights, waving trees).
  • Camouflage: Intentionally or not, some objects may poorlydiffer from the appearance of background, making correctclassification difficult. This is especially important insurveillance applications.
  • Shadows: Shadows cast by foreground objects oftencomplicate further processing steps subsequent to backgroundsubtraction. Overlapping shadows of foreground regions for examplehinder their separation and classification. Hence, it is preferableto ignore these irrelevant regions.
  • Bootstrapping: If initialization data which is free fromforeground objects is not available, the background model has to beinitialized using a bootstrapping strategy.
  • Video noise: Video signal is generally superimposed bynoise. Background subtraction approaches for video surveillancehave to cope with such degraded signals affected by different typesof noise, such as sensor noise or compression artifacts.

评测的结果:
背景建模(一) Evaluation of Background Subtraction Techniques_第2张图片

值得注意的是,Barnich 方法速度性能都很不错,他的文章中有伪代码,作者的主页上提供可执行程序,并且可以集成到自己的程序中。

背景建模(二)——以像素值为特征的方法(1)

混合高斯模型(GMM)当属这种方法中经典中的经典,文章题目:AdaptiveBackground Mixture Models for Real-Time Tracking发表在CVPR1999年,并在2009年的CVPR上获得Longuet-HigginsPrize,以google学术上显示他引率:3196次。

混合高斯模型使用K(基本为3到5个)个高斯模型来表征图像中各个像素点的特征,在新一帧图像获得后更新混合高斯模型,用当前图像中的每个像素点与混合高斯模型匹配,如果成功则判定该点为背景点,否则为前景点。每个高斯模型,他主要是有方差和均值两个参数决定,对均值和方差的学习,采取不同的学习机制,将直接影响到模型的稳定性、精确性和收敛性。由于我们是对运动目标的背景提取建模,因此需要对高斯模型中方差和均值两个参数实时更新。为提高模型的学习能力,改进方法对均值和方差的更新采用不同的学习率;为提高在繁忙的场景下,大而慢的运动目标的检测效果,引入权值均值的概念,建立背景图像并实时更新,然后结合权值、权值均值和背景图像对像素点进行前景和背景的分类。

不过还有几篇比较经典是在GMM上的改进:
1.An Improved Adaptive Background Mixture Model forRealtime Tracking with Shadow Detection其实OpenCV实现的是这篇文章。他的创新点就是用EM初始化每个高斯模型的参数;
2.Effective Gaussian mixture learning for video backgroundsubtraction 这篇文章的创新点是对混合高斯模型参数更新的方式
3.Improved Adaptive Gaussian Mixture Model for BackgroundSubtraction这篇文章的创新点是:把混合高斯模型数量K变成自适应的了,而不像以前是一个固定值(一般3-5个)。
如果你还想了解更多关于混合高斯的改进可以看一篇综述:Background Modeling using Mixture ofGaussians for Foreground Detection A Survey读完这篇文章你会发现GMM挖了一个多大坑呀!

背景建模(三)——以像素值为特征的方法(2)

以像素值为特征的背景建模方法还有一类是codebook的方法,文章是BackgroundModeling and Subtraction by CodebookConstruction,这篇文章是马里兰大学发表的,而马里兰大学最大的特点是不公开代码,每年灌水无数但是无论哪个课题组都不公开代码,我真是怀疑他们是商量好的了~~~

之后还有一些文章是在这篇codebook上面的改进,是国立台湾科技大学 Jing-Ming Guo做的,文章题目:1) HierarchicalMethod for Foreground Detection Using Codebook Model,2)CascadedBackground Subtraction Using Block-Based and Pixel-Based Codebooks3)Hierarchical Method for Foreground Detection Using CodebookModel这三篇文章是同一个写的,第一篇是期刊,第二和第三篇是ICPR2010和ICIP2010,但是这三篇非常非常非常相似,不过后两篇在作者主页已经找不到了,可以到google学术上去下载。
下面介绍一下传统codebook的方法:http://hi.baidu.com/lin65505578/blog/item/a03ae693c1fa6096a877a437.html
CodeBook算法的基本思想是得到每个像素的时间序列模型。这种模型能很好地处理时间起伏,缺点是需要消耗大量的内存。CodeBook算法为当前图像的每一个像素建立一个CodeBook(CB)结构,每个CodeBook结构又由多个CodeWord(CW)组成。CB和CW的形式如下:

CB={CW1,CW2,…CWn,t}

CW={lHigh,lLow,max,min,t_last,stale}

其中n为一个CB中所包含的CW的数目,当n太小时,退化为简单背景,当n较大时可以对复杂背景进行建模;t为CB更新的次数。CW是一个6元组,其中IHigh和ILow作为更新时的学习上下界,max和min记录当前像素的最大值和最小值。上次更新的时间t_last和陈旧时间stale(记录该CW多久未被访问)用来删除很少使用的CodeWord。

假设当前训练图像I中某一像素为I(x,y),该像素的CB的更新算法如下,另外记背景阈值的增长判定阈值为Bounds:

(1) CB的访问次数加1;

(2) 遍历CB中的每个CW,如果存在一个CW中的IHigh,ILow满足ILow≤I(x,y)≤IHigh,则转(4);

(3) 创建一个新的码字CWnew加入到CB中, CWnew的max与min都赋值为I(x,y),IHigh<- I(x,y) + Bounds,ILow <- I(x,y) –Bounds,并且转(6);

(4) 更新该码字的t_last,若当前像素值I(x,y)大于该码字的max,则max <-I(x,y),若I(x,y)小于该码字的min,则min <- I(x,y);

(5) 更新该码字的学习上下界,以增加背景模型对于复杂背景的适应能力,具体做法是:若IHigh I(x,y) –Bounds,则ILow减少1;

(6) 更新CB中每个CW的stale。

使用已建立好的CB进行运动目标检测的方法很简单,记判断前景的范围上下界为minMod和maxMod,对于当前待检测图像上的某一像素I(x,y),遍历它对应像素背景模型CB中的每一个码字CW,若存在一个CW,使得I(x,y)< max + maxMod并且I(x,y) > min –minMod,则I(x,y)被判断为背景,否则被判断为前景。

在实际使用CodeBook进行运动检测时,除了要隔一定的时间对CB进行更新的同时,需要对CB进行一个时间滤波,目的是去除很少被访问到的CW,其方法是访问每个CW的stale,若stale大于一个阈值(通常设置为总更新次数的一半),移除该CW。

综上所述,CodeBook算法检测运动目标的流程如下:

(1) 选择一帧到多帧使用更新算法建立CodeBook背景模型;

(2) 按上面所述方法检测前景(运动目标);

(3) 间隔一定时间使用更新算法更新CodeBook模型,并对CodeBook进行时间滤波;

(4) 若检测继续,转(2),否则结束。

背景建模(四)——以纹理为特征的方法
前面两篇博文介绍了以像素值为特征的背景建模方法:以像素值为特征的方法(2)和以像素值为特征的方法(1)


下面介绍一下以纹理为特征的方法,比较出名的就是用LBP和SILTP为特征做的。

以LBP为特征的文章:A texture-based method for modelingthe background and detecting moving objects

这篇文章发表在06年TPAMI上面,还是奥鲁大学那帮人做的,他们已经把LBP用到极致了,LBP在计算机视觉的各个领域都得到了应用。

首先进行LBP的计算:

背景建模(一) Evaluation of Background Subtraction Techniques_第3张图片公式为:

转:背景建模总结

特征表示完之后就是建立背景模型,为K个。模型的更新公式为:

背景建模(一) Evaluation of Background Subtraction Techniques_第4张图片

而比较两个直方图的相似程度则用直方图交集(histogramintersaction).

文章实验做得比较充分,但是比较试验很少只跟混合高斯模型(GMM)进行比较了.


另一篇比较好的以纹理为特征的背景建模的方法是CVPR2010的文章,题目:

ModelingPixel Process with Scale Invariant Local Patterns for BackgroundSubtraction in Complex Scenes

本文提出了一种新的纹理表示方法,scale invariant local ternarypattern(SILTP)

其次就是在背景建模更新的时候提出一种模式核密度估计的方法(pattern kerneldensity estimation)

文章的对比试验也很全,用三种方法在九段视频上进行了试验。

背景建模(五)——其他方法
除了一些传统的背景建模的方法,为了发文章,还出现了其他比较好的文章。我列出几篇:
Making Background Subtraction Robust to Sudden Illumination Chages(这篇文章有代码)
Compressive Sensing for Background Subtraction
Learning a sparse corner-based representation for time-varyingbackground modeling
Independent Component Analysis Based Background Subtraction forIndoor Surveillance

不过当我看到Independent Component Analysis Based Background Subtractionfor IndoorSurveillance这篇文章的时候有一种眼前一亮的感觉。文章既简单又巧妙。发表在09年的TIP上。
这篇文章是用Independent ComponentAnalysis(独立成分分析)做的,把前景和背景看成两个独立的信号,然后在观测图片分解。

背景建模(一) Evaluation of Background Subtraction Techniques_第5张图片

(a)和(b)是两个观测图片,其中(a)为参考背景,(c)和(d)是分解后的前景和背景,(e)是二值化后的前景图片。
其实这篇文章的方法相当于一种自适应的背景差分法。


另有参考:http://hi.baidu.com/belial/item/8a9710630ce8c696c5d2491f

你可能感兴趣的:(背景建模(一) Evaluation of Background Subtraction Techniques)