opencv学习---运动目标(前景)检测

opencv学习---运动目标(前景)检测

1.帧差法

原理:视频序列相邻两帧或三帧间采用基于像素的时间差分,通过闭值化来提取出图像中的运动区域。

优点:算法简单、计算量小,无需训练背景,对缓慢变换的光照不是很敏感。

缺点:容易受天气、阴影及杂乱背景干扰,阈值T的选择相当关键,稳定性差。

2.背景差分法

原理:用背景的参数模型来近似背景图像,将当前帧与背景图像进行差分比较实现对运动区域的检测

优点:计算量小,较高的实时性,利用已有帧信息进行背景动态更新

缺点:如何建立对于不同场景的动态变化均具有自适应性的背景模型,减少动态场景变化对运动分割的影响。

3.GMM混合高斯模型

原理:使用K(基本为3到5个)个高斯模型来表征图像中各个像素点的特征,在新一帧图像获得后更新混合高斯模型,为图像的每个像素点指定一个初始的均值、标准差以及权重,收集N帧图像利用在线EM算法得到每个像素点的均值、标准差以及权重。从N+1帧开始检测每个点是否属于背景点。

优点:适应光线的变化,对缓慢移动的物体效果也较好。

缺点:计算量大,难于实现实时性。

4.光流法

原理:光流法的主要任务就是计算光流场,即在适当的平滑性约束条件下,根据图像序列的时空梯度估算运动场,通过分析运动场的变化对运动目标和场景进行检测与分割。

通常有基于全局光流场和特征点光流场两种方法

优点:在比较理想的情况下,它能够检测独立运动的对象,不需要预先知道场景的任何信息,可以很精确地计算出运动物体的速度,并且可用于摄像机运动的情况

缺点:全局光流场计算方法计算量大,噪声、多光源、阴影和遮挡等因素会对光流场分布的计算结果造成严重影响;而且光流法计算复杂,很难实现实时处理

5.Vibe算法

原理:利用单帧视频序列初始化背景模型,对于一个像素点,结合相邻像素点拥有相近像素值的空间分布特性,随机的选择它的邻域点的像素值作为它的模型样本值。背景模型为每个背景点存储一个样本集,然后每个新的像素值和样本集比较判断是否属于背景。

优点:计算量小,易于实时性,抗噪性及目标分割的完整性较好,

缺点:由于可能采用了运动物体的像素初始化样本集,容易引入拖影(Ghost)区域,并且鬼影消除慢。

时间: 2024-10-10 23:39:00

opencv学习---运动目标(前景)检测的相关文章

运动目标前景检测之ViBe源代码分析

一方面为了学习,一方面按照老师和项目的要求接触到了前景提取的相关知识,具体的方法有很多,帧差.背景减除(GMM.CodeBook. SOBS. SACON. VIBE. W4.多帧平均……).光流(稀疏光流.稠密光流).运动竞争(Motion Competition).运动模版(运动历史图像).时间熵……等等.更为具体的资料可以参考一下链接,作者做了很好的总结.点击打开链接http://blog.csdn.net/zouxy09/article/details/9622285 我只要针对作者提供

opencv学习---打开摄像头检测个人头像

opencv中具有检测人体各部分的级联分类器,在opencv文件夹里面的sources/data/haarcascades里面. 这里要选择的是能够检测人体头像的还有检测眼睛的级联分类器的文件. 它们分别是: 检测头像 haarcascade_frontalface_alt.xml或者haarcascade_frontalface_alt2.xml 检测眼睛 haarcascade_eye.xml或者haarcascade_eye_tree_eyeglasses.xml 检测用的函数是: cvH

学习OpenCV范例(二十四)—ViBe前景检测(二)

