基于matlab的运动目标检测

合集下载

matlab步态检测代码

matlab步态检测代码

matlab步态检测代码步态检测是一种通过分析人体行走时的步态特征来识别个体身份、监测健康状况以及评估运动能力的技术。

在医学领域,步态检测被广泛应用于康复治疗、老年人护理以及运动医学等方面。

本文将介绍一种基于Matlab的步态检测代码。

步态检测的关键是提取步态特征。

在Matlab中,可以使用加速度计和陀螺仪等传感器获取人体运动数据。

首先,我们需要导入数据并进行预处理。

假设我们已经将传感器数据保存在一个名为"sensor_data.txt"的文本文件中,每一行代表一个时间点的数据,包括加速度计和陀螺仪的三个轴的数值。

```matlabdata = load('sensor_data.txt'); % 导入数据acc_x = data(:, 1); % 加速度计x轴数据acc_y = data(:, 2); % 加速度计y轴数据acc_z = data(:, 3); % 加速度计z轴数据gyro_x = data(:, 4); % 陀螺仪x轴数据gyro_y = data(:, 5); % 陀螺仪y轴数据gyro_z = data(:, 6); % 陀螺仪z轴数据```接下来,我们可以通过计算加速度计数据的模来检测步态。

步态的特征之一是步长,即两次脚触地的时间间隔。

当人行走时,加速度计的模会出现明显的周期性变化。

我们可以通过检测加速度计模的极大值来确定步态的周期。

```matlabacc_mag = sqrt(acc_x.^2 + acc_y.^2 + acc_z.^2); % 计算加速度计模[~, locs] = findpeaks(acc_mag, 'MinPeakDistance', 100); % 检测极大值step_duration = diff(locs); % 计算步长```除了步长,步态的另一个重要特征是步频,即每分钟的步数。

我们可以通过计算步长的倒数来得到步频。

(完整word版)【matlab代做】基于MATLAB的GMM和KDE核估计得目标跟踪仿真

(完整word版)【matlab代做】基于MATLAB的GMM和KDE核估计得目标跟踪仿真

第一章课题背景和研究意义近年来,视频监控系统在各行业得到了广泛应用,生活中有小区、超市等的安全监控,银行系统有柜台监控,交通方面有违章监控等。

这些监控系统是由一个或多个摄像机以及与之相连的一套电视监视器组成的,它们的用途主要是对场景的记录和保存,当异常情况,比如盗窃行为发生后,保安人员才通过记录的结果察看发生的事情,但往往为时已晚。

视觉监视是指在一个繁忙环境中对人和车辆等进行实时的观察,并给出对它们行为和动作的描述。

这一技术包括了运动目标的检测、跟踪、目标分类和行为理解等方面,涉及到计算机视觉、模式识别和人工智能领域的许多核心课题,是一个具有挑战性的困难问题。

近年来随着集成电路和计算机技术的迅猛发展,视觉监视系统所要求的硬件设备成本大大降低,因此它获得了日益广泛的研究与应用。

许多关于视觉监视的大规模研究项目已经在美国、欧洲和日本展开,同时它也成为许多国际学术会议关注的重要主题。

运动目标检测与跟踪处于整个视觉监视系统的最底层,是各种后续高级处理如目标分类、行为理解等的基础。

运动目标检测系指从视频流中实时提取目标,一般是确定目标所在区域和颜色特征等。

目标检测的结果是一种“静态”目标——前景目标,由一些静态特征所描述。

运动目标跟踪则指对目标进行连续的跟踪以确定其运动轨迹。

我们通过为静止背景建模来检测前景点。

具体的背景模型以 Stauffer 等提出的自适应混合高斯模型为蓝本,并对其作了部分改进以更好地处理实际背景发生变化的情形。

算法中采用一种可靠的连通区域检测算法完成前景目标的分割。

目标跟踪时则通过匹配目标的位置、大小、形状和颜色等特征,建立运动目标与前景目标间的对应关系。

算法中考虑了跟踪中多个目标相互遮挡的问题,分析了几种可能结果并分别加以处理。

我们还为运动目标引入了可靠性度量以使目标跟踪过程更加稳定和可靠。

在实际应用中,不包括运动物体的纯背景图像通常无法得到。

而且,由于场景光照变化、摄像机抖动等因素,背景不可能完全静止。

