第2章 基于背景差分的运动目标检测与MATLAB实现

合集下载

目标检测 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 模型进行训练。

《基于FPGA的运动目标检测系统设计》范文

《基于FPGA的运动目标检测系统设计》范文

《基于FPGA的运动目标检测系统设计》篇一一、引言随着计算机视觉技术的快速发展,运动目标检测在许多领域中扮演着越来越重要的角色。

从智能交通监控到安全防护系统,运动目标检测技术都发挥着关键作用。

传统的运动目标检测方法通常依赖于中央处理器(CPU)进行计算,但面对复杂的实时视频流处理任务,其处理速度和效率显得捉襟见肘。

因此,本文提出了一种基于FPGA的运动目标检测系统设计,以实现更快速、更准确的运动目标检测。

二、系统设计概述本系统设计采用FPGA作为核心处理器,通过硬件加速的方式实现运动目标检测。

系统主要由图像采集模块、预处理模块、运动检测模块和输出模块四个部分组成。

其中,图像采集模块负责捕获视频流;预处理模块对图像进行去噪、增强等处理;运动检测模块是本系统的核心,通过算法实现运动目标的检测;输出模块将检测结果以可视化形式呈现。

三、硬件平台设计FPGA作为一种可编程的逻辑器件,具有并行处理、高速运算等优势,是运动目标检测系统的理想选择。

在硬件平台设计方面,我们选择了适合视频处理的FPGA芯片,并设计了相应的接口电路,以保证图像数据的快速传输和处理。

此外,还设计了电源管理模块、时钟管理模块等,以保证系统的稳定性和可靠性。

四、软件算法设计运动目标检测算法是本系统的核心,我们采用了基于背景差分法和光流法的运动检测算法。

首先,通过背景差分法提取出运动区域;然后,利用光流法对运动区域进行进一步的分析和识别。

在FPGA上实现该算法时,我们采用了硬件加速的方式,通过优化算法流程和数据处理方式,实现了高效率的运动目标检测。

五、系统实现与测试在系统实现过程中,我们首先在FPGA上实现了预处理模块和运动检测模块。

然后,通过与图像采集模块和输出模块的连接,完成了整个系统的搭建。

在测试阶段,我们使用了多个实际场景的视频数据进行测试,验证了本系统的有效性和准确性。

测试结果表明,本系统能够在实时视频流中快速、准确地检测出运动目标。

差分方程的解法分析及MATLAB实现(程序)

差分方程的解法分析及MATLAB实现(程序)

