基于BP神经网络算法的车牌字符识别---毕业论文_第1页
基于BP神经网络算法的车牌字符识别---毕业论文_第2页
基于BP神经网络算法的车牌字符识别---毕业论文_第3页
基于BP神经网络算法的车牌字符识别---毕业论文_第4页
基于BP神经网络算法的车牌字符识别---毕业论文_第5页
免费预览已结束,剩余40页可下载查看

下载本文档

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

文档简介

本 科 毕 业 论 文 基于BP神经网络算法的车牌字符识别The license plate character recognition based onBP neural network algorithm姓 名: 学 号:学 院:软件学院系:软件工程专 业:软件工程年 级: 校内指导教师: 年 月摘要车牌识别技术是近几年发展起来的计算机视觉与模式识别技术在智能交通领域应用的重要研究课题之一。该技术已被广泛应用于路桥收费、港口和机场卡口监控、大型停车场管理等实际系统中。在今后的智能交通系统中也将会有着关键的应用。本系统在实现的过程当中,包含两大模块,即图像处理模块和字符识别模块。本文笔者主要实现图像字符的分割、尺寸大小归一化、图像紧缩重排、特征提取、BP神经网络训练以及最后的字符识别。BP神经网络的流程为样本训练-字符特征提取-神经网络识别结果。在研究BP神经网络算法的过程中,首先简介神经网络识别技术,然后叙述BP神经网络的研究过程,最后阐述本系统BP神经网络的实现及其程序运行。本文开发的基于BP神经网络的车牌识别系统,通过良好的程序构架实现了识别过程。通过程序测试表明:利用神经网络可有效识别车牌且速度快、识别率高、具有较高的使用价值。在本文的结尾部分叙述了笔者对车牌系统发展的看法和以后的可改进方向,着实而有力的表明了自己的观点。关键字:字符识别;神经网络;BP算法AbstractLicense plate recognition technology is developed in recent years, it is the application of computer vision and pattern recognition technology in the field of intelligent transportation. The technology has been widely used in road and bridge fees, port and airport card monitor, the actual large-scale parking lots management system. In future intelligent transportation systems will also have a critical application. In the realization of the process, the system includes two main modules, namely image-processing module and character recognition module. In this paper, the author mainly work on image-segmentation, size-normalization, image-contraction rearrangement, character feature extraction, BP neural network training, as well as the final step: the character recognition. The process of the BP neural network includes: training process for a sample - character feature extraction - the results of neural networks. In the study of BP neural network algorithm, the first step is a brief for the neural network technology, then described the BP neural network, and the last step is the BP neural network of the system and its program realization.In this paper, the author uses a nice framework of the program to achieve the development of the license plate character recognition based on BP neural network algorithm. Experiments show that through the process: the use of neural networks can effectively identify the license plate and speed, recognition rate is high, with a higher value. At the end of this article the author points out his view of the development of the license plate system in the future, and shows out his point of view obviously.Key Words: Character Recognition; neural network; BP algorithm目录第一章 绪论1 1.1 简述1 1.2 项目背景及研究现状1 1.3本文的主要工作5 1.4 本文结构5第二章 系统的总体设计6 2.1 系系统的开发平台62.1.1 系统的硬件平台62.1.2 系统的软件平台6 2.2 系统中用到的关键技术6 2.3 系统实现72.3.1 系统流程图72.3.2系统总体设计7第三章 系统的详细设计10 3.1字符的分割10 3.2图像尺寸归一化11 3.3字符的紧凑排列12 3.4特征提取14 3.5用BP神经网络进行字符识别163.5.1神经网络简介163.5.2 本系统BP神经网络实现及编程实现18第四章 系统的实现结果31 4.1系统运行的主界面31 4.2系统测试运行结果:32 4.3程序总结324.3.1 BP网络训练部分324.3.2 BP网络识别部分33 4.4对于该类系统的想法和今后的研究方向334.4.1关于车牌识别系统的发展趋势: 334.4.2 BP网络的优化及改进34第五章 结束语37参考文献38致谢39ContentsChapter 1 Introduction1 1.1 summarize1 1.2 Project Background1 1.3 Mainly work5 1.4 FrameWork5Chapter 2 General design6 2.1 System hardware and software platform62.1.1 System hardware platform62.1.2 System software platform6 2.2 Key Technologies6 2.3 System achievement72.3.1 System flow chart72.3.2 System overall design7Chapter3 Detailed design10 3.1 Character Segmentation10 3.2 size normalization11 3.3 character contraction rearrangement12 3.4 character feature extraction14 3.5 BP Neural network character recognition163.5.1 About Neural Networks163.5.2 Process of the BP Neural network system and code18Chapter4 System results31 4.1 Main interface31 4.2 System test results32 4.3 Summary of the program324.3.1 BP Training324.3.2 BP character recognition33 4.4 Ideas and research directions334.4.1 Development trends334.4.2 Optimization and improvement34Chaptrer5 Conclusions37References38Acknowledge 39第一章 绪论第一章 绪论1.1 简述随着计算机技术的快速发展,数字图像处理技术进入了各个不同的领域,得到更加深入和广泛的应用。但是在具体工程实践应用中,由于具体问题的不同,数字图像处理技术目前尚没有统一的算法来解决实际问题,所以其运用仍存在着一定的限制。因此对具体问题的研究和解决方案的提出仍然是一个极其具有挑战性的课题。早期图像处理技术的应用范围受到图像处理设备价格昂贵以及处理速度缓慢的影响,运用受到了很大的限制。从70年代后至今,随着计算机技术的迅速发展,图像处理的应用范围得到了逐渐推广。将图像处理技术应用于交通领域,组建了智能交通系统(ITS),近年来在我国已经有了相当程度的进步,其应用主要分为车辆检测、车辆识别、车辆跟踪三个部分,其中车辆识别又分为车型识别和车牌识别。本文主要研究车牌识别技术。我国机动车使用的牌照主要是根据公安部一九九二年颁布的中华人民共和国公共行业标准:中华人民共和国机动车牌号制作的。汽车牌照一般由下列基本元素组成:汉字(牌照中包括的汉字大约48个)英文字母(A-Z)数字(0-9)颜色(蓝、黄、白、黑)现在市场上流行的车辆牌照识别系统的特点在于高速:一般系统能把时速不高于120KM的汽车车牌号码自动识别出来的时间0.8秒;识别率高:采用数字图像处理的算法,在各种条件下能有较高的识别率;系统可靠性高,稳定性强,能长时间工作;系统构成简单,安装维护方便。当然系统要保持较高的识别率会受到很多技术难点的影响,这些技术难点主要有:受环境影响较大,车牌区域定位难;车牌变形校正、旋转倾斜校正、污损修复比较难以实现;对高速运行车辆,车辆高速运动中成像难,系统要求全天候连续工作、系统无故障时间长,对系统软硬件鲁棒性要求高等。1.2 项目背景及研究现状近几年,我国道路交通迅猛发展,随之也带来了对交通管理自动化的迫切需求。车牌自动识别的研究与开发一直是现代化交通发展中倍受关注的问题,也是制约交通系统智能化、现代化的重要因素。智能交通系统己成为当前交通管理发展的主要方向,而车牌识别技术作为智能交通系统的核心,起着举足轻重的作用。 车牌自动识别系统具有广泛的应用范围,主要应用于:(1)高速公路收费、监控管理;(2)小区、停车场管理;(3)城市道路监控、违章管理;(4)车牌登录、验证;(5)车流统计、安全管理等。车牌自动识别系统应用于这些系统,可以解决通缉车辆的自动稽查问题,可以解决车流高峰期因出入口车流瓶颈造成的路桥卡口、停车场交通堵塞问题,可以解决因工作人员作弊造成的路桥卡口、高速公路、停车场应收款流失的问题,还可以以最简单的方式完成交通部门的车辆信息联网,解决数据统计自动化,模糊查询的问题。车牌自动识别系统可安装于公路收费站、停车场、十字路口等交通关卡处,其具体应用可概括为: (l)交通监控利用车牌识别系统的摄像设备,可以直接监视相应路段的交通状况,获得车辆密度、队长、排队规模等交通信息,防范和观察交通事故。它还可以同雷达测速器或其他的检测器配合使用,以检测违犯限速值的车辆。当发现车辆超速时,摄像机获取该车的图像,并得到该车的牌照号码,然后给该车超速的警告信号。 (2)交通流控制指标参量的测量,为达到交通流控制的目标,一些交通流指标的测量相当重要。该系统能够测量和统计很多交通流指标参数,如总的服务流率,总行程时间,总的流入量流出量,车型及车流组成,日车流量,小时/分钟车流量,车流高峰时间段,平均车速,车辆密度等。这也为交通诱导系统提供必要的交通流信息。 (3)高速公路上的事故自动测报这是由于该系统能够监视道路情况和测量交通流量指标,能及时发现超速、堵车、排队、事故等交通异常现象。 (4)对养路费交纳、安全检查、运营管理实行不停车检查根据识别出的车牌号码从数据库中调出该车档案材料,可发现没及时交纳养路费的车辆。另外,该系系统还可发现无车牌的车辆。若同车型检测器联用,可迅速发现所挂车牌与车型不符的车辆。 (5)车辆定位由于能自动识别车牌号码,因而极易发现被盗车辆,以及定位出车辆在道路上的行驶位置。这为防范、发现和追踪涉及车辆的犯罪,保护重要车辆(如运钞车)的安全有重大作用,从而对城市治安及交通安全有重要的保障作用。车牌自动识别系统拥有广阔的应用前景,但若在每个街口都装配一套全新的车辆探测器的硬件系统则投资巨大,所以急需一个纯软件实行的车牌自动识别系统来最大限度的减少费用,而纯软件的设计,不仅投资小而且灵活性高,适合我国的国情。 从20世纪90年代初,国外就已经开始了对汽车牌照自动识别的研究,其主要途径就是对车牌的图像进行分析,自动提取车牌信息,确定汽车牌号。在各种应用中,有使用模糊数学理论也有用神经元网络的算法来识别车牌中的字符,但由于外界环境光线变化、光路中有灰尘、季节环境变化及车牌本身比较模糊等条件的影响,给车牌的识别带来较大的困难。国外的相关研究有:(1)J Barroso提出的基于扫描行高频分析的方法; (2) I.T. Lancaster提出的类字符分析方法等.为了解决图像恶化的问题,目前国内外采用主动红外照明摄像或使用特殊的传感器来提高图像的质量,继而提高识别率,但系统的投资成本过大,不适合普遍的推广. 车牌识别系统中的两个关键子系统是车牌定位系统和车牌字符识别系统。 关于车牌定位系统的研究,国内外学者已经作了大量的工作,但实际效果并不是很理想,比如车牌图像的倾斜、车牌表面的污秽和磨损、光线的干扰等都是影响定位准确度的潜在因素。为此,近年来不少学者针对车牌本身的特点,车辆拍摄的不良现象及背景的复杂状况,先后提出了许多有针对性的定位方法,使车牌定位在技术和方法上都有了很大的改善.然而现代化交通系统不断提高的快节奏,将对车牌定位的准确率和实时性提出更高的要求。因而进一步加深车牌定位的研究是非常必要的。 车牌字符识别是在车牌准确定位的基础上,对车牌上的汉字、字母、数字进行有效确认的过程,其中汉字识别是一个难点,许多国外的LPR系统也往往是因为汉字难以识别而无法打入中国市场,因而探寻好的方法解决字符的识别也是至关重要的.目前己有的方法很多,但其效果与实际的要求相差很远,难以适应现代化交通系统高速度、快节奏的要求。因而对字符识别的进一步研究也同样具有紧迫性和必要性。 从实用产品来看,如以色列的Hi-Tech公司研制的多种See/Car system,适应于几个不同国家的车牌识别,就针对中国格式车牌的See/Car system而言,它不能识别汉字,且识别率有待提高。新加坡Optasia公司的VLPRS产品,适合于新加坡的车牌,另外日本、加拿大、德国、意大利、英国等西方发达国家都有适合于本国车牌的识别系统。 我国的实际情况有所不同,国外的实际拍摄条件比较理想,车牌比较规范统一,而我国车牌规范不够,不同汽车类型有不同的规格、大小和颜色,所以车牌的颜色多,且位数不统一,对处理造成了一定的困难。在待处理的车牌图像中就有小功率汽车使用的蓝底白字牌照,大功率汽车所用的黄底黑字牌照,军车和警车的白底黑字,红字牌照,还有国外驻华机构的黑底白字牌照等。就位数而言,有七位数字的,有武警车九位数字的,有军车、前两位字符上下排列的等,所以也造成了处理的难度。 国内做得较好的产品主要是中科院自动化研究所汉王公司的“汉王眼”,此外国内的亚洲视觉科技有限公司、深圳市吉通电子有限公司、中智交通电子系统有限公司等都有自己的产品,另外西安交通大学的图像处理与识别研究室、上海交通大学的计算机科学与工程系、清华大学、浙江大学等都做过类似的研究。通常处理时为了提高系统的识别率,都采用了一些硬件的探测器和其他的辅助设备如红外照明等,其中“汉王眼”就是采用主动红外照明和光学滤波器来减弱可见光的不可控制影响,减少恶劣气候和汽车大小灯光的影响,另外还要求在高速公路管理窗口到“汉王眼”识别点埋设两条线路管道,一条管道铺设220伏50赫兹1安培的交流供电线路:另一条管道铺设触发信号线路和汉王眼与管理计算机的通讯线路,投资巨大,不适合于大面积的推广。 另外,还有两种专门的技术被用于车牌的识别中,条形码识别技术和无线射频技术。条形码识别要求预先在车身上印刷条形码,在系统的某一固定位置上安装扫描设备,通过扫描来读取条形码,以达到识别车辆的目的。无线射频技术要求在车内安装标示卡,在系统某一位置安装收发器等装置,通过收发器来接受标示卡的信号,从而识别出经过的车辆。显然,这两种技术更难以推广。 从目前一些产品的性能指标可以看出,车牌识别系统的识别率和识别速度有待提高。现代交通的飞速发展以及车牌识别系统应用范围的日益拓宽给车牌识别系统提出了更高的要求。因此,研究高速、准确的定位与识别算法是当前的主要任务,而图像处理技术的发展与摄像设备、计算机性能的提高都会促进车牌识别技术的发展,提高车牌识别系统的性能。1.3本文的主要工作: 本文基于数字图像处理技术,研究、开发了一套自动化的基于数字图像处理技术的车辆牌照识别系统。在论文中主要描述系统中的第二个模块字符识别模块的实现过程,其中包括了字符的分割、尺寸归一化处理、紧缩重排以及使用BP神经网络算法进行字符识别。在字符识别过程中,首先简介BP神经网络识别算法,然后详细研究BP神经网络算法的过程,最后描述本程序的设计方法及其实现。在利用BP神经网络进行字符识别的过程主要包括神经网络的训练(包括汉字、数字和字母的训练)、字符的特征提取、字符的识别及结果的输出。在基于BP神经网络的该车牌识别系统中,笔者运用了良好的程序构架实现了识别过程。1.4 本文结构全文分为五个章节:第一章为“引言”;第二章介绍系统的总体设计;第三章介绍系统的详细设计;第四章给出系统的实现(运行)结果;第五章为“结束语”。最后是致谢、参考文献。38第二章 系统的总体设计第二章 系统的总体设计2.1 系统的开发平台2.1.1 系统的硬件平台在系统运行的过程当中,图像处理过程中要进行大量的数据处理,所以处理器和内存要求比较高,CPU 要求主频在600hz 以上(含600hz),内存在128 兆以上(含128 兆)。2.1.2 系统的软件平台系统可以运行于任何一台装有Windows98 、Windows2000 或者Windows XP 的机子上。程序调试使用Microsoft Visual C+ 6.0,技术支持参考文献4。 Visual C+(简称VC)是微软公司推出的一个面向对象的、功能丰富的可视化重量级开发工具。利用Visual C+提供的高效Windows编程环境,我们可以编写与其它软件开发工具相比,Visual C+的强大功能表现在: 第一,它是C和C+混合编译器,使得Visual C+的开发程序具备了C和C+的高效简洁的特点。 第二,Visual C+是一个面向对象的语言,使得软件能够在源码级、类级、控件级等多个级别上重用,软件的开发效率大为加快。 第三,Visual C+借助于微软公司的MFC类库和应用程序框架,能够轻易开发出Windows标准界面的应用程序。2.2 系统中用到的关键技术在本系统中用到了很多图像处理中的相关技术:比如图像数据读取、图像的灰度化、图像增强、中值滤波、二值化、图像的调整、边框切除、字符的分割、字符尺寸归一化、图像的紧缩重排等操作,最后使用了BP神经网络对提取到的车牌字符信息进行识别判断,包括网络的训练、字符特征的提取和字符识别,其中网络的训练又包括汉字训练、数字训练和字母训练。2.3 系统实现系统在实现的过程当中,先分解成两个大块,就是图像预处理模块和字符识别模块。其中图像像预处理块在对图像进行了一系列变换后把最后提取到的字符提交给字符识别模块,然后进行识别并给出结果。2.3.1 系统流程图本系统总的流程结构如图2-1所示。图2-1 系统总流程图神经网络字符识别的具体流程如图2-2 所示。图2-2 神经网络数字识别流程图2.3.2系统总体设计经过了第一阶段的准备工作之后,基于论文总体设计,在整体上设计系统主要着重考虑以下两点: A)基于为了提高识别率考虑:对于经过图像预处理后的图片,进行字符分割、字符尺寸大小归一化、字符的紧凑排列后,形成了大小相同,排列整齐的字符,然后再进行字符识别。具体的介绍如下:字符的分割:系统在读进来的图像中一般会含有多个数字,识别的时候只能根据每个字符的特征来进行判断,所以还要把图像中的字符独立的分割出来。图像尺寸标准归一化:相对来说,统一尺寸的字符识别的标准性更强,准确率自然也更高,标准化图像就是要把原来各不相同的字符统一到同一尺寸,在系统实现中是统一到同一高度,然后根据高度来调整字符的宽度。字符的紧凑排列:经过标准归一化处理后的各个字符在图像中的位置不定,对它进行特征提取时处理起来比较麻烦,所以要把归一化后的字符进行紧缩重排。字符的特征提取:在归一化处理完毕的字符中,提取出最能体现这个字符特点的特征向量。将提取出训练样本中的特征向量代入BP网络之中就可以对网络进行训练,提取出待识别的样本中的特征相量代入到训练好的BP网络中,就可以对字符进行识别。特征向量的提取方法多种多样,参考文献15:有逐象素特征提取发,骨架特征提取法,垂直方向数据统计特征提取法,13点特征提取法,弧度梯度特征提取法等很多种方法。笔者这里选择的是逐象素特征提取法。B)基于识别方法选择的考虑:常用的字符识别算法有模板匹配法、神经网络算法、基于隐马尔可夫模型(HMM)的算法、支持矢量机(SVM)等。以下是这些算法的比较:传统的模板匹配法使用单一的匹配测度,只关注前景的目标匹配,在车牌字符腿色、有污迹以及破裂等因素存在时,识别效果并不理想。神经网络的算法的特点是具有大规模的并行处理的能力,对于解析度较高以及图像比较清晰的车牌识别率较高,但是其样本训练收敛速度慢。HMM算法在语音识别方面有着广泛的应用,而在字符识别中,由于字符具有二维空间拓扑结构特性,因此须采用二维隐马尔可夫模型(2D-HMM)才能反映此特性,而2D-HMM的计算复杂,训练和识别很耗时间,不适合于高实时性要求的应用。支持矢量机方法中关于核函数的确定至今没有研究出很好方法,算法实现困难,运行需要较大存储空间,这是支持矢量机的主要缺点.综合以上分析:作者选择神经网络算法,神经网络有好多种,比如径向基网络、BP网络,Hopfield 网络等。本神经网络识别系统采用的是使用最为广泛的BP网络。首先是BP网络的训练:训练之前首先要输入BP训练的参数,这里主要是训练步长和允许误差。BP训练的时候,首先要进行特征提取,然后将提取的特征送入BP网络进行训练。如果网络设计得当,参数选择也正确的话,那么BP网络将会在有限步内收敛。训练完毕的BP网络将网络的权值保存到文件中,以便下一步识别的时候可以直接调用。BP神经网络的训练与识别:最重要的论文最核心的部分。我们的目标是要设计并训练出一个可行、高效的BP网络,以实现对车牌字符的高效识别。经图像预处理过程之后,可以将最终提取到的字符的特征送入BP网络进行训练及识别了。这里,我们要先假设我们设定的字符标准归一化的宽度为8,高度为16,那么对于每个字符就有128维的特征。设计BP网络的关键之处在于高效的特征提取方法、大量有代表性的训练样本、高效稳定速收敛的学习方法。BP网络识别过程如图2-3所示。图2-3 BP网络的流程图具体的BP神经网络的设计将在第三章中阐述。第三章 系统的详细设计第三章 系统的详细设计3.1字符的分割 系统在读进来的图像中含有多个字符,识别的时候只能根据每个字符的特征来进行判断,所以还要进行字符分割的工作。这一步-工作就是把图像中的字符独立的分割出来。具体的算法如下:第一步,先自下向上对图像进行逐行扫描直至遇到第一个黑色的象素点。记录下来。然后再由上向下对图像进行逐行扫描直至找到第一个黑色象素,这样就找到图像大致的高度范围。第二步,在这个高度范围之内在自左向右逐列进行扫描,遇到第一个黑色象素时认为是字符分割的起始位置,然后继续扫描,直至遇到有一列中没有黑色象素,则认为这个字符分割结束,然后继续扫描,按照上述的方法一直扫描直至图像的最右端。这样就得到了每个字符的比较精确宽度范围。第三步,在已知的每个字符比较精确的宽度范围内,按照第一步的方法,分别进行自上而下和自下而上的逐行扫描来获取每个字符精确的高度范围。具体的程序运行效果对比如图3-1和3-2:图3-1未进行字符分割前的效果图3-2字符分割后的效果3.2图像尺寸归一化因为扫描进来的图像中字符大小存在较大的差异,而相对来说,统一尺寸的字符识别的标准性更强,准确率自然也更高,标准化图像就是要把原来各不相同的字符统一到同一尺寸,在系统实现中是统一到同一高度,然后根据高度来调整字符的宽度。具体算法如下:引参考文献2所述,先得到原来字符的高度,跟系统要求的高度做比较,得出要变换的系数,然后根据得到的系数求得变换后应有的高度,同理得到应有的宽度。在得到高度宽度之后,把新图像里面的点按照插值的方法映射到原图像中。图像标准归一化的高度和宽度信息可以通过一个对话框由读者自行输入,但是为了以后特征提取的时候处理方便,进行BP网络训练的时候缩短训练的时间,标准化的宽度和高度不要设置的过大。笔者测试程序用的去归一化宽度为20,高度为30。归一化前后的执行效果分别如图3-3和图3-4所示:图3-3 利用对话框输入归一化尺寸字符高度和宽度图3-4 图像尺寸归一化后的程序执行结果3.3字符的紧凑排列参考文献11,经过标准归一化处理后的各个字符在图像中的位置不定,要它进行特征提取时处理起来比较麻烦,所以要把归一化后的字符进行紧缩重排,以形成新的位图,方便下一步的特征提取操作。字符紧凑排列前后的程序执行效果如图3-5和3-6所示:图3-5 字符紧凑排列前 图3-6字符紧凑排列后3.4特征提取过上面一系列的变换,原来,大小不同,分布不规律的各个字符变成了一个个大小相同,排列整齐的字符。下面就要从被分割归一化处理完毕的字符中,提取最能体现这个字符特点的特征向量。将提取出训练样本中的特征向量代入BP网络之中就可以对网络进行训练,提取出待识别的样本中的特征相量代入到训练好的BP网络中,就可以对字符进行识别。笔者这里选择的是逐象素特征提取法。具体实现代码描述如下:/* 函数功能 :* 对于输入样本提取特征向量,在这里把归一化样本的* 每一个象素都作为特征提取出来*/ / 建立保存特征向量的二维数组double *data;/ 为这个数组申请二维存储空间data = alloc_2d_dbl(num,lSwidth*lSheight);/ 将归一化的样本的每个象素作为一个特征点提取出来/逐个数据扫描for(k=0;knum;k+) /对每个数据逐行扫描for(i=0;ilSheight;i+) /对每个数据逐列扫描for(j=k*lSwidth;j(k+1)*lSwidth;j+)/ 指向图像第i行第j列个象素的指针lpSrc = lpDIBBits + i*lLineByte + j;/如果这个象素是黑色的if(*(lpSrc)=0)/将特征向量的相应位置填1dataki*lSwidth+j-k*lSwidth=1;/如果这个象素是其他的颜色 if(*(lpSrc)!=0)/将特征向量的相应位置填0dataki*lSwidth+j-k*lSwidth=0;/返回特征向量矩阵指针return(data); 这样经过归一化的图片的每个象素作为一个特征点提取出来,保存在二维数组data中。为了以后的BP网络训练3.5用BP神经网络进行字符识别3.5.1神经网络简介下面我们首先来简要介绍一下神经网络,然后再详细介绍BP网络。神经网络简介:人工神经网络(Artificial Neural Network,ANN),也称为神经网络(Neural Networks,NN)。即从生物学神经系统的信号传递而抽象发展而成的一门学科。在神经网络中,最基本的单元就是神经元。参考文献7和16,神经元由三部分组成:树突、细胞体和轴突。树突是树状的神经纤维接受网络,它将电信号传递给细胞体,细胞体对这些输入信号进行整合并进行阀值处理。轴突是单根长纤维,它把细胞体的输出信号导向其他的神经元。神经元的排列拓扑结构和突触的连接强度确立了神经网络的功能。形象的说,神经网络是由大量处理单元(神经元 Neurons)广泛连接而成的网络,是对人脑的抽象、简化和模拟,反映人脑的基本特性。它能够通过学习过程从外部环境中获取知识,并且它内部的很多的神经元可以用来存储这些已经学到的知识。图 3-7 神经元信号传递数学模型上图是将生物神经元模型抽象成一个信号传递的数学模型。神经元的输入是信号P,经过一个累加器累加后的信号送入一个激活函数f,从而得到这个神经元的输出a。这个神经元的输出a同时又可以作为下一个或多个神经元的输入,从而将神经信号成网络分散状传递出去。一个神经元可以接受多个输入,所以把神经元表示成为矢量、矩阵形式更容易去处理分析实际问题。图 3-8神经元的矩阵形式信号传递模式这里,P表示一R维的输入向量,B为偏置向量,W为网络的权值矩阵,f为激活传输函数,a为网络的输出向量。以上是对一个单层神经网络的描述。一般就实际情况而言,多层网络用处要广的多。后面用到的BP网络也是多层的。参考文献17和18,在多层网络中,一般至少有3个层:一个输入层、一个输出层、一个或多个隐层。多层网络可以解决很多单层网络无法解决的问题,比如多层网络可以用来进行非线性分类,可以用来做精度极高的函数逼近,只要有足够多的层和足够多的神经元,这些都可以办到。一个多层网络的输入和输出层的神经元个数是由外部描述定义的。例如如果有4个外部变量作为输入,那网络就要有4个输入。关于隐层神经元的确定,将在BP网络的设计中详细讨论。参考文献7,文中曾多次提到过,感知器是神经网络的基础,也是BP网络的基础。所谓感知器(perceptron),也即给定一个或多个已知类别的输入,通过对网络的训练以实现所有输入数据的正确分类的数学模型。注意,感知器是单层网络。这里,训练的意思就是通过感知器的输出来反复调整网络的权值,以使其满足所有分类都正确的要求。不过一般来说,感知器的分类能力较差。神经网络有好多种,比如径向基网络、BP网络,Hopfield 网络等。本神经网络识别系统采用的是使用最为广泛的BP网络。3.5.2 本系统BP神经网络实现及编程实现下面介绍BP神经网络,描述如下:信息的正向传播:输入信号从输入层经过隐含层,传向输出层,在输出端生输出信号,这是工作信号的正向传播。在信号传递的过程中网络的权值是固定不变的,每一层神经元的状态只影响下一层神经元的状态。如果在输出层得到的输出和期望输出的偏差比较大,则转入误差信号的反向传播。误差信号反向传播:网络的实际输出和期望输出的差值就是误差信号。误差信号的反向传播就是误差信号从输出端传向输入端。在这个过程当中,网络的权值由误差反馈进行调节。通过不断的修改网络权值从而使得网络的输出不断的逼近期望值。 图3-9 是神经网络的示意图。图3-9 神经网络示意图神经网络的激励函数。激励函数将输出信号压缩在一个允许的范围内,使其成为有限值,通常神经元输出的范围在0,1或者1,1的闭区间上。常用的基本激励函数有阈值函数、分段线性函数、Sigmoid 函数。其中Sigmoid 函数也称为s型函数,它是人工神经网络中用的最多的激励函数。S型函数的定义如下: 公式3-1神经网络的反馈调节。误差信号的反向传播:网络不断的修正各个节点的权值。设有含n个节点的BP网络,采用s型激励函数。为简单起见,可以假设网络只有一个输出y,任一节点的输出为,并设有N个样本k = 1,2,N),对某一输入,网络的输出为,节点i的输出为,节点j的输入为: 公式3-2使用平方型误差函数: 公式3-3其中为网络之实际输出,定义如下: 公式3-4 公式3-5 公式3-6其中: 公式3-7于是有: 公式3-8当j为输出节点时, 公式3-9若j不是输出节点时,有: 公式3-10 公式3-11因此可得: 公式3-12下面讲述BP网络的实现过程。参考文献6,可以归纳如下:第一步 设置变量和参数,其中包括训练样本,权值矩阵,学习速率。第二步 初始化,给各个权值矩阵一个较小的随机非零向量。第三步 输入随机样本。第四步 对输入样本,前向计算BP网络每层神经元的输入信号和输出信号。第五步 由实际输出和期望输出求得误差。判断是否满足要求,若满足转第八步;不满足转第六步。第六步 判断是否已经到了最大迭代次数,若到,转第八步,否则进行误差的反向传播。第七步 修正各个矩阵的权值。第八步 判断是否学习完所有的样本,是则结束,否则转第三步。参考文献7,总结出BP学习中需要注意的几点:A)权值的初始化。权值的初始值应该选择均匀分布的小数经验值。初始值过大或者过小都会影响学习速度。为了避免权值的调整是同向的,应该将初始值设为随机数。B)初始权值不要太大。否则可能会处于误差平面较平坦的区域,从而导致算法无法收敛,训练失败。C)神经元的激励函数是s型函数。所以如果函数的渐近值是0,1的话,期望输出只能是小于1大于0的数,而不能是1或者0,否则可能会导致算法不收敛。在程序中建议读者用0.1来代表0,0.9代表1。下面就开始用BP网络的思想来设计实现一个真正的实际的神经网络。BP网络的一个重要的用途就是用于模式识别。我们的任务是要设计并训练出一个可行、高效的BP网络,以实现对车牌字符的识别。经图像预处理过程之后,可以将最终提取到的字符的特征送入BP网络进行训练及识别了。这里,假设我们设定的字符标准归一化的宽度为20,高度为30,那么对于每个字符就有600维的特征。设计BP网络的关键之处在于高效的特征提取方法、大量有代表性的训练样本、高效稳定速收敛的学习方法。BP网络应用过程如图3-10所示。图3-10 BP网络应用流程下面来讲讲BP网络三个层的神经元数目的确定。这也是BP网络设计的关键。BP网络应用的第一步就是要用已知训练样本来训练BP网络。这里,BP网络的输入层的结点个数,为图像预处理后所输出的特征的维数。例如,我们采用了1015归一化,特征提取采用的是逐个象素特征提取方法,也即直接利用每个点的象素值来作为特征,这样,对于每一个输入样本,就有1015150个特征。所以就可以确定,输入层的结点数为150。对于隐层的结点数,没有什么硬性规定,一般来说,隐层神经元的数目越多,那么BP网络也就越精确,训练时间也越长。但要注意,隐层神经元不易选取太多,否则会造成识别率的急剧下降,也会降低网络的抗噪声能力。在本程序中,笔者推荐使用15个隐层神经元。读者可以自行测试一下,当将隐层神经元个数改为30个时,训练时间和识别率的变化。看来神经元的个数也不是越多越好,过犹不及。对于输入层的结点数的确定,这决定于我们如何设定标准输出。也就是说如何对目标期望输出进行编码。在本程序中,笔者采用了8421码来对汉字、数字和字母来进行编码。为了方便起见取数字为例:对于输出“0”,我们采用(0,0,0,0)这样的目标输出向量来表示,即2进制表示,同理,对于输出“9”,我们采用(1,0,0,1)这样的输出向量来表示。这样一来,我们就可以确定数字的输出层的神经元数目为:4。其实通过后续编程实践我们可以发现,当采用(0,0,0,0)这样的目标输出向量的时候,BP网络无法收敛。那是因为我们采用的激励函数(传输函数)的输出永远不可能达到0或1,而只能是接近。所以,在这里我们要纠正一下目标输出向量。对其重新编码后,最终确定编码方案如下:0的编码: 0.1,0.1,0.1,0.1;1的编码: 0.1,0.1,0.1,0.9;2的编码: 0.1,0.1,0.9,0.1;3的编码: 0.1,0.1,0.9,0.9;4的编码: 0.1,0.9,0.1,0.1;5的编码: 0.1,0.9,0.1,0.9;6的编码: 0.1,0.9,0.9,0.1;7的编码: 0.1,0.9,0.9,0.9;8的编码: 0.9,0.1,0.1,0.1;同理,可以确定车牌字符的26个英文大写字母及48个相关汉字,输出端采用二进制表示,即数字节点数为4,字节点数为6,字母节点数为5,数字字母节点数为6。那么同样我们用8421码对汉字和字母进行编码。使用BP网络来进行字符识别的流程如下:首先,利用大量的训练样本来训练网络,以得到以文件形式保存的权值。越多的训练样本,识别率就越高,但训练时间往往会达到分钟甚至更高到小时的级别,实际意义不大了。然后,训练完BP网络后,就可以用它对为止字符进行识别了。识别首先要经过图像预处理、特征提取,最后送入BP网络识别,直接得到结果。在训练之前,程序要求输入训练参数,如训练误差、步长等,如图3-11所示:图3-11 BP训练参数输入框系统的测试运行结果如下图3-12所示:图3-12 系统测试运行结果以下列出BP神经网络识别的部分代码

温馨提示

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

最新文档

评论

0/150

提交评论