基于深度学习网络的手写英文字母识别算法与实现毕业论文
2020-04-11 17:57:29
摘 要
字符识别在我们生活中的应用十分广泛,例如签字、财务数据、实验数据等,通过识别手写字符,可以有效杜绝仿冒的字迹,减少单位的损失,提高工作效率。字符识别分为离线字符识别和在线字符识别两种,离线识别是当写入结束后,通过扫描仪获取图像数据,通过一定的手段进行字符识别,在线识别是在写入过程中,通过一种特殊的书写笔捕获数据图像,同时获取书写者书写时的先后顺序,基于深度学习网络的字符识别也取得了突破性的进展,卷积神经网络是深度学习网络的一种,本文将使用卷积神经网络进行手写英文字符识别算法的研究。
论文主要研究了字符识别训练算法的原理,字符图像处理的过程,通过训练深度卷积神经网络,成功实现了手写英文字符识别。本文的特色在于设计了一个图形用户界面,使用者可以在图形用户界面上选择想要识别的手写英文字母,点击开始识别后,可以以文本形式显示出识别出的英文字母,识别的过程中绝大部分都可以识别正确,但是受限于神经网络本身的原理,也有少量的字母识别错误,这属于正常现象,字符识别的字符库来自于上网查找,每一个手写字符都有多种不同的手写样式,所以训练集比较丰富,本次设计达到了预期的设计效果。
关键词:深度学习;字符识别;神经网络;算法
Abstract
character recognition are widely used in our life, such as signature, financial data and experimental data, through recognition of handwritten characters, can effectively prevent the handwriting, reduce the unit loss, improve the work efficiency. Character recognition is divided into off-line character recognition and character recognition, two kinds of online offline after the recognition is when written to, through the scanner to obtain image data, through certain means of character recognition, the on-line identification is in the process of writing, through a special kind of dry capture data image, at the same time taken to write in the order of writing of character recognition based on the deep learning network has made breakthrough progress, convolution neural network is a kind of deep learning network, this paper will use the convolution neural network handwritten English character recognition algorithm is studied.
This paper mainly studies the principle of character recognition training algorithm and the process of character image processing. Characteristic of this paper is to design a graphical user interface, the user can choose on the graphical user interface to recognition of handwritten English letters, click start, after identification can be in the form of text shows that identify the English letters, in the process of the recognition of the vast majority identify correctly, but is limited by the principle of neural network itself, there are a few letters identify errors, which belongs to the normal phenomenon, character recognition character library from the Internet search, every handwritten characters have many different writing style, so the training set is rich, the design achieved the expected design effect.
Key words: deep learning; Character recognition; Neural network; algorithm
目 录
第1章 绪论 1
1.1 研究背景及意义 1
1.2 基于深度学习的字符识别国内外研究现状 1
1.3本文的主要内容与组织结构 2
2.1 神经网络介绍 4
2.1.1神经元的基本结构 4
2.1.2神经网络的结构 5
2.1.3神经网络的工作模式 5
2.2 神经网络的算法 6
2.2.1前向传播算法 6
2.2.2梯度下降算法 6
2.2.3反向传播算法 7
2.3深度卷积神经网络介绍 7
第3章 字符识别的设计与实现方法 8
3.1字符识别的系统设计 8
3.1.1需求分析 8
3.1.2设计思路 8
3.1.3系统设计 10
3.2字符识别的实现方法 14
3.2.1输入字符库中的字符 15
3.2.2设置网络层级结构与训练参数 16
3.2.3初始化网络参数 16
3.2.4训练卷积神经网络 17
3.2.5前向传播训练 17
3.2.6反向传播训练 18
3.2.7网络参数更新 19
3.2.8卷积神经网络测试 19
3.2.9 GUI图形用户界面的设计 19
第4章 实验结果讨论与分析 21
4.1设计结果展示 21
4.1.1识别结果展示 21
4.1.2识别均方误差曲线 22
4.1.3识别错误率 23
4.2 结果讨论与分析 25
第5章 总结与展望 26
参考文献 27
致 谢 28
第1章 绪论
1.1 研究背景及意义
字符识别的基本思想是匹配识别,具体做法是首先抽取字符的特征,与存储在机器中的标准字符进行比对,使用一定的判别规则进行判别,得出的结果就是识别结果[1]。字符识别的发展阶段具体来说有三个,第一个阶段是抽取字符的特征向量和相关函数,目前这种方法仍然运用很广泛。第二个阶段主要进行了基础理论的研究,例如提出了链码法等,完成了“特征抽取理论”的工作。第三阶段是发展阶段,主要将技术与实际相结合,并针对具体的要求提出了很多更复杂的技术[2]。
深度学习的概念最早由神经网络之父Geoffrey Hinton等人在2006和2007年于《科学》杂志上发表[3],深度学习最初指的是深度神经网络,随着深度神经网络层数的增多,就具备了很多原非深度网络所不具有的学习能力,就显得更为“智能”。深度学习目前是机器学习领域一种很重要的方法[4],在图像识别、字符识别、语音识别中有着非常广泛的应用。且取得了很好的效果。
由于每个人的笔触不同,写出字的形状也千奇百怪,如有些人写的草书,人用肉眼都不一定能分辨出字符,更别提用计算机来分辨了,让计算机正确识别手写的字符存在很大的困难[5][6]。随着深度学习的广泛应用,神经网络在手写字符识别领域展示了出色的能力,具有其他分类检测算法无法达到的优秀特性,并取得了很理想的效果,有效提高了识别率[7]。本文通过设计基于深度学习的手写字符识别算法,将可以提高字符识别的应用范围。
1.2 基于深度学习的字符识别国内外研究现状
深度学习是目前的热门研究方向,与人工智能密切相关,基于深度学习的字符识别也得到了各国学者的广泛研究[8][9],目前,国外有很多基于深度学习的应用,国内对深度学习的研究也正如火如荼的进行,如百度公司正在研究的的无人驾驶汽车等,我国在深度学习方面的研究已经处于世界先进水平,手写字符识别是目前模式识别领域一个非常重要的分支[10],早期针对手写字符识别,很多研究人员提出了很多分类方法,如K-近邻分类方法,SVM分类方法等,字符识别取得了很多成就。
对于手写中文字符来说,由于中文字符个数非常庞大,再加上每个人的笔触不同,每个人写的字区别很大,所以实现手写中文字符的识别非常困难,过去几十年,许多研究者进行了大量的手写中文字符识别的研究,取得了很多研究成果,如提出了差异特征提取技术[11],改进了传统的二次判别函数,对手写中文字符识别的分类起到了非常重要的作用,采用深度神经网络进行自动特征学习,有效提高了字符识别的准确率。
张超群在手写中文字符识别系统的设计中,设计了多种不同的深度卷积神经网络,对这些卷积神经网络进行训练,同时结合中文字符的特点,改进了传统卷积神经网络的结构和网络的训练算法,提出了均值融合算法,有效提高了识别的正确率[12]。
任波等人提出了一种改进深度学习网络结构的英文字符识别方法,改进了传统的深度学习网络,通过在第二个隐藏层后面添加softmax分类器,在之后的迭代中,均进行softmax和自编码器训练,然后将提取出的特征作为分类器的输入继续进行分类训练,改进后的网络在识别准确率上有了较大的提高[13]。
相比于手写中文字符识别,英文字符识别就简单很多,英文字母一共只有26个,即使再区分大小写,也只有52个,工作量比手写中文字符识别大大降低,国外对于手写英文字符识别的研究成果也有很多,如Pal等人设计了基于NN的英文字符识别系统,使用了一个隐藏层的多层感知器,进行了约500次试验来测试系统的识别率[14],在这些试验中,最好的识别准确率为94%,此外Pradeep等人设计了一个使用新型特征提取的英文字符识别系统[15],具体实现方法是使用对角线来进行特征提取,构建使用54个特征和69个特征的神经网络,再使用水平和垂直的特征提取的方法对神经网络进行训练,从而建立多个不同的神经网络识别系统。测试后的结果显示,具有54个特征的神经网络识别准确率为97.8%,而具有69个特征的神经网络的识别准确率达到了98.5%,很明显后者的识别效果更好。
最近几年,各研究者为了提高手写字符的识别准确率,进行了不遗余力的努力,结合了各种技术,但是识别准确率还是有很大的提高空间。
1.3本文的主要内容与组织结构
本文将针对手写英文字符识别的问题,研究通过训练卷积神经网络来实现手写英文字符的识别,首先介绍神经网络和卷积神经网络的基本概念与结构,接着介绍传统字符识别的常见步骤,和使用卷积神经网络进行字符识别设计的方法,最后进行结果展示与分析。
下面分别介绍各章内容:
第一章是绪论。主要介绍基于深度学习的字符识别的研究背景和意义,然后介绍基于深度学习的字符识别的国内外研究现状。
第二章介绍神经网络的基础知识,神经网络的工作模式,介绍神经网络常见的前向传播算法、反向传播算法和梯度下降算法,介绍卷积神经网络的基本结构,包括卷积核、卷积层、池化层等
第三章首先介绍传统字符识别的预处理步骤,包括字符图像的灰度化、二值化,对图像进行膨胀处理以调整图像,使之便于输入神经网络进行训练。然后介绍卷积神经网络进行字符识别的识别方法。
第四章主要对手写英文字符识别的结果进行展示,并对结果进行讨论,分析设计的改进空间,可以看出大部分的字符都能够正确识别,但是也存在少数字符无法正确识别的现象。
第五章是总结与展望,主要指出文章中的不足之处与特色,并对今后基于深度学习的字符识别工作进行展望。
第2章 神经网络的基本结构及算法
2.1 神经网络介绍
科学家受人脑神经元的启发,提出了神经网络这样一种算法模型,人脑的神经元通过树突与轴突传递信息,科学家于是设计出了神经网络这样一种相互连接的处理单元。
2.1.1神经元的基本结构
神经网络的实现原理没有我们之前学习的加减乘除、循环等各种算法那么直观,用这些数据结构和统计学领域的算法相组合就可以完成一个确定的任务,但是神经网络与上述的算法有较大的差别,神经网络的基本单元神经元的结构可以用下图表示。
图2.1.神经元的结构图
图2.1中,x1,x2,x3表示神经元的输入,b表示偏置,神经元的输出用hw,b(x)来表示,由于存在多个输入和一个输出,所以神经元模型可以表达出一个函数的意义。图2.1中存在3个输入,可以将x看成一个三维向量,x除了可以是三维的外,还可以是其他维数的,如果我们建立一个具有n个输入项的神经元f(x),神经元的输出值就是函数的输出值,这个函数可以写成f(x)=wx b,这就相当于对输入项进行了线性处理,这其中,x是一个1n的矩阵,w是一个n1的权重矩阵。
在一个神经网络中,一个节点输入的值与输出的值具有函数关系,我们称这个函数为激励函数,激励函数的形式有很多种,常见的激励函数有Sigmoid函数和ReLU函数,其中,本次字符识别设计用到的激活函数是Sigmoid函数,Sigmoid函数的表达式为1/(1 e-z),它出现的比较早,模拟生物神经元对外界刺激做出的反应,将激励值投射到0和1两个值上,“1”表示处于完全激活的状态,“0”表示完全不激活的状态,其他的输出值介于0和1之间,表示激活程度不同,通过这种方式可以引入非线性因素。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: