BP神经网络识别
- 格式:doc
- 大小:144.00 KB
- 文档页数:23
Abstra ct 2一引言: (3)二字符图像获取: (3)三字符预处理 (4)3.2 字符区域 (4)3.2 字符区域分割: (4)3.3 单个字体分割: (4)3.4 单个字体裁剪 (5)四模板字符识别 (5)4.2 字符模板归一化 (5)五BP神经网络字符识别 (5)5.1 训练样本制作 (6)5.2设计BP神经网络 (6)5.3 BP训练 (7)六识别结果发送下位机 (7)5.1 MATLAB下的串口工具: (7)5.2 下位机处理 (7)5.2. 3 串口通信图: (9)七总结: (9)摘要在MATLA B环境下利用USB摄像头采集字符图像,读取一帧保存为图像,然后对读取保存的字符图像,灰度化,二值化,在此基础上做倾斜矫正,对矫正的图像进行滤波平滑处理,然后对字符区域进行提取分割出单个字符,识别方法一是采用模板匹配的方法逐个对字符与预先制作好的字符模板比较,如果结果小于某一阈值则结果就是模板上的字符;二是采用BP神经网络训练,通过训练好的net对待识别字符进行识别。
最然后将识别结果通过M ATLAB下的串口工具输出51单片机上用液晶显示出来。
关键字:倾斜矫正,字符分割,模板匹配,BP神经网络,液晶显示Abstra ctIn the MATLAB enviro nment using USB camera captur e the charac ter images, savedas an imagereadin g, thenre ad the savedcharac ter images, graysc ale, binary, on this basisdo tilt correc tion,the correc tionimagesmooth ing filter, and then extrac t the charac ter region segme ntati on of a singlecharac ter, and then one by one usinga templa temat ching method of charac ter with good charac ter templa te is a pre-produc tion,if the result is less than a certai n thresh old, the result is a templa te of thecha racte r. Second, the BP neural networ k traine d by the traine d net to identi fythe charac ter toward s recogn ition The result s will identi fy the most and thenth e serial port throug h the MATLAB tool output 51 undermicroc ontro llerwithLC D displa y.Keywor d: Tilt correc tion, charac ter segmen tatio n,templa te matchi ng, liquid crysta l displa y一引言:光学字符识别(OCR,Optica l Charac ter Recogn ition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。
已有30多年历史,近几年又出现了图像字符识别(imagecharac ter recogn ition,ICR)和智能字符识别(intell igent charac ter recogn ition,ICR),实际上这三种自动识别技术的基本原理大致相同。
关于字符识别的方法有很多种,最简单的就是模板匹配,还有根据采集到的字符用BP神经网络或者SV M来训练得到结果的方式。
本文主要针对模板匹配的方式,在MATLA B环境下编程实现。
二字符图像获取:在MATLA B下利用i mageacquis ition toolbo x获取视频帧,并保存图像在工程文件夹内。
摄像头采用普通的USB 摄像头,由于这种摄像头拍摄的照片延时比较大,所以先用im age acquis ition toolbo x下的对视频进行预览,调整出最佳的效果来,采集的图像效果越好则识别率越高。
根据测试,实验选择640*480的视频获取窗口,颜色空间选取为RGB空间,获取一帧后保存为jpg的存储格式。
三字符预处理3.1字符矫正由于摄像头拍摄的图像存在一定存在的倾斜度,在分割字符区域时,应先对字符进行矫正。
过程如下:将通过摄像头获取的保存帧图像灰度化,然后对其进行边缘提取,再在1到180度角内对图像进行旋转,记录下边缘提取后的图像在x轴方向上的投影,当x轴方向上的投影最小的时候即表示图像中字符平行于y轴,已经完成矫正,此时记录下旋转的倾斜角。
然后利用im rotat e函数实现对字符图像的矫正。
3.2 字符区域分割:在第三步完成对字符图像的倾斜矫正后,将图像分别做x轴和y轴方向上的投影既可以知道字符区域在x轴上的像素分布范围和y轴上的像素分布范围,然后对根据这个范围对图像做分割,在MATLA B中表示为:goal=I(ix1:iy1,jx1:jy1);其中goal为分割后的图像,I为分割前的图像,ix1和ix2分别为x轴上投影的像素范围的起始坐标值和终止坐标值,iy1和iy2分别为y轴上投影的像素范围的起始坐标值和终止坐标值。
3.3 单个字体分割:在分割得到的字符区域图像上,只需要做y轴上的投影就可以知道每个字符在y轴上的分布区间,然后利用这个分布区间就可以分割出单个字符。
3.4 单个字体裁剪在第五步分割出来的字符基础上进一步对字符的像素区域进行裁剪,原理也是分别做x轴,y轴方向上的投影,求的字符的区间再做剪裁。
四模板字符识别4.1字符模板制作:模板的要求是与要识别的字符的字体格式一致,实验中采用w ord上的标准字符,通过截图软件截图后按照3-6步的处理过程制作出需要的字符模板,从0到9共10个数字,A到Z共26个字母。
4.2 字符模板归一化在满足识别率的条件下,尽量采用小模板识别可以提神运算速度,具体的模板大小,可以根据后面的与待识别字符的比较中调节。
4.3识别过程:将待识别字符与字符模板做同样的归一化处理,然后遍历与字符模板比较,处理方法为先和字符模板做差,然后计算做差后的图像的总像素值,如果小于每一个阈值,则表示该待识别字符和该模板是同一个字符,这样就完成了一次识别。
循环对要识别的字符做同样的处理就可以识别出所有的字符,将结果保存在字符串中。
五BP神经网络字符识别BP(Back Propag ation)网络是1986年由Ru melha rt和Mc Cella nd为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。
BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。
它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。
BP神经网络模型拓扑结构包括输入层(input)、隐层(hide layer)和输出层(output layer)。
BP (Back Propag ation)神经网络,即误差反传误差反向传播算法的学习过程,由信息的正向传播和误差的反向传播两个过程组成。
输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求,中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。
当实际输出与期望输出不符时,进入误差的反向传播阶段。
误差通过输出层,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。
周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差减少到可以接受的程度,或者预先设定的学习次数为止。
BP神经网络模型BP网络模型包括其输入输出模型、作用函数模型、误差计算模型和自学习模型。
(1)节点输出模型隐节点输出模型:Oj=f(∑Wij×Xi-qj) (1)输出节点输出模型:Yk=f(∑Tjk×Oj-qk) (2)f-非线形作用函数;q -神经单元阈值。
图1 典型BP网络结构模型(2)作用函数模型作用函数是反映下层输入对上层节点刺激脉冲强度的函数又称刺激函数,一般取为(0,1)内连续取值S igmoi d 函数:f(x)=1/(1+e) (3)(3)误差计算模型误差计算模型是反映神经网络期望输出与计算输出之间误差大小的函数:Ep=1/2×∑(tpi-Opi) (4)tpi- i节点的期望输出值;Opi-i节点计算输出值。
(4)自学习模型神经网络的学习过程,即连接下层节点和上层节点之间的权重拒阵Wi j的设定和误差修正过程。
BP网络有师学习方式-需要设定期望值和无师学习方式-只需输入模式之分。
自学习模型为△Wij(n+1)=h×Фi×Oj+a×△Wij(n) (5)h -学习因子;Фi-输出节点i的计算误差;Oj-输出节点j的计算输出;a-动量因子。