文档库 最新最全的文档下载
当前位置:文档库 › 基于opencv的运动目标检测与跟踪-毕设论文

基于opencv的运动目标检测与跟踪-毕设论文

基于opencv的运动目标检测与跟踪-毕设论文
基于opencv的运动目标检测与跟踪-毕设论文

基于VC的运动图像跟踪算法设计

学院自动化学院

专业

班级

学号

姓名

指导教师

负责教师

沈阳航空航天大学

2013年6月

沈阳航空航天大学毕业设计(论文)

摘要

运动目标检测与跟踪作为计算机视觉领域的一个重要分支与基础,在工业、医疗保健、航空航天、军事等各个领域具有广泛的应用前景,一直受到广泛的关注,并成为计算机视觉领域的一个研究热点。但是由于运动目标检测问题本身的复杂性,运动目标的检测与跟踪依然面临着诸多挑战。本文在现有研究成果的基础上,对静态场景下的运动目标检测跟踪进行了深入的讨论。

本文首先对运动目标检测的基本方法----帧间差分法与背景差分法进行了深入的学习和探讨,然后,借助于OpenCV技术,在Visual C++ 6.0编程环境下开发了运动目标检测跟踪系统。该系统首先对采集的视频图像序列进行相关的预处理之后,将视频图像序列中的运动目标比较可靠地检测出来。通过系统的测试结果和数据可以得出结论:本文基于OpenCV设计的运动目标检测跟踪系统具有良好的实时性,能够正确地进行运动目标的实时检测与跟踪。

关键词:运动目标检测;帧间差分法;视频图像;OpenCV

基于VC的运动图像跟踪算法设计

Algorithm Design of Image Motion Tracking Based on VC

Abstract

Moving target detection and tracking field of computer vision as an important branch of the foundation, in the industrial, healthcare, aerospace, military and other fields with a wide range of applications, has been widespread concern, and the field of computer vision to become a research hotspot. However, due to moving target detection complexity of the problem itself, moving target detection and tracking is still facing many challenges. In this paper, based on the results of existing research in static scenes of the moving target detection and tracking in-depth discussion.

This article first basic method of moving target detection - frame difference method and background subtraction method conducted in-depth study and discussion, and then, by means of OpenCV technology, Visual C 6.0 programming environment developed a moving target detection and tracking system. The system and the collection of the associated video sequence after pretreatment, the video image of the moving target sequence comparison reliably detected. Through systematic test results and data can be concluded: Based on OpenCV design moving target detection and tracking system has good real-time, be able to properly carry out real-time moving target detection and tracking.

Keywords: moving target detection; frame difference method; video frame; OpenCV

沈阳航空航天大学毕业设计(论文)

目录

1 绪论 (1)

1.1 课题来源与背景 (1)

1.2 数字图像处理技术的发展与应用 (1)

1.3 运动目标检测技术的研究现状 (2)

1.4 本文的任务、主要内容及结构 (4)

1.5 本章小结 (5)

2 OpenCV技术介绍 (6)

2.1 OpenCV简介 (6)

2.2 OpenCV的优势 (6)

2.3 OpenCV在Visual C++6.0下的配置方法 (7)

2.4 OpenCV中常用的数据结构及函数介绍 (9)

2.5 本章小结 (13)

3 图像预处理 (14)

3.1 图像的获取与灰度转换 (14)

3.1.1 图像噪声 (15)

3.1.2 噪声的特征 (15)

3.1.3 噪声的分类 (15)

3.2 图像滤波 (16)

3.2.1 中值滤波原理 (16)

3.2.2 中值滤波特性 (17)

3.3 本章小结 (18)

4 运动目标检测 (19)

4.1 运动目标检测的基本方法 (19)

4.1.1 帧间差分法 (20)

4.1.2 背景差法 (21)

4.1.3 光流法 (22)

4.2 本文采用的算法设计 (22)

基于VC的运动图像跟踪算法设计

4.2.1 新算法思想 (23)

4.2.2 算法描述 (23)

4.3 图像的二值化 (24)

4.4 数学形态学滤波 (25)

4.4.1 腐蚀与膨胀 (26)

4.4.2 开运算和闭运算 (26)

