1、 本 科 毕 业 论 文 海面船只识别与跟踪算法的实现 Implementation of Recognition and Tracking Boats in Sea 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 指导教师: 年 月 摘 要 计算机视觉技术 的快速发展使得图像自动识别广泛的运用在生活和生产中,图像识别在工、农、国防等领域中发挥着越来越大的作用,具有广阔的应用前景。作为自动目标识别技术的分支,序列图像中目标的识别和跟踪对工业自动化、智能机器人的发展有重要意义。目前由于计算机结构和算法不成熟等限制,使得机器视觉领域存在许多难以解决的问题,有待研究和
2、提高。 在序列图像的预处理过程中,实现一种区域的自适应阈值分割算法,它能较快速的将光照不均匀的图像分为两部分,在对小目标的提取中有相当高的精度。但是受设备和海 面遮避物的影响,分割过程存在一定的漏识现象。本文针对单幅图像的二值分割算法进行了实例说明。 本文使用三层前向反馈神经网络对目标象素块进行识别。经过思考和实际对比后,在特征向量的选取上放弃了外型识别而直接使用图像识别,最终权衡目标精度和处理速度,选用了适中大小的向量。由于缺乏实际经验,算法在神经网络的学习率、网络层神经元数和收敛性等值的选取上存在很大的不确定性。 在船只目标的匹配跟踪过程中,本文针对多目标的匹配过程中常见问题,提出一种简易
3、的算法,使用双向匹配和添加标签的思想可快速匹配序列图像中出现的目标,并且对目标的位移、消失和重叠现象都有对应的处理。 关键词 : 船只识别 ; 目标匹配 Abstract With rapid development of computer vision, automatic image recognition is now used widely in normal life and production. It is playing an important role in area of industry, agriculture, national defense and others
4、. Being an significant branch of computer vision, research in target recognition and tracing in sequence images means a lot in industrial automation and intelligent robot. There is also restriction of technical difficulties such as process architect and immature of algorithms, making this concept ha
5、rd to implement. In the process of image pretreatment, We took a partition adaptive threshold binary algorithm which has a high performance in cutting image of uneven sunshine or gray, this algorithm works well and cuts small target precisely. We also have some bugs in cutting processing, because so
6、metimes our target is covered by obstacles in real surface of sea or lens of camera. We will have detail examples and instruction to the cutting algorithms. We took a three layer back propagation neuron net as the classifier in target recognition process. After lots of experiments, we prefer the tar
7、get image itself as specific vector, to the image shape, finally we considered recognition precision and process speed, and chose a medium sized vector. Case we lack some theory support, we are not sure the best value for some parameters, so the performance of back propagation net is unstable. In or
8、der to resolve problems we met in the last process, boat matching and tracing, we create a simple process, which using two-way matching and taps, to lock targets in sequence images. This process could deal problems such as new target appearing, target moving, target covered, target disappearing. KEY
9、 WORD: Boat Recognition; Target Matching. 目 录 第一章 引言 . 1 1.1 课题背景 . 1 1.2 课题总体思路 . 1 1.3 论文组织结构 . 1 第二章 实验系统总体设计 . 2 2.1 系统总体框架 . 2 2.2 核心算法 . 3 2.3 开发环境 . 3 第三章 详细设计 .4 3.1 获取视频源 . 4 3.2 单帧数据处理 . 5 3.3 处理位图 . 6 3.4 用区域大津法分割位图 . 9 3.5 获取特征向量 . 14 3.6 识别船 只 . 16 3.7 船只跟踪 . 20 第四章 系统实现与测试 . 25 4.1 系统界
10、面 . 25 4.2 测试与分析 . 25 第五章 结束语 . 27 参考文献 . 28 致谢语 . 29 附录 . 30 附 1 类结构 . 30 附 2 文件结构 . 31 CONTENT Chapter1 Introduction . 1 1.1 Background Intruduction . 1 1.2 About The Topic . 1 1.3 The Papers main work and structure. 1 chapter2 System Design . 2 2.1 System Frame . 2 2.2 Core Algorithms . 3 2.3 Dev
11、elopment Environment . 3 Chapter3 Detail Design .4 3.1 Acquire Source Video . 4 3.2 Process Sequence Frame . 5 3.3 Process Bitmap Image . 6 3.4 Area OTSU cutting . 9 3.5 Get Specific Array. 14 3.6 Boat Recognition . 16 3.7 Boat Tracing . 20 Chapter4 Implement and Test . 25 4.1 User Interface . 25 4.
12、2 Testing and Analyzing . 25 Chapter5 Summary . 27 References . 28 Acknowledgement . 29 Appendix . 30 Append1 Classes Structure . 30 Append2 Files Structure. 30 厦门大学本科毕业论文 1 第一章 引言 经过科学家多年的努力,终于将计算机视觉从梦想转换为现实,在如今的生活中,人们已无法离开诸多智能视觉系统。一代一代的软件系统正默默地守卫在地球的各个角落中。 1.1 课题背景 随着图像算法的涌现和计算机处理速度的不断提升,计算机视觉技术获得
13、了空前的发展,其应用领域已经遍及卫星地图识别、目标识别、控制导航、安全保卫、工业自动化等场所。自动目标的识别和跟踪是计算机视觉学科的重要分支,在工业生产、国防军事和日常生活中有越来越广的应用,本文针对海面船只的识别和跟踪这一实际问题提出了一种简易的匹配算法,并实现了一种匹域大 津分割算法和前向反馈神经网络,实际结果表明,该算法可以识别并跟踪序列图像中的目标船只。 1.2 课题总体思路 在本文实验中,输入值为包含船只信息的视频文件,输出结果为处理后的标记视频和船只信息。算法法结果针对实际问题分为三个部分:图像预处理、目标识别和目标跟踪。图像预处理过程主要对于单幅图像,首先从视频文件中获取单幅图像
14、,然后将其分割,对于特定图像进行降噪处理。目标识别过程中选用特定的分割器,将上部分的图像内容分为船只和干扰物。针对实际图像中视频分辨率较低,船只外型无法精确显示这一问题,在识别分类器上选用神经网络, 可通过大量的示例训练完成降维识别过程。在船只识别过程中本文提出简易的匹配算法,可分别处理序列图像的船只匹配、船只重合、伪船只目标、船只移出镜头等情况。 1.3 论文组织结构 论文第一章为引言部分,主要禅述了视觉识别系统的现状和海面船只识别算法的意义,最后介绍论文结构。第二章为实验系统的总体设计思路,包括程序架构,用到的算法和系统的开发环境。第三章为详细设计部分,介绍了实验系统的主要处理流程。结束语
15、总结了系统设计中存在的缺点和不足。 厦门大学本科毕业论文 2 第二章 实验系统总体设计 在课程设计中采用 VC+提供的对话框结构对相关算法进行分析和验 证,根据实际情况将系统划分为多个职责模块,每个模块负责相应的算法或数据处理。 2.1 系统总体框架 程序在设计初应用经典的三层模式,将界面、逻辑层和数据处理层分离。为了将主要精力放在算法的实现上,演示系统的界面使用 MFC 库中最简单的单对话框结构,通过增加按钮的方法链接逻辑层和数据层方法。 获取输入源目标识别图像分割图像预处理目标跟踪结束图 2-1 系统处理流程 1. 程序首先打开一个指定的 AVI视频文件,该文件通常为未压缩的 AVI视频流
16、; 2. 然后顺序以位图格式获取该文件的每一帧数据; 3. 处理该位图并获得图 内船 只 信息; 4. 获取数帧之间船 只 的方位位移和形状大小的变化量,更新船 只 信息; 5. 判断该帧是否为文件的最后一帧,若不是,跳至上图第二步,读取新一帧的内容, 6. 若是,则关闭上文件,程序结束。 厦门大学本科毕业论文 3 2.2 核心算法 系统的主要算法分为图像预处理、目标识别和目标跟踪三部分。其中图像预处理主要的算法有基于大津分割法的分块二值算法,目标识别中主要用到反向前馈型神经网络分类器,目标跟踪阶段跟据实际情况,采用自写的匹配跟踪算法。 2.3 开发环境 程序开发时 IDE 采用 VC+6.0
17、 版本,界面开发使用 MFC 库。 Microsoft Foundation Classes, 简称 MFC,是一个微软公司提供的类库( class libraries),以 C+类的形式封装了 Windows 的 API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量 Windows 句柄封装类和很多 Windows的内建控件和组件的封装类。 MFC 的主要优点是可以用面向对象的方法来调用 Windows API,以及应用程序开发的便捷。MFC 将很多应用程序开发中常用的功能自动化,并且提供了文档框架视图结构和活动文档这样的便于自定义的应用程序框架 。同时,在
18、 Visual C+内部也内建了很多对 MFC 的例如类向导这样的支持以减少软件开发的时间,使用类向导可以生成从 hello world 这样的简单程序到活动文档服务器这样的复杂程序。 MFC 的消息映射机制也避免了使用性能较低的庞大虚函数表。 本文使用 MFC6.0 版本。 Microsoft Visual C+,(简称 Visual C+、 MSVC、 VC+或 VC) 微软公司 的 C+开发工具,具有 集成开发环境 ,可提供编辑 C 语言 , C+以及 C+/CLI 等 编程语言 。 VC+整合了便利的除错工具,特别是整合了微软 视窗 程 序 设计 ( WindowsAPI) 和 Mic
19、rosoft .NET 框架。Visual C+以拥 有 “ 语法高亮 ” , IntelliSense(自动编译功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑 、编译及连结的时间花费,在大型软件计划上尤其显著。 Visual C+ 6.0 集成了 MFC 6.0,于 1998 发行。发行至今一直被广泛地用于大大小小的项目开发。 厦门大学本科毕业论文 4 第三章 详细设计 该章介绍了系统中主要数据处理流程和步骤。
20、其中 3.1-3.3 节为图像预处理过程, 3.4-3.6节为目标识别过程, 3.7 节为目标匹配跟踪过程。 3.1 获取 视频 源 AVI 是英语 Audio Video Interleave( “ 音频视频交织 ” 或译为 “ 音频视频交错 ” )的首字母缩写,由 微软 在 1992年 11 月推出的一种 多媒体文件格式 ,现在所说的 AVI 多是指一种封装格式。 表 3-1 struct _avimainheader 结构 FOURCC f cc; 必须为 avih DWORD cb; 本数据结构的大小,不包括最初的 8 个字节( f cc 和 cb两个域) DWORD dwMicroS
21、ecPerFrame; 视频帧间隔时间(以毫秒为单位) DWORD dwMaxBy tesPerSec; 这个 AVI 文件的最大数据率 DWORD dwPaddingGranularity ; 数据填充的粒度 DWORD dwFlags; AVI 文件的全局标记 ,比如是否含有索引块等 DWORD dwTotalFrames; 总帧数 DWORD dwInitialFrames; 为交互格式指定初始帧数(非交互格式应该指定为 0) DWORD dwStreams; 本文件包含的流的个数 DWORD dwWidth; 视频图像的宽(以像素为单位) DWORD dwHeight; 视频图像的高(
22、以像素为单位) DWORD dwReserv ed4; 保留 字段 程序中使用微软公司的 VFW 库 对视频文件进行操作。 VFW(Video for Windows)是Microsoft 推出的关于数字视频的一个软件开发包, VFW 的核心是 AVI 文件标准。 AVI(Audio Video Interleave)文件中的音、视频数据帧交错存放。围绕 AVI 文件, VFW 推出了一整套完整的视频采集、压缩、解压缩、回放和编辑的应用程序接口 (API)。由于 AVI 文件格式推出较早且在数字视频技术中有广泛的应用,所以 VFW 仍然有很大的实用价值,而且进一步发展的趋势。在 VC+开发环境
23、中调用 VFW 需要将 VFW32.lib 文件加入工程中 。 文件操作的主要 接口 如下 : 厦门大学本科毕业论文 5 /AVIFileOpen 函数用于打开视频文件 AVIFileOpen( 函数调用成功时返回 ,否则返回非 值。 AVIFileInfo 函数用于获取视频文件信息 AVIFileInfo( pfile, /AVI 文件的指针 pfi, /用于存放 AVI 信息的结构体 sizeof(AVIFILEINFO) );/pfi 结构的大小 /AVIStreamReadFormat 函数用于设置流 读取格式 AVIStreamReadFormat( pavi, /要设定的 AVI 流 0, / /AVIStreamRead 函数用于读取帧数据 AVIStreamRead( pavi, /用于读取数据的视频流 mFrame, /读取第 mFrame 帧的数据 1, pData, /存放读取数据的缓冲区指针 cx*cy*4, /缓冲区大小 NULL, NULL ); 3.2 单 帧数据处理
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。