申明,本文非笔者原创,原文转载自:http://www.cnblogs.com/dwdxdy/p/3527040.html
Pixel-Based Adaptive Segmenter(PBAS)检测算法,是基于像素的无参数模型,该算法结合了SACON和VIBE两个算法的优势,并在这两个算法的基础上改进而来,SACON和VIBE算法的介绍,请参考:
【背景建模】SACON http://www.cnblogs.com/dwdxdy/p/3530862.html
【背景建模】VIBE http://www.cnblogs.com/dwdxdy/p/3527891.html
创新点:
1).引入控制论的思想,使前景判断阈值和背景模型更新率自适应变化,随背景的复杂程度变化。
2).引入背景复杂程度的度量方法,根据背景复杂程度调整前景判断阈值和背景模型更新率。
基本框架:
R(xi)为自适应的阈值,T(xi)为自适应的更新率,dmin(xi)为背景复杂度的度量。
主要步骤:
1).建立背景模型
PBAS算法采用类似SACON算法背景建模方法,收集前N帧像素以及梯度幅值作为背景模型;
2).前景检测
其检测过程与VIBE算法类似,计算样本集合中满足匹配条件的样本个数,若小于阈值#min,则表示为背景,不同之处在于不同像素的判断阈值R(xi)不同;
B(xi)是背景模型,表示像素点xi的样本集合,F(xi)是前景图像,表示像素点xi的判断结果。
3).背景模型更新
其更新过程与VIBE算法类似,随机选择需要被替换的样本,随机选择像素邻域的样本集合更新,不同之处在于更新率不同,VIBE是固定的更新率,而PBAS的更新率是自适应的,并且更新邻域样本集合是用邻域的新像素值进行更新,而不是用新像素值本身。
4).背景复杂度计算
当新像素值与样本集合的最小距离小于阈值时,该说明该像素可能为背景,此时最小距离可以描述背景的复杂度,距离越大,背景越复杂。因而,采用样本集合中样本更新时的最小距离的平均值作为背景复杂度的度量。
5).自适应调整判断阈值
背景越复杂,其判断阈值应该越大,保证背景像素不被误判为前景,背景越简单,微小的变化都是由前景引起,判断阈值应该越小,调整策略如下:
Rinc/dec是阈值的变化量,Rscale用于控制背景复杂度对判断阈值的调整。
6).自适应调整更新率
背景越复杂,其出现错误判断的概率越大,对应的背景更新应该越少,减少错误判断对背景模型的影响,其更新策略如下:
F(xi)表示前景检测结果,Tinc和Tdec分别表示更新率增加、减小的幅度,Tlower和Tupper分别表示更新率上下限。
算法实现注意事项:
1).参数的设置,可以根据实际的应用调整参数的大小,一般的参数设置如下:
N = 35, #min = 2, Rinc/dec = 0.05, Rlower = 18, Rscale = 5, Tdec = 0.05, Tinc = 1, Tlower = 2, Tupper = 200
2).基于像素的前景判断、背景复杂度计算、判断阈值和更新率的更新计算,计算复杂度,比较耗时,建议采用GPU通用计算技术实现。
参考资料:
Background Segmentation with Feedback: The Pixel-Based Adaptive Segmenter
http://www.mmk.ei.tum.de/~hom/pbas