vibe原理认识,可能有的地方不对,看不懂英文的,只能看翻译的
2017-11-28 21:38
645 查看
前言
先说一下传统的运动目标检测的方法,前景即为目标,大致可分为两类:背景建模法和非背景建模法,从字面意思可以理解背景建模法是先把背景检测出来,再根据背景取得前景,有混合高斯模型、模糊数学、神经网络的方法;而非背景建模方法有光流法和帧间差分法,这些方法有利有弊,总是不能适应各种问题,而且有的计算复杂,难以理解,于是在11年的时候,有人提出了vibe算法进行视频序列前景检测。 ViBe - a powerful technique for background detection and subtraction in video ViBe:A Universal Background Subtraction Algorithm for Video Sequences 这两篇大家可以谷歌,都是原作者写的,我也没看过看不懂
vibe(visual background extractor)简介
描述它是一个像素级的算法,怎么理解呢?就是在前景检测的时候,会对每一个像素点进行判断,每个像素点都有数自己的域,通过在域内进行判断是前景还是背景。—————————————-分割线————————————-
依我之见该方法简单易懂,是一种可显著提高精度和减少计算量的背景提取方法。
该方法具有优秀的更新策略,空间信息传播技术,和瞬时初始化技术,可以处理任何速度下的事件,并得到不经任何处理的分割图,且可在第二帧得到较好效果。
核心
首先作者提出了三个问题:(1)要建立怎样的背景模型以及如何使用这个模型
(2)应如何初始化这个模型,算法执行的一开始如何快速建立好背景模型,完成初始化工作。
(3)背景模型如何实时的进行更新。
通过以上3个问题我们来说明该算法的原理:
模型初始化(一帧完成)
对于一个像素点,结合相邻像素点拥有相近像素值的空间分布特性,随机选择它的邻域点的像素值作为它的模型样本值。假定X表示当前峽图像的一个像素点,p(x)表示该点的像素值,背景模型的建立就是为图像中每个像素建立各自的样本集,这里像素点X的样本集就能表示为:
判断(x,y)点的公式可以表达为
其中SR(pt(x))代表以(x,y)为中心半径为R的2—D欧式空间
Umin为个数,原文取3;
到此为止,初始化完成
模型更新
背景模型的更新就是使得背景模型能够适应背景的不断变化,比如光照的变化,背景物体的变更等等。
保守的更新策略:前景点永远不会被用来填充背景模型,会引起死锁,比如初始化的时候如果一块静止的区域被错误的检测为运动的,那么在这种策略下它永远会被当做运动的物体来对待;
在本方法中采用的更新策略是保守的更新策略+前景点计数方法。前景点计数:对像素点进行统计,如果某个像素点连续N次被检测为前景,则将其更新为背景点。
随机的子采样:在每一个新的视频帧中都去更新背景模型中的每一个像素点的样本值是没有必要的,当一个像素点被分类为背景点时,它有1/ φ的概率去更新背景模型。
具体的更新方法:每一个背景点有1/ φ的概率去更新自己的模型样本值,同时也有1/ φ的概率去更新它的邻居点的模型样本值。更新邻居的样本值利用了像素值的空间传播特性,背景模型逐渐向外扩 散,这也有利于Ghost区域的更快的识别。同时当前景点计数达到临界值时将其变为背景,并有1/ φ的概率去更新自己的模型样本值。
在选择要替换的样本集中的样本值时候,我们是随机选取一个样本值进行更新,这样可以保证样本值的平滑的生命周期由于是随机的更新,这样一个样本值在时刻t不被更新的概率是 (N-1)/N,假设时间是连续的,那么在dt的时间过去后,样本值仍然保留的概率是
这就表明一个样本值在模型中是否被替换与时间t无关 ,随机策略是合适的。
http://blog.csdn.net/tiandijun/article/details/50499708
http://blog.csdn.net/zhangping1987/article/details/51860654
相关文章推荐
- 《Java网络编程》中文版某些地方可能利用翻译软件来编排的,建议参考英文原版
- linux shell 发送email 邮件【文章内容仅供参考,有些地方可能不正确,默认只能在局域网,公网需要修改配置文件】
- collection下list用法 很常用 (个人建议下载纯英文文档,翻译可能不如原版能让你明白)
- 蔬菜水果的英文翻译
- 连接数据库失败,可能数据库密码不对或数据库服务器出错!
- XMPP协议扩展:XEP-0198 流管理(Stream Management)中文翻译(个人整理,难免有翻译错的地方,请多多指正)
- 自然语言处理扫盲·第二天——白话机器翻译原理
- 有关左值和右值,我的一些看法,可能不对,希望大神们指正!
- 对HDFS的底层实现原理认识
- android WebView 不能正常回退 FragmentTabHost 只能输入汉字,不能输入数字英文
- 调用百度api翻译英文网页
- Little happiness matters?蒙牛新广告语英文翻译引争议
- windows8.1 快速使用指南(英文原版 + 中文翻译版txt)
- 从头认识多线程-3.3 synchronized某些解决不了的可视性问题,只能使用volatile来解决
- 第6章4节《MonkeyRunner源代码剖析》Monkey原理分析-事件源-事件源概览-翻译命令字串
- jquery验证,只能输入英文或者中文
- 使用正则限制input框只能输入数字/英文/中文等等
- 通过url地址获取数据后将数据利用SpringMVC的@ResponseBody返回中文可能出现乱码地方
- 故障案例:mysql5.6下,mysqlbinlog版本不对可能导致的问题
- dubbo认识学习,原理介绍