目标检测 matlab 实例

目标检测 matlab 实例

目标检测是计算机视觉领域中的一个重要研究方向,目标检测旨在从图像或视瓶中检测出特定的目标物体,并在图像中进行定位,辨别出目标的种类和数量。

在现实生活中,目标检测技术广泛应用于人脸识别、车牌识别、智能监控、智能交通等领域。

在本文中,我们将介绍如何使用 Matlab 来实现目标检测,并给出一个实际的编程示例。

1. 准备工作在使用 Matlab 进行目标检测之前,我们首先需要准备好相关的软件和数据。

在这里,我们将使用 Matlab 自带的 Computer Vision Toolbox 来实现目标检测。

我们也需要一些图像数据作为检测的输入。

对于初学者来说,可以先从全球信息站下载一些开放的标注好的数据集,比如 VOC 数据集或者 COCO 数据集,作为我们的训练和测试数据。

2. 数据预处理在进行目标检测之前,我们需要对我们的数据进行一些预处理工作,比如数据的标注、数据的增强等。

数据标注工作可以通过各种标注工具来完成,比如 LabelImg、LabelMe 等。

数据增强则可以通过一些图像处理的方法来增加数据的多样性,比如镜像翻转、旋转、裁剪等。

3. 模型选择在目标检测中,常用的模型包括 Faster R-CNN、YOLO、SSD 等。

在Matlab 中,我们可以直接调用 Computer Vision Toolbox 中的相关函数来选择和使用这些模型。

比如使用vision.CascadeObjectDetector 类来实现基于 Haar 特征的目标检测器,或者通过调用 fasterRCNNObjectDetector 函数来实现 Faster R-CNN 模型的检测器。

4. 模型训练训练一个目标检测模型需要大量的数据和计算资源。

在 Matlab 中,我们可以使用 tr本人nCascadeObjectDetector 函数来对 Haar 特征检测器进行训练,或者使用 tr本人nFasterRCNNObjectDetector 函数来对 Faster R-CNN 模型进行训练。

matlab行人检测目标方法有哪些

matlab行人检测目标方法有哪些

MATLAB行人检测目标方法有哪些在计算机视觉领域中,行人检测是一个重要的研究方向。

通过使用MATLAB,可以实现各种行人检测目标方法。

本文将介绍一些常用的MATLAB行人检测目标方法,并对其进行简要的说明。

1. 基于特征分类器的行人检测方法基于特征分类器的行人检测方法是最常用的行人检测方法之一。

其中,HOG(Histogram of Oriented Gradients)和LBP (Local Binary Patterns)是两种常用的特征描述子。

HOG特征描述子基于目标的局部梯度方向来描述目标的外观特征,通过计算图像局部区域的梯度方向直方图来表示目标。

在MATLAB中,可以使用vision.PeopleDetector函数来实现基于HOG特征的行人检测。

LBP特征描述子通过计算图像局部区域的纹理信息来表示目标的外观特征。

在MATLAB中,可以使用vision.PeopleDetector函数来实现基于LBP特征的行人检测。

2. 基于深度学习的行人检测方法近年来,基于深度学习的行人检测方法取得了显著的进展。

其中,常用的深度学习模型包括卷积神经网络(CNN)、循环神经网络(RNN)和目标检测算法如Faster R-CNN、YOLO等。

在MATLAB中,可以使用深度学习工具箱来进行基于深度学习的行人检测。

通过定义网络架构、训练网络和进行目标检测,可以实现高精度的行人检测。

3. 基于姿态估计的行人检测方法基于姿态估计的行人检测方法旨在通过推断行人的姿态信息来进行行人检测。

通过预测行人的姿态,可以更准确地确定行人的位置和姿态。

在MATLAB中,可以使用姿态估计算法如OpenPose、AlphaPose等来进行基于姿态估计的行人检测。

这些算法通过解析图像中的关节点来预测行人的姿态,并进一步进行行人检测。

4. 基于神经网络的行人检测方法除了传统的深度学习算法,还可以使用神经网络来进行行人检测。

神经网络可以通过学习大量的行人样本来自动提取行人的特征,并实现高效准确的行人检测。

使用Matlab进行运动轨迹分析与物体识别

使用Matlab进行运动轨迹分析与物体识别

使用Matlab进行运动轨迹分析与物体识别引言:在现代科技和计算机技术的发展下,人们可以利用各种软件和工具进行各种应用研究,这其中就包括了运动轨迹分析和物体识别。

本文将介绍如何使用Matlab 这一功能强大的工具进行运动轨迹分析以及物体识别的研究。

一、运动轨迹分析:1. 数据采集与处理在进行运动轨迹分析之前,首先需要采集到相关的数据。

可以使用传感器、摄像头等设备进行数据采集,并将采集到的数据导入到Matlab中进行处理。

2. 运动轨迹绘制在导入数据后,可以使用Matlab提供的绘图函数,如plot()或scatter()来将采集到的数据绘制成运动轨迹图。

通过绘制轨迹图,我们可以更直观地观察物体的运动情况。

3. 运动轨迹分析除了绘制轨迹图,Matlab还提供了丰富的分析工具。

通过计算轨迹的速度、加速度等参数,我们可以对物体的运动状态进行深入分析。

例如,可以使用polyfit()函数拟合轨迹数据,从而得到物体的运动方程及相关的运动特性。

4. 轨迹预测与模拟除了分析现有的轨迹数据,有时候我们也希望能够对未来的轨迹进行预测。

在Matlab中,我们可以使用例如least squares fitting等方法来预测物体的运动轨迹。

此外,还可以利用Matlab的仿真模块对特定场景下的运动轨迹进行模拟,并得出相应的结果。

二、物体识别:1. 图像采集与预处理在进行物体识别之前,我们首先需要采集到相关的图像数据。

可以使用摄像头或者图像采集设备进行图像采集,并将采集到的图像导入到Matlab中。

在导入图像后,我们需要对图像数据进行预处理,去除图像的噪声、增强图像的对比度等。

2. 特征提取与选择在物体识别中,特征的选择与提取是非常重要的环节。

Matlab提供了许多强大的图像处理和特征提取函数,例如SIFT、HOG等。

通过这些函数,我们可以提取图像中的关键特征,用以区分不同物体。

3. 物体分类与识别在得到了物体的特征之后,接下来就可以使用机器学习算法来进行物体的分类与识别。

在Matlab中实现运动估计和光流分析的技术

在Matlab中实现运动估计和光流分析的技术

在Matlab中实现运动估计和光流分析的技术引言:运动估计和光流分析是计算机视觉中重要的技术,可以用于跟踪和分析视频或图像序列中的动态对象。

在Matlab平台上,我们可以利用丰富的图像处理和计算工具箱来实现这些技术。

本文将介绍如何在Matlab中使用这些工具箱来进行运动估计和光流分析。

一、背景知识1.1 什么是运动估计?运动估计是指通过分析多个连续的图像或视频帧之间的像素变化来估计物体的动作。

这些像素变化可以由物体自身的运动、相机运动或两者共同引起。

1.2 什么是光流?光流是指在图像序列中每个像素点的运动速度。

通过光流分析,我们可以获得图像序列中物体的运动轨迹。

二、Matlab中的运动估计Matlab提供了几种实现运动估计的算法和函数。

其中最常用的是基于光流的方法和基于块匹配的方法。

2.1 光流估计光流估计是一种通过分析图像序列中像素在时间上的变化来估计其运动轨迹的方法。

Matlab提供了光流估计算法光流法(optical flow)。

使用光流法进行运动估计的过程如下:- 对于连续两帧图像,选择一个像素点,标记为(x1,y1);- 在下一帧图像中找到对应像素点(x2,y2);- 通过比较两帧图像中的像素值来计算(x1,y1)和(x2,y2)之间的位移向量;- 重复以上步骤,直到所有像素点都被处理完。

Matlab中的光流估计函数可以通过以下代码调用:```matlabopticFlow = opticalFlowLK;flow = estimateFlow(opticFlow,I);```2.2 基于块匹配的运动估计除了光流法,Matlab还提供了基于块匹配的运动估计算法。

基于块匹配的方法通过将图像分割为小块,然后在连续帧图像中寻找相应的块来估计物体的运动。

使用基于块匹配的方法进行运动估计的过程如下:- 对于连续两帧图像,将其分割为大小相同的块;- 对于每个块,在下一帧图像中寻找与之最匹配的块;- 通过比较两个块之间的相似度来计算运动向量。

基于matlab的运动目标检测

基于matlab的运动目标检测

1绪论1.1 课题研究背景及意义运动目标检测是图像处理与计算机视觉的一个分支,在理论和实践上都有重大意义,长久以来一直被国内外学者所关注。

在实际中,视频监控利用摄像机对某一特定区域进行监视,是一个细致和连续的过程,它可以由人来完成,但是人执行这种长期枯燥的例行监测是不可靠,而且费用也很高,因此引入运动监测非常有必要[1]。

它可以减轻人的负担,并且提高了可靠性。

概括起来运动监测主要包括三个内容[2]:运动目标检测,方向判断和图像跟踪。

运动目标检测是整个监测过程的基础,运动目标的提取准确与否,直接关系到后续高级过程的完成质量。

1.2 国内外研究现状运动目标检测在国外已经取得了一些的研究成果[3],许多相关技术已经开始应用到实际系统中,但是国内研究相对落后 ,与国外还有较大差距。

传统的视频目标提取大致可以分两类 ,一类以空间同性为准则 ,先用形态学滤波器或其他滤波器对图像作预处理;然后对该图像的亮度、色度或其他信息作空间上的分割以对区域作边缘检测;之后作运动估计,并合并相似的运动区域以得到最终的提取结果。

如光流算法、主动轮廓模型算法。

此类方法结果较为准确但是运算量相对较大。

另一类算法主要以时间变化检测作为准则 ,这类算法主要通过帧差检测图像上的变化区域和不变区域 ,将运动物体与静止背景进行分割。

此类方法运算量小,提取结果不如前类方法准确。

此外,还有时空结合方法、时空亮度梯度信息结合的方法等等[4]。

本文将围绕以时间变化监测为基础的方法展开分析和讨论。

1.3 本文结构第1章介绍了本文的研究意义及国内外发展状况;第2章分为四个部分详细讲述了运动目标检测的方法,介绍了背景提取与更新算法,检测算法,阈值选取,形态学滤波等;第三章对全文作出了总结。

2 运动目标检测的一般过程2.1 背景提取与更新算法在进行运动目标检测时,一个很重要的步骤就是区分出运动目标和背景范围,常见的一种情况是摄像机处于静止状态并且焦距也是固定的。

【Matlab】运动目标检测之“光流法”

【Matlab】运动目标检测之“光流法”

【Matlab】运动⽬标检测之“光流法”光流(optical flow)1950年,Gibson⾸先提出了光流的概念,所谓光流就是指图像表现运动的速度。

物体在运动的时候之所以能被⼈眼发现,就是因为当物体运动时,会在⼈的视⽹膜上形成⼀系列的连续变化的图像,这些变化信息在不同时间,不断的流过眼睛视⽹膜,就好像⼀种光流过⼀样,故称之为光流。

光流法检测运动物体的原理:⾸先给图像中每个像素点赋予⼀个速度⽮量(光流),这样就形成了光流场。

如果图像中没有运动物体,光流场连续均匀,如果有运动物体,运动物体的光流和图像的光流不同,光流场不再连续均匀。

从⽽可以检测出运动物体及位置。

应⽤背景:根据图像前景和背景的运动,检测视频的变化,空间运动物体在观察成像平⾯上的像素运动的瞬时速度,是利⽤图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上⼀帧跟当前帧之间存在的对应关系,从⽽计算出相邻帧之间物体的运动信息的⼀种⽅法。

可以⽤来检测运动抖动物体关键技术:当⼈的眼睛观察运动物体时,物体的景象在⼈眼的视⽹膜上形成⼀系列连续变化的图像,这⼀系列连续变化的信息不断“流过”视⽹膜(即图像平⾯),好像⼀种光的“流”,故称之为光流(optical flow)。

