• 1. 字母识别---汪胜佩
  • 2. 基于Matlab6.5和VC++的字母识别系统 基于Hopfield神经网络的字母识别系统 实时识别数字和字母的门阵列2
  • 3. 基于Matlab6.5和VC++的字母识别系统 采用Matlab 6.5和Visual C设计一个字母识别系统,该系统通过对BMP图片的二值化,在VC环境下调用Matlab并且对无噪声和有噪声训练进行比较,实现了26个英文字母的识别。 主要思路: 1. 对字母图形二值化,转化成5X7的矩阵; 2. 初始化的前后的神经网络,改用快速算法和样本向量训练前后神经网络,绘出平方误差和训练步长变化曲线; 3.采用噪声样本对神经网络训练; 4.将待识向量输入,对神经网络进行仿真,得到结果。Page 3
  • 4. 对待识别的图像二值化 选取从A到Z 26个英文字母的256色图片,例如A 的bmp图片右图(字母A)所示。字母识别时,首先将印在纸上的字母经过光电扫描产生模拟信号,再通过模数转换变成表示灰度值的数字信号输入计算机。二值化的关键在于阈值T 的选择。考虑到各个样本数字的灰度范围的差别,可以采用不同的二值化阈值进行处理。设像素点(i,j)的灰度为g(i,j)。有笔划的部分的g(i,j)小。白背景部分的g(i,j)大。二值化可以通过设定灰度阈值来完成,即当g(i,j)值比预定阈值大,看成背景,以0表示;否则看成笔划,以1表示。这样,经过二值化,各点重新表示为: 比较阈值,大于阈值,则这个点取0,为白色。小于阈值,则这个点取1,为黑色,对图像进行二值化。输入一个bmp图片,显示出bmp经过二值化后的0,1矩阵。读入一个bmp图片右图(字母F)所示,显示的矩阵如图4所示Page 4
  • 5. 对网络进行训练 以一个待识别的图为例,如左所示,二值后的矩阵如右图所示。总计识别2600次,所有识别结结果都字符B,正确率可以达100%。Page 5
  • 6. 基于Hopfield神经网络的字母识别系统 Hopfield神经网络的原理 Hopfield神经网络是反馈式网络的一种,所有神经元单元都是一样的.它们之间相互连接。从系统观点看.反馈网络是一个非线性动力学系统。具有一般非线性系统动力学的许多性质。例如.稳定问题、各种类型的吸引子以至混沌现象等,提供了人们可以从不同方面来利用这些复杂性质以完成各种复杂计算功能。在Hopfield网络中.连续系统和离散系统之间的主要区别是取决于用微分方程模型.还是用差分方程模型来进行描述。离散Hopfield网络的神经元变换函数为符号函数,网络的节点状态仅仅取两值+1,-1(或+1.0);连续网络的神经元变换函数为单调上升函数。节点状态可以取0和1之间的任一个实数。Hopfield网络主要用于联想记忆和优化计算 。Page 6
  • 7. 字母数字化的原理和过程 以A,B,C,D,E,F6个字母为例,这6个字母已经被数字成像系统数字化了,其结果是对应每个字母有一个5x3的布尔量网络。。例如,A用 [-1 1 -1;1 -1 1;1 -1 1;1 1 1;1-1 1]表示等,见下图所示 由于字母的表示有时会受到噪声的污染,使布尔量网络元素发生变化,如下图所示。 但Hopfield网络当连接加权系数矩阵无自连接并具有对称性质时,算法是收敛的 ,这时,网络具有联想记忆的功能。故Hopfield网络能够排除噪声的干扰,顺利地识别字母。以字母A为例,第一列为无干扰信号,第二、三分别为干扰下的信号,可以看出在干扰下的,字母A仍能正确识别。Page 7
  • 8. Page 8
  • 9. 实时识别数字和字母的门阵列识别对象是标准字体的阿拉伯数字(0-9)和大写英文字母(A~Z)(以下简称数字和字母).具体地说,已知需要判别的图像是数字和字母中的一个标准字体(比如说是72号字体的Timesnew Roman的印刷体数字和字母),并假设图像噪声只以少量的孤立点、小的孤立块两种形式存在。提出了一种适于FPGA实现的实时识别算法:首先提出了一种能够表征数字和字母的特征向量,然后经过简单的运算,就可以准确地识别这幅图像.该算法的关键技术就在于:不仅能够保证高的正确识别率,而且算法的FPGA实现很节约硬件资源,且只需要很少的存储器,不需要乘法器。Page 9
  • 10. 二值化处理和定位二值化后像素点: 其中:g(x,y)为像素的灰度值;g为整幅图像的平均灰度值.经过预处理,整幅图像转变为二值图像。逐行扫描整幅二值化图像,得到每一行中第1个像素值为1的点,以及最后一个像素值为1的点,它们的横坐标分别记为Start X( i)和End_X( i),其中i是行号.比较所有的Start_X(i),得到最小值X =min(Start X(i )),即为图像中字符的左边界坐标;比较所有的End_X(i)。得到最大X2_max(End X( i)),即为图像中字符的右边界坐标.同理,可以得到图像中字符的上边界坐标Y _min(Start y( i)),图像中字符的下边界坐Y2=max(Endy( i)).因此,图像中的字符就包含在以(X 1,Y 1)和(X 2,Y2 )为对角顶点的矩形框内,然后将矩形平均分成四份,中心坐标为(X1+X2/2,Y1+Y2/2)。Page 10
  • 11. 特征提取每幅二值图像都是由取值为1或0的像素构成,考虑2×2的像素块,有如下16种特征:Page 11
  • 12. 用上述16种特征描述数字和字母的边界属性.简单分析后,就可发现去掉孤立点和孤立块噪声后的图像不会出现5 #和10#.一般来说,1 #和11#,2# 和7 #,4 #和14# ,8 #和3 #是相生相伴的,如:有多少个1 #,就大致有多少个11 #,都表示了图像具有“弯”的边界属性,另外,6 #表示了左边界属性,9#表示了右边界属性,3 #表示了下边界属性,12 表示了上边界属性.因此,图像4个区域的边界属性可以用1# ,2 #,3 #,4 #,6# ,8 #,9 #,12 #来描述。分别统计图像1~4区具有1# ,2 #,3# ,4 #,6 #,8 #,9# ,12 #的数目,得: D1= [D11,D12,D13,D14,D15,D16,D17,D18] D2= [D21,D22,D23,D24,D25,D26,D27,D28] D3= [D31,D32,D33,D34,D35,D36,D37,D38] D4= [D41,D42,D43,D44,D45,D46,D47,D48] 其中,Di 表示第i区中具有第j种特征的2×2像素块的数目. Page 12
  • 13. “B”的二区(即右上部分,第二象限)具有1个1# ,1个2# ,1个3 #,1个4#,4个6 #,3个8 #,4个9 #,3个12# ,即二区的特征向量D2=[1,1,1,1,4,3,4,3].把4个区域的特征向量合并,就可以得到整幅图像的32维特征向量D=[D1,D2,D3,D4 ],也就是说可以得到字母"B"的特征向量。同理的方法我们可以得到每 字母和数字的特征向量D(K),把这些向 量作为基准。然后,与欲识别图像进行 统计边界特征,得到特征向量D*,然后 将特征向量D*按照一定的算法与基准向 量D(k),通过此种方法,我们就可以将 数数字和字母识别出来,并且有较高的 准确率。 Page 13
  • 14. THE END,THANK YOU!小组成员: 汪胜佩 何科杰 张烟滨 刘冠男 陆凌寒 何云峰 罗 勤 曹 强 潘宗国 张国辉