vibe是一种像素级的前景检测算法,实时性高,内存占有率低,前景检测准确率高。只需要一帧就可以完成初始化。
一种背景提取算法至少要考虑三方面问题:
- 模型是什么,它如何工作的
- 模型如何初始化
- 模型如何随时间进行更新
下面从上述三点对Vibe算法进行描述:
模型是什么,它又是如何工作的
将背景提取看成是分类问题,根据所选颜色空间中的邻域对新像素值进行分类。
对每个像素建模,如图中像素,它的样本模型就是 .通过比较在半径为R的圆内,存在多少个它对应的样本像素点个数。
当圆内样本点个数达到预设的阈值(文章中设置为2)时,则可以判断新像素点为背景。
模型初始化
从一张图像进行初始化,克服了突然光照带来的影响。(环境发生改变,之前的背景模型可以丢弃,立刻开始新的模型初始化)
利用这个信息 neighboring pixels share a similar temporal distribution ,l利用用每个像素的空间邻域中的值填充像素模型。如下图:
可以对每个像素领域进行N次采用,获取设定的大小为N的初始化的样本值。
这种方式也存在缺点: he presence of a moving object in the first frame will introduce an artifact commonly called a ghost . 就是说,如果初始化帧存在移动物体(前景),后续的分割将存在"鬼影”。
the ghost is caused by the unfortunate initialization of pixel models with samples coming from the moving object
模型更新
参考:
1. https://blog.csdn.net/zhangping1987/article/details/51860654?depth_1- utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
2. ViBe: A universal background subtraction algorithm for video sequences