海面船只识别与跟踪算法的实现---毕业论文_第1页
海面船只识别与跟踪算法的实现---毕业论文_第2页
海面船只识别与跟踪算法的实现---毕业论文_第3页
海面船只识别与跟踪算法的实现---毕业论文_第4页
海面船只识别与跟踪算法的实现---毕业论文_第5页
免费预览已结束,剩余43页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本 科 毕 业 论 文 海面船只识别与跟踪算法的实现Implementation of Recognition and Tracking Boats in Sea姓 名:学 号:学院:软件学院系:软件工程专 业:软件工程年 级:指导教师: 年 月摘要计算机视觉技术的快速发展使得图像自动识别广泛的运用在生活和生产中,图像识别在工、农、国防等领域中发挥着越来越大的作用,具有广阔的应用前景。作为自动目标识别技术的分支,序列图像中目标的识别和跟踪对工业自动化、智能机器人的发展有重要意义。目前由于计算机结构和算法不成熟等限制,使得机器视觉领域存在许多难以解决的问题,有待研究和提高。在序列图像的预处理过程中,实现一种区域的自适应阈值分割算法,它能较快速的将光照不均匀的图像分为两部分,在对小目标的提取中有相当高的精度。但是受设备和海面遮避物的影响,分割过程存在一定的漏识现象。本文针对单幅图像的二值分割算法进行了实例说明。本文使用三层前向反馈神经网络对目标象素块进行识别。经过思考和实际对比后,在特征向量的选取上放弃了外型识别而直接使用图像识别,最终权衡目标精度和处理速度,选用了适中大小的向量。由于缺乏实际经验,算法在神经网络的学习率、网络层神经元数和收敛性等值的选取上存在很大的不确定性。在船只目标的匹配跟踪过程中,本文针对多目标的匹配过程中常见问题,提出一种简易的算法,使用双向匹配和添加标签的思想可快速匹配序列图像中出现的目标,并且对目标的位移、消失和重叠现象都有对应的处理。关键词:船只识别;目标匹配 AbstractWith 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. 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 hard 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 sometimes 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 target 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 order 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 WORD: Boat Recognition; Target Matching.目录第一章引言11.1课题背景11.2课题总体思路11.3论文组织结构2第二章实验系统总体设计32.1系统总体框架32.2核心算法42.3开发环境4第三章详细设计53.1获取视频源53.2单帧数据处理63.3处理位图73.4用区域大津法分割位图103.5获取特征向量163.6识别船只173.7船只跟踪22第四章系统实现与测试264.1系统界面264.2测试与分析26第五章结束语28参考文献29致谢语30附录31附1类结构31附2文件结构32厦门大学本科毕业论文CONTENTChapter1 Introduction11.1Background Intruduction11.2About The Topic11.3The Papers main work and structure2chapter2 System Design32.1System Frame32.2Core Algorithms42.3Development Environment4Chapter3 Detail Design53.1Acquire Source Video53.2Process Sequence Frame63.3Process Bitmap Image73.4Area OTSU cutting103.5Get Specific Array163.6Boat Recognition173.7Boat Tracing22Chapter4 Implement and Test264.1User Interface264.2Testing and Analyzing26Chapter5 Summary28References29Acknowledgement30Appendix31Append1 Classes Structure31Append2 Files Structure32第一章 引言经过科学家多年的努力,终于将计算机视觉从梦想转换为现实,在如今的生活中,人们已无法离开诸多智能视觉系统。一代一代的软件系统正默默地守卫在地球的各个角落中。1.1 课题背景随着图像算法的涌现和计算机处理速度的不断提升,计算机视觉技术获得了空前的发展,其应用领域已经遍及卫星地图识别、目标识别、控制导航、安全保卫、工业自动化等场所。自动目标的识别和跟踪是计算机视觉学科的重要分支,在工业生产、国防军事和日常生活中有越来越广的应用,本文针对海面船只的识别和跟踪这一实际问题提出了一种简易的匹配算法,并实现了一种匹域大津分割算法和前向反馈神经网络,实际结果表明,该算法可以识别并跟踪序列图像中的目标船只。1.2 课题总体思路在本文实验中,输入值为包含船只信息的视频文件,输出结果为处理后的标记视频和船只信息。算法法结果针对实际问题分为三个部分:图像预处理、目标识别和目标跟踪。图像预处理过程主要对于单幅图像,首先从视频文件中获取单幅图像,然后将其分割,对于特定图像进行降噪处理。目标识别过程中选用特定的分割器,将上部分的图像内容分为船只和干扰物。针对实际图像中视频分辨率较低,船只外型无法精确显示这一问题,在识别分类器上选用神经网络,可通过大量的示例训练完成降维识别过程。在船只识别过程中本文提出简易的匹配算法,可分别处理序列图像的船只匹配、船只重合、伪船只目标、船只移出镜头等情况。1.3 论文组织结构论文第一章为引言部分,主要禅述了视觉识别系统的现状和海面船只识别算法的意义,最后介绍论文结构。第二章为实验系统的总体设计思路,包括程序架构,用到的算法和系统的开发环境。第三章为详细设计部分,介绍了实验系统的主要处理流程。结束语总结了系统设计中存在的缺点和不足。第二章 实验系统总体设计在课程设计中采用VC+提供的对话框结构对相关算法进行分析和验证,根据实际情况将系统划分为多个职责模块,每个模块负责相应的算法或数据处理。2.1系统总体框架程序在设计初应用经典的三层模式,将界面、逻辑层和数据处理层分离。为了将主要精力放在算法的实现上,演示系统的界面使用MFC库中最简单的单对话框结构,通过增加按钮的方法链接逻辑层和数据层方法。图2-1系统处理流程1. 程序首先打开一个指定的AVI视频文件,该文件通常为未压缩的AVI视频流;2. 然后顺序以位图格式获取该文件的每一帧数据;3. 处理该位图并获得图内船只信息;4. 获取数帧之间船只的方位位移和形状大小的变化量,更新船只信息;5. 判断该帧是否为文件的最后一帧,若不是,跳至上图第二步,读取新一帧的内容,6. 若是,则关闭上文件,程序结束。2.2核心算法系统的主要算法分为图像预处理、目标识别和目标跟踪三部分。其中图像预处理主要的算法有基于大津分割法的分块二值算法,目标识别中主要用到反向前馈型神经网络分类器,目标跟踪阶段跟据实际情况,采用自写的匹配跟踪算法。2.3开发环境程序开发时IDE采用VC+6.0版本,界面开发使用MFC库。Microsoft Foundation Classes, 简称MFC,是一个微软公司提供的类库(class libraries),以C+类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。 MFC的主要优点是可以用面向对象的方法来调用Windows API,以及应用程序开发的便捷。MFC将很多应用程序开发中常用的功能自动化,并且提供了文档框架视图结构和活动文档这样的便于自定义的应用程序框架。同时,在Visual C+内部也内建了很多对MFC的例如类向导这样的支持以减少软件开发的时间,使用类向导可以生成从hello world这样的简单程序到活动文档服务器这样的复杂程序。MFC的消息映射机制也避免了使用性能较低的庞大虚函数表。本文使用MFC6.0版本。Microsoft Visual C+,(简称Visual C+、MSVC、VC+或VC)微软公司的C+开发工具,具有集成开发环境,可提供编辑C语言,C+以及C+/CLI等编程语言。VC+整合了便利的除错工具,特别是整合了微软视窗程序设计(WindowsAPI)和Microsoft .NET框架。Visual C+以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。比如,它允许用户进行远程调试,单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加连结著称。这些特征明显缩短程式编辑、编译及连结的时间花费,在大型软件计划上尤其显著。Visual C+ 6.0集成了MFC 6.0,于1998发行。发行至今一直被广泛地用于大大小小的项目开发。第三章 详细设计该章介绍了系统中主要数据处理流程和步骤。其中3.1-3.3节为图像预处理过程,3.4-3.6节为目标识别过程,3.7节为目标匹配跟踪过程。3.1获取视频源AVI是英语Audio Video Interleave(“音频视频交织”或译为“音频视频交错”)的首字母缩写,由微软在1992年11月推出的一种多媒体文件格式,现在所说的AVI多是指一种封装格式。表3-1struct _avimainheader结构FOURCC fcc;必须为avihDWORD cb; 本数据结构的大小,不包括最初的8个字节(fcc和cb两个域)DWORD dwMicroSecPerFrame; 视频帧间隔时间(以毫秒为单位)DWORD dwMaxBytesPerSec; 这个AVI文件的最大数据率DWORD dwPaddingGranularity; 数据填充的粒度DWORD dwFlags; AVI文件的全局标记,比如是否含有索引块等DWORD dwTotalFrames; 总帧数DWORD dwInitialFrames; 为交互格式指定初始帧数(非交互格式应该指定为0)DWORD dwStreams; 本文件包含的流的个数DWORD dwWidth; 视频图像的宽(以像素为单位)DWORD dwHeight; 视频图像的高(以像素为单位)DWORD dwReserved4; 保留字段程序中使用微软公司的VFW库对视频文件进行操作。VFW(Video for Windows)是Microsoft推出的关于数字视频的一个软件开发包,VFW的核心是AVI文件标准。AVI(Audio Video Interleave)文件中的音、视频数据帧交错存放。围绕AVI文件,VFW推出了一整套完整的视频采集、压缩、解压缩、回放和编辑的应用程序接口(API)。由于AVI文件格式推出较早且在数字视频技术中有广泛的应用,所以VFW仍然有很大的实用价值,而且进一步发展的趋势。在VC+开发环境中调用VFW需要将VFW32.lib文件加入工程中。文件操作的主要接口如下:/AVIFileOpen函数用于打开视频文件AVIFileOpen(&pfile,/返回的文件指针string,/要打开的文件名OF_READ,/文件打开模式(此处为只读)NULL);函数调用成功时返回0,否则返回非0值。/AVIFileInfo函数用于获取视频文件信息AVIFileInfo(pfile, /AVI文件的指针pfi,/用于存放AVI信息的结构体sizeof(AVIFILEINFO) );/pfi结构的大小/AVIStreamReadFormat函数用于设置流读取格式AVIStreamReadFormat(pavi,/要设定的AVI流0, /&(m_pBMI-bmiHeader), &l);/AVIStreamRead函数用于读取帧数据AVIStreamRead( pavi, /用于读取数据的视频流mFrame, /读取第mFrame帧的数据1,pData,/存放读取数据的缓冲区指针cx*cy*4, /缓冲区大小NULL, NULL ); 3.2单帧数据处理图3-1单帧数据处理流程图1. 首先用VFW库得到位图图像信息,其格式为RGB32位格式。2. 为方便处理,将原图转换为位灰度图,采用Adobe 1998转换公式。Gray = (R * 0.2973 + G * 0.6274 + B * 0.07533. 使用区域大津法对上转换后的灰度图进行分割。3.3处理位图上一小节中VFW抓取到的帧数据为DIB位图格式。DIB位图由位图信息头、颜色表和图像数据3部分组成。位图信息头包含图像的尺寸信息、图像用几个比特数值来表示一个象素、图像是否压缩、图像所用的颜色数等信息。颜色信息包含图像所用到的颜色表,显示图像时需用到这个颜色表来生成调色板,但如果图像为真彩色,即图像的每个象素用24或32个比特来表示,文件中就没有这一块信息,也就不需要操作调色板。文件中的数据表示图像的相应的象素值。和其他图像格式不同的是,位图图像的象素值在文件中的存放顺序为从左到右,从下到上,文件先存放图像的最后一行象素,最后才存储图像的第一行象素,在同一行象素中,则按照先左后右的顺序存储。位图图像的另一个细节是:文件存储图像的第一行象素时,如果存储该行象素值所占的字节数为4的倍数,则正常存储;否则,需要在后端补0,凑足4的倍数。表3-2位图格式结构字段说明位图头BITMAPINFObiSize位图头的大小biWidth保存位图宽度biHeight保存位图高度biplanes保存所用彩色位面的个数biBitCount保存每个像素的位数biCompression定义所用的压缩算法biSizeImage保存图像大小biXPelsPerMeter保存图像水平方向分辨率biYPelsPerMeter保存图像竖直方向分辨率biClrUsed保存所用颜色数目biClrImportant保存所用重要颜色数目调色板PALETTEENTRY peRedRGB色彩中红色分量peGreenRGB色彩中绿色分量peBlueRGB色彩中蓝色分量peFlagsRGB色彩中保留标志图像数据DATA由下至上保存位图数据相对于位图的存储格式,位图文件只在位图前添加一个位图文件头,并是储存在磁盘上的。表3-3位图文件头BITMAPFILEHEADER格式字段作用bfType位图文件类型,为BMbfSize位图文件大小,单位字节bfReserved1位图文件保留字,置0bfReserved2位图文件保留字,置0bfOffBits位图文件头到数据的偏移由于从原始文件读取到的位图为32位位图格式,为方便后续图像分割,必须把32位位图转换为8位256色位图。图3-2位图处理流程图1. 程序首先把上个流程中32位位图的句柄传入位图处理函数。2. 通过GlobalLock()系统调用得到该位图的指针。3. 通过该指针查看位图头结构以得到位图的大小和格式等信息。4. 利用以上信息可计算出相应大小的8位位图的大小:8位位图大小 =位图头大小 + 调色板大小 + 位图宽 * 位图高;其中位图头为40字节;调色板大小为4 * 256 = 1024字节;位图宽为4的倍数。5. 为新的位图申请内存空间,使用Adobe 1988格式转换原32位位图,并将转换结果放入内存段中。3.4用区域大津法分割位图大津法是日本的大津展之在1980 年提出的图像分割算法。该方法的基本思想是:设阈值将图像分割成两组,一组灰度对应目标,另一组灰度对应背景,则这两组灰度值的类内方差最小,两组的类间方差最大。大津法不管图像的直方图有无明显的双峰,都能得到较满意的结果,因此,这种方法是全局阈值自动选择的最优方法。图3-3原始帧图像图3-4大津法分割后图像大津法之所以在复杂情况下能取得良好的分割效果,是因为它将分割得到和前景和背景间的差别拉的最大,即分割因子 = 前景象素数 * 背景象素数 * (背景平均灰度-前景平均灰度) 2分割因子的最大值。图3-5大津法主要过程图1. 首先构建图像的灰度直方图,在这期间利用循环求出整个区域内象素的灰度总和,象素的最大灰度值和最小灰度值。2. 接下来迭代的计算图像的阈值,先设阈值为最小值1,求出分割因子的大小,将此值和它对应的灰度值存入临临变量;3. 下一步迭代将阈值加1,继续求分割因子,然后将新值与保存的旧值比较看是否更大,保存大数值移除小数值后进行第三步迭代。4. 整个迭代有255次,迭代后保存的灰度值为大津法阈值。5. 最后用该阈值分割图像。因为在红外图像中目标的温度高于背景温度,因而分割后目标灰度为255,背景灰度为0。但是题目中给出的图像受光照、温度等影响严重,整个画面分布由亮到暗,全局阈值会将较暗的前景划分为背景,将较亮的背景划分为前景。对于亮度分布不均的图像采用局部阈值法则能很好的避免全局阈值法造成的误差大等现象。图3-6明暗分布不均的原始图像图3-7全局大津法阈值分割结果图3-8局域大津法分割结果 窗口大小 10象素图3-9局域大津法分割结果 窗口大小 20象素图3-10局域大津法分割结果 窗口大小 30象素图3-11局域大津法分割结果 窗口大小 40象素图3-12局域大津法分割结果 窗口大小 50象素在本测试视频中,窗口分块大小为30象素时效果最好。本文采用的局部大津法将大津阈值法和局部阈值法相结合,整体上采用局部窗口法将图像分为小块以减小光照影响,而小块图像中采用大津法获取最佳分割效果。区域大津法主要过程:图3-13区域大津法流程图区域大津法能很好的对应光照不均和温度遮挡对图像分割造成的影响,其步骤如下:1. 程序首先把上个流程中32位位图的句柄传入位图处理函数。2. 设定最佳窗口大小,用该窗口将图像分成小的窗口二维图;3. 通常情况下窗口无法完全分解原图,因此将窗口二维图移至图像正中央,移除边缘没有被划分到的区域;4. 循环在每个窗口中用大津法进行分割。5. 要注意的一点是窗口中含有前景和背景时大津法可以很精确的将其分开,但是有很多窗口只有大块的背景象素,在分割时算法很可能将背景分为两部分。解决这一问题的办法是统计并比较窗口内象素的最大值、最小值和阈值。通常情况下背景灰度具有连续性,如果窗口中的极值差大于某个值则认为窗口中既有有目标象素也有背景象素,否则认为该窗口只含有背景,将整个窗口的所有象素置为背景象素。 象素最大值 象素最小值 = 某值 目标 + 背景象素最大值 象素最小值 背景3.5获取特征向量从分割后的结果可以看出,船只目标的大小在200 * 50 象素左右,而噪声物则多为10 * 10的小象素块,并且大小差异很大;船只的长宽比在2 - 4之间,而噪声物块的长宽比值相差很大。所以程序在识别过程中采用二维的图像信息、目标大小和长宽比作为特征向量。表3-4struct TAG关键字段字段说明character形状特征向量startX左上角象素横坐标startY左上角象素纵坐标endX右下角象素横坐标endY右下角象素纵坐标area象素面积gravityX质心横坐标gravity质心纵坐标recogRate识别率视频中的影像为红外影像,由于设备原因和远距离红外线的衍射导致图像边缘模糊不清,在考虑后神经网络的识别训练效果后,采用10 * 4 象素来作为该目标的缩小特征量。分割后的图像只有0和255两种颜色,其中0是黑色,表示背景;255为白色,表示前景。白色的象素块包含有重要信息,它们是单个的目标或者干扰物体。图3-14特征向量获取流程图1. 复制图像内容,因为原图内容要在识别结果后用于显示,其内容不能被覆盖,标记时使用图像复本。2. 从图像的左下角象素开始遍历所有象素。遍历期间要依次遍历每个象素块,因而使用广度遍历,为考虑遍历效率使用四邻法。3. 在遍历每个象素的过程都动态的修改标记结构的边界坐标和面积。4. 在整个图像遍历完成时更新标记结构的质心信息。5. 更新标记容器:删除上帧图像的标记,并将新获取的标记加入标记容器中;3.6识别船只目标船只的识别是对单色二维图像进行判别的过程,其结果只有两种,目标或非目标,因为模式分类少,船只外形复杂,很难对船只的外形进行精确的系统建模,在分类器上选用人工神经网络。人工神经网络就是一种模拟人类思维的方式。这是一个非线性动力学系统,其特色在于信息的分布式存储和并行协同处理。神经网络由多个神经元组成,每个神经元只具有简单的输入、输出和迭加功能。虽然单个神经元的结构极其简单,功能有限,但大量神经元构成的网络系统所能实现的行为却是极其丰富多彩的。神经计算由于其局部计算的能力,在全局上表现出去噪音、容残缺的能力,利用这些特性,可以自然地用于模式分类和目标匹配等用途。神经元:图3-15神经元示意图每一个神经元都只有简单的功能,将输入信号加权求和,当得到的信号大于其本身的阈值时,将信号输出。多层感知器神经网络:多层感知器网络由输入层、隐层和输出层组成,每层都有若干节点。神经网络工作时,信号由输入层传至隐层,隐层中每个神经元对其加权求和,并将处理后的信号传至下个隐层,信号最终至输出层,由输出层神经元加权后得到最终结果。图3-16前向反馈网络示意图神经网络的识别过程在算法上的实现,实际上是对输入值的多次加权求和,网络中包括的信息和网络表达的知识全部蕴含在各层结点的连接权上,因此同样结构的网络因为连接权的不同可表达不同的对象。要让网络能够分类特定的特征量,就要针对这组特定的样本进行专门的训练。多层感知网络的训练过程:在神经网络进行训练前需要手动指定训练样本,样本分为两组,目标样本和干扰样本,每个样本都需有期望输出值。本程序中,期望值1表示目标,0表示干扰物;识别率大于0.7时认为标记为船只。图3-17船只样本添加流程图1. 样本组的选中需要手动判断样本是目标还是干扰。2. 程序会弹出对画框显示目标的10 *缩略图,需要操作人员手动判断该物体属于目标还是干扰物。3. 程序会通过输入结果将该样本加入目标样本组或干扰样本组。4. 样本添加完成后程序转入迭代训练中。图3-18神经网络训练步骤训练开始时选定一组样本及期望输出值,通常一组样本训练1000次时网络会收敛到一定范围,可用于识别其他样本。一组样本的训练需要将该组样本中的每个样本都进行一次训练。训练时首先计算某样本的输出值,然后将此实际输出值和它的期望输出值进行比对,计算输出层的误差,输出层神经元的误差公式为:神经元误差 = 实际输出 * (1 实际输出) * (期望输出 实际输出)由输出层神经元误差计算隐含层神经元误差,公式为:神经元误差 = 神经元输出 * (1 神经元输出) * 输出层神经元误差 * 输出层权值隐含层神经元的误差计算比输出层神经元的误差计算要复杂,因为隐含层的每个神经元的误差要迭加输出层每个神经元的误差的加权。在实际计算中要多一层嵌套。计算完网络误差后,要更新网络层之间的连接权以完成训练。输出层神经元权值修改公式:权值增量 = 学习率 * 神经元误差 * f(隐层神经元输出) 每个神经元的权值 = 旧的权值 + 权值增量。其中学习率是一个正数,用于改变网络权值的收敛速率,应用大学习率时网络收敛快,容易在某一点形成波动;应用小学习率时网络收敛慢,网络能向更小的点收敛。F()函数是网络的活化函数,用来把神经元的输出值限定在一定范围内,本网络的活化函数为:F(x) = 1 / (1 + exp(0 - x);隐含层神经元权值修改公式:权值增量 = 学习率 * 神经元误差 * f(输入层神经元输出) 其中新权值 = 旧的权值 + 权值增量,学习率取值同输出层学习率。至此一个样本的训练结束,程序检查该次训练的样本是否样本组的最后一个样本,若不是,取下一个样本继续训练;若是最后一个样本,则检查网络的收敛率是否达到要求,如达到要求则停止训练,若没有达到要求的收敛值,对该样本组再训练一次。要判断一个标记为一只船,它通过神经网络的识别率要大于阀值。在实际测试中,发现阀值取0.7时误识和漏识率都最小。3.7船只跟踪船只跟踪中的五个要点:a.匹配船只要将标记中的船只同列表中的船只匹配,首先要判断此标记是船只,其次船只的方位同标记的方位十分要相近,最后为降低误判,要求原船只的象素大小必须同标记的象素大小接近。在实际测试中发现,当船只的质心属于标记的四边形范围内里,标记通常和船只吻合。b.伪船只和逃离船只采集过和中红外目标视频会因为设备、天气、障碍物等因素而影响到视频的质量,在视频中经常有大块的噪声存在,神经网络经常会因噪声外形与船只接近而造成误判。测试发现,同一块噪声通常只存在一两帧图像中,不会连续出现,所以给船只类增加一个丢帧率属性,当某个目标船只的连续丢帧率大于帧时认为此船是伪船只,而将其删除。视频中经常有船只驶出镜头的情况,逃离的船只接下来丢帧率会连续上升,接下来会被系统删除。c.船只重合因为设备从岸边拍摄近港船只,拍摄角度小,视频中经常有船只重合的现象。两艘或多艘船只重合时形成新的标记,此种标记象素面积明显增大,外形和船只相差较大,但是因为未重合部分有明显的船只特性,因而容易造成误识。针对上情况,在匹配船只的过程要验证标记的象素面积,对于面积突然增大1.5倍以上的标记,认为是有船只重合现象发生。d.船只方位及速度预测船只在重合过程中无法更新当前帧的信息,需要一个算法预测当前船只的速度和方位。因为镜头角度小的缘故,船只大都以匀速通过镜头。但是在实际的图像分割中,因为外界温度变化等各种原因,得到的船只轮廓变化很大,现在采取的方法是记录船只二十帧内的质心的位移量,用差分来近似船只的瞬间速度。瞬时速度 = (帧数内位移和) / 帧数方位预测时用原有的方位加上每帧的预测速度及成为预测方位。这种方法的弊端在于过于简陋,在多帧的预测中误差较大。在视频测试中,船只重合达到五十帧以上时,预测方位误差可达20象素,在船只分离后不能继续锁定方位。e.匹配的属性在跟踪流程中,可将标记与船只匹配的属性共有三个,船只与标记的距离、船只与标记的大小差异、神经网络对标记的识别率。其中识别率高但与所有船只的距离相差都很远的标记可能为新出现的船只;识别率高、与一只船的距离相近并且大小相差小的标记为锁定的船只。识别率不高但是与现有船只方位重合并且外形比重合船只大很多的标记为重合标记。表3-5船只匹配属性关系表属性判断结果距离大小差异识别率高船只接近小高匹配船只接近大船只重合具体的跟踪流程:图3-19船只跟踪匹配流程图1. 首先将所有船只的丢帧数递加。2. 然后用两次循环依次对比每一个标记和列表中的船只。3. 在三个属性中最先比较的是船只方位,在方位相差较大的情况下可直接跳至船只循环的下一循环。4. 如果距离相关较小,则判断船只和标记的大小是否相似,对于方位接近并且面积突然增大的标记,认为其是两只船重合后的标记。5. 用上文中的方法预测船只速度和大致的方位,等待分离后再次确认。6. 对于方位和面积都符合的标记,最后判断它的识别率,如果大于要求的阀值,认为它是匹配的船只,这时用标记的信息更新相应船只的信息。7. 此时该船的匹配完成,将它的丢帧数置0。8. 在船只内循环结束后,对于每一个标记,如果符合上表船只特征但从未被匹配的,作为新出现的船只加入列表,并更新信息。9. 最后在遍历标记的大循环结束后再遍历一次船只列表,删除连续丢帧数过大的船只。跟踪过程结束。第四章 系统实现与测试在整个算法流程设计完成后,使用VC+编程对算法进行证实,并对性能做了测试。4.1系统界面图4-1实验系统界面系统界面为对话框结构,分为三个部分。文件信息部分显示视频图像和视频文件信息,神经网络信息部分显示神经网络的样本信息,船只信息部分列出识别出的船只信息。4.2测试与分析本文对海面船只识别与跟踪算法进行了详细测试。以下分别是图象处理过程中二值算法、神经网络和训练和识别算法、船只匹配和跟踪算法、系统总体性能的测试结果。基于大津分割法的区域二值算法测试结果:1. 本文实现的区域大津法二值算法可分割前、背景灰度差在30个灰度以上的目标。2. 可正确分离大小在200 * 100个象素以内的目标。3. 在区域分割中对于分块大小的选择中,对比了分块从10象素到50象素的五种分割情况,在图3-6中明暗不均的情况下,五种分割结果为图3-7至图3-11,算法对比船只原始大小的分割后目标前景大小,采用30 * 30为一个窗口大小。神经网络分类器的训练、实别测试结果:1. 文中用到的神经网络为三层前向反馈型神经网络,其中输入层42个神经元,隐含层70个神经元、输出层1个神经元。表4-1神经网络隐层神经元个数测试 样本数100隐层个数3070100训练时间20秒60秒131秒漏识1033误识3420252. 每次训练耗运算周期 (42 * 70 + 70 * 1) * 2次,耗时0.001秒。3. 每个训练周期为40样本 * 1000次训练 * 每次训练耗时 60秒。4. 神经网络对目标的漏识率小于3%。5. 神经网络对目标的误识率小于20%。船只跟踪匹配算法性能测试:1. 在跟踪阶段使用作者提出的简易匹配算法,可跟踪序列图像中单帧移动速度小于20象素的目标;2. 可跟踪重合时间小于50帧的目标;系统运行性能:1. 对于268 * 240 的32位未压缩视频(每秒10帧),可实现实时识别跟踪。2. 在上述视频条件下,系统可描述出对船只的定位并显示相关参数。第五章结束语整个毕业设计中,有大部分的时间在学习新的东西,最终还是在限定的时间内做出了结果,程序终于可以从视频中分析出船只,并且进行简单的跟踪和定位。整个程序设计和算法都还存在很大的缺陷,首先在程序结构上没有用到多线程,这样程序并不能完全自动运行,需要点击以进行到下一帧图像的处理。其次在界面上十分凌乱,因为刚开始在算法测试时使用的最简单的对话框结构,后来的改进就直接在原程序上扩充,有很多按钮,显得非常的散乱。算法上的一大缺陷时在图像前期处理中没有适当的频域滤波处理,书上的算法和一些例子最终还是没能看懂,只好用简单图像运算来处理一些噪点。最终用大津法和分块二值的合并算法掩盖了频域滤波的空缺,效果还不是很好,在一些噪声较大的区域无法分割出目标。参考文献1Rafael C. Gonzales,数字图像处理M,北京,电子工业出版社, 20082 章毓晋,图像处理M,北京,清华大学出版社, 20073 章毓晋,图像分析M,北京,清华大学出版社, 20054 章毓晋,图像理解与计算机视觉M,北京,清华大学出版社, 20005袁丁,傅一平,Visual C+精彩实例详解M,北京,机械工业出版社, 20036郑阿奇,丁有和,郑进 Visual C+实用教程M,北京,电子工业出版社, 20007李了了,邓善熙,丁兴号,基于大津法的图像分块二值化算法Z,四川8叶聪颖,建筑目标识别中检测与分割技术的研究J,厦门,厦门大学硕士学位论文,20059耿国华,数据结构M,北京,高等教育出版社,200510Herb Sutter,C+ Coding StandardsM,北京,人民邮电出版社,2006致谢语感谢老师在论文题目和思路上对我的帮助,之前我对论文题目无从下手,苏老师给我讲清图像处理、目标识别的几大步骤,并多次借给我数字图像处理方面的书籍,让我在全局上了解了整个数据处理的流程,学到了很多图像方面的知识。感谢林凡老师对我的教导和帮助。大一时林老师教我们C语言和C+语言,带领同学们入门软件工程学科,大三时在林老师的推荐下我有幸加入多媒联合实验室,在实际项目锻练了代码编写能力。附录附1类结构Boat该类保存船只目标的具体信息。包括船只编号、逃逸帧数、已存在帧数、船只大小、船只类型、船只速度等信息BoatAlarm 该类记录报警信息。BoatContainer该类有一个记录所有Boat类信息的向量,系统用该向量对船只信息进行更新,并且和TagContainer类直接关联,来读入船只信息。BoatTracerBPNet神经网络类,该类主要用于识别一个标记是否和船只匹配。其中输入的特征量有43个,分别是船只外型信息、船只大小、船只长宽比。CAboutDlgIDE生成的系统说明类。CAvi该类用于打开AVI视频文件,把视频文件中的数据以帧的形式提取,返回给调用者。其内部机制使用微软VFW库。CDibImage用于处理单幅帧内容的类。该类是对DIB文件的系统调用的一个封装,封装的操作有位图的灰度转换、调色板创建、图像长宽信息、文件读取和保存,在后阶段对位图进行分割转换和降噪处理。CRealTraceAppMFC程序入口类。CRealTraceDlg程序主界面。CRecogDlg判断目标类型的对话框。Tag记录一个像素块的信息,包括像素数、起始位置、重心和神经网络对它的识别率。TagContainer此类是所有Tag与外界作用的接口,它的主要职责是初始化所有的Tag标记并更新其内容。tagSAMPLE神经网络类输入输出特征值的简易封装。BoatTracer该类跟踪船只的某项信息,在信息超出限定范围后启动报警函数。TracerContainer所有船只跟踪器的容器,用于对跟踪器的初始化和设置。附2文件结构源文件:Alarm.cpp警报器和警报器容器类的实现AviReader.cppCAvi类的实现Boat.cpp船只类和操作的实现DibImage.cpp图像处理操作的实现Neuron.cpp神经网络类的实现RealTrace.cpp系统框架的实现RealTrace.rc系统可视编程资源ReaTraceDlg.cpp界面操作的实现StdAfx.cpp系统头文件Tag.cpp标记类及其容器的实现头文件:Alarm.h警报器和警报器容器类的定义AviReader.hCAvi类的定义Boat.h船只类和操作的定义DibImage.h图像处理操作的定义Neuron.h神经网络类的定义RealTrace.h系统框架的定义RealTraceDlg.h界面操作的定义RecogDlg.h内部对话框定义Resource.h资源文件定义StdAfx.h系统头文件Tag.h标记类及其容器的定义系统库文件:Mfc6.dllmfc库Vfw32.libvfw库数据文件:Testvideo.avi测试视频Weight.dat神经网络权值储存文件9厦门大学软件学院毕业设计(论文)开题报告学生姓名班级五班学号校内指导教师姓名职称助教所在单位厦门大学软件学院毕业设计(论文)题 目海面船只识别与跟踪算法实现毕业设计(论文)的目标:整体软件目标:在序列船只图像中,利用数字图像处理和图形学方法识别每幅图像中船只和灯塔等各种目标,并匹配序列图像中目标的位置,描绘出目标的运动轨迹。系统可根据不同大小的目标自动调整图像处理参数,实现目标的高正确率识别。主要分为三个阶段:图像预处理阶段,目标判断与识别阶段、目标轨迹描述阶段。实现方法:基本环境:开发工具:Visual C+ 6开发语言:C+开发平台:window测试工具:Visual C+ Debugger图像处理阶段的工作原理:1. 图像灰度化为减轻计算机图像处理中负载,软件将载入的真色彩图像灰度化。2. 图像二值化二值化的作用是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论