沈阳理工大学数字图像处理课程设计I摘要运动目标检测方法是研究如何完成对视频图像序列中感兴趣的运动目标区域的“准确定位”问题。光流场指图像灰度模式的表面运动,它可以反映视频相邻帧之间的运动信息,因而可以用于运动目标的检测。MATLAB这种语言可移植性好、可扩展性强,再加上其中有丰富的图像处理函数,所以利用MATLAB软件来用光流法对运动目标的检测中具有很大的优势。本设计主要可以借助matlab软件编写程序,运用Horn-Schunck算法对图像前后两帧进行处理,画出图像的光流场。而图像的光流场每个像素都有一个运动矢量,因此可以反映相邻帧之间的运动,分析图像的光流场就可以得出图像中的运动目标的运动情况。关键字:光流法;Horn-Schunck算法;matlab沈阳理工大学数字图像处理课程设计II目录1光流法的设计目的.....................................................................................................12光流法的原理.............................................................................................................12.1光流法的介绍..................................................................................................12.1.1光流与光流场的概念...........................................................................12.1光流法检测运动目标的原理..........................................................................22.1.1光流场计算的基本原理.......................................................................22.2.2基于梯度的光流场算法.......................................................................22.2.3Horn-Schunck算法...............................................................................32.2.4光流法检测运动目标物体的基本原理概述.......................................53光流法的程序具体实现.............................................................................................63.1源代码..............................................................................................................63.1.1求解光流场函数...................................................................................63.1.2求导函数...............................................................................................93.1.3高斯滤波函数.......................................................................................93.1.4平滑性约束条件函数.........................................................................103.1.5画图函数.............................................................................................104仿真图及分析...........................................................................................................12结论..............................................................................................................................13参考文献......................................................................................................................14沈阳理工大学数字图像处理课程设计11光流法的设计目的数字图像处理,就是用数字计算机及其他有关数字技术,对图像进行处理,以达到预期的目的。随着计算机的发展,图像处理技术在许多领域得到了广泛应用,数字图像处理已成为电子信息、通信、计算机、自动化、信号处理等专业的重要课程。数字图像处理课程设计是在学习完数字图像处理的相关理论后,进行的综合性训练课程,其目的是:使学生进一步巩固数字图像处理的基本概念、理论、分析方法和实现方法;增强学生应用Matlab编写数字图像处理的应用程序及分析、解决实际问题的能力;尝试所学的内容解决实际工程问题,培养学生的工程实践能力。运动目标检测是数字图像处理技术的一个主要部分,近些年来,随着多媒体技术的迅猛发展和计算机性能的不断提高,动态图像处理技术日益受到人们的青睞,并且取得了丰硕的成果,广泛应用于交通管理、军事目标跟踪、生物医学等领域。因此,基于光流法,实现运动目标的检测是本文的研究对象。结合图书馆书籍、网上资料以及现有期刊杂志,初步建立起运动目标检测的整体思路和方法。2光流法的原理2.1光流法的介绍2.1.1光流与光流场的概念光流是指空间运动物体在观测成像面上的像素运动的瞬时速度,它利用图像序列像素强度数据的时域变化和相关性来确定各自像素位置的“运动”,即反映图像灰度在时间上的变化与景物中物体结构及其运动的关系。将二维图像平面特定坐标点上的灰度瞬时变化率定义为光流矢量。视觉心理学认为人与被观察物体沈阳理工大学数字图像处理课程设计2发生相对运动时,被观察物体表面带光学特征的部位的移动给人们提供了运动和结构的信息。当相机与场景目标间有相对运动时所观察到的亮度模式运动称之为光流(opticalflow),或者说物体带光学特征部位的移动投影到视网膜平面(也即图像平面)上就形成了光流。光流场是指图像灰度模式的表观运动,它是一个二维矢量场,所包含的信息就是各个像素点的瞬时运动速度矢量信息。光流场每个像素都有一个运动矢量,因此可以反映相邻帧之间的运动[1]。2.1光流法检测运动目标的原理2.1.1光流场计算的基本原理一般情况下,光流由相机运动,场景中目标运动或两者的共同运动产生。光流场的计算大致可分为三类:基于梯度的方法(Horn-Schunck);基于匹配的方法;基于能量的方法。基于梯度的方法利用图像灰度的梯度来计算光流,是研究最多的方法。基于梯度的方法根据运动前后图像灰度保持不变这个基本假设,导出光流约束方程。由于光流约束方程并不能唯一的确定光流,因此需要导入其他的约束。根据引入的约束不同,基于梯度的方法又可以分为全局约束方法和局部约束方法。全局约束的方法假定光流在整个图像范围内满足一定的约束条件;而局部约束的方法假定在给定点周围的一个小区域内,光流满足一定的约束条件。基于匹配的方法,这类方法是将速度vm定义为视差d=(dx,dy)t,使得两个时刻的图像区域的匹配最佳。为了找到最佳匹配,我们可以对定义在d上的相似度量,如规一化的互相关系数,进行最大化,也可以对某一距离度量,如光强度差的平方和,进行最小化[2]。2.2.2基于梯度的光流场算法梯度光流法又分为全局约束方法和局部约束方法。全局约束方法假定光流在整个图像范围内满足一定的约束条件,而局部约束的方法假定在给定点周围的一个小区域内,光流满足于一定的约束条件。下面先导出光流约束方程。然后给出两种比较典型的基于梯度的方法。沈阳理工大学数字图像处理课程设计3假定图像上点tyx),(m在时刻t的灰度值为)(tyx,,I,经过时间间隔dt后,对应点的灰度为dt)tdy,ydx,xI([3],当时,可以认为两点的灰度不变,也就是:)()(tyxdttdyydx,,I,,xI(2.1)如果图像灰度随x,y,t缓慢变化,可以将(1)式左边泰勒级数展开:),,(,,ItyxIdttdyydxx)((2.2)其中ε代表二阶无穷小项。由于dt→0,忽略ε,可以得到:0IdttIdyxIdxx(2.3)令u=,v=代表x,y方向上的光流,IX=,IY=,IT=分别代表图像灰度相对于x,y,t的偏导[4],式(2.3)可以写成:0IvIuItyx(2.4)此式即光流场的基本方程。写成向量形式,即:0tmIV(2.5)其中=(IX,Iy)是图像在点m处的梯度,Vm(U,V)是点m的光流。上式称为光流约束方程,是所有基于梯度的光流计算方法的基础。2.2.3Horn-Schunck算法Horn-Schunck算法提出了光流的平滑性约束。即:图像上任一点的光流并不是独立的,光流在整个图像范围内平滑变化。因此Horn-Schunck算法是一种全局约束的方法[5]。设平滑性约束项为极小化:dxdyvvuuyxyxs)(E2222(2.6)由基本等式,显然要求极小化:dxdyIyIuItyxc2)(E(2.7)于是,由(2.6)和(2.7)式可知,最后求得光流应满足(2.8)式:沈阳理工大学数字图像处理课程设计4dxdyIvIuIvvuutyxyxyx])()([min22222(2.8)这里λ的取值要考虑图中的噪声情况,如果噪声较强,说明图像数据本身的置信度较低,需要更多的依赖光流约束,所以可以取较大的值;反之,取较小的值。为了满足(2.8),可将该式对u和v分别求导,并取导数为0。这样就得到[5]:txyxxIIuvIIuI22(2.9)tyyxyIIvuIIvI22(2.10)以上两式也称为Euler方程。如果令u和v分别表示u邻域和v邻域中的均值(可用图像平滑算子求得)[6],并令uuu和vvv,则式(2.9)和(2.10)改写成:)()(kjikjikjikjikjikjikjikjiIIIIII,1,1,1,,,1,,1,1,11,1,1,,11,,tI41I41I(2.11)txyxIIuvIIu222xI)((2.12)tyyxIIvuIIv222yI)((2.13)从上式解得:222)(yxtyxxIIIvIuIIuu(2.14)222y)(yxtyxIIIvIuIIvv(2.15)式(2.14)和(2.15)提供了用迭代法求解u和v的基础[7]。实际中,常用松弛迭方程进行求解:222)()()()1(yxtkykxxkkIIIvIuIIuu