基于神经网络的印刷体数字字符的识别_周泽华
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
110
基于神经网络的印刷体数字字符的识别
*
周泽华,胡学友,谭 敏,张为堂
(合肥学院电子信息与电气工程系 合肥,230601)
摘 要:提出了一种基于BP网络的印刷体数字字符的识别方法。通过对BP网络的研究与学习,设计了一种结构合理,收敛速率快的BP网络。实验结果表明,该方法对标准的印刷体数字字符的识别率达到了100%,对有1~3度倾斜角度的字符识别率也达到了96%以上。
关键词:神经网络;BP网络;印刷体数字字符识别
Abstract: A method based on BP neural network was put forward to realize printed numeric character diagnosis, with satisfied results
in experimental test. The rate reaches 100% for standard printed numbers and more than 96% for tilt character with 1-3 angles.
Key words: Neural network ; BP network ; Printed numeric character
中图分类号:TP181 文献标识码:B 文章编号:1001-9227(2009)05-0110-03
0 引 言
印刷体数字识别有极大的实用价值,它可以应用于身份证号码识别、汽车牌照识别、银行票据识别等各种印刷体编号的识别,涉及到交通、银行、教育和邮政等多个领域。它是字符识别的一个重要分支,现有的识别方法主要可分为两类
:基于统计特征的方法[1]
和基于结构特征的
方法
[2]
。由于印刷体数字恰是一种结构性字符,一般采用
“特征提取+分类器”的方法[3-5]
进行分类识别。
近年来,人工神经网络以其高度并行性、良好的容错性、联想记忆功能力、自适应和自学习等特点,备受人们重视,在字符识别领域得到了广泛的应用。本文对神经网络分类器进行研究,提出了一种基于BP网络的印刷体数字字符识别系统的实现方法,为印刷体数字字符识别提供了一条识别率高,识别速度快的新途径。1 人工神经网络
神经网络是由大量处理单元(神经元、处理元件、电子元件、光电元件等)广泛互连而成的网络,它是在现代神经科学研究成果的基础上提出的,反映了人脑功能的基本特征。人工神经网络是一个并行的分布处理结构,它的工作原理是以人脑的组织结构和活动规律为背景,反映了人脑的很多特征,但并不是对人脑部分的真实实现。人工神经网络是通过人工神经元模型来实现模拟生物神经元,人工神经元相当于一个多输入单输出的非线性阈值器件。
BP神经网络是指采用了BP算法的多层前向神经网络。典型的三层BP神经网络结构如图1所示。它由输入层、隐含层(中间层)和输出层组成。其中,X 1,X 2,…X 3为输入向量,T 1,T 2,…T n 为神经元的阈值,W ij ,W jp 为连接权值,Y 1,Y 2,…Y n 为输出向量。网络按有导师指导的方式进行学习,输入信息传播到隐含层结点上,经过logsig型(也可以是其他函数)的激活函数运算后,将隐含结点的输出信息传播到输出结点,在输出层的各神经元获得网络的输入响应。如果输出层不能得到期望输出,即实际输出值与期望输出值之间有误差,那么就将误差信号沿原来的连接通路返回,逐次向输入层传播并进行计算,逐层修正各连接权,再经过正向传播过程。这两个过程反复进行,使得误差信号不断减小,网络对输入信息响应的正确率不断提高。当误差达到所期望的要求时,网络的学习过程就结束。
图1 典型的三层BP神经网络结构
2 BP网络的设计与实现2.1 字符特征提取
在进行BP网络设计之前,我们要对待识别的字符进行特征提取,本设计是选取字符的网格特征作为识别的特
收稿日期:2009-05-20
*基金项目:安徽省教育厅自然科学研究重点项目(KJ2009A55)、合肥学院科研发展基金重点项目(09KY02ZD)、合肥学院自然科学研究发展基金一般项目(09KY02ZR)资助。
作者简介:周泽华(1982-),男,安徽宿松人,助教,硕士,主要研究方向为数字图像处理。
基于神经网络的印刷体数字字符的识别 周泽华,等
《自动化与仪器仪表》2009年第5期(总第145期)111
征,将提取的字符特征直接输入到BP神经网络分类器进行训练。图2是一个归一化后的二值数字0字符点阵图像,图3是0字符的32×24象素网格特征图,白象素1表示该点有笔划,黑象素0表示该点没有笔划。
图2 待识别的0字符
2.2 BP网络的设计
BP网络设计的最大特点就是网络的权值是通过使网络输出与样本输出之间的误差平方和达到期望值而不断调整网络的权值训练出来的。进行神经网络设计的首要任务就是网络结构的确定,一般情况下,网络结构的设计包括:
输入输出神经元个数、隐含层个数、隐含层中神经元数目以及每层传递函数来确定。
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 00 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 00 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 00 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 00 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 01 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 00 1 1 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 00 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 00 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 00 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 00 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 00 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 00 1 1 1 1 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 00 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 00 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 00 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 00 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
图3 32×24的网络特征图
(1)输入层神经元个数
输入层神经元个数根据待识别字符所提取的网格像素特征的维数大小确定。在本系统中,对归一化为32×24点阵大小的字符,以每一个像素点为一个网格,故输入层神经元个数取768。
(2)输出层神经元个数
如果BP网络用作分类器,其类别数为m个,那么输出一般也就取m个神经元。本系统是对0~9这10个数字进行识别,故输出层应为10个神经元。
(3)隐含层个数
神经网络的许多特性正是由于隐含层的存在才具备,然而,具体取多少隐含层合适却没有确定的规律可循,不同的应用对象,与其相适应的网络结构差别很大。理论上已经证明:具有偏差和至少一个S型隐含层加上一个线性输出层的网络,能够逼近任何有理函数,也即含有一个隐含层的三层BP网络即可完成非线性函数的逼近。由于BP网络的功能实际上是通过网络输入到网络输出的计算来
完成的,所以多于一个隐含层的BP网络虽然具有更快的训练速度,但在实际中需要较多的计算时间;另一方面,训练速度也可以通过增加隐含层神经元数来达到。因此,本系统采用具有一个隐含层的三层BP神经网络。
(4)隐含层中神经元数目
在实际设计中,确定隐含层神经元个数的办法是:对于给定的输入输出模式,通过反复调试和对不同神经元数进行训练对比得到合适的值。下面为隐含层神经元个数选择的经验公式:
(1)
式中,h_num 为隐藏层神经元个数,i_num 为输入层神经元个数,o_num 为输出层神经元个数。由此公式可得本系统的隐含层神经元个数h_num 应为92个。
(5)每层传递函数
由于logsig函数不仅具有光滑、可微、非线性和饱和等特性,而且导函数容易用其本身
来表达,简
化了计算。故本系统中采用了logsig函数作为传递函数,
其算法是:
(2)
2.3 BP网络的训练和字符识别
本系统主要包括两个部分:一是训练网络;二是运用已训练好的网络对待测试字符进行识别处理,整个系统框图如图4所示。
a)样本训练 b)字符测试
图4 字符识别系统框图
训练的样本是从已归一化好的单个数字字符数据库中所随机抽取的100个样本,即0~9中每个字符的样本数