4.5 目标检测试验与结果分析 (28)

4.6 本章小结 (29)

5 目标跟踪算法的研究 (30)

5.1 运动目标的跟踪原理 (30)

5.2 运动目标特征 (30)

5.3 图像匹配法 (31)

5.4 基于团块的目标跟踪 (31)

5.5 本章小结 (34)

6 程序结果演示与分析 (35)

6.1 运动目标检测与跟踪演示 (35)

6.2 本章小结 (37)

结论 (38)

参考文献 ............................................................................................. 错误!未定义书签。致谢 (40)

附录Ⅰ程序清单 (42)

沈阳航空航天大学毕业设计(论文)

1 绪论

如何更好地、更准确地理解视觉信息已经成为当前科学研究的一个重要课题。而计算机视觉就是通过计算机代替人眼及大脑对外界环境进行感知、分析和理解。随着计算机技术的不断发展和计算机性能的逐渐提高,计算机视觉成为了一个崭新且发展迅速的热门领域,并成为计算机科学的重要研究领域之一。计算机视觉技术已经在许多领域得到广泛应用,可以这么说,需要人类视觉的场地方几乎都可以借助于计算机视觉。许多人类视觉无法触及的场合,如危险场景监测、微观物体精确定量、不可见物体感知等,计算机视觉更突显其优越性。

1.1课题来源与背景

随着计算机技术的高速发展,运动物体的检测和跟踪在图像处理、计算机视觉、模式识别、人工智能、多媒体技术等领域越来越受到人们的关注。运动跟踪和检测的应用广泛,在智能监控和人机交互中,如:银行、交通、超市等场合常常使用运动跟踪分析技术,通过定位物体并对其行为进行分析,一旦发现物体有异常行为,监控系统就发出警报,提醒人们注意并即时的处理,改善了人工监督注意力分散、反应时间较慢、人力资源浪费等问题。运动目标的跟踪在虚拟现实、工业控制、军事设备、医学研究、视频监控、交通流量观测监控等很多领域也有重要的实用价值。特别在军事上,先进的武器导航、军事侦察和监控中都成功运用了自动跟踪技术。而跟踪的难点在于如何快速而准确的在每一帧图像中实现目标定位。正因如此,对运动目标的跟踪和检测的研究很有价值。

1.2数字图像处理技术的发展与应用

数字图像处理技术是20世纪60 年代随着计算机技术和VLS(I Very Large Scale Integration)的发展而产生、发展和不断成熟起来的一个新兴技术领域,它在理论上和实际应用中都取得了巨大的成就。

20世纪20年代,图像处理技术首次应用于改善伦敦和纽约之间海底电缆发送的图片质量。到20世纪50年代,计算机发展到一定的水平后,数字图像处理才真正引起人们的兴趣。1964年美国喷气推进实验室通过计算机对“徘徊者七号”太空船发回的

基于VC的运动图像跟踪算法设计

大批月球照片进行处理,获得了巨大成功。20世纪60年代末,数字图像处理初步具备了比较完整的体系,形成了一门新兴的学科。20世纪70年代,数字图像处理技术得到迅猛的发展,理论和方法进一步完善,应用范围更加广泛。在这一时期,图像处理主要和模式识别及图像理解系统的研究相联系,如文字识别、医学图像处理、遥感图像的处理等。20世纪70年代后期到现在,各个应用领域对数字图像处理提出越来越高的要求,促进了这门学科向更高要求的方向发展。特别是在景物理解和计算机视觉(即机器视觉)方面,图像处理已由二维处理发展到三维理解或解释。进入21世纪后,随着计算机技术的迅猛发展和相关理论的不断完善,数字图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就。属于这些领域的有航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等。该技术成为一门引人注目、前景远大的新型学科。

1.3运动目标检测技术的研究现状

由运动目标所形成的图像序列可分为两种情况:一种是静态场景,一种是动态场景。前一种情况通常发生在摄像机相对静止状态(如监视某一路口车流量的固定摄像机),后一种情况通常发生在摄像机也在相对运动状态(如装在卫星或飞机上的监视系统)。

近几年来,研究人员提出了许多方法用于检测和跟踪序列图像中的运动目标,其中绝大多数方法都假设用于获取序列图像的背景是静止的,而大多数实际情况也满足这一假设,所以人们主要研究的是背景静止-物体运动这种情况下获取的动态序列图像。针对这种情况,现有的运动目标检测方法主要有三类:帧差法(Temporal difference)、背景减法(Background subtraction)、光流场法(Optical flow)。

帧差法即帧间差分法,是在连续的图像序列中,提取两个或三个相邻帧,采用基于像素的时间差分来获取图像中的运动信息。帧间差分法计算简单,对动态环境具有较强的适应性,但不能提取出目标的所有相关点,容易在目标内部形成“空洞”,而且要求背景绝对静止或基本无变化(噪声较小),因而适用场合有限。

背景减法也称背景差分法,基本思想是将当前帧图像与事先存储或者实时得到的背景图像相减,即当前图像与已知背景图像之间的差分。较早期的背景差分法有均值、中值、运动平均、高斯模型方法等,随着研究的深入,逐渐出现了一些比较成熟的背景差方法。1999年MIT的C.Stauffer提出了基于混合高斯模型的背景差方法,针对高斯噪声的复杂背景,采用多个高斯分布描述像素过程;2000年MIT的Oliver等人

沈阳航空航天大学毕业设计(论文)

提出了背景特征化建模的方法。主要研究的焦点都落在了背景更新与建模方法上。从实际应用角度来看,帧差和背景减相结合的运动检测是使用最广泛的一种方法。Spagnol等人提出了一种运用邻域的相关系数结合帧差和背景减来进行运动检测的方法,该方法不仅有效地抑制了光照变化对检测结果的影响,并解决了阴影、重影和伪前景等问题。但国内有人指出了Spagnol的方法的三个不足之处:①会将背景颜色一致的区域误判为前景;②当运动目标速度缓慢或静止时,存在漏检;③在背景复杂的情况下,背景更新策略将使背景模型退化。并且,提出了首先用灰度拉伸变换,并结合灰度值信息来改进邻域相关系数的计算方法,以排除背景的误判;然后通过在帧差和背景减相结合的策略中加入运动分析,用来改善运动缓慢目标的检测结果;最后在背景复杂的情况下用运行期更新法进行背景更新,以防止背景模型的退化。

最后,光流场法是分析序列图像中运动目标的重要方法,它既可以用于运动目标的检测,也可以用于运动目标的跟踪。所谓光流是指图像中灰度模式运动的速度;它是景物中可见点的三维速度矢量在成像平面上的投影,它表示了景物表面点在图像中位置的瞬时变化;同时光流场携带了有关运动和结构的丰富信息。光流场的计算最初是由国外两名学者提出的,它是一种以灰度梯度基本不变或亮度恒定的约束假设为基础的运动目标探测的有效方法。光流法能够较好的处理运动背景的情况,但计算量巨大,难以应用到实时系统,同时对噪声比较敏感,精度较低,难以得到运动目标的精确边界。而张泽旭等将Canny边缘提取融入光流场分割技术,对单运动目标和多运动目标均取得了比较满意的效果,实时性也大大提高。但如何进一步提高其抗噪性、实时性和运算速度,有待于深入研究。

总的来说,过去的二三十年中,国内外学者在运动目标检测理论及其实现方面做了大量、深入的研究工作,取得了令人瞩目的成果,并将研究的成果应用到很多领域,如智能监控系统、军事制导等等。但是由于运动目标检测问题本身的复杂性和目前视频技术发展水平的限制,运动目标的检测技术至今仍然处于研究和讨论阶段,到目前为止,还没有出现能够适用于各种场合、各种情况的通用算法。现今的各种算法在稳健性、准确性、可靠性等方面还有着这样、那样的不足。这些算法有的简单、易于实现,实时性好,但可靠性不高,在复杂场景和运动下算法容易失效;有的虽然可靠性较高,但算法过于复杂,不利于进行实时检测。而且,静态场景下的运动目标检测的研究较多;而动态场景下的检测研究较少,算法还不成熟。已有的运动目标检测系统大多受限于特定的应用场景,目标检测算法还有待于进一步研究和优化,研究一种鲁棒性好、精确度高、性能稳定和适用性强的运动目标检测算法依然任重道远,面临巨