差分方程的解法分析及MATLAB 实现(程序)摘自:张登奇,彭仕玉.差分方程的解法分析及其MATLAB 实现[J]. 湖南理工学院学报.2014(03) 引言线性常系数差分方程是描述线性时不变离散时间系统的数学模型,求解差分方程是分析离散时间系统的重要内容.在《信号与系统》课程中介绍的求解方法主要有迭代法、时域经典法、双零法和变换域法[1].1 迭代法例1 已知离散系统的差分方程为)1(31)()2(81)1(43)(-+=-+--n x n x n y n y n y ,激励信号为)()43()(n u n x n =,初始状态为21)2(4)1(=-=-y y ,.求系统响应. 根据激励信号和初始状态,手工依次迭代可算出2459)1(,25)0(==y y . 利用MATLAB 中的filter 函数实现迭代过程的m 程序如下:clc;clear;format compact;a=[1,-3/4,1/8],b=[1,1/3,0], %输入差分方程系数向量,不足补0对齐n=0:10;xn=(3/4).^n, %输入激励信号zx=[0,0],zy=[4,12], %输入初始状态zi=filtic(b,a,zy,zx),%计算等效初始条件[yn,zf]=filter(b,a,xn,zi),%迭代计算输出和后段等效初始条件2 时域经典法用时域经典法求解差分方程:先求齐次解;再将激励信号代入方程右端化简得自由项,根据自由项形式求特解;然后根据边界条件求完全解[3].用时域经典法求解例1的基本步骤如下.(1)求齐次解.特征方程为081432=+-αα,可算出41 , 2121==αα.高阶特征根可用MATLAB 的roots 函数计算.齐次解为. 0 , )41()21()(21≥+=n C C n y n n h (2)求方程的特解.将)()43()(n u n x n =代入差分方程右端得自由项为 ⎪⎩⎪⎨⎧≥⋅==-⋅+-1,)43(9130 ,1)1()43(31)()43(1n n n u n u n n n 当1≥n 时,特解可设为n p D n y )43()(=,代入差分方程求得213=D . (3)利用边界条件求完全解.当n =0时迭代求出25)0(=y ,当n ≥1时,完全解的形式为 ,)43(213 )41()21()(21n n n C C n y ⋅++=选择求完全解系数的边界条件可参考文[4]选)1(),0(-y y .根据边界条件求得35,31721=-=C C .注意完全解的表达式只适于特解成立的n 取值范围,其他点要用)(n δ及其延迟表示,如果其值符合表达式则可合并处理.差分方程的完全解为)(])43(213 )41(35)21(317[)1(])43(213 )41(35)21(317[)(25)(n u n u n n y n n n n n n ⋅+⋅+⋅-=-⋅+⋅+⋅-+=δ MATLAB 没有专用的差分方程求解函数,但可调用maple 符号运算工具箱中的rsolve 函数实现[5],格式为y=maple('rsolve({equs, inis},y(n))'),其中:equs 为差分方程表达式, inis 为边界条件,y(n)为差分方程中的输出函数式.rsolve 的其他格式可通过mhelp rsolve 命令了解.在MATLAB 中用时域经典法求解例1中的全响应和单位样值响应的程序如下.clc;clear;format compact;yn=maple('rsolve({y(n)-3/4*y(n-1)+1/8*y(n-2)=(3/4)^n+1/3*(3/4)^(n-1),y(0)=5/2,y(-1)=4},y(n))'),hn=maple('rsolve({y(n)-3/4*y(n-1)+1/8*y(n-2)=0,y(0)=1,y(1)=13/12},y(n))'),3 双零法根据双零响应的定义,按时域经典法的求解步骤可分别求出零输入响应和零状态响应.理解了双零法的求解原理和步骤,实际计算可调用rsolve 函数实现.yzi=maple('rsolve({y(n)-3/4*y(n-1)+1/8*y(n-2)=0,y(-1)=4, y(-2)=12},y(n))'),yzs=maple('rsolve({y(n)-3/4*y(n-1)+1/8*y(n-2)=(3/4)^n+1/3*(3/4)^(n-1),y(0)=1,y(-1)=0},y(n))'),4 变换域法设差分方程的一般形式为)()(00r n x b k n y a r Mr k N k -=-∑∑==.对差分方程两边取单边z 变换,并利用z 变换的位移公式得])()([])()([1010m r m r r M r l k l k k N k z m x z X z b z l y z Y z a ---=-=---=-=∑∑∑∑+=+整理成)()()()()()(00z X z X z B z Y z Y z A +=+形式有. )(, )(110110M M N N z b z b b z B z a z a a z A ----+++=+++=. )()(, )()(110110∑∑∑∑=--=--=--=--==M r r m m r r N k k l l k k z m x b s X zl y a s Y可以看出,由差分方程可直接写出 )(z A 和 )(z B ,系统函数)(/)()(z A z B z H =,将系统函数进行逆z 变换可得单位样值响应.由差分方程的初始状态可算出 )(0z Y ,由激励信号的初始状态可算出 )(0z X ,将激励信号进行z 变换可得 )(z X ,求解z 域代数方程可得输出信号的象函数 , )()()()()()(00z A z Y z X z X z B z Y -+= 对输出象函数进行逆z 变换可得输出信号的原函数)(n y .利用z 变换求解差分方程各响应的步骤可归纳如下:(1)根据差分方程直接写出 )(z A 、 )(z B 和)(z H ,)(z H 的逆变换即为单位样值响应;(2)根据激励信号算出 )(z X ,如激励不是因果序列则还要算出前M 个初始状态值;(3)根据差分方程的初始状态 )(, ),2( ),1(N y y y -⋅⋅⋅--和激励信号的初始状态 )(, ),2( ),1(M x x x -⋅⋅⋅--算出 )(0z Y 和 )(0z X ;(4)在z 域求解代数方程)()()()()()(00z X z X z B z Y z Y z A +=+得输出象函数 )(z Y , )(z Y 的逆变换即为全响应;(5)分析响应象函数的极点来源及在z 平面中的位置,确定自由响应与强迫响应,或瞬态响应与稳态响应;(6)根据零输入响应和零状态响应的定义,在z 域求解双零响应的象函数,对双零响应的象函数进行逆z 变换,得零输入响应和零状态响应.用变换域法求解例1的基本过程如下. 根据差分方程直接写出2181431 )(--+-=z z z A ,1311 )(-+=z z B .系统函数的极点为41,21. 对激励信号进行z 变换得)43/( )(-=z z z X .激励象函数的极点为3/4. 根据差分方程的初始状态算出102123 )(-+-=z z Y .根据激励信号的初始状态算出 0)(0=z X . 对z 域代数方程求解,得全响应的象函数)323161123/()83243125( )(2323-+-+-=z z z z z z z Y . 进行逆z 变换得全响应为)(])43(213 )41(35)21(317[)(n u n y n n n ⋅+⋅+⋅-= 其中,与系统函数的极点对应的是自由响应;与激励象函数的极点对应的是强迫响应. )(z Y 的极点都在z 平面的单位圆内故都是瞬态响应.零输入响应和零状态响应可按定义参照求解.上述求解过程可借助MATLAB 的符号运算编程实现.实现变换域法求解差分方程的m 程序如下: clc;clear;format compact;syms z n %定义符号对象% 输入差分方程、初始状态和激励信号%a=[1,-3/4,1/8],b=[1,1/3], %输入差分方程系数向量y0=[4,12],x0=[0], %输入初始状态,长度分别比a 、b 短1,长度为0时用[]xn=(3/4)^n, %输入激励信号,自动单边处理,u(n)可用1^n 表示% 下面是变换域法求解差分方程的通用程序,极点为有理数时有解析式输出 %N=length(a)-1;M=length(b)-1;%计算长度Az=poly2sym(a,'z')/z^N;Bz=poly2sym(b,'z')/z^M;%计算A(z)和B(z)Hz=Bz/Az;disp('系统函数H(z):'),sys=filt(b,a),%计算并显示系统函数hn=iztrans(Hz);disp('单位样值响应h(n)='),pretty(hn),%计算并显示单位样值响应Hzp=roots(a);disp('系统极点:');Hzp,%计算并显示系统极点Xz=ztrans(xn);disp('激励象函数X(z)='),pretty(Xz),%激励信号的单边z 变换Y0z=0;%初始化Y0(z),求Y0(z)注意系数标号与变量下标的关系for k=1:N;for l=-k:-1;Y0z = Y0z+a(k+1)*y0(-l)*z^(-k-l);endenddisp('初始Y0(z)'),Y0z,%系统初始状态的z 变换X0z=0;%初始化X0(z),求X0(z)注意系数标号与变量下标的关系for r=1:M;for m=-r:-1;X0z = X0z+b(r+1)*x0(-m)*z^(-r-m);endenddisp('初始X0(z)'),X0z,%激励信号起始状态的z 变换Yz=(Bz*Xz+X0z-Y0z)/Az;disp('全响应的z 变换Y(z)'),pretty(simple(Yz)),yn=iztrans(Yz);disp('全响应y(n)='),pretty(yn),% 计算并显示全响应Yziz=-Y0z/Az;disp('零输入象函数Yzi(z)='),pretty(Yziz),%零激励响应的z 变换yzin=iztrans(Yziz);disp('零输入响应yzi(n)='),pretty(yzin),% 计算并显示零输入响应 Yzsz=(Bz*Xz+X0z)/Az;disp('零状态象函数Yzs(z)='),pretty(Yzsz),%零状态响应的z 变换yzsn=iztrans(Yzsz);disp('零状态响应yzs(n)='),pretty(yzsn),% 计算并显示零状态响应该程序的运行过程与手算过程对应,显示在命令窗的运行结果与手算结果相同.。

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

运动目标检测方法

运动目标检测方法

运动目标检测方法
运动目标检测是计算机视觉领域中的一个重要任务,旨在识别图像或视频中的运动目标并将其从背景中分割出来。

以下是几种常见的运动目标检测方法:
1. 基于背景差分的方法:该方法通过建立静态背景模型并通过计算当前帧与背景之间的差异来检测运动目标。

常见的背景差分算法有帧差法、高斯混合模型(GMM)法等。

2. 基于光流的方法:光流是描述图像中像素运动方向和速度的一种方法。

基于光流的运动目标检测方法通过计算两个相邻帧之间的光流场,并根据光流的一致性来检测运动目标。

常见的光流算法有Lucas-Kanade算法、Horn-Schunck 算法等。

3. 基于运动轨迹的方法:该方法通过跟踪目标的运动轨迹来检测运动目标。

常见的运动目标跟踪算法有卡尔曼滤波算法、粒子滤波算法等。

4. 基于深度学习的方法:近年来,深度学习技术在计算机视觉领域取得了显著的进展。

基于深度学习的运动目标检测方法通过使用深度学习模型,如卷积神经网络(CNN)或循环神经网络(RNN),来学习图像或视频中的运动目标特征,并进行目标检测。

5. 基于多目标跟踪的方法:运动目标检测通常是多目标跟踪的前置任务。

基于
多目标跟踪的方法可以通过结合目标检测和目标跟踪的技术,实现对连续帧中的多个目标进行准确的检测。

这些方法各有特点和适用领域,选择适合任务需求的方法能够提高运动目标检测的效果。

差分方程的解法分析及MATLAB实现

差分方程的解法分析及MATLAB实现

差分方程的解法分析及MATLAB实现差分方程是描述离散时序系统行为的数学工具。

在离散时间点上,系统的行为由差分方程给出,这是一个递归方程,其中当前时间点的状态取决于之前的状态和其他外部因素。

解差分方程的方法可以分为两类:直接解法和转化为代数方程的解法。

直接解法通过求解差分方程的递归形式来得到解析或数值解。

转化为代数方程的解法则将差分方程转化为代数方程进行求解。

一、直接解法的步骤如下:1.将差分方程表示为递归形式,即将当前时间点的状态表示为之前时间点的状态和其他外部因素的函数。

2.根据初始条件,确定初始时间点的状态。

3.根据递归形式,计算出后续时间点的状态。

以下是一个简单的差分方程的例子:y(n)=2y(n-1)+1,其中n为时间点。

按照上述步骤求解该差分方程:1.将差分方程表示为递归形式:y(n)=2y(n-1)+12.根据初始条件,假设y(0)=1,确定初始时间点的状态。

3.根据递归形式,计算出后续时间点的状态:y(1)=2y(0)+1=2*1+1=3y(2)=2y(1)+1=2*3+1=7y(3)=2y(2)+1=2*7+1=15...依此类推计算出所有时间点的状态。

二、转化为代数方程的解法的步骤如下:1.假设差分方程的解具有指数形式,即y=r^n,其中r为待定参数。

2.将差分方程代入上述假设中,得到r的方程。

3.解得r的值后,再根据初始条件求解出常数值。

4.得到差分方程的解析解。

以下是一个复杂一些的差分方程的例子:y(n)=2y(n-1)+3y(n-2),其中y(0)=1,y(1)=2按照上述步骤求解该差分方程:1.假设差分方程的解具有指数形式:y=r^n。

2.代入差分方程得到:r^n=2r^(n-1)+3r^(n-2)。

3.整理得到:r^2-2r-3=0。

4.解得r的值为:r1=-1,r2=35.根据初始条件求解出常数值:y(0)=c1+c2=1,y(1)=c1-c2=2、解得c1=1.5,c2=-0.56.得到差分方程的解析解:y(n)=1.5*(-1)^n+-0.5*3^n。

【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)。

第二章
MATLAB优化算法案例分析与应用
•2.1 运动目标检测的一般过程
•2.1.1 手动背景法
• 手动背景法需要人去观察背景图像,选取某一帧图像作为 背景图像,然后其它物体与该选定的背景图像进行分析运算。 然而这种背景提取方法耗费了大量的人力和物力,而且在很多 情况下,是很难获得背景图像,因为一个视频中,背景可能会 晃动,且不同图像曝光度不同,也可能背景里面的物体是一直 存在的,因此手动背景法误差是比较大的。然而对于高速公路 的车辆监控系统,由于摄像头是固定不动的,图像背景可以在 没有车辆的时候获取,从而使得车辆检测以及车辆流统计等运 用中应用比较广泛,当然也不止公路车辆检测系统,也可以应 用到社区门禁系统等。
第二章
MATLAB优化算法案例分析与应用
第2章
基于背景差分的运动目标检测与 MATLAB实现
第二章
M算机视觉的一个分支,在理论和实践上都有重 大意义,长久以来一直被国内外学者所关注。在实际中,利用摄像机对某一 特定区域进行监视,是一个细致而连续的过程,它可以由人来完成,但是人 执行这种长期枯燥的例行监测是不可靠的,而且费用也很高,因此引入运动 监测非常有必要。背景差分法是目前运动检测中最常用的一种方法,它是利 用当前图像与背景图像的差分来检测出运动区域的一种技术。它一般能够提 供最完全的特征数据,但对于动态场景的变化,如光照和外来无关事件的干 扰等特别敏感。该算法,首先选取背景中的一幅或几幅图像的平均作为背景 图像,然后把以后的序列图像当前帧和背景图像相减,进行背景消去。若所 得到的像素数大于某一阈值,则判定被监控场景中有运动物体,从而得到运 动目标。
% 加载图像并转化为double
im4 = imread('80.jpg'); im4 = im2double(im4); 类型
% 加载图像并转化为double
im5 = (im1+im2+im3+im4)/4; 作
% 平均操
figure,imshow(im5,[])
第二章
MATLAB优化算法案例分析与应用
第二章
MATLAB优化算法案例分析与应用
(a)第1帧图像
(b)第30帧图像
(c)第60帧图像
第二章
MATLAB优化算法案例分析与应用
经过对连续60帧计算算术平均值,MATLAB程序如下:
clc,clear,close all 口
% 清屏、清工作区、关闭窗
warning off
% 消除警告
feature jit off
Di x, y Ii x, y Ii1 x, y
M
i
x,
y
10,,DDii
T T
第二章
MATLAB优化算法案例分析与应用
(f)差分后二值化图像
(i)差分后二值化图像
•采用算术平均法提取背景图像,是较简单的一种背景计算方法,即 将所有的图像进行加法,然后取平均法即背景图像。为什么可用算法 平均法进行背景提取,主要考虑到背景信息占图像主要部分,不同帧 图像均含有图像背景信息,采用加法求均值法,弱化运动目标,突出 了背景信息,因此可以连续读入N帧图像,然后进行算法平均法进行 背景提取。同样这样的一种算法平均法,也可以弱化图像的背景白噪 音点,因此,算术平均值法具有平滑图像的作用。
图2- 2 算术法提取的背景图像
第二章
MATLAB优化算法案例分析与应用
•2.2 运动目标检测的一般方法
•帧间差法类似于背景差法,即采用相连帧图像做差,从而实现 运动目标的提取,这个相连帧选取,可由用户自定,例如选择 相隔1帧、相隔2帧、……、N帧图像等。采用帧间差法也可以 忽略图像背景的影响,能够适应复杂图像的运动目标检测,但 是采用帧间差法进行运动目标提取,提取误差是较大的,用户 需要进行辅以其它图像处理方法进行运动目标精确提取。因此 可以总结到:相连帧的选取不当,不利于图像运动目标的提取 ,用户需要不断的调试,从而确定相隔帧数的合理选择。
第二章
MATLAB优化算法案例分析与应用
•2.1 运动目标检测的一般过程
•2.1.2 统计中值法
•考虑到运动物体较少的情况下,也就是连续多帧图像中,背景像素 值占主要部分,也就是背景图像在该段时间内变化较缓慢,则我们可 对该序列图像进行统计取中值,取中值图像便可以认为它是背景图像 。
•2.1.3 算术平均法
% 加速代码执行
im1 = imread('1.jpg'); im1 = im2double(im1);
% 加载图像并转化为double
类型
im2 = imread('30.jpg'); im2 = im2double(im2); 类型
% 加载图像并转化为double
im3 = imread('60.jpg'); im3 = im2double(im3); 类型
相关文档
最新文档