SOBS(self-Organizing through artificial neural networks)是一种基于自组织神经网络的背景差分算法,主要是借鉴神经网络的特性,一个网络输入节点,对应多个中间节点,将背景模型中的一个像素映射到模型的多个位置,并采用了像素邻域空间相关的更新方式,使邻域的信息进一步融入模型中,使得算法具备邻域空间相关性。算法
算法伪代码网络
背景模型创建优化
选择背景模型的映射大小,通常选取n = 3,即一个像素点对应于模型中的3*3块,背景模型相比于原始图像扩大了9倍。3d
选择HSV颜色空间,选取第一帧数据做为背景模型的初始化数据。如上图示例所示,ai(h,s,v) = a(h,s,v)。blog
前景目标检测ci
计算当前像素点与其对应的模型块里像素点的最小距离,距离计算方法以下:it
若最小距离小于阈值,则断定为背景,更新背景模型;io
不然,进行阴影判断,阴影判断方法以下:bfc
若断定为阴影,则只标识为背景,不更新背景模型。神经网络
背景模型更新
若像素断定为背景,且不属于阴影,则按必定的权值更新背景模型中最佳匹配像素周围的像素点,更新公式以下:
其中,a(t)是常数,wi,j是背景建模时,背景模型中每一个像素对应的权重,初始为高斯权重,背景模型中最匹配像素的位置为(x',y')。
如图所示,假如f与f1最匹配,则黑色框的背景像素都将更新,即(b9,c7,c8,e3,f1,f2,e6,f4,f5)。
注意:算法中的每一个像素都要与背景模型中的n*n个像素背景求最小值,在必定程度上影响了处理速度。
算法改进
1.背景模型更新方法优化
SOBS算法中,背景模型更新时,只是以是否存在最佳匹配的背景像素点为更新准则,没有利用最佳匹配像素点的最小距离值,具体更新方法以下:
由上述公式所示,有两种更新方法可选择,最小距离d(cm,pt)越小,对应的更新因子ai,j(t)值越大,当前像素点对背景模型的贡献度越大。
2.背景断定准则优化
SOBS算法中,背景断定准则是背景模型中是否存在最小距离小于阈值的像素。
这种断定准则存在的问题是如有噪声的影响,致使像素对应模型块中恰好存在惟一一个像素的距离小于阈值,此时,会把噪声点断定为背景,产生误检。
优化方法是引入知足匹配的像素数目做为断定准则,优化背景断定过程,具体方法是以最佳匹配像素表示背景,并计算与之对应的原始像素周围知足匹配的像素点数目(反向计算匹配过程),计算方法以下:
参考资料:
A Self-Organizing Approach to Background Subtraction for Visual Surveillance Applications
Multivalued Background/Foreground Separation for Moving Object Detection
The SOBS algorithm: what are the limits?