基于VC的运动图像跟踪算法设计

大挑战。

1.4本文的任务、主要内容及结构

课题研究的主要任务及技术指标

主要任务:

该毕业设计的主要工作包括了解摄像头图像采集系统的工作过程,首先实现摄像头的数据采集过程,进而编写基于VC的图像处理程序,对画面中的动态物体进行识别并用矩形方框将其标记。

技术指标:

构造出完整的基于VC的摄像头数据采集及运动图像跟踪系统;实现摄像头的数据采集过程,进而编写基于VC的图像处理程序,对画面中的动态物体进行识别并用矩形方框将其标记。

本文的主要内容及结构

本文选取的运动目标检测跟踪的算法作为研究重点。利用OpenCV和Visual C++组建实验平台,针对数字图像特定噪声的去除、运动目标的正确识别与分割、处理的实时性要求等难点进行了研究。

本文主要工作总结如下:

在对图像噪声的处理方面:综合使用各种方法去除图像噪声,通过实验比较了这些方法所适用的场合。

在运动目标检测跟踪方面:重点研究了目前在实际应用中普遍采用的以帧间差算法。在对检测出的变化区域进行后处理方面:采用适当的形态学滤波处理得到更清晰、更准确的运动目标,进而进行连通性分析,去除小面积噪声,保留足够大的目标。最后进行区域标记,分割出完整的运动目标,加以标记。

综上,本文旨在利用现有的理论、算法和工具,以工程应用为目的,研究如何从序列图像中检测出运动目标。并且,本文基于OpenCV这个开放的计算机视觉程序库,通过VC++编程环境对运动目标检测算法进行了编程实现,完成了运动目标检测系统。按照问题描述、问题建模、问题求解的思路共分六章,主要内容及结构组织如下:第一章绪论。概述了课题的研究背景,主要讨论了运动目标检测技术的研究现状、数字图像处理技术的发展与应用,阐述了论文的整体结构。

沈阳航空航天大学毕业设计(论文)

第二章介绍研究OpenCV技术。其中OpenCV的优势、OpenCV在Visual C++6.0下的配置方法和OpenCV中常用的数据结构及函数介绍。对数据结构的必要描述为后面函数的应用奠定了一定的理论基础。

第三章图像预处理。

本章对图像预处理的过程进行了详细的描述。为此,我们首先要图像的提取和灰度转换。然后图像上噪声进行研究,详细叙述了中值滤波原理,利用中值滤波去除图像的噪声。不断进行实验,以确定较为理想的阈值。

第四章运动目标检测。

本次课题研究运动目标跟踪算法,必然需要对其运动目标进行检测。通过讨论三种目标检测方法,确定本次课题以帧间差法为检测方法,然后对图像进行二值化和数学形态滤波,最后通过实验检测算法的鲁棒性。

第五章目标跟踪算法的研究

本章首先讨论了运动目标的跟踪原理,详细描述了运动目标特征的重要作用。运动目标的特征是一个重要的跟踪依据,在很多跟踪算法中都有目标特征提取这一环节。所提取的目标特征必须在环境变化、目标自身变化或者运动改变时,仍然能够将运动目标描述出来。最后详细叙述了基于团块的目标跟踪算法,包括数据的定义、模块结构与相应函数。

第六章程序结果演示与分析

本章将配置好的系统进行演示与分析,系统成功的对画面中的动态物体进行识别并用矩形方框将其标记。

1.5本章小结

在本章绪论中,主要介绍了基于VC的运动图像跟踪算法设计研究课题的背景知识发展概况及其应用,阐述了运动图像跟踪算法的现实意义,总结了论文的任务、内容与结构。

基于VC的运动图像跟踪算法设计

2 OpenCV技术介绍

OpenCV提供的视觉处理算法非常丰富,并且它部分以C语言编写,加上其开源的特性,处理得当,不需要添加新的外部支持也可以完整的编译链接生成执行程序,所以很多人用它来做算法的移植,OpenCV的代码经过适当改写可以正常的运行在DSP系统和单片机系统中。

2.1OpenCV简介

OpenCV是Intel?开源计算机视觉库。它由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。

