一、运动目标检测简介

视频中的运动目标检测这一块现在的方法实在是太多了。运动目标检测的算法依照目标与摄像机之间的关系可以分为静态背景下运动检测和动态背景下运动检测。先简单从视频中的背景类型来讨论。

静态背景下的目标检测,就是从序列图像中将实际的变化区域和背景区分开了。在背景静止的大前提下进行运动目标检测的方法有很多,这些方法比较侧重于背景扰动小噪声的消除,如:

1.背景差分法

2.帧间差分法

3.光流法

4.混合高斯模型(GMM)

5.码本(codebook)

还有这些方法的变种,例如三帧差分,五帧差分,或者这些方法的结合。

运动背景下的目标检测,相对于静态背景而言,算法的思路就有所区别了,一般会更加侧重于匹配,需要进行图像的全局运动估计与补偿。因为在目标和背景同时运动的情况下,是无法简单的根据运动来判断的。运动背景下的运动目标检测算法也有很多,如

1.块匹配

2.光流估计

这些方法总得来在不同的环境下说各有各自的特点吧,也不见得简单的算法就一定比复杂的要弱。有一些博客已经对这些方法进行了对比和评估,有兴趣的同学可以参考这些

二、GMM算法简介

不得不提的是其中的GMM算法(可以参考Adaptive background mixture models for real-time tracking),这种算法在我平时要用到运动检测的时候一般都会直接用,原因有两个,第一,效果确实不错,噪声可以很快消除,第二,opencv包含了GMM算法,可以直接调用,非常省事。

GMM简单讲,将输入图像的像素与背景模型进行对比,和背景模型相似性比较高的点视为背景,和背景模型相似性比较低的点视为前景,再利用形态学的方法进行运动目标提取。混合高斯模型是由K个(基本为3到5个)单高斯模型加权组成的。在获取新的一帧图像之后,如果当前图像中的像素点与该像素的K个模型中的某一个匹配度比较高,则视为背景,并将当前帧的像素作为一个新模型,更新已存在的K个模型。如果匹配度比较低,则为前景点。整个混合高斯模型算法主要是有方差和均值两个参数,对于这两个参数采取不同的学习机制,直接影响该算法的正确性、稳定性和收敛性。代码网上到处都有,例如http://blog.csdn.net/pi9nc/article/details/21717669,需要的同学可以去看看。

三 、ViBe算法

不过,我今天介绍的主角并不是GMM,而是ViBe算法。在网上各处看到ViBe算法是个很牛逼的算法,据说还把GMM给PK下去了,所以我就拜读了原文ViBe: a powerful random technique to estimate the background in video sequences。

ViBe算法是由Olivier Barnich 和 Marc Van Droogenbroeck在2011年提出的一种背景建模方法。该算法采用邻域像素来创建背景模型,通过比对背景模型和当前输入像素值来检测前景,可以细分为三个步骤:

第一步,初始化单帧图像中每个像素点的背景模型。假设每一个像素和其邻域像素的像素值在空域上有相似的分布。基于这种假设,每一个像素模型都可以用其邻域中的像素来表示。为了保证背景模型符合统计学规律,邻域的范围要足够大。当输入第一帧图像时,即t=0时,像素的背景模型

其中,

表示空域上相邻的像素值,

表示当前点的像素值。在N次的初始化的过程中,

中的像素点

被选中的可能次数为L=1,2,3,…,N。

第二步,对后续的图像序列进行前景目标分割操作。当t=k时,像素点

的背景模型为

,像素值为

。按照下面判断该像素值是否为前景。

这里上标r是随机选的;T是预先设置好的阈值。当

满足符合背景#N次时,我们认为像素点

为背景,否则为前景。

第三步,背景模型更新方法。ViBe算法的更新在时间和空间上都具有随机性。

时间上的随机性。在N个背景模型中随机抽取一个,设为图像

,图2-1表示了图像

的x位置及其八邻域内的像素。当我们得到新的一帧图像

时,如果图像

中的x位置对应的像素

被判断为背景,则

需要被更新。这个抽取的过程体现了时间上的随机性。

空间上的随机性。在

的八邻域中随机抽取一个像素

,用

的来替换掉

,这体现了模型更新空间上的随机性。

以上便是更新的过程,即用

来更新

及其八邻域。采用八邻域更新的方法,可以去除由于获取的视频细微抖动(摄像机抖动、目标微动)而产生的重影和误差,让检测目标更加准确。

在一般情况下,背景并不会发生较大的变化,所以每次背景模型更新的个数UpdateNum应该是相近的。因此我们把第一帧背景更新的次数InitNum作为比较值,符合下面公式则对背景模型进行重新初始化,这样可以避免由于大面积的光照变化导致的误判。

视频中的初始帧可能是包含目标的,常规的背景建模算法往往无法快速消除Ghost区域,这对于前景检测是不利的。Vibe算法更新模型时利用了该像素值的空间传播特性,背景模型逐渐向外扩散,这也有利于Ghost区域的更快的识别并且消除。下面以ViBe算法下的交通视频前景检测为例

如图上图所示为ViBe算法下前景检测的效果,红色矩形框表示了出现的比较显著的Ghost区域。在第10帧之前,Ghost区域残留严重,随着模型的不断更新,Ghost区域不断消失在第40帧以后,Ghost区域已经完全消失了。说明了Vibe算法在前景检测和背景模型更新上的优势。

