ViBe背景建模算法简介和代码分析
2014-11-21 12:27
232 查看
ViBe是近几年比较火的一种背景建模算法,该算法主要有以下四个特点:
第一,以历史数据作为背景模型:每个位置的背景模型实质是历史像素值。
第二,随机性:背景模型的初始化和更新方式依概率进行。
第三,邻域操作:当前位置的背景模型初始化时,数据采集自邻域像素;当前位置的背景模型进行更新时,会扩散到邻域。
第四,纯整型运算,无浮点数运算,运算效率高。
该算法的流程也特别简单:
初始化阶段:用一帧画面进行背景建模,每个位置的背景模型从该位置的邻域中进行多次随机采样得到。
匹配和更新阶段:计算每个位置的像素和该位置的背景模型样本值的距离,如果距离小于某个阈值的背景模型样本数大于某个阈值,则认为当前位置为背景,否则为前景。如果当前位置为前景,则以一定的概率更新该位置的某个背景模型样本值,并且以一定的概率更新某个邻域的背景模型的某个样本值。
具体的过程在原作者发表在IEEE Transactions on Image Processing中的论文的附录中已有很详细的说明,简单易懂,这里不再重复。
ViBe的代码实现起来也比较简单。在CSDN上也有不少博主给出了源代码,我注意到好几个版本的代码在效率方面都有明显的不足。最主要的问题在于访问读入图片的像素和背景模型样本值的方法上。有的作者用cv::Mat::at()函数遍历图像中的每个像素,造成处理时间较长,体现不出ViBe算法的时间优势。下面给出我的一个实现代码,并且在代码中给出了比较详细的分析注释。
这个版本的代码完全采用指针操作访问读入图片的像素和背景模型样本值,保证了效率。我的台式机的CPU是i3-2120,开发环境是vs2010,OpenCV是2.4.5的32位版,下面的三个文件编译好,处理320x240像素的彩色图和灰度图,在release模式下,一帧的运行时间基本都在5毫秒以下。
另外,我在实现随机数时,既没有采用C标准库中的函数,也没有采用OpenCV的随机数,而是用时钟周期计数自累加取模操作实现。经过我的实验发现,采用真正的随机数或者这里给出的实现方式,得到的前景检测结果没有明显的差别。
第一,以历史数据作为背景模型:每个位置的背景模型实质是历史像素值。
第二,随机性:背景模型的初始化和更新方式依概率进行。
第三,邻域操作:当前位置的背景模型初始化时,数据采集自邻域像素;当前位置的背景模型进行更新时,会扩散到邻域。
第四,纯整型运算,无浮点数运算,运算效率高。
该算法的流程也特别简单:
初始化阶段:用一帧画面进行背景建模,每个位置的背景模型从该位置的邻域中进行多次随机采样得到。
匹配和更新阶段:计算每个位置的像素和该位置的背景模型样本值的距离,如果距离小于某个阈值的背景模型样本数大于某个阈值,则认为当前位置为背景,否则为前景。如果当前位置为前景,则以一定的概率更新该位置的某个背景模型样本值,并且以一定的概率更新某个邻域的背景模型的某个样本值。
具体的过程在原作者发表在IEEE Transactions on Image Processing中的论文的附录中已有很详细的说明,简单易懂,这里不再重复。
ViBe的代码实现起来也比较简单。在CSDN上也有不少博主给出了源代码,我注意到好几个版本的代码在效率方面都有明显的不足。最主要的问题在于访问读入图片的像素和背景模型样本值的方法上。有的作者用cv::Mat::at()函数遍历图像中的每个像素,造成处理时间较长,体现不出ViBe算法的时间优势。下面给出我的一个实现代码,并且在代码中给出了比较详细的分析注释。
这个版本的代码完全采用指针操作访问读入图片的像素和背景模型样本值,保证了效率。我的台式机的CPU是i3-2120,开发环境是vs2010,OpenCV是2.4.5的32位版,下面的三个文件编译好,处理320x240像素的彩色图和灰度图,在release模式下,一帧的运行时间基本都在5毫秒以下。
另外,我在实现随机数时,既没有采用C标准库中的函数,也没有采用OpenCV的随机数,而是用时钟周期计数自累加取模操作实现。经过我的实验发现,采用真正的随机数或者这里给出的实现方式,得到的前景检测结果没有明显的差别。
相关文章推荐
- 【计算机视觉】背景建模--Vibe 算法优缺点分析
- 背景建模--Vibe 算法优缺点分析
- 背景建模--Vibe 算法优缺点分析
- 背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战
- 背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战
- 背景建模--Vibe 算法改进
- VIBE背景建模算法之C语言实现
- ViBe背景建模算法
- 背景建模与前景检测算法之ViBe
- 背景建模--Vibe 算法改进
- 背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战
- 背景建模技术(二):BgsLibrary的框架、背景建模的37种算法性能分析、背景建模技术的挑战
- 背景建模(二)ViBe背景建模算法
- 视频分析算法的原理简介
- 将用于视频运动检测的单高斯背景建模算法移植于YUV颜色空间
- (转)背景建模算法(一)-------颜色背景模型
- Lucene 4.0 原理与代码分析 - 相似度评分算法之向量空间模型(VSM)
- 基于LBP的背景建模算法
- KMP算法之NEXT数组代码原理分析 - 数据结构和算法38
- 高斯背景建模程序分析(OpenCV)--转自 yimi (网易博客) .