基于tensorflow的手写字符识别方法分析毕业论文
2020-04-09 14:06:57
摘 要
近年来,伴随着智能手机等移动设备的快速发展与普及,手写字符识别技术越发被广泛应用。目前对于手写字符的识别已有许多技术手段实现,相关的研究与应用开发也越来越受到关注。其中,通过构建神经网络,利用其较强大的模式识别能力,模拟人工智能来进行字符识别的技术,具有非常重要的现实意义。而TensorFlow作为谷歌第二代的人工智能学习系统,是一个运用数据流图进行数值计算的开源软件库,其具有架构灵活,可多平台上展开计算等特点,在提高编程、建模、分析识别效率等方面起到了很大作用,故本次设计基于Tensorflow平台进行设计。
在设计中向神经网络中输入用于训练和测试的手写数字训练集,并通过不断调整权值与阈值,最终训练出具有较高识别精度的模型。本文共使用了两类模型,分别是Softmax回归模型和卷积神经网络模型。Softmax回归是一个简单的数学模型,也是基于Tensorflow进行识别的经典模型。卷积神经网络提取了手写数字图像二维结构信息,具有更复杂的结构,训练出的模型测试准确率相对更高。调用训练好的模型参数,使用Python的Tkinter模块,设计出交互界面,进行离线识别单个手写数字图片的测试。
经过不同手写体数字的测试,使用CNN模型训练参数的手写数字识别系统识别能力良好,测试准确率高,较好地完成了识别任务,具有较高的实用价值。
关键词:手写数字识别;Tensorflow;神经网络模型
Abstract
In recent years, with the rapid development and popularization of mobile devices such as smart phones, handwritten character recognition technology has become more and more widely used. At present, there are many technologies for the recognition of handwritten characters, and related research and application development have also received more and more attention. Among them, it is important to build a neural network and use its powerful pattern recognition capability to simulate artificial intelligence to perform character recognition. As the second generation of Google's artificial intelligence learning system, being as an open source software library, TensorFlow has flexible architecture and multi-platform computing power, so plays an important role in improving programming, modeling, analysis and recognition efficiency, etc. Therefore, this design is based on the Tensorflow platform.
In the design, I input the hand-written digital training set for training and testing in the neural network, and continuously adjusts the weights and thresholds to finally train models with high recognition accuracy. Two types of models are used in this paper: Softmax Regression model and Convolutional Neural Network model. Softmax Regression is a simple mathematical model. It is also a classical model for recognition. The Convolutional Neural Network extracts the two-dimensional structure information of the handwritten digital image, has a more complex structure and higher accuracy. Using the trained model parameters and GUI interface designed by Python's Tkinter to conduct offline recognition of single handwritten digital images.
After the test of different handwriting numbers, the recognition ability of the handwritten digital recognition system using CNN model training parameters is good, the accuracy of the test is high, and the recognition task is completed well, so it has a high practical value.
Key Words:handwritten digital recognition; Tensorflow; neural network model
目 录
摘 要 I
Abstract II
第1章 绪论 1
1.1 研究背景与意义 1
1.2 国内外研究现状 1
1.3 研究内容及结构安排 2
第2章 神经网络 4
2.1人工神经网络 4
2.1.1人工神经元 4
2.1.2人工神经网络模型 4
2.2 BP算法与BP神经网络 5
2.2.1 BP算法 5
2.2.2 BP神经网络 7
2.3 卷积神经网络 8
2.3.1 卷积神经网络的特性 8
2.3.2 卷积神经网络的结构 9
第3章 模型的构建与训练 11
3.1 Tensorflow深度学习平台 11
3.1.1 Tensorflow简介 11
3.1.2 Tensorflow中常用概念 12
3.1.3 运行流程 13
3.1.4平台搭建 14
3.2 MNIST数据集 15
3.3 Softmax回归模型 17
3.3.1 Softmax模型简介 17
3.3.2 Softmax模型的实现 18
3.4 CNN模型 20
3.5 模型的保存与调用 22
3.6 模型测试 23
第4章 手写数字识别系统 26
4.1 识别系统的实现 26
4.2 识别系统的测试 27
4.3结果分析 32
第5章 全文总结与展望 33
参考文献 34
致 谢 35
第1章 绪论
1.1 研究背景与意义
在智能触屏手机等电子设备普及的当今社会,人们常常会通过在屏幕上手写字符以传达信息。此外,对于手写在纸质文档中的字符,也会需要将这些数据收集整理起来以方便保存或与他人共享。在这样的背景下,为了使得数据能更有效地传输,重要的资料能得到更好的保存,识别手写字符并保存为电子文档形式就显得尤为重要。
在计算机内部,图像由矩阵表示,数字对应于颜色。将图像分类为一个或多个类的过程称为模式识别,这对于机器来说是一个困难的问题。目前,对模式识别问题的解决已有许多种方案,从简单的最近邻域分类法到更复杂的神经网络方法。手写体数字识别也是模式识别的重要研究领域之一。
近年来,手写字符识别已得到商业应用,其技术的发展已日趋成熟,对于手写的单个字符、打印的字符或文档中的字符,识别率已经达到很高。但是,在较为复杂、多样化的自然场景中,例如图像中,识别率仍然不够高。无论从识别准确率还是识别速度,都无法与人的表现相比。这主要是因为在自然场景中,对于背景、对比度、分辨率、光照强度等因素的识别要求都较高。怎样设计出可离线、高效率地识别出字符的系统是一个值得研究的问题。
1.2 国内外研究现状
六十年代初,模式识别成为一门迅速发展起来的新兴学科。作为人工智能研究的一个重要领域,它主要研究如何通过机器来模拟实现人或某些动物对物体的学习、识别与判断能力。在技术不断发展的过程中,已有许多用于模式识别的机器学习技术,如K-近邻算法(KNN)、向量分类器(SVM),随机森林(RF)等。但这些方法准确率只能达到97%,这对现实中的应用来讲是不够的。尽管对准确率的要求严苛,但由于对相关拓扑结构的知识掌握不够,无法达到技术目标。随着知识的进步与科技水平的发展,就有了深度学习的概念。在过去的十年间,深度学习成为了图像处理、目标检测、手写字符识别等课题的热门工具。许多机器学习的工具软件被开发,如Scikit-learn、Scipy-image、PyBrains、Keras、 Theano、Tensorflow、 TFLearn等。这些工具的使用令运行速度更快且结果更精确。
在模式识别中,字符识别是非常重要的一个领域。它是一种计算机系统通过邮件、纸张、图像、信件等渠道,识别如数字和特征等输入量的功能。最初的字符识别技术光学字符识别(OCR)是在1929年由科学家Tausheck提出。之后,随着60年代计算机的兴起,计算水平和科技水平都有了很大进步,将纸质的字符转化为信息输入计算机中进行处理也成为顺应时代需求的技术,手写体字符识别因此得到了更多学者的关注,OCR技术也随之不断得到改善与提高。在1957年,ERA(Electric Reading Automation)作为最早的OCR软件问世,其识别速度可达到120字符每秒,可识别印刷体字符。相比于手写体英文字符,汉字的识别由于数量多,结构复杂,书写风格千差万别等特点,有更大的识别难度。80 年代,我国在文字识别领域的研究才步入正轨,在不断研究与发展的过程中,仍然涌现出了许多优秀的技术产品如清华紫光、汉王等,对于汉字字符的识别已可以达到较高的准确率。
随着计算机技术的迅速发展,字符识别技术被大量应用于实际。但面对庞大而复杂的实时数据处理,现有的计算机在计算与容量方面的局限性,使其无法很好地应用于实际中。这种要求实时应用的字符识别问题促使科学家们将可以进行并行处理的神经网络引用到模式识别的相关应用领域中。神经网络的兴起最初是受到了大脑的生物神经网络启发,它包括了大约860亿个神经元,通过突触互相连接形成网络。早在1943年,McCulloch、Pitts 等人就发表了论文,提出M-P神经元模型,并证明了即使是最简单的网络也可计算任意算术和逻辑函数。这开创了神经网络的先河。到了1949年,利用神经细胞的存储原理,Hebb提出了Hebb学习规则。随着计算机技术的发展,到了1950年,首个神经网络仿真得以实现。1987年,首次召开了神经网络开放会议,形成了国际神经网络学会。1980年,发展出了卷积神经网络。90 年代,BP神经网络、Hopfield 神经网络、玻尔兹曼机、等算法相继被提出,神经网络的研究得到了很大的发展。在2006年,Hinton 等学者提出了深度学习神经网络,促使研究神经网络的热情跟更加高涨,同时也为图像识别和语音识别的研究带来新的动力。如今神经网络被全球许多大公司广泛应用,如谷歌、Facebook等。同时,如今市面上许多应用也利用了神经网络的概念,如SmartPlate,通过识别食物的种类来计算一顿饭中的卡路里。
在众多神经网络及相应学习算法中,卷积神经网络是当前识别领域的研究热点之一。一个卷积神经网络拥有两个卷积层,两个平均池化层,一个全连接层,用来识别各项特征。它的网络结构仿似生物神经网络,权值数量的减少和模型结构的简化使得图像可以不经预处理操作直接被输入,并且在输入到识别的过程中可自动进行特征提取与模式分类,这大大简化了传统识别算法中的复杂过程,使得系统功能更趋于稳定。目前,基于卷积神经网络的高效性与实用性,国内外的研究人员已提出许多种卷积神经网络的形式,并被大规模应用于字符识别、人脸识别、物体探测等科技领域。
1.3 研究内容及结构安排
人们的书写方式多种多样,但将所有人的手写体数字存入数据库再识别的方式太过于繁琐复杂。故本文基于谷歌的人工智能学习工具Tensorflow和Python编程语言,进行神经网络模型的训练,实现离线手写体数字的识别。在神经网络中输入用于训练和测试的MNIST数据集,其包含了60,000个0到9数字的灰度图像与10,000个图像的测试集。并通过不断调整权值与阈值,训练出具有较高识别精度的模型,以满足个性化的手写数字分类需求。共使用了两类模型,分别是Softmax回归模型和卷积神经网络模型。最后使用Python的Tkinter设计出GUI界面,进行单个手写数字图片的离线识别,以满足在日常生活中的应用要求。
本文拟依照如下顺序进行编写:
第1章简要介绍了手写字符识别的研究背景及意义,并回顾了模式识别、神经网络等相关领域的历史发展与国内外研究近况。
第2章详细介绍了谷歌的Tensorflow深度学习平台,并分析了其工作原理与通过Anaconda搭建平台的步骤。
第3章首先介绍了人工神经网络与BP神经网络,之后介绍了更复杂的卷积神经网络,并分析了各网络的特性与结构。
第4章在Tensorflow平台下,进行了Softmax回归模型与CNN模型的搭建与训练,并结合模型评估结果,进行差异分析。
第5章详述了手写数字识别系统的实现,并进行了手写体数字图片的识别测试。
第6章对全文进行了总结,并结合目前所存在的欠缺,对未来进一步的改进与研究做出展望。
文章的最后列明了本文的中英文参考文献,并向对本次毕业设计提供指导与帮助的老师与同学致谢。
第2章 神经网络
2.1人工神经网络
2.1.1人工神经元
感知器,在人工神经网络领域中可被理解为最简单的人工神经元。一个简单的感知器输入为…,并产生0或1的二进制输出。使用权重(weights)参数 …,来反映输入对于输出的重要性关系。输出取决于神经元的实际参数,即阈值。当权重与输入的加权和小于阈值时,则输出端输出0,反之感知器输出1。一个输入为的简单感知器结构如图2.1所示。
图2.1 感知器结构
在如今的神经网络相关研究领域中,最主要的人工神经元模型是Sigmoid神经元。因为对于最初的感知器而言,改变权重和偏移大小会严重影响感知器的网络部分,使得其以某种难以控制的复杂方式偏移,致使输出彻底改变。为了解决这种问题,引入Sigmoid人工神经元。其结构与感知器类似,但是调整它的相关参数,如权重与偏移量,不会很大地影响网络结构特征,提高了结构的稳定性,故通常被用来训练与学习神经网络。Sigmoid神经元的输出可为0到1之间的整数或小数值,为。其中为Sigmoid函数,定义为:
(2.1)
将输入值、权重值与偏移值b代入,可得Sigmoid神经元输出为:
(2.2)
2.1.2人工神经网络模型
人工神经网络(ANN)亦称神经网络( NN),通过大量的人工神经元组合连接,从而形成网络结构模型,可以模拟大脑的信息处理过程。人工神经网络模型模拟了人大脑的结构特征,对大量的样本数据进行学习并训练,之后抽象并简化出样本的数据特征,存储在神经元结构中。人工神经网络具有良好的并行处理能力与非线性形的转换能力,可自适应、自学习、联想记忆,常常被应用于解决一些因果逻辑关系复杂的问题,如推理判断、预测、识别与分类问题。
神经网络模型是由大约860亿个神经元通过突触连接在一起,受到了自然界生物大脑的神经网络结构启发。假设来自其他神经元的X信号通过突触传递到树突,W向细胞体产生输入信号WX。输出Y使用激活函数进行运算,并通过轴突发送到下一个神经元。由此就有了Logistic回归模型。如果将多个Logistic回归模型堆叠起来形成具有分层结构的模型时,即构造了神经网络模型。
如图2.2所示,为生物神经元的结构。信号从一个神经元传向另一个神经元,神经元间通过树突彼此连接。这些信号传输到细胞体,将所有信号都考虑在内并产生一个通过轴突传递给其他神经元的输出。在每个轴突的末端都有彼此连接各个神经元的突触。
图2.2 生物神经元结构[13]
2.2 BP算法与BP神经网络
2.2.1 BP算法
BP(Back Propagation)算法,即复合函数的链式法则,通过使用梯度下降法降低在实际运行中的模型损耗,使得期望的输出值与实际输出值间的误差均方差最小化,常常被用来计算多层网络结构中全部变量的偏导数。BP算法以其良好的学习性能与强大的识别能力,在给定模式与BP网络学会的模式近似的情况下,可有效地进行模式识别,在许多相关领域的技术中都得到了应用。卷积神经网络的参数调整过程,也多采用BP算法进行学习与训练。
BP算法的构成分为信息的正向传递与误差的反向传播两部分,采用有监督的学习方式。在正常的正向传播时,信号遵从输入层-隐含层-输出层的顺序传递,在输出层计算出实际与期望值之间的误差。若误差过大,不满足要求,则需要将其反向传播回输入层,在此过程中收集每一层单元的误差信号值,不断调整权值与阈值参数,以此来修正误差,使得其最小化。以下简要介绍BP算法正向传播与反向传播过程中所用到的各项公式与参数。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: