[毕业设计精品]数字式水表图像识别.doc
毕业设计数字式水表图像识别The Digital Meter Image Recognition2009届 电气与电子工程 分院(系)专 业 自动化 学 号 学生姓名 指导教师 完成日期 2009年 月 日毕业设计(论文)成绩单学生姓名学号班级专业自动化毕业设计(论文)题目数 字 式 水 表 图 像 识 别指导教师姓名指导教师职称评 定 成 绩指导教师得分评阅人得分答辩小组组长得分成绩:院长(主任) 签字:年 月 日毕业设计任务书题目数字式水表图像的识别学生姓名学号班级专业承担指导任务单位导师姓名导师职称一、主要内容利用高级语言Delphi7.0,设计界面,编写程序,使程序能够对现有的数字水表图像进行识别,能够将具体流程显示到界面上,最终达到识别目的。二、基本要求1实现图像灰度化、图像二值化、图像反色、图像的腐蚀和膨胀、图像细化;2实现图像字符分割、图像归一化、图像标准化、图像识别。三、主要技术指标1能够对原图像进行一系列的预处理,去除图像中的干扰因素;2能够清晰显示字符分割后的数字图像;3可以显示字符识别后的图像。四、应收集的资料及参考文献1有关水表图像的照片和水表读数识别方面的论文和文献资料;2有Delphi程序设计的文献资料;3有关神经网络、模式识别方面的资料。五、进度计划1.第1周至第4周:收集资料,熟悉编程环境,完成开题报告,毕业实习;2.第5周至第10周:确定系统总体设计方案,软件编写;3.第11周至第12周:调试程序,完成软件设计,书写论文;4.第13周至第14周:整理论文,准备答辩。教研室主任签字时间2008年2 月 27 日 毕业设计(论文)开题报告题目数字式水表图像识别学生姓名学号班级专业研究背景:随着计算机技术的发展和普及,各行各业的管理手段从人工逐步变成自动或半自动方式。针对传统的人工抄水表方式存在的种种弊端,有人提出了自动抄表技术,其中水表图像数字字符的识别是非常重要的一个环节。字符识别技术的国内外发展现状:数字字符识别属于光学字符识别的研究范围。光学字符识别属于模式识别领域的一个重要分支。50多年以来,光学字符识别技术随着模式识别和人工智能研究的发展而逐步趋于成熟。同国外相比,我国的印刷体字符识别研究起步比较晚,虽然起步比较晚,但是受到了充分的重视和支持,得到了迅速发展,并具有对字体字形变化、印刷干扰、纸张噪声等随机干扰的较强抗干扰能力。主要工作和任务:本论文主要研究的是水表的数字字符图像的识别过程,包括以下几个方面的研究内容:1、图像去噪:主要研究改善图像的视觉效果,提高图像目标的清晰度,为图像的后续处理做好准备2、图像二值化3、数字字符的分割4、数字字符的识别 预计实现的效果: 通过数码摄像头采集水表图像,通过图像的处理后,进行字符分割,并通过BP神经网络实现水表图像的识别,从而获取读数指导教师签字时 间 年 月 日 摘 要在当今社会,随着计算机技术的发展和普及,各行各业的管理手段从人工逐步转变成自动或半自动方式。在以往的生活中,水表示数的读取还采用人工读取方式,这存在这种种的弊端,但是现在随着技术的发展可以实现采用自动抄表技术,那么水表上的数字的字符识别无疑成为了一个非常重要的环节,而这正是本文所要研究的内容。本文的水表图像是通过数码摄像头采集的,识别过程主要包括:图像的预处理、数字字符的分割和字符识别。图像的预处理包括水表图像的灰度化、二值化、滤波等等。本文在对多种二值化进行比较后选择了比较适合本次设计的最佳方法。由于是对数字式水表图像的识别,所以本人在获取水表图像的时候,把摄像头直接定位在水表数字部分区域,然后再直接对水表的数字部分进行预处理以及分割识别。数字字符分割首先利用先验知道对水表图像进行粗分割,得到8个数字字符的大致位置;然后,通过扫描去黑边框、开运算去噪、利用连通域去除大面积污渍三个步骤对单字符图片进行进一步处理,得到可以满足投影分割的图片;最后,利用投影分割法对单字符图片进行字分割,得到数字字符的精确位置,然后再运用BP神经网络对字符进行逐个识别。 关键字:图像灰度化,二值化,字符分割,字符识别 AbstractIn the modern society ,with the development and popularization of science and technology ,the management means of every walk of life is changing to automation or semiautomation .In the past life , contraposing to the various defects of the traditional manual water meter reading ,people bring forward an automatic water meter reading technology ,and digit character recognition is a very important link ,which is the content of this paper.The water meter image in this paper is shooting by digital cameras ,recognition process including :image preprocessing ,digital character segmentation an character recognition .Image preprocessing including image graying、binarization、filtering and so on .In this paper ,we compared many binarization and chosed the best one among them .Because this is the recognition of digital meter ,I locate the camera to the digit of the water meter directly when I get the water meter image, and then pretreat and recognize the number of parts of water. Character segmentation first use of a priori knowledge thick segmentalizes the image to be eight characters in the general location .Then by scanning to wipe off black-frame .Opening operation denoising ,using connected component delete large area of smudge further process the image .Finally using of projection segmentation ,can find the exact location of the character,and then use the BP neural network to identify each of the characters. Key words: Binarization ,Character Segmentation ,Character Recognition目 录 第1章 绪 论11.1 课题背景及意义11.1.1 课题的提出11.1.2 课题的目的21.1.3 课题的意义41.2 字符识别技术的国内外发展现状41.3 课题研究的主要内容41.4 水表图像数字字符识别的流程41.5 本文的组织结构4第2章 Delphi软件简介62.1 Delphi的基本形式62.2 面向对象编程的概念62.3 常用菜单92. 4 常用组建102.4.1 常用文本类组件102.4.2 常用按钮类组件42.4.3 常用列表类组件42.4.4 常用图像类组件42.4.5 公用对话框组件42.4.6 其他常用组件42.4.7 信息对话框4第3章 水表图像预处理113.1 图像去噪113.1.1 图像噪声的产生和分类113.2 图像灰度化123.3 图像二值化133.4 图像的反色143.5 本章小结14第4章 水表图像数字字符分割174.1 常用分割方法概述174.2 本文采用的分割方法174.3 字符分割整体流程图44.4 本章小结4第5章 字符识别205.1 识别前的预处理215.1.1 归一化处理225.2 基于神经元网络的字符识别技术22结 论33参考文献34致谢35附录36附录A 英文资料36附录B 英文翻译43附录C 源程序代码48 第一章 绪论1.1课题背景及意义1.1.1 课题的提出如今社会已经进入了一个信息化时代,随着计算机技术、通信技术和计算机网络技术的发展,运用自动化的信息处理能力和水平在不断的提高,越来越多的计算机技术逐渐融入到人们的日常生活中。当然运用计算机技术可以解决日常生活中许多细微的问题,之前只能靠人为去粗略测量的,如今可以运用计算机去精确的取材计算。水是人们日常生活中不可缺少的重要资源之一,每家每户都有水表,用来记录每月的用水量。于是,抄水表成为了自来水公司的重要工作之一。对于大多数自来水公司,以往都是依靠人工抄表进行用水和收费的管理。用于人为的原因,所以一定会导致在读数时存在着一定的误差,而且存在一些客观不良现象,比如,抄表不到位、私自调表、人情抄表、私自修改用水量等,这样,导致自来水公司获得的数据存在着大量的误差,由此的抄表和管理的不善致使每年水的损失量达20-30万吨。为了解决上诉的种种弊端,有人提出了采用非人工方式抄表的构想。随着计算机图像处理技术的发展,可以采用适当的语言编程,使得水表自动抄表成为可能。通过数码摄像头把水表的读数部分采集下来,并将图像输入到计算机当中,经过计算机的预处理、识别,将水表的的读数转化为文本形式的数字,这不仅方便了读数的存储和分析,还可以降低错误率,节省人力,提高效率,实现自动抄表。实现自动抄表需要解决一项关键技术问题:水表数字部分读数的识别1.1.2 课题的目的(1)熟悉Delphi软件开发平台,熟悉编程语言;(2)研究图像处理中涉及的各种算法,运用以往学过的高等数学、线性代数等理论结合到编程实践中去,提高逻辑思维能力,和理论联系实际的实践能力;(3)真正系统地了解一个软件的整体开发过程;1.1.3课题的意义目前,我国水资源短缺的形势非常严峻,人均水资源占有量仅为世界人均水平的1/4,排世界第121位,为世界13个贫水国家之一。现有600多座城市中,缺水城市有400座,特别是近几年,北方地区持续干旱,面临着严重缺水的危机。随着社会经济发展和人口增长,需水量增加,水资源的供需矛盾将会更加突出。在一定程度上,由于水资源的紧缺,水污染严重、水环境恶化以及水资源管理落后,已经制约了我国经济的发展速度。水问题已成为我国经济可持续发展中最突出的问题之一。现有的水资源利用和管理方式已经难以支撑社会经济的可持续发展,必须转变现有形式,实现水资源的可持续利用,保障经济社会的可持续发展。使水资源实现优化配置和管理,既满足社会经济的发展,又能实现水资源的可持续利用,这是一个非常复杂的问题。如果用手工方式,这是很难实现的,只能也必须采用现代化的手段,运用信息技术、计算机技术、人工智能技术等等,建立起水资源实施检测、监控管理系统,实现水资源管理的信息化,才能解决这样复杂的资源配置问题,这也是水利现代化的重要标志。 1.2 字符识别技术的国内外发展现状 数字字符识别属于光学字符识别的研究范围。光学字符识别(Optical Character Recognition OCR)属于模式识别(Pattern Recognition PR)领域的一个重要分支。早在1929年,Taushek就在德国获得一项有关OCR的专利。欧美国家为了将浩如烟海、与日俱增的大量报刊杂志、文件资料和单据报表等文字材料输入计算机进行处理,从50年代就开始了西文OCR技术的研究,一边代替人工键盘输入。经过40多年的不断改进和完善,并伴随着计算机技术的飞速发展,现已将OCR技术广泛应用于各个领域,使大量的文档资料能快速、方便、省时省力和及时地自动输入计算机,实现信息处理的电子化。50多年以来,光学字符识别技术随着模式识别和人工智能研究的发展而逐步趋于成熟,特别是上世纪70年代后期,由于LSI及CCD器件的出现使其进入了一个崭新的实用阶段。并在计算机自动录入、票据识别、信函分拣、资料分析等很多方面获得了广泛应用。同国外相比,我国的印刷体字符识别研究起步比较晚。从70年代开始进行主要用于雍正信函分拣的数字识别和计算技输入用的英文、数字、符号识别,70年代末,一些大学和研究所开始对印刷体汉字和手写体汉字的识别进行原理性的研究。80年代中期,汉字识别技术进入了研究的高潮阶段,印刷体汉字识别技术研究获得了丰硕的成果。在这方面国内有代表性的研究单位有:清华文通、中字汉王、北京信息工程学院、国家智能计算机研究中心、重庆大学光机所等、进入90年代,在国家重点科研计划的支持和市场驱动下,汉字识别系统一直朝着不断改进系统功能和实用化的方向发展。 虽然同国外相比,我国的印刷体字符识别研究起步较晚,但从80年代开始受到了充分的重视和支持,经过科研人员的潜心研究,印刷体字符识别技术得到了迅速发展,如由清华大学电子工程系研制出的多字体印刷汉字识别实用系统,已进行了市场推广,它解决了模式类数量极大(达4000种以上汉字、字符)、模式样本差异显著(不同字体图形、笔划结构上都有明显差异)的模式识别实用化问题,解决了多字体、多字号印刷汉字的混排识别问题,并具有对字体字形变化,印刷干扰、纸张噪声等随机干扰的较强抗干扰能力,字号是该领域里的重大突破。 1.3 课题研究的主要内容 水表自动抄表系统包括两大部分:硬件部分和软件部分。硬件部分主要完成图像的采集、数据的传输、集中等方面:软件部分主要负责处理采集来的图像,进行正确的识别并输出结果。 由于本次研究所获得的图像是将数码摄像头直接固定,将范围锁定在数字水表的数字区域部分,如此硬件部分的获得并不是研究对象,主要研究软件部分的数字字符图像的识别过程,包括以下几个方面的研究内容: (1) 图像去噪:主要研究改善图像的视觉效果,提高图像目标的清晰度,为图像的后续处理做好准备。 (2) 图像灰度化:将彩色图像转化为灰度图像的过程称为图像的灰度化处理。图像的灰度化是图像处理前的一个基本环节,为后面图像的二值化、滤波、边缘处理做准备。 (3) 图像二值化:主要研究将前面处理过的灰度图像,转变成一副只包含0和1两种灰度值的二值图像,将背景和目标分离。 (4) 水表图像的倾斜矫正:主要研究在复杂背景条件下,将数字字符所在的区域从图像中分离出来,并对数字字符所在的区域进行倾斜矫正。 (5) 数字字符分割:主要研究从背景中将数字字符精确的提取出来。 (6) 数字字符的识别:主要研究将分割出来的单个数字字符准确的识别出来。本文在字符识别方面采用的是BP神经网络识别方法。 1.4 水表图像数字字符识别的流程 本文水表图像的数字字符识别流程如图1.4.1所示: 数字字符识别图像预处理输入图像图像矫正数字字符分割 图1.4.1 水表图像数字字符识别流程 1.5 本文的组织结构 本论文共分5章,安排如下:第一章为绪论,概述了课题的研究背景、目的和意思,字符识别技术的研究状况以及应用,简单阐述了本文的主要研究内容。第二章主要介绍水表图像的预处理过程,涉及图像去噪、图像二值化两方面的内容,包括几种常用二值化方法的比较,并选取恰当的二值化方法。第三章为数字字符的分割,利用投影法及连通域的提取,精确地将每个数字字符分割出来。第四章主要研究数字字符的识别算法,包括细化,以及BP神经网络的运用。第2章 Delphi软件简介Delphi是Inprise公司(即原Borland)推出的基于真正面向对象语言Object Pascal语言的可视化编程工具,是当今世界上最快的编译器。能大大提高编程效率。面向对象的程序设计(Object-Oriented Programming,简写为OOP)是现在最成功的高级语言程序设计方法,面向对象的程序设计的目的是创建可重用代码,通过把属性和方法封装进“对象”中,以更好地模拟现实世界“真正的程序员用C,聪明的程序员用Delphi”,这句话是对Delphi最经典、最实在的描述。Delphi 7是“第四代编程语言”的杰出代表,它是一个完全导向的、高度可视化的集成开发环境IDE(Integrated Development Environment),非常人性化。具有简单、高效、功能强大的特点。和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi则功能更强大、更实用。Delphi在你编好程序后自动转换成.EXE文件它运行时速度比VB快,而且编译后不需要其他的支持库就能运行。它的数据库功能也挺强的,是开发中型数据库软件理想的编程工具。Delphi适用于应用软件、数据库系统、系统软件等类型的开发。而且它拥有和VB差不多一样的功能,而且一样能应用API函数,这在控制Windows很有用。Delphi是全新的可视化编程环境,为我们提供了一种方便、快捷的Windows应用程序开发工具。它使用了Microsoft Windows图形用户界面的许多先进特性和设计思想,采用了弹性可重复利用的完整的面向对象程序语言(Object-Oriented Language)、当今世界上最快的编辑器、最为领先的数据库技术。对于广大的程序开发人员来讲,使用Delphi开发应用软件,无疑会大大地提高编程效率,而且随着应用的深入,您将会发现编程不再是枯燥无味的工作,Delphi的每一个设计细节,都将带给您一份欣喜2。21 Delphi的基本形式Delphi实际上是Pascal语言的一种版本,但它与传统的Pascal语言有天壤之别。一个Delphi程序首先是应用程序框架,而这一框架正是应用程序的“骨架”。在骨架上即使没有附着任何东西,仍可以严格地按照设计运行。您的工作只是在“骨架”中加入您的程序。缺省的应用程序是一个空白的窗体(Form),您可以运行它,结果得到一个空白的窗口。这个窗口具有Windows窗口的全部性质:可以被放大缩小、移动、最大最小化等,但您却没有编写一行程序。22 面向对象编程的概念面向对象的程序设计(Object-Oriented Programming,简记为OOP)是Delphi诞生的基础。OOP立意于创建软件重用代码,具备更好地模拟现实世界环境的能力,这使它被公认为是自上而下编程的优胜者。它通过给程序中加入扩展语句,把函数“封装”进Windows编程所必需的“对象”中。面向对象的编程语言使得复杂的工作条理清晰、编写容易。Delphi 7是Borland公司推出的Delphi系列工具软件的最新版本,其特点是具有面身对象的程序设计思想、快速Pascal编译器、ActiveX编程,以及支持Internet/Internet编程等。Delphi 7在进一步增强以入版本功能的基础上又增加了很多具实用价值的功能,例如可在Linux平台下开发应用系统并为Web Server提供了强大的支持等。Delphi 7的组件比原有版本更加丰富,性能上更加完善,为开发人员带来了更大的便利。Delphi 7提供了一个高度可视化的集成开发环境。也被称作IDE(Intergrated Development Enviroment)。可视化开发环境通常分为三个组成部分,即代码编辑器、调试器和窗体设计器,这三部分是同步工作的。当开发人员在窗体设计器中进行编辑时,Delphi在后台自动为正在窗体中操作的组件生成代码。开发人员还可以自己在代码编辑器中加入代码来定义应用程序的行为,同时还可以在同一个代码编辑器中通过设置断点和监控点等来调试程序3。23 常用菜单提供Delphi集成开发环境中开发应用程序所需要的各种功能·File菜单:用于新建、打开、保存、关闭等操作;·Edit菜单:用于编辑组件等操作;·View菜单:用于项目中的单元、窗体文件等操作;·Project菜单:用于项目管理、当前工程设置等操作;·Run菜单:用于提供编译和调试应用程序;·Component菜单:用于为一个组件创建一个单元文件、包等操作;·Database菜单:用于打开“SQL Explore”,创建、查看或编辑数据和BDE别名等操作。24 常用组件组件所对应的类为Tcomponent,所有的组件都是由这个类派生来的。通常,窗体中会有文字输入、滚动条、复选框、单选框、按钮等一系列组个,通过这些直观易懂的组件,可以方便的实现多种多样的功能4。241 常用文本类组件(1)Label组件:用于在窗口上显示文字;(2)Edit组件:用于显示、编辑单独的一行文本;(3)Memo组件:用于显示、编辑多行文本;(4)RichEdit组件:用于显示、编辑具有丰富文本格式的文件,如.ref文件。242 常用按钮类组件(1)Button组件:为普通的按钮的组件,在被按下后完成某些操作;(2)BitBtn组件:为图形按钮组件,在此按钮组件上既可以显示文字、位图;(3)SpeedButton组件:为加速按钮组件,通常在此按钮上只显示位图;(4)CheckBox组件:为复选按钮组件,可以直观显示某个选项是否选中,可以组成多项选择。243 常用列表类组件(1)ListBox组件:这列表框组件,可以显示一系列字符串,用户可以选中其中的一个或多个,多用于选项较多的情况;(2)ComboBox组件:为组合框组件,由一个编辑框和一个下拉式列表框组成,可以从多个列表条目中选择一个。(3)TreeView组件:为树型视图组件,树型视图组件中的节点由一个标签和一定数量的可选位图组成;(4)ListView组件:提拱多种显示数据的方法,并可用图形方式来描述选项的内容。244 常用图像类组件(1)Image组件:为图像显示组件,显示图像格式分为BMP、WMF和ICO;(2)ImageList组件:为图像列表组件,是对图像进行管理的不可视组件。245 公用对话框组件(1)OpenDialog组件:用于选择文件的对话框;(2)SaveDialog组件:用于保存文件的对话框;246 其他常用组件(1)PageControl组件:用创建多页面界面;(2)ProgressBar组件:为进度条组件,能够直观地了解应用程序中某过程的完成情况。247 信息对话框(1)ShowMessage过程ShowMessage的定义如下:Procedure showMessage(const Msg:string);他显示一个简单的信息对话框。其中有提示信息和一个OK按钮。(2)ShowMessageFmt过程定义如下:Procedure showMessageFmt(constMsg:string;params:arrayofconst);可以在在信息对话框上显示一个格式化串。(3)MessageDlg函数MessageDlg的定义如下:functionMessageDlg(constMsg:string;ATYpe:TmsgDlgTyPe;Abuttons:TmsgDlgButtons;HelpCtx:Longint):Word;他可以显示比较丰富的提示信息,还可以获取用户的响应。 第三章 水表图像预处理3.1 图像去噪灰度化二值化去噪滤波输入图像水表图像的预处理流程 图3.1 水表图像预处理流程 由于图像在采集的过程中不可避免的会引入噪声,所以预处理的第一步就是去除图像的噪声。3.1.1 图像噪声的产生和分类 噪声主要在数字图像的获取和传输中产生,可以理解为妨碍人的视觉器官或系统传感器对所接收图像源信息进行理解或分析的各种因素,一般是不可预测的随机信号,噪声对图像处理十分重要,影响图像处理的输入、采集、处理的各个环节以及输出结果的全过程。 一般图像处理中常见的噪声有: 加性噪声:加性噪声和图像信号强度是不相关的,如图像在传输过程引 进的“信道噪声”、电视摄像机扫描图像的噪声等 乘性噪声:乘性噪声和图像的加性噪声是不一样的,加性噪声和图像信号强度不相关,二乘性噪声和图像信号是相关的,往往随图像信号的变化而变化,如电视扫描光栅 量化噪声:量化噪声是数字图像的主要噪声源,其大小显示出数字图像和原始图像的差异,减少这种噪声的最好办法就是采用按灰度级概率密度函数选择量化级的最优量化措施 “椒盐”噪声:此类噪声很多,如图像切割引起的即黑图像上的白点、白图像上的黑点噪声,在变换域引入的误差,使图像反变换后噪声的变换噪声等在做水表数字部分预处理的时候,由于水表是在不同的环境下取得的图像,所以,被分析的图像存在着各种噪声,本文是对一般光照情况下获得的水表图像进行分析。 下面对水表去噪前后的图像进行比较(由于获得的水表图像的清晰度有限,所以比较原图像的噪声情况不理想,此