背景建模(一) Evaluation of Background Subtraction Techniques
来源:互联网 发布:jsp获取mac 编辑:程序博客网 时间:2024/06/03 15:10
转自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
可以在这个网页上下载最新的数据库,以及一些评测的代码(注意是评测的代码,不是背景建模方法的代码)。
这篇文章对近年来背景建模的一些方法做了一些比较,比较的方法有:
本人感觉这篇文章之所以能够发在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.
背景建模(二)——以像素值为特征的方法(1)
混合高斯模型(GMM)当属这种方法中经典中的经典,文章题目:AdaptiveBackground Mixture Models for Real-Time Tracking发表在CVPR1999年,并在2009年的CVPR上获得Longuet-HigginsPrize,以google学术上显示他引率:3196次。
混合高斯模型使用K(基本为3到5个)个高斯模型来表征图像中各个像素点的特征,在新一帧图像获得后更新混合高斯模型,用当前图像中的每个像素点与混合高斯模型匹配,如果成功则判定该点为背景点,否则为前景点。每个高斯模型,他主要是有方差和均值两个参数决定,对均值和方差的学习,采取不同的学习机制,将直接影响到模型的稳定性、精确性和收敛性。由于我们是对运动目标的背景提取建模,因此需要对高斯模型中方差和均值两个参数实时更新。为提高模型的学习能力,改进方法对均值和方差的更新采用不同的学习率;为提高在繁忙的场景下,大而慢的运动目标的检测效果,引入权值均值的概念,建立背景图像并实时更新,然后结合权值、权值均值和背景图像对像素点进行前景和背景的分类。
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,则IHigh 增长1,若ILow > 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的计算:
公式为:
特征表示完之后就是建立背景模型,为K个。模型的更新公式为:
而比较两个直方图的相似程度则用直方图交集(histogramintersaction).
文章实验做得比较充分,但是比较试验很少只跟混合高斯模型(GMM)进行比较了.
另一篇比较好的以纹理为特征的背景建模的方法是CVPR2010的文章,题目:
ModelingPixel Process with Scale Invariant Local Patterns for BackgroundSubtraction in Complex Scenes
本文提出了一种新的纹理表示方法,scale invariant local ternarypattern(SILTP)
其次就是在背景建模更新的时候提出一种模式核密度估计的方法(pattern kerneldensity estimation)
文章的对比试验也很全,用三种方法在九段视频上进行了试验。
除了一些传统的背景建模的方法,为了发文章,还出现了其他比较好的文章。我列出几篇:
另有参考:http://hi.baidu.com/belial/item/8a9710630ce8c696c5d2491f
- 背景建模(一) Evaluation of Background Subtraction Techniques
- 背景建模(一) Evaluation of Background Subtraction Techniques
- 背景建模(一) Evaluation of Background Subtraction Techniques for Video Surveillance
- 背景建模一篇综述 Evaluation of Background Subtraction Techniques for Video Surveillance
- 背景差分法 Background Subtraction Methods
- Background Subtraction and Modeling 常见的目标检测中的背景建模方法漫谈
- Background Subtraction and Modeling 常见的目标检测中的背景建模方法漫谈
- Background Subtraction and Modeling 常见的目标检测中的背景建模方法漫谈
- Background Subtraction and Modeling 常见的目标检测中的背景建模方法漫谈
- Background Subtraction and Modeling 常见的目标检测中的背景建模方法漫谈
- OpenCV 中的背景提取(Background Subtraction)模型
- 背景差法(background subtraction)计算前景图
- 背景建模或前景检测(Background Generation And Foreground Detection) 一
- 背景建模或前景检测(Background Generation And Foreground Detection) 一
- 背景建模或前景检测(Background Generation And Foreground Detection) 一
- 背景建模或前景检测(Background Generation And Foreground Detection) 一
- 背景建模或前景检测(Background Generation And Foreground Detection) 一
- 应用于背景减除法的非参数模型(Non-parametric Model for Background Subtraction)
- [leetcode] Construct Binary Tree from Preorder and Inorder Traversal
- 考研复试机试题(2010)
- OpenCV——HoG特征
- [leetcode] Construct Binary Tree from Inorder and Postorder Traversal
- 浅谈鼠标滚轮事件
- 背景建模(一) Evaluation of Background Subtraction Techniques
- Swig将C++编译lib项目转换为C#可引用的dll[勘误后]
- 番茄学习方法
- 《Python网络编程基础》笔记(一)----底层网络
- C++primer读书笔记8-重载操作符
- WIN7x64+VS2010+OpenCV2.4.9配置笔记
- 《把时间当作朋友》经典语句
- java 学习笔记 读取配置文件的三种方式
- C++primer读书笔记9-转换与类类型