python运动目标检测_运动目标检测ViBe算法相关推荐

  1. 空间中的语义直线检测_直线检测

    作者:张远学; 陶青川; 王维 期刊:<现代计算机> 为了限制河岸场景下不文明.违规的垂钓行为,提出一种融入深度学习的垂钓行为检测方法.首先使用基于CNN开发的语义分割模型deeplabV ...

  2. 处理veh调试器检测_越狱检测抖音逻辑???

    对于应用安全甲方一般会在这三个方面做防御.按逻辑分类的话应该应该分为这几类, 但如果从实现原理的话, 应该分为两类, 用API实现的 和 不用API实现的(这说的不用 API 实现, 不是指换成 in ...

  3. 【文件上传绕过】——后端检测_内容检测图片马绕过

    文章目录 一.实验目的: 二.工具: 三.实验环境: 四.漏洞说明: 五.实验过程: 1. 图片马制作: 1.1 文件头检测+文件内容检测文件类型(没有进行后缀名白名单检测): 1.1.1 webji ...

  4. python图像差分法目标检测_运动目标检测(2)—帧间差分法

    帧差法依据的原则是:当视频中存在移动物体的时候,相邻帧(或相邻三帧)之间在灰度上会有差别,求取两帧图像灰度差的绝对值,则静止的物体在差值图像上表现出来全是0,而移动物体特别是移动物体的轮廓处由于存在灰 ...

  5. python ssd目标检测_目标检测算法之SSD的数据增强策略

    前言 这篇文章是对前面<目标检测算法之SSD代码解析>,推文地址如下:点这里的补充.主要介绍SSD的数据增强策略,把这篇文章和代码解析的文章放在一起学最好不过啦.本节解析的仍然是上篇SSD ...

  6. python 图像变化检测_霍夫变换检测图像直线算法python实现

    创作不易,如果对您有帮助,帮忙点赞哦! 一. 霍夫变换理解: 二. 霍夫变换简介: 霍夫变换,是将坐标由直角坐标系变换到极坐标系,然后再根据数学表达式检测某些形状(如直线和圆)的方法.当 l1直线 上 ...

  7. python颜色识别_颜色检测python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 版权声明:本文为博主原创文章,未经博主允许不得转载. https:blog.cs ...

  8. python行人检测_行人检测 基于 OpenCV 的人体检测

    原文链接行人检测 基于 OpenCV 的人体检测 - 热分享​hotdog29.com 行人检测 基于 OpenCV 的人体检测 我们都知道,无论性别,种族或种族如何,我们的身体都具有相同的基本结构. ...

  9. pcb成型板aoi检测_缺陷检测 | PCB AOI质量检测之自动定位核选取算法

    PCB产品AOI检测,需要将模版与实际图像对齐,因此需要定位功能.定位功能就需要选取定位核,定位核的提取方法分为手动和自动.基于人眼视觉特征对区域敏感度判断的手动提取法存在很大的局限性,且当需要较多定 ...

  10. python时间序列峰值检测_如何检测和过滤时间序列数据的峰值?

    我有一个pandas用户登录数据框,如下所示:id datetime_login 646 2017-03-15 15:30:25 611 2017-04-14 11:38:30 611 2017-05 ...

最新文章

  1. SAP Spartacus user-addresses.effect.ts里发送地址加载成功的action,会触发我们自己的reducer
  2. xshell与xftp免费版
  3. CMMI5认证必备条件
  4. 从CSV和VCF文件中获取联系人信息
  5. eclipse中文语言包 离线安装
  6. 专家建议|2022内容运营的5大SEO错误以及如何避免
  7. Win10系统下向MS Word2019中添加NoteExpress插件
  8. 人工智能学习笔记 - 预备篇之高中数学快速复习
  9. android 图片3d,Android实现3D图片浏览效果示例
  10. Typora文字变红
  11. AVCON6 系统管理平台 download.action 任意文件下载漏洞
  12. 小白UEFI启动如何设置
  13. 客户体验模型|客户体验分析的四个关键要素
  14. 博图在线升级 gsd_美生在线消费全返张鹏海外大举收割国内韭菜。
  15. 面试必问---TCP连接
  16. 解决VMware Taking ownership of this virtual machine failed
  17. dsp处理浮点数_定点DSP如何做浮点运算
  18. 鸿翼企业网盘 激活企业协作办公
  19. 北大扫地僧“火”了!手提馒头矿泉水的他,是博士毕业1年就成北大助理教授的90后!...
  20. css如何保留空格,HTML/CSS中的空格处理_如何保留页面中的空格

热门文章

  1. 【保姆级教程】使用python实现SIR模型(包含数据集的制作与导入及最终结果的可视化)
  2. wps使用mathtype编辑数学公式
  3. Androidstudio控制台分层输出接口日志.类似BeJSON,HiJson格式化JSON
  4. php微博api发布微博代码,使用新浪微博API的OAuth认证发布微博实例
  5. 计算机键盘操作与基指法,计算机键盘操作.doc
  6. HTML 网页制作 盒子设计 CSS
  7. 极限学习机ELM原理与实现
  8. 【毕业设计论文】(软件类专业)规范写作以及查重篇
  9. NB-iot的M5310A的学习
  10. gx works2 版本号_GX Works2 64位