ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:99.19KB ,
资源ID:4841952      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4841952.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(运动目标检测光流法.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

运动目标检测光流法.docx

1、运动目标检测光流法摘 要运动目标检测方法是研究如何完成对视频图像序列中感兴趣的运动目标区域的“准确定位”问题。光流场指图像灰度模式的表面运动,它可以反映视频相邻帧之间的运动信息,因而可以用于运动目标的检测。MATLAB这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以利用MATLAB软件来用光流法对运动目标的检测中具有很大的优势。本设计主要可以借助matlab软件编写程序,运用Horn-Schunck算法对图像前后两帧进行处理,画出图像的光流场。而图像的光流场每个像素都有一个运动矢量,因此可以反映相邻帧之间的运动,分析图像的光流场就可以得出图像中的运动目标的运动情况。关键字:

2、光流法;Horn-Schunck算法;matlab1 光流法的设计目的数字图像处理,就是用数字计算机及其他有关数字技术,对图像进行处理,以达到预期的目的。随着计算机的发展,图像处理技术在许多领域得到了 广泛应用,数字图像处理已成为电子信息、通信、计算机、自动化、信号处理 等专业的重要课程。数字图像处理课程设计是在学习完数字图像处理的相关理论后,进行的综合性训练课程,其目的是:使学生进一步巩固数字图像处理的基本概念、理论、分析方法和实现方法;增强学生应用Matlab编写数字图像处理的应用程序及分析、解决实际问题的能力;尝试所学的内容解决实际工程问题,培养学生的工程实践能力。运动目标检测是数字图像

3、处理技术的一个主要部分,近些年来,随着多媒体技术的迅猛发展和计算机性能的不断提高,动态图像处理技术日益受到人们的青睞,并且取得了丰硕的成果,广泛应用于交通管理、军事目标跟踪、生物医学等领域。因此,基于光流法,实现运动目标的检测是本文的研究对象。结合图书馆书籍、网上资料以及现有期刊杂志,初步建立起运动目标检测的整体思路和方法。2 光流法的原理2.1 光流法的介绍2.1.1 光流与光流场的概念光流是指空间运动物体在观测成像面上的像素运动的瞬时速度,它利用图像序列像素强度数据的时域变化和相关性来确定各自像素位置的“运动”,即反映图像灰度在时间上的变化与景物中物体结构及其运动的关系。将二维图像平面特定

4、坐标点上的灰度瞬时变化率定义为光流矢量。视觉心理学认为人与被观察物体发生相对运动时,被观察物体表面带光学特征的部位的移动给人们提供了运动和结构的信息。当相机与场景目标间有相对运动时所观察到的亮度模式运动称之为光流(optical flow),或者说物体带光学特征部位的移动投影到视网膜平面(也即图像平面)上就形成了光流。光流场是指图像灰度模式的表观运动,它是一个二维矢量场,所包含的信息就是各个像素点的瞬时运动速度矢量信息。光流场每个像素都有一个运动矢量,因此可以反映相邻帧之间的运动1。2.1 光流法检测运动目标的原理2.1.1 光流场计算的基本原理一般情况下,光流由相机运动,场景中目标运动或两者

5、的共同运动产生。光流场的计算大致可分为三类:基于梯度的方法(Horn-Schunck);基于匹配的方法;基于能量的方法。基于梯度的方法利用图像灰度的梯度来计算光流,是研究最多的方法。基于梯度的方法根据运动前后图像灰度保持不变这个基本假设,导出光流约束方程。由于光流约束方程并不能唯一的确定光流,因此需要导入其他的约束。根据引入的约束不同,基于梯度的方法又可以分为全局约束方法和局部约束方法。全局约束的方法假定光流在整个图像范围内满足一定的约束条件;而局部约束的方法假定在给定点周围的一个小区域内,光流满足一定的约束条件。基于匹配的方法,这类方法是将速度vm定义为视差d=(dx,dy)t,使得两个时刻

6、的图像区域的匹配最佳。为了找到最佳匹配,我们可以对定义在d上的相似度量,如规一化的互相关系数,进行最大化,也可以对某一距离度量,如光强度差的平方和,进行最小化2。2.2.2 基于梯度的光流场算法梯度光流法又分为全局约束方法和局部约束方法。全局约束方法假定光流在整个图像范围内满足一定的约束条件,而局部约束的方法假定在给定点周围的一个小区域内,光流满足于一定的约束条件。下面先导出光流约束方程。然后给出两种比较典型的基于梯度的方法。假定图像上点在时刻t的灰度值为,经过时间间隔dt后,对应点的灰度为3,当时,可以认为两点的灰度不变,也就是: (2.1)如果图像灰度随x,y,t缓慢变化,可以将(1)式左

7、边泰勒级数展开: (2.2)其中代表二阶无穷小项。由于dt0,忽略,可以得到: (2.3) 令u=,v=代表x,y方向上的光流,IX=,IY=,IT=分别代表图像灰度相对于x,y,t的偏导4,式(2.3)可以写成: (2.4)此式即光流场的基本方程。写成向量形式,即: (2.5)其中=(IX, Iy)是图像在点m处的梯度,Vm(U,V)是点m的光流。上式称为光流约束方程,是所有基于梯度的光流计算方法的基础。 2.2.3 Horn-Schunck算法Horn-Schunck算法提出了光流的平滑性约束。即:图像上任一点的光流并不是独立的,光流在整个图像范围内平滑变化。因此Horn-Schunck算

8、法是一种全局约束的方法5。设平滑性约束项为极小化: (2.6)由基本等式,显然要求极小化: (2.7)于是,由(2.6)和(2.7)式可知,最后求得光流应满足(2.8)式: (2.8) 这里的取值要考虑图中的噪声情况,如果噪声较强,说明图像数据本身的置信度较低,需要更多的依赖光流约束,所以可以取较大的值;反之,取较小的值。 为了满足(2.8),可将该式对u和v分别求导,并取导数为0。这样就得到5: (2.9) (2.10) 以上两式也称为Euler方程。如果令和分别表示u邻域和v邻域中的均值(可用图像平滑算子求得)6,并令和,则式(2.9)和(2.10)改写成: (2.11) (2.12) (

9、2.13) 从上式解得: (2.14) (2.15) 式(2.14)和(2.15)提供了用迭代法求解u和v的基础7。实际中,常用松弛迭方程进行求解: (2.16) (2.17) 其中k是循环数,和是初始值,可以取为0。和是局部平均,为权重系数,根据导数求取的精确度确定。 在实际求解过程中,需要估计亮度的时间和空间微分。这可在图像点的一个222立方邻域中估计8,如果下标分别对应,那么3个一阶偏导分别是: (2.18) (2.19) (2.20)也就是用一阶差分来替代灰度I关于x,y,t轴的偏导。上述算法的实现相对简单,计算复杂性较低。但是这种技术存在着严重缺陷。首先,图像灰度保持假设对于许多自然

10、图像序列来讲都是不合适的,尤其是在图像的遮合边缘处和(或)当运动速度较高时,基于灰度保持假设的约束存在较大误差。其次,在图像的遮合区域,速度场是突变的,而总体平滑约束则迫使所估计的光流场平滑地穿过这一区域,此过程平滑掉了有关物体形状的非常重要的信息。第二,微分技术的一个要求是I(x,y,t)必须是可微的,这暗示着需对图像数据进行时空预平滑9,以避免混叠效应;而且数值微分的求取具有病态性,如果处理不当将对最终的速度估计产生显著影响。2.2.4 光流法检测运动目标物体的基本原理概述给图像中的每一个像素点赋予一个速度矢量,这就形成了一个图像运动场,在运动的一个特定时刻,图像上的点与三维物体上的点一一

11、对应,这种对应关系可由投影关系得到,根据各个像素点的速度矢量特征,可以对图像进行动态分析。如果图像中没有运动物体,则光流矢量在整个图像区域是连续变化的。当图像中有运动物体时,目标与图像背景存在相对运动,运动物体所形成的速度矢量必然与邻域背景速度矢量不同,从而检测出运动物体及位置。光流法的优点:光流不仅携带了运动物体的运动信息,而且携带了有关景物三维结构的丰富信息,它能够在不知道场景的任何信息的情况下,检测出运动对象10。3 光流法的程序具体实现下面,以光流场计算的典型方法Horn-Schunck算法位例,介绍光流法的Matlab程序实现对图像运动目标的检测。3.1 源代码3.1.1 求解光流场

12、函数function u, v = HS(im1, im2, alpha, ite, uInitial, vInitial, displayFlow, displayIm) % 输入:% im1-输入图像1% im2-输入图像2% alpha-反映HS光流算法的平滑性约束条件的参数% ita-(3.15.9)式中的迭代次数% uInitial-光流横向分量初始值% vInitial-光流纵向分量初始值% displayFlow-光流场显示参数,其值为1时显示,为0时不显示% displayImg-显示光流场的指定图像,如果为空矩阵,则无指定图像输出% 输出:% u-横向光流矢量% v-纵向光流

13、矢量% 初始化参数g)% 功能:求解光流场if nargin1 | nargin2 im1=imread(yos9.tif); im2=imread(yos10.tif);endif nargin3 alpha=1;endif nargin4 ite=100;endif nargin5 | nargin6 uInitial = zeros(size(im1(:,:,1); vInitial = zeros(size(im2(:,:,1);elseif size(uInitial,1) =0 | size(vInitial,1)=0 uInitial = zeros(size(im1(:,:,1

14、); vInitial = zeros(size(im2(:,:,1);endif nargin7 displayFlow=1;endif nargin8 displayImg=im1;end% 将RGB图像转化为灰度图像if size(size(im1),2)=3 im1=rgb2gray(im1);endif size(size(im2),2)=3 im2=rgb2gray(im2);endim1=double(im1);im2=double(im2);% 调用平滑性约束函数对图像进行平滑im1=smoothImg(im1,1);im2=smoothImg(im2,1);tic;% 为光流

15、矢量设置初始值u = uInitial;v = vInitial;fx, fy, ft = computeDerivatives(im1, im2); % 调用求导函数对时间分量和空间分量进行求导kernel_1=1/12 1/6 1/12;1/6 0 1/6;1/12 1/6 1/12; % 均值模板% 迭代次数为100for i=1:ite % 计算光流矢量的局部均值 uAvg=conv2(u,kernel_1,same); vAvg=conv2(v,kernel_1,same); % 用迭代法求解光流矢量 u= uAvg - ( fx .* ( ( fx .* uAvg ) + ( fy

16、 .* vAvg ) + ft ) ) ./ ( alpha2 + fx.2 + fy.2); v= vAvg - ( fy .* ( ( fx .* uAvg ) + ( fy .* vAvg ) + ft ) ) ./ ( alpha2 + fx.2 + fy.2);endu(isnan(u)=0;v(isnan(v)=0;% 画图if displayFlow=1 plotFlow(u, v, displayImg, 5, 5); % 调用画图函数end3.1.2 求导函数function fx, fy, ft = computeDerivatives(im1, im2)% 功能:求输入图

17、像参考像素点的像素值沿三轴方向的偏导数% 输入:% im1-输入图像1% im2-输入图像2% 输出:% fx-参考像素点的灰度值沿x方向的偏导数% fy-参考像素点的灰度值沿y方向的偏导数% fz-参考像素点的灰度值沿z方向的偏导数 if size(im2,1)=0 im2=zeros(size(im1);end % 利用标准模板求得式(3.15.5)中的偏导数Ix, Iy, Itfx = conv2(im1,0.25* -1 1; -1 1,same) + conv2(im2, 0.25*-1 1; -1 1,same);fy = conv2(im1, 0.25*-1 -1; 1 1, s

18、ame) + conv2(im2, 0.25*-1 -1; 1 1, same);ft = conv2(im1, 0.25*ones(2),same) + conv2(im2, -0.25*ones(2),same);3.1.3 高斯滤波函数function G=gaussFilter(segma,kSize)% 功能:实现高斯滤波% 输入:% sigma-高斯分布的概率密度函数的方差% kSize-高斯向量的模板尺寸大小% 输出: % G-方差为segma,大小为kSize的一维高斯向量模板 if nargin1 segma=1;endif nargin2 kSize=2*(segma*3)

19、;end x=-(kSize/2):(1+1/kSize):(kSize/2);% 利用均值为0,方差为segma高斯分布概率密度函数求解一维高斯向量模板G=(1/(sqrt(2*pi)*segma) * exp (-(x.2)/(2*segma2);3.1.4 平滑性约束条件函数function smoothedImg=smoothImg(img,segma)% 功能:实现平滑性约束条件% 输入:% img-数字图像% sigma-高斯分布的方差% 输出:% smoothedImg-经高斯滤波的图像矩阵if nargin2 if sum(sum(imgOriginal)=0 imshow(i

20、mgOriginal,0 255); hold on; endendif nargin4 rSize=5;endif nargin5 scale=3;endfor i=1:size(u,1) for j=1:size(u,2) if floor(i/rSize)=i/rSize | floor(j/rSize)=j/rSize u(i,j)=0; v(i,j)=0; end endendquiver(u, v, scale, color, g, linewidth, 2);set(gca,YDir,reverse);4 仿真图及分析将上述程序保存为matlab.m格式,并输入两帧连续图像,如图

21、4.1所示:图4.1输入的两帧测试图像由图4.1可知:输入的两帧连续图像为灰度图像,并且有运动的目标即河中水流和空气。图4.2两帧测试图像的光流场及放大图像由图4.2可知:输入的两帧连续图像,在经过求导函数、高斯滤波函数、平滑条件函数处理之后,用光流法将图像中运动物体的速度矢量显现出来,图中的红色箭头即是图像中目标运动的方向。结 论光流法是对运动序列图像进行分析的一个重要方法,光流不仅包含图像中目标的运动信息,而且包含了三维物理结构的丰富信息,因此可用来确定目标的运动情况,反映图像的其他信息。基于光流法可以实现在军事航天、交通监管、信息科学、气象、医学等多个领域的重要应用。例如,利用光流场可以

22、非常有效地对运动目标进行检测和分割,这对地对空导弹火控系统的精确制导、自动飞行器精确导航与着陆、战场的动态分析、军事侦察的航天或卫星图片的自动分析系统、医学上异常器官细胞的分析与诊断系统、气象中对云图的运动分析、城市交通的车流量进行监管等都具有重要价值。参考文献1 贾永红. 计算机图像处理与分析M. 武汉:武汉大学出版社,2001.62902 陈桂明. 应用MATLAB语言处理数字信号与图像处理M. 北京:科学出版社,2000.120130.3 姚敏等.数字图像处理M.机械工业出版社,2008.03.5078 .4 吴健康. 数字图像分析M. 北京:邮电出版社,1989.89100.5 容观澳. 计算机图像处理M. 北京:清华大学出版社,2000.6686.6 夏良正.数字图像处理M.南京:东南大学出版社,1999.2022.7 章毓晋.图像处理和分析基础M.北京:高等教育出版社,2002.4456.8 唐良瑞,马全明,景晓军等.图像处理实用技术M.北京:化学工业出版社,2001.108130.9 姚敏. 计算机图像处理M. 北京:机械工业出版社,2006.101120.10 赵小川.matlab图像处理能力提高与应用案例M.北京航空航天大学出版社,2014.249259.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1