最近导师没给什么项目做,所以有那么一点点小时间,于是就研究起了前景检测,既然前景检测有很多种算法,那干脆就把这些模型都学起来吧,以后用到前景检测时至少还有那么几种方法可以选择,上次介绍的是GMM模型,其实GMM模型本身就是一个很不错的模型,现在也很多人在研究,并且做改进,主要是OpenCV有函数调用,用起来非常方便,当我们都在兴高采烈的讨论GMM各种好的时候,B哥不爽了,他说老子是搞前景检测的,怎么可能让你们这么嚣张,而且老子就不按照你那套路来,什么高斯模型,混合高斯模型,我统统不用,就来个简单

利用opencv中的级联分类器进行人脸检测-opencv学习(1)

OpenCV支持的目标检测的方法是利用样本的Haar特征进行的分类器训练,得到的级联boosted分类器(Cascade Classification).注意,新版本的C++接口除了Haar特征以外也可以使用LBP特征. 先介绍一下相关的结构,级联分类器的计算特征值的基础类FeatureEvaluator,功能包括读操作read.复制clone.获得特征类型getFeatureType,分配图片分配窗口的操作setImage.setWindow,计算有序特征calcOrd,计算绝对特征calcC

[综]前景检测GMM

tornadomeet 前景检测算法_4(opencv自带GMM) http://www.cnblogs.com/tornadomeet/archive/2012/06/02/2531705.html 前面已经有3篇博文介绍了背景减图方面相关知识(见下面的链接),在第3篇博文中自己也实现了gmm简单算法,但效果不是很好,下面来体验下opencv自带2个gmm算法. opencv实现背景减图法1(codebook和平均背景法) http://www.cnblogs.com/tornadomeet/

前景检测算法_3(GMM)

摘要 本文通过opencv来实现一种前景检测算法——GMM,算法采用的思想来自论文[1][2][4].在进行前景检测前,先对背景进行训练,对图像中每个背景采用一个混合高斯模型进行模拟,每个背景的混合高斯的个数可以自适应.然后在测试阶段,对新来的像素进行GMM匹配,如果该像素值能够匹配其中一个高斯,则认为是背景,否则认为是前景.由于整个过程GMM模型在不断更新学习中,所以对动态背景有一定的鲁棒性.最后通过对一个有树枝摇摆的动态背景进行前景检测,取得了较好的效果. 关键字:GMM,opencv,前景

paper 83:前景检测算法_1(codebook和平均背景法)

前景分割中一个非常重要的研究方向就是背景减图法,因为背景减图的方法简单,原理容易被想到,且在智能视频监控领域中,摄像机很多情况下是固定的,且背景也是基本不变或者是缓慢变换的,在这种场合背景减图法的应用驱使了其不少科研人员去研究它. 但是背景减图获得前景图像的方法缺点也很多:比如说光照因素,遮挡因素,动态周期背景,且背景非周期背景,且一般情况下我们考虑的是每个像素点之间独立,这对实际应用留下了很大的隐患. 这一小讲主要是讲简单背景减图法和codebook法. 一.简单背景减图法的工作原理. 在视频

OpenCV 学习(利用滤波器进行边缘提取)

OpenCV 学习(利用滤波器进行边缘提取) 通过低通滤波器,我们可以将图像平滑,相反的,利用高通滤波器可以提取出图像的边缘. Sobel 滤波器 Sobel 滤波器是一种有方向性的滤波器,可以作用在 X 方向或 Y 方向. 关于这种滤波器的理论介绍可以参考: https://en.wikipedia.org/wiki/Sobel_operator 函数原型如下: void Sobel( InputArray src, OutputArray dst, int ddepth, int dx, i

opencv-视频处理-实时的前景检测-Vibe算法

vibe算法是一种像素级的前景检测算法,实时性高,内存占有率低,前景检测准确率高.但是会出现"鬼影",当然基于对鬼影的处理,也会有相应的对vibe算法的改进. 把下面三篇文章看明白,基本就会掌握vibe算法的过程: < ViBe: a powerful random technique to estimate the background in video sequences> <Background Subtraction: Experiments and Impr