编程处理中:matlab中有现成的!!函数function [fx, fy, ft] = computeDerivatives(im1, im2)if size(im2,1)==0im2=zeros(size(im1));end% Horn-Schunck original methodfx = conv2(im1,0.25* [-11; -11],'same') + conv2(im2, 0.25*[-11; -11],'same');fy = conv2(im1, 0.25*[-1 -1; 11], 'same') + conv2(im2, 0.25*[-1 -1; 11], 'same');ft = conv2(im1, 0.25*ones(2),'same') + conv2(im2, -0.25*ones(2),'same');% derivatives as in Barron% fx= conv2(im1,(1/12)*[-180 -81],'same');% fy= conv2(im1,(1/12)*[-180 -81]','same');% ft = conv2(im1, 0.25*ones(2),'same') + conv2(im2, -0.25*ones(2),'same');% fx=-fx;fy=-fy;% An alternative way to compute the spatiotemporal derivatives is to use simple finite difference masks.% fx = conv2(im1,[1 -1]);% fy = conv2(im1,[1; -1]);% ft= im2-im1;也有现成的实例:Affine optic flow - File Exchange - MATLAB CentralEstimate optical flow using Horn-Schunck method - MATLAB调⽤系统对象vision.OpticalFlow后产⽣的混合矩阵数据如何处理 – MATLAB中⽂论坛Estimate optical flow using Lucas-Kanade method - MATLABLucas-Kanade Tutorial Example 1 - File Exchange - MATLAB Central1.⾸先是假设条件:(1)亮度恒定,就是同⼀点随着时间的变化,其亮度不会发⽣改变。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1 绪论1.1 课题研究背景及意义运动目标检测是图像处理与计算机视觉的一个分支,在理论和实践上都有重大意义,长久以来一直被国内外学者所关注。

在实际中,视频监控利用摄像机对某一特定区域进行监视,是一个细致和连续的过程,它可以由人来完成,但是人执行这种长期枯燥的例行监测是不可靠,而且费用也很高,因此引入运动监测非常有必要[1]。

它可以减轻人的负担,并且提高了可靠性。

概括起来运动监测主要包括三个内容[2]:运动目标检测,方向判断和图像跟踪。

运动目标检测是整个监测过程的基础,运动目标的提取准确与否,直接关系到后续高级过程的完成质量。

1.2 国内外研究现状运动目标检测在国外已经取得了一些的研究成果[3],许多相关技术已经开始应用到实际系统中,但是国内研究相对落后,与国外还有较大差距。

传统的视频目标提取大致可以分两类,一类以空间同性为准则,先用形态学滤波器或其他滤波器对图像作预处理;然后对该图像的亮度、色度或其他信息作空间上的分割以对区域作边缘检测;之后作运动估计,并合并相似的运动区域以得到最终的提取结果。

如光流算法、主动轮廓模型算法。

此类方法结果较为准确但是运算量相对较大。

另一类算法主要以时间变化检测作为准则,这类算法主要通过帧差检测图像上的变化区域和不变区域,将运动物体与静止背景进行分割。

此类方法运算量小,提取结果不如前类方法准确。

此外,还有时空结合方法、时空亮度梯度信息结合的方法等等[4]。

本文将围绕以时间变化监测为基础的方法展开分析和讨论。

1.3 本文结构第1章介绍了本文的研究意义及国内外发展状况;第2章分为四个部分详细讲述了运动目标检测的方法,介绍了背景提取与更新算法,检测算法,阈值选取,形态学滤波等;第三章对全文作出了总结。

2运动目标检测的一般过程2.1 背景提取与更新算法在进行运动目标检测时,一个很重要的步骤就是区分出运动目标和背景范围,常见的一种情况是摄像机处于静止状态并且焦距也是固定的。

此时,图像中的背景区域固定不动。

在这种情况下,运动目标识别无论是使用背景差法,还是使用背景差法结合帧间差法,质量良好的背景的建立显得及其重要。

另外,当涉及到背景的使用时,一旦背景发生一些变化时,如背景中频繁地出现运动物体,或者光照发生变化、树叶等小物体的晃动等等,使得不能准确地提取背景作为参考图像,从而不能正确地分割出视频序列中的运动物体。

为了克服上述问题,国内外众多研究人员提出了背景建立和自适应的背景模型,实现了背景模型的实时更新,能够比较准确地识别出运动目标。

在能够满足实时性和实用性要求的前提下,讨论并研究下列几种算法[5]。

2.1.1 手动背景法手动背景法需要人观察到没有前景物体时启动该帧图像,作为背景图像。

这种背景提取方法增加了人力和物力的需求,而且在很多情况下很难在没有前景的情况下获得背景图像,比如高速公路的车辆监测系统、小区的门禁系统等等。

这种方法不能实现自适应背景更新的功能,需要使用其他方法修正由于光线,亮度等的变化带来的背景误差。

2.1.2 统计中值法考虑到运动物体较少的情况下,连续多帧图像中背景的像素值占主要部分,这样在一段时间内变化缓慢,取中值便可以认为是背景图像。

统计中值算法从统计学的角度统计单个像素点A i(x,y),(i=1,2,…N)在连续帧图像中的亮度值B i。

在一段时间内对视频序列图像的亮度值(或者色彩信息) B i进行排序,然后取中值M i(x,y)作为背景。

该算法存在的问题在于:图像帧的像素点大多以数万,数十万的数量级出现,而用于取中值的图像帧数量N也应该比较大。

对如此大的数组进行排序取出中值,实现时计算量较大,处理较慢。

同时需要占用大量的内存单元用于存储数据。

2.1.3 算术平均法采用算术平均法提取背景图像,可以总结为在特定的时间段内对像素点的亮度和色彩信息取平均值,用均值作为背景图像对应像素点数值。

在读入一段视频时,对某一像素点进行观察,会发现在没有前景的运动目标通过时,该点的灰度值保持稳定,变化很小,只有当前景的运动目标通过时,该点的灰度才会发生剧烈的变化。

这样就可以连续读入N帧图像,对图像各点的灰度或色彩信息进行统计的方法,使得变化剧烈的像素点变得平缓,取其平均值作为背景图像像素点的值。

这样也可以滤除背景图像中的突变噪声点。

其统计公式如下:∑==Ni N y x Ii y x B 11),(),( (2-1)公式中式中:B (x, y)表示背景图像,Ii(x,y)表示第i 帧序列图像,N 表示平均帧数。

在实际场景中,一段时间内,同一区域很少有可能总是存在运动物体。

而通过平均法得到的背景就会消除亮暗分布不均匀的情况。

选取N=120,MATLAB 仿真,从序列图像的第1、60、120帧可以看出,在第1帧至第120帧时都存在运动目标,如2-1图。

经过对连续120帧计算算术平均值,得到了基本不包含运动目标的背景图像,如2-2图。

(a)第1帧图像 (b)第60帧图像 (c)第120帧图像图2-1 各帧图像图2-2 算术法提取的背景图像由上述仿真实验证明,算术平均法的特点是模型简单,计算方便,可以较好的得到背景图像。

但是在仿真过程中,也发现了该方法的一些问题。

其中最明显的是,该算法得到背景图像需要获取的图像帧较大。

受运动物体数量的影响,随着平均帧数的增加,得到的背景图像的质量越好。

由于是求取序列图像的算术平均值,如果N 值太小,背景图像中的运动物体不容易被滤除,很容易在背景图像中留下“影子”。

而且在运动物体很多,轨迹很固定的情况下,也需要加大N 的数值,以使得平均值更加接近与真实的背景图像。

在这种情况下,背景的建立就需要较长的时间。

本算法也有一定自适应更新功能。

随着时间的推移,在背景提取后获取的图像帧也可以作为新的信息量,与背景图像进行统计平均或加权平均,实现背景的自适应更新。

因此这种方法也使用于实时背景更新算法。

2.1.4 Surendra 算法Surendra 背景更新算法[6][7]能够自适应地获取背景图像,该算法提取背景的思想是对差值图像的亮度值进行判断,如亮度大于阈值,背景图像对应位置的像素点保持不变,否则利用当前帧对背景图像进行替换更新。

其算法可以分成以下几个步骤:(1)将第1帧图像I 1作为背景B 1。

(2)选取阈值T ,迭代次数m=1,最大迭代次数MAXSTEP 。

(3)求当前帧的帧差分图像1 |I i -I i-1|>TDi= (2-2)(4)由二值图像Bi ,B i-1(x,y) Di=1Bi= (2-3)αI i (x,y)+(1-α)I i-1(x,y) Di=0式中Bi(x,y),Di(x,y)为背景图像和差分二值图像在(x, y)的灰度值,Ii(x,y)为输入的第i 帧图像,α为更新速度。

(5)迭代次数m=m+1,进行第(3)步的运算。

当迭代次数m=MAXSTEP时结束迭代,此时Bi(x,y)可当作背景图像。

选取MAXSTEP=80,α=0.1,选取固定阈值T=20。

在MATLAB中进行仿真第30帧背景(灰度)第30帧图像第80帧背景(灰度)第80帧图像图2-3 Surendra算法提取的背景图像在仿真研究中发现,MAXSTEP很大程度地决定了背景建立时的速度,α则决定背景更新的速度。

这种背景建模和更新的方法,能够很好地解决物体长时间停留对背景的影响,因为背景的更新会将它逐步地作为背景像素点更新到背景中。

但是由于它的基本处理方式是帧间差分,使得它不能将色彩、亮度相似的,大面积的运动物体完整的检测出来。

这种情况下,运动物体的某些部分将作为背景区域更新到背景中。

2.1.5 其他算法国内外已有的背景提取与更新算法远不止上述几种,如混合高斯模型,分块统计算法等也是目前比较常见的算法,其主体思想与算术平均法类似,只是在做法上有区别。

由于绝大多数算法都是基于PC机的实现,很少将算法的实时性作为参考要素。

2.2 动目标检测算法研究在实际的安防与监控应用中,大多考虑摄像头固定的情况。

因此本文在研究运动目标检测算法时,也做如下假设:摄像头固定,只对视场内的目标进行检测,离开视场后再次进入的物体被视为新目标。

目前,大多数的运动目标检测的方法或是基于图像序列中时间信息的,或是基于图像序列中空间信息的。

常见的方法有如下3种[8]:(1)光流法当目标运动时,图像上对应目标的亮度信息(光流)也相应的运动。

这样,根据时间上相邻的几帧图像可以计算出各像素点运动的大小和方向,从而利用运动场来区分背景和运动目标。

其主要优点在于能检测出独立的运动目标,而不需预知场景的任何信息,对变化的复杂背景情况有较好的适应。

但其缺点也很明显,由于要依赖光流估计的准确程度,大多数计算方法相当复杂并且计算量特别大,所以除非有特殊的硬件支持,否则很难实现实时检测。

(2)背景减法将实时视频流中的图像像素点灰度值与事先已存储或实时得到的视频背景模型中的相应值比较,不符合要求的像素点被认为是运动像素。

这是视频监控中最常用的运动检测方法。

这种方法虽然能较完整的提取运动目标,但对光照和外部条件造成的环境变化过于敏感,常常会将运动目标的阴影错误的检测为其自身的一部分。

同时由于时间流逝,实际场景的多种因素都会发生变化,比如停留物的出现、光线等的变化、运动目标对背景的遮挡等等,背景需要得到实时地更新,这是影响其检测效果的一个重要因素。

(3)帧间差法帧间差法是根据当前图像与参考图像的差别来获得运动目标轮廓的方法。

这种方法对于场景中的光线渐变不敏感,适于动态变化的环境,且运算量相对较小。

但一般不能完整的提取运动目标,且在运动实体内易产生空洞现象,从而不利于下一步的分析和处理。

针对前面3种常见算法,只进行帧间差分法和背景差分法的研究于仿真。

光流法由于很难达到实时性要求,因此不做研究。

2.2.1 帧间差法运动目标检测基于帧间差分的运动检测即帧差法,它根据相邻帧或隔帧图像间亮度变化的大小来检测运动目标,帧间差分公式如下:Di(x,y)=Ii(x,y)-I i-1(x,y) (2-4) Ii(x,y),I i-1(x,y)为前后两帧图像,帧差分运动检测只针对前景区域进行,运动检测公式如下,其中T为门限值。

1,D i>TM i(x,y)= (2-5)0,D i≤T选取T=20,仿真结果如下图:第19帧图像第20帧图像差分后二值化图像第79帧图像第80帧图像差分后二值化图像第139帧图像第140帧图像差分后二值化图像图2-4帧间差分实验由上面的仿真实验可以得出:运用帧间差分方法进行运动目标的检测,可以有效的检测出运动物体。

右子图中,可以比较清晰地得到运动物体的轮廓。

但是,这种算法虽然可以使背景像素不随时间积累,迅速更新,因此这种算法有比较强的适应场景变化能力。

但是帧差法表示的是相邻两帧同位置的变化量,因此很有可能将比较大的运动目标,或者运动目标内部颜色差异不大的像素判断错误,在实体内部产生拉伸、空洞现象[8]。

相关文档
最新文档