其重要重要特性包括:拥有包括300多个C函数的跨平台的中、高层API。它不依赖于其它的外部库——尽管也可以使用某些外部库。

对非商业应用和商业应用都是免费(FREE)的。(细节参考BSD license)。

为Intel@Integrated Performance Primitives(IPP)提供了透明接口。这意味着如果有为特定处理器优化的的IPP库,OpenCV将在运行时自动加载这些库。

2.2OpenCV的优势

1)纯C代码,源代码开放。开源软件之所以能够风靡世界,首先是其开源的免费特性;此外,由于有全球众多编程者的参与,开源软件一般具有简约精炼、资源占用少、功能集中和安全性好的优点。

2)丰富的函数功能,强大的图像和矩阵运算能力:OpenCV提供了数组、序列、矩阵、树等基本结构,也包含了差分方程求解、傅立叶分析、积分运算、特殊函数等众多高级数学计算函数,以及各种图像处理操作和目标跟踪、摄像机校准、三维重建等高级视觉函数。

3)平台无关性:基于OpenCV开发的程序可以直接在Windows、Unix、Linux、MacOSX、Solaris、HP等平台之间相互移植,无需对代码进行任何修改。

4)方便灵活的用户接口。OpenCV作为一个开放的计算机视觉函数库在使用上必然没有Matlab那样解释执行来得方便,而softhitegration将CH和OpenCV绑定起来推出的CH OpenCV,解决了这一使用上的瓶颈。并且具有交互性、强大的扩展功

沈阳航空航天大学毕业设计(论文)

能、Web实现性和可嵌入性等特性。

2.3OpenCV在Visual C++6.0下的配置方法

本文的硬件平台为普通的笔记本电脑,内存容量为2G。视频输入有一个USB摄像头。软件开发平台为WindowsXP、OpenCV 1.0以及MS Visual C++6.0 (以下简称VC6.0)。

其中OpenCV配置的过程如下:

假如要将OpenCV安装到C:\Program Files\OpenCV,在安装OpenCV时选择"将\OpenCV\bin加入系统变量"(Add\OpenCV\bin to the systerm PATH)。然后,检查C:\Program Files\OpenCV\bin是否已经被加入到环境变量PATH,如果没有,请加入。加入后需要注销当前Windows用户(或重启)后重新登陆才生效。(可以在任务管理器里重启explorer.exe)。

在VC6.0下的配置步骤如下:

1)全局设置

菜单Tools->Options->Directories:

先设置lib路径,选择Library files,在下方填入路径:C:\Program Files\OpenCV\lib。

图2.1 Library files设置

然后选择Include files,在下方填入路径:

基于VC的运动图像跟踪算法设计

2.2 Include files设置

然后选择Source files,在下方填入路径:

图2.3 Source files设置

最后点击“OK”,完成设置。

2)项目设置

每创建一个将要使用OpenCV的VC Project,都需要给它指定需要的lib。菜单:Project->Settings,然后将Setting for选为All Configurations,然后选择右边的link标签,在Object/library modules(对象/库模块)附加上:cxcore.lib cv.lib ml.lib cvaux.lib highgui.lib cvcam.lib如果你不需要这么多lib,你可以只添加你需要的lib。

沈阳航空航天大学毕业设计(论文)

图2.4 项目设置

2.4OpenCV中常用的数据结构及函数介绍

2.4.1数据结构

OpenCV设计了一些基础的数据类型和一些帮助数据类型,在运用OpenCV函数库进行编程的过程中,常常会需要用到这些结构类型,只有正真了解这些结构才能够很好地利用OpenCV函数库来解决问题。

下面对几个比较常用的简单结构进行介绍。

1)CvPoint结构

表示二维坐标系下的点,类型为整型,定义如下:

typedef struct CvPoint

{

int x; /* x坐标, 通常以0为基点*/

int y; /* y坐标, 通常以0为基点*/

} CvPoint;

2)CvSize结构

CvSize结构用来表示矩形框大小,以像素为精度,结构体中分别定义了矩形的宽高和高度,定义如下:

typedef struct Cvsize

{

int width;/*矩形宽度,单位为像素*/

int height;/*矩形高度,单位为像素*/

}CvSize;

3)IplImage 结构

相关文档
相关文档 最新文档