基于tensorflow架构的卷积神经网络手写体字符识别设计与实现毕业论文
2021-03-19 22:05:12
摘 要
手写字符识别在信息录入,办公自动化,图像文本识别,人机交互等方面具有着重要意义。而手写字符受不同人的写法多样,扭曲变形等因素影响,一直是模式识别领域的热点和难点。而卷积神经网络在图像识别中表现出来的强大优势,卷积神经网络在很多模式识别问题上已经取得了非凡的识别性能。本文对深度学习中的卷积神经网络进行了研究,并将其运用到手写数字的识别上,并进一步推广到手写汉字的识别上。
本文首先通过搭建卷积神经网络模型基于tensorflow架构对MNIST手写数字字符集进行了识别,通过调整网络参数使得卷积神经网络在MNIST数据集上取得了较好的识别精度。
接下来运用更复杂的卷积神经网络来对HWDB1.1手写汉字字符集进行识别,络在脱机手写汉字识别上的可行性。通过调整网络深度、网络结构参数等对影响卷积神经网络识别手写汉字的因素进行了分析。通过优化网络结构进一步提高了手写汉字识别的准确率。
对汉字类别多、网络模型复杂的情况下产生的网络参数不易收敛、训练速度慢的问题,研究了基于迁移学习的监督式预训练方法,通过先对一个小字符集进行训练,获得一组较好的网络参数作为大字符集训练的初始化网络参数,加快了网络的收敛,提高了网络模型的实用性。
关键词:深度学习;卷积神经网络;手写字符识别;tensorflow
第一章 绪论
1.1研究背景及意义
从计算机发明之初,人们就希望它能够帮助甚至代替人类完成重复性劳作。利用巨大的存储空间和超高的运算速度,计算机已经可以非常轻易地完成一些对于人类非常困难,但对计算机相对简单的问题。比如统计一本书中不同单词出现的次数,存储一个图书馆中所有的藏书或是计算非常复杂的数学公式都可以轻松通过计算机解决。然而,一些人类通过直觉可以很快解决的问题,目前却很难通过计算机解决。人工智能领域需要解决的问题就是让计算机能像人类一样,甚至超越人类完成类似图像识别、语音识别等问题。
计算机要像人类一样完成更多智能的工作,就需要像人类一样掌握更多经验。比如我们需要判断一封邮件是否为垃圾邮件,会综合考虑邮件发出的地址、邮件的标题、邮件的内容以及邮件收件人的长度,等等。这是我们受到无数垃圾邮件骚扰之后总结出来的经验。这个经验很难以固定的方式表达出来,而且不同人对垃圾邮件的判断也会不一样。如何让计算机可以跟人类一样从历史的经验中获取新的知识呢?这就是机器学习需要解决的问题。
1.1.1关于深度学习
对许多机器学习问题来说,特征提取不是一件简单的事情。在一些复杂问题上,要通过人工的方式设计有效的特征集合需要很多的时间和精力,有时甚至需要在这个领域付出数十年的研究投入。而深度学习则可以免去特征提取的这个步骤。
深度学习是机器学习的一个分支,它是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。
深度学习解决的核心问题之一就是自动地将简单的特征组合成更加复杂的特征,并使用这些组合特征解决问题。深度学习是机器学习的一个分支,它除了可以学习特征和任务之间的关联以外,还能自动从简单特征中提取更加复杂的特征。
作为一个十余年来快速发展的崭新领域,深度学习受到了越来越多研究者的关注,它在特征提取和模型拟合上都有着相较于浅层模型更明显的优势。深度学习善于从原始输入数据中挖掘越来越抽象的分布式特征表示,而这些表示具有良好的泛化能力。它解决了过去人工智能中被认为难以解决的一些问题。且随着训练数据集数量的显著增长以及芯片处理能力的剧增,它在目标检测和计算机视觉、自然语言处理、语音识别和语义分析等领域成效卓然,因此也促进了人工智能的发展。
“深度”是一个术语。它指的是一个神经网络中的层的数量。浅层神经网络有一个所谓的隐藏层,而深度神经网络则不止一个隐藏层。多个隐藏层让深度神经网络能够以分层的方式学习数据的特征,因为简单特征(比如两个像素)可逐层叠加,形成更为复杂的特征(比如一条直线)。
深度学习,恰恰就是通过组合低层特征形成更加抽象的高层特征(或属性类别)。例如,在计算机视觉领域,深度学习算法从原始图像去学习得到一个低层次表达,例如边缘检测器、小波滤波器等,然后在这些低层次表达的基础上,通过线性或者非线性组合,来获得一个高层次的表达。
而深度学习算法最早尝试应用的领域就是图像识别。早在1989年,加拿大多伦多大学教授Yann LeCun就和他的同事提出了卷积神经网络(Convolutional Neural Networks, CNN)它是一种包含卷积层的深度神经网络模型。通常一个卷机神经网络架构包含两个可以通过训练产生的非线性卷积层,两个固定的子采样层和一个全连接层,隐藏层的数量一般至少在5个以上。CNN的架构设计是受到生物学家Hube和Wiesel的动物视觉模型启发而发明的,尤其是模拟动物视觉皮层的V1层和V2层中简单细胞和复杂细胞在视觉系统的功能。起初卷积神经网络在小规模的问题上取得了当时世界最好成果。但是在很长一段时间里一直没有取得重大突破。主要原因是卷积神经网络应用在大尺寸图像上一直不能取得理想结果,比如对于像素数很大的自然图像内容的理解,这使得它没有引起计算机视觉研究领域足够的重视。2012年10月,Hinton教授以及他的学生采用更深的卷神经网络模型在著名的ImageNet问题上取得了世界最好结果,使得对于图像识别的领域研究更进一步。
1.1.2关于手写字符识别
文字是我们日常生活中最重要的信息载体,也是信息化社会中人机交互需要大量处理的一类数据。手写字符识别赋予了机器自主阅读的能力,可以帮助我们更好更快的进行人机交互,其在手写资料的录入、办公自动化、机器翻译和新闻等领域都大有应用前景。手写字符识别可以应用到邮件自动分拣、财务报表、税务系统数据统计、银行票据自动处理等手写数据自动识别录入中,在教学自动化、少数民族语言文字信息处理、政务电子化等领域均具有重要的理论意义和实际研究价值。
通过手写字符识别方法,可以使计算机自动的读入各种手写资料,形成电子存档,随着人类生产生活创造的手写资料的增多,对手写字符自动识别的需求会越来越大。然而不同的人所写的字迹都不相同,对大量的手写体实现完全正确地识别并不是一件简单的事情。随着全球信息化的飞速发展和对自动化程度要求的不断提高,手写体字符识别的应用需求日益急迫。因此研究一种准确又高效的识别方法有着重要的意义。
而手写字符识别目前因为场景复杂、书写不规范、书写风格多样等原因识别率还比较低。传统的识别方法如KNN最近邻算法、SVM支持向量机、Boosting分类等对复杂分类问题的数学函数表示能力有限往往不能达到高识别精度的要求,而卷积神经网络作为一种层与层之间局部连接的深度神经网络,能够自主地学习样本数据特征,已经在手写字符识别领域展现出极好的性能。
1.2 深度学习研究现状
近年来,深度学习的发展日益成熟。2012年6月,《纽约时报》披露了Google Brain项目,吸引了公众的广泛关注。这个项目是由著名的斯坦福大学的机器学习教授Andrew Ng和在大规模计算机系统方面的世界顶尖专家Jeff Dean共同主导,用16,000个CPU Core的并行计算平台去训练含有10亿个节点的深度神经网络(Deep Neural Networks,DNN),使其能够自我训练,对2万个不同物体的1,400万张图片进行辨识。在开始分析数据前,并不需要向系统手工输入任何诸如“脸、肢体、猫的长相是什么样子”这类特征。
2012年,微软首席研究官Rick Rashid在21世纪的计算大会上演示了一套自动同声传译系统,将他的英文演讲实时转换成与他音色相近、字正腔圆的中文演讲。同声传译需要经历语音识别、机器翻译、语音合成三个步骤。该系统一气呵成,流畅的效果赢得了一致认可,深度学习则是这一系统中的关键技术。
2013年,Google收购了一家叫DNN Research的神经网络初创公司,这家公司只有三个人,Geoffrey Hinton和他的两个学生。这次收购并不涉及任何产品和服务,只是希望Hinton可以将深度学习打造为支持Google未来的核心技术。同年,纽约大学教授,深度学习专家Yann LeCun加盟Facebook,出任人工智能实验室主任,负责深度学习的研发工作,利用深度学习探寻用户图片等信息中蕴含的海量信息,希望在未来能给用户提供更智能化的产品使用体验。
2014年3月,同样也是基于深度学习方法,Facebook的DeepFace项目使得人脸识别技术的识别率已经达到了97.25%,只比人类识别97.5%的正确率略低那么一点点,准确率几乎可媲美人类。该项目利用了9层的神经网络来获得脸部表征,神经网络处理的参数高达1.2亿。
以及2016年3月人工智能围棋比赛,由位于英国伦敦的谷歌(Google)旗下DeepMind公司的戴维·西尔弗、艾佳·黄和戴密斯·哈萨比斯与他们的团队开发的AlphaGo战胜了世界围棋冠军、职业九段选手李世石,并以4:1的总比分获胜。AlphaGo的主要工作原理就是深度学习,通过两个不同神经网络“大脑”合作来改进下棋:第一大脑:落子选择器 (Move Picker)和第二大脑:棋局评估器 (Position Evaluator)。这些大脑是多层神经网络跟那些Google图片搜索引擎识别图片在结构上是相似的。它们从多层启发式二维过滤器开始,去处理围棋棋盘的定位,就像图片分类器网络处理图片一样。经过过滤,13个完全连接的神经网络层产生对它们看到的局面判断。这些层能够做分类和逻辑推理。
深度学习极大地促进了机器学习的发展,受到世界各国相关领域研究人员和高科技公司的重视,如果说Hinton 2006年发表在《Science》杂志上的论文只是在学术界掀起了对深度学习的研究热潮,那么近年来各大巨头公司争相跟进,将顶级人才从学术界争抢到工业界,则标志着深度学习真正进入了实用阶段,将对一系列产品和服务产生深远影响,成为它们背后强大的技术引擎。
目前,深度学习在几个主要领域都获得了突破性的进展:在语音识别领域,深度学习用深层模型替换声学模型中的混合高斯模型(Gaussian Mixture Model, GMM),获得了相对30%左右的错误率降低;在图像识别领域,通过构造深度卷积神经网络(CNN),将Top5错误率由26%大幅降低至15%,又通过加大加深网络结构,进一步降低到11%;在自然语言处理领域,深度学习基本获得了与其他方法水平相当的结果,却可以免去繁琐的特征提取步骤。可以说到目前为止,深度学习是最接近人类大脑的智能学习方法。
自卷积神经网络提出以来,在图像识别问题上并没有取得质的提升和突破,直到2012年Hinton构建深度神经网络才去的惊人的成果。这主要是因为对算法的改进,在网络的训练中引入了权重衰减的概念,有效的减小权重幅度,防止网络过拟合。更关键的是计算机计算能力的提升,GPU加速技术的发展,使得在训练过程中可以产生更多的训练数据,使网络能够更好的拟合训练数据。2012年国内互联网巨头百度公司将相关最新技术成功应用到人脸识别和自然图像识别问题,并推出相应的产品。现在的深度学习网络模型已经能够理解和识别一般的自然图像。深度学习模型不仅大幅提高了图像识别的精度,同时也避免了需要消耗大量时间进行人工特征的提取,使得运行效率大大提升。
1.3 字符识别的研究现状
早在1989年,Yann LeCun等人就提出了卷积神经网络算法,并应用于手写数字的识别。该算法用于对银行支票上的手写数字进行识别,在商业界获得了不小的成功。2006年,多伦多大学的Geoffrey Hinton教授和其学生在《科学》杂志上发表的文章,提出了多隐层的人工神经网络具有优异的特征学习能力,拥有能自主学习样本数据特征、善于挖掘数据的局部显著特征、适应性强并可用最后的全连接层作为分类器等优点,更是推动了深度学习的应用。2012年Pham等人成功将卷积神经网络应用到联机英文手写体和数字手写体识别上,使用到的数据集是MNIST和UNIPEN,以传统的Lenet-5作为卷积神经网络的原型结构进行改进。2011年Ahranjany等人提出一种对于手写波斯语和阿拉伯数字识别准确率非常高的识别系统,该系统的核心就是卷积神经网络。Graham则提出了一种卷积神经网络的变体DeepCNet网络结构,并且在2013年的ICDAR中文手写体字符识别比赛中取得冠军。
国内学者受到国外研究成果的启发,也开始利用卷积神经网络对手写体识别进行了研究。但是大部分国内研究者仍然把重心放在了对英文、数字手写体的识别上。比如2013年第十三届ICMLC国际会议上Liu Caihua和Liu Jie等人提出的手写字符识别研究。以及2012年在第十届IAPR会议上,Yuan Aiquan等人提出的利用卷积神经网络对英文字符进行识别。
随着深度学习的广泛应用,深度卷积神经网络逐渐开始通过自动特征学习方法运用到手写体英文字符识别当中,深度神经网络同样在手写数字数据集MNIST以及中文手写体字符数据集上取得了很好的识别效果。中文手写体字符识别中的一个很重要的数据集是CASIA-HWDB数据集 CASIA-HWDB数据集包括在线中文字符集以及离线中文字符集。
在手写体字符识别领域,深度卷积神经网络也展示出了出色的表现。Ciresan等人提出的多列深度神经网络在许多实际应用中取得了显著的成就,并且在手写体数据集上达到了很多人类水准的良好性能。Graham首次提出了一种卷积神经网络的变体DeepCNet网络结构,并且在2013年的ICDAR中文手写体字符识别比赛中取得冠军。除了中文字符识别之外,深度卷积神经网络在其他亚洲字符识别中也取得了良好的效果,比如韩国的韩语字符识别以及印度的梵文识别.
深度神经网络基础介绍
本章主要介绍深度学习网络的相关概念和算法,并对当前主流的深度网络做一个大致的介绍,其中重点介绍本文使用的卷积神经网络。
2.1 神经网络介绍
2.1.1神经网络的定义
神经网络是一组大致模仿人类大脑构造设计的算法,用于识别模式。神经网络通过机器感知系统解释传感器数据,对原始输入进行标记或聚类。神经网络所能识别的模式是包含在向量中的数值形式,因此图像、声音、文本、时间序列等一切现实世界的数据必须转换为数值。