基于深度学习的手写字符识别研究

摘 要

1、光学字符识别一直是人们最感兴趣的课题之一,它旨在识别自然图像中的文本。尽管这一课题研究多年,但开发出与人类能力相当的光学字符识别技术仍然是一个巨大的挑战。近年来,文档数字化的趋势加剧,纸质文档迫切需要转换成数字文档,以便搜索和保存。光学字符识别可以描述为对图像进行转换,其中图像可以是手写文本图像或者印刷文本图像,半个多世纪以来,这一领域的研究一直在进行,近年来,许多技术已经应用于文档图像中的文本提取。
深度学习近年来被频繁用于解决机器学习领域的热门课题,如图像识别、分类、检索等,它的本质是构建多层网络来训练样本,以此学习样本的特征,这大大避免了繁琐复杂的人工特征提取。虽然目前深度学习已被开始用于光学字符识别,但由于手写体字符的复杂性,光学字符识别仍是机器学习领域的热门研究课题。
这里我们将使用深度学习的方法进行手写体汉字的识别研究。我们将使用卷积神经网络同时在此基础上结合循环神经网络的特点进行改进,进一步提高手写体汉字识别的准确率。

2、图像分割是图像处理、模式识别以及机器视觉等方面必不可少的组成部分,其在医学图像分析和遥感影像的提取等方面起十分重要的作用。自上世纪九十年代以来,基于活动轮廓的图像分割方法飞速发展,鉴于该图像分割法在提取目标边界的精度时可以达到亚像素级,且获得的轮廓是光滑封闭的,因此,对接下来进行的图像分析和目标检测提供了良好的基础。
本文旨在探索对基于活动轮廓的图像分割模型,这类模型有利于对灰度分布不均匀的图像进行分割,但同时也存在一些局限性和问题,例如该模型常常会出现对初始轮廓的设置敏感以及分割速度偏慢的情况。基于以上的思考,本文提出了两种在原模型基础上的创新点:
1.对基于局部拟合的活动轮廓模型进行改进。该方法主要是对曲线演化方向相反的局部区域进行拟合函数值的交换,这样在曲线演化过程中,轮廓内的拟合值一直比轮廓外的拟合值大(或小),则整个曲线将随目标的内边界(或外边界)不断演化,不至于停留在目标的内部,那么就可以解决当能量最小化时陷入局部最优解的问题。 此改进的方法在保留传统方法优点的基础上,更提升了初始轮廓的鲁棒性。
2.在基于局部拟合的活动模型驱使曲线演化之前先计算局部图像的平均灰度值,也就是提前定义两个局部拟合的函数。和传统的拟合函数相比,本文所提出的预拟合函数不同之处在于其与水平集函数无关,更新时不需要每次都迭代。所以,与传统的局部拟合函数相比,此改进的模型的计算量更小,分割速度更快。另外由于此模型的初始水平集函数被设置为一个常数,所以其对初始轮廓具有很好的鲁棒性。
从实验结果可以看出,本文所提出的两个改进点可以对灰度分布不均匀的图像有较好的分割结果,对边缘较弱或含有噪声的图像也有不错的分割效果。与传统的局部拟合模型相比,第一个改进点克服了传统模型对初始轮廓敏感的问题,第二个改进点加快了分割速度,也增强了初始轮廓的鲁棒性。

关键词:深度学习;机器学习;模式识别;手写体字符识别;卷积神经网络;图像分割,水平集,活动轮廓模型,局部拟合,灰度不均匀

Abstract
1.Optical character recognition has always been one of the most interesting topics. It is designed to recognize text in natural images. Although this subject has been studied for many years, it is still a great challenge to develop optical character recognition technology which is equivalent to human ability. In recent years, with the intensification of the trend of digitization of documents, there is an urgent need to convert paper documents into digital documents for search and preservation. Optical character recognition can be described as converting an image that may be a handwritten text image or a printed text image. Research in this field has been going on for more than half a century. In recent years, many technologies have been applied to text extraction in document images.
In recent years, deep learning has been frequently used to solve hot topics in the field of machine learning, such as image recognition, classification, retrieval and so on. The essence of deep learning is to build multi-layer networks to train samples and learn the characteristics of samples. This greatly avoids the tedious and complex manual feature extraction. Although deep learning has been used in optical character recognition, optical character recognition is still a hot research topic in the field of machine learning because of the complexity of handwritten characters.
Here we will use the method of deep learning to study the recognition of handwritten Chinese characters. we will use convolution neural network and combined with the advantage of Recurrent neural network to further improve the accuracy of handwritten Chinese character recognition.
2.Image segmentation is an important part of image processing, pattern recognition and machine vision, which plays an important role in medical image analysis and remote sensing image extraction.
Since the 1990s, the image segmentation method based on active contour has been developing rapidly. Since its precision of extracting target boundary can reach sub-pixel level, and the obtained contour is smooth and closed, it provides a good foundation for the following image analysis and target detection.
This article aims to explore image segmentation models based on active contours.This type of model is helpful for segmenting images with uneven gray distribution, but there are also some limitations and problems. For example, the model often sets the initial contour. Sensitive and slow segmentation.
In view of the above mentioned problems, this paper proposes two innovative points based on the original model:

  1. Improve the active contour model based on local fitting.
    This method is mainly to curve evolution in the opposite direction of local area for fitting function values of exchange, so during the curve evolution, fitting values within the outline has been than contour fitting values outside the big (or small), the entire curve will along with the target within the border (or boundary) evolve, not stay in the interior of the target, then it can be solved when the energy minimization into local optimal solution of the problem.
    This improved method preserves the advantages of the traditional method and improves the robustness of the initial contour.
  2. Calculate the average gray value of local image before driving curve evolution based on local fitting activity model, that is, define two local fitting functions in advance.
    Compared with the traditional fitting function, the prefitting function proposed in this paper is different in that it is independent of the level set function and does not need to be iterated every time it is updated.
    Therefore, compared with the traditional local fitting function, the improved model has less computation and faster segmentation.
    In addition, because the initial level set function of this model is set to a constant, it has good robustness to the initial contour.
    It can be seen from the experimental results that the two improvement points proposed in this paper can achieve good segmentation results for images with uneven gray distribution and good segmentation results for images with weak edges or noise.
    Compared with the traditional local fitting model, the first improvement overcomes the sensitivity of the traditional model to the initial contour, while the second improves the segmentation speed and the robustness of the initial contour.

Key words: Deep learning; machine learning; pattern recognition; handwritten character recognition; convolution neural network;image segmentation, level set, active contour model, local fitting, uneven gray level.

目 录

Abstract III
第1章 绪论 1
1.1深度学习的发展 1
1.2光学字符识别 1
1.3手写体汉字字符识别及研究现状 2
1.4本论文主要工作和内容结构安排 4
第2章 光学字符识别系统 1
2.1光学字符识别系统的类型 1
2.2光学字符识别的过程 1
2.3分类识别的方法介绍 3
2.3.1 最小距离分类方法 3
2.3.2 支持向量机分类方法 4
2.3.3 神经网络分类方法 5
2.4 离线手写汉字识别技术综述 6
2.4.1 基于卷积神经网络的手写汉字识别 6
2.4.2基于部首的手写汉字识别 7
2.5本章小结 9
第3章 深度学习模型 11
3.1 反向传播训练 11
3.2 卷积神经网络 13
3.3 循环神经网络 15
3.3.1 长短时记忆网络LSTM 16
3.3.2 GRU网络 17
3.4 Encoder-Decoder框架和Attention机制 18
3.5 神经网络的初始化与批归一化 20
3.5.1 初始化 20
3.5.2 批归一化 20
3.6 本章小结 21
第4章 手写汉字识别 22
4.1 数据集 22
4.2 数据的预处理 23
4.3 基于GPU的图像加速处理器 23
4.4 基于Encoder-Decoder的手写汉字的识别 23
4.4.1 编码 25
4.4.2 解码 27
4.4.3 实验结果 29
4.6 本章小结 30
第5章 总结与展望 31
5.1 总结 31
5.2 展望 31
第一章 绪论 32
1.1研究背景和意义 32
1.2国内外研究现状 36
1.3研究内容及章节安排 38
第二章 传统的基于局部区域拟合的活动轮廓模型 38
2.1 CV模型 39
2.2 LBF模型 40
2.3 LIF模型 43
2.4 LGDF模型 44
2.3本章小结 45
第三章 基于LBF模型的改进模型 46
3.1曲线演化分析 46
3.2改进的LBF模型 48
3.3实验结果与分析 50
3.3.1算法执行 50
3.3.2改进后模型的分割结果 50
3.3.3对比不同初始轮廓下的模型结果 52
3.3.4模型分割时间及误分割率 54
3.4本章小结 56
第四章 基于LBF模型改进模型二 57
4.1基于局部预拟合的方法 57
4.2实验结果与分析 60
4.2.1算法执行 60
4.2.2模型分割结果 60
4.2.3与传统的局部拟合模型的比较 61
4.3本章小结 64
第五章 总结与展望 65
5.1 总结 65
5.2 展望 66

第1章 绪论

本章主要介绍了本课题的研究背景、研究意义和国内外研究现状,主要内容为深度学习和字符识别的发展研究现状以及最新的研究成果,然后介绍了深度学习和字符识别存在的问题和不足之处,最后概述本文的主要工作。
1.1深度学习的发展
在过去的几年中,深度学习获得了巨大的发展动力,深度学习领域的研究进展也非常迅速。机器学习(Machine Learning,ML)已经取得了无数成功,但是如今应用传统的ML算法通常意味着要花费大量的时间通过人工设计特征,对于视觉,音频,自然语言处理,机器人技术和其他领域中的许多问题,都是如此,为了解决这个问题,研究人员开发了深度学习算法,它可以自动学习输入数据的抽象特征。如今,这些算法使许多团队取都得了突破性的成果。
2012年,Microsoft的顶级科学家Rick Rashid在中国天津展示了一种语音识别程序,该程序将Rick的英语语音转换为普通话,该程序的高度准确性得益于深度学习技术的支持。同样,在2012年,深度学习体系的结构在ImageNet比赛中赢得了图像描述任务的挑战。现在,深度学习已被众多领域的公司所接受,尤其是在2012年语音识别和翻译取得成功之后,语音行业已经广泛部署了深度神经网络(Deep Neural Networks,DNN)。在过去的几年中,包括Microsoft,Google和Facebook在内的所有机器学习领域的顶级公司都在这一领域进行了巨额投资,像IBM Watson这样受欢迎的系统也已经进行了深度学习升级,深度学习现在几乎无处不在。
深度学习取得成功的关键在于样本特征不是由人类工程师设计的,它们是从数据中学习的,深度学习非常擅长在高维数据中发现复杂的结构,它被用于图像分类,语音识别,语言翻译,语言处理,情感分析,推荐系统等。在医学和生物学中,它被用于癌细胞检测,糖尿病分级,药物发现等。在媒体中娱乐领域,它被用于视频字幕,视频搜索,实时翻译等。在安全和国防领域,它被用于面部检测,视频监视,卫星图像等。深度学习在不久的将来会有更多的成功,因为它只需要很少的手工工程,所以它可以更加高效的处理增加的计算量和数据量。
1.2光学字符识别
光学字符识别(OCR,Optical Character Recognition)是一种将打印文本和图像转换成数字化形式,以便机器可以对其进行操作的技术。与人脑能够非常容易地识别图像中的文本、字符不同,机器没有足够的智能来感知图像中可用的信息,因此,人们提出了大量的研究,试图将文档图像转换为机器可理解的形式。光学字符识别是一个复杂的问题,因为可以书写文本的语言、字体和风格的多样性,以及语言的复杂规则等都给光学字符识别带来不小的挑战,因此,来自计算机科学的不同学科(如:图像处理、模式分类和自然语言处理等)的技术被用来解决各种不同的挑战。
字符识别不是一个新问题,它的根源可以追溯到计算机发明之前。最早的光学字符识别系统不是计算机,而是能够识别字符的机械设备,但是速度非常慢,精确度很低。1951年,M. Sheppard先生发明了一种阅读机器人GISMO,这可以被认为是现代最早的字符识别系统[1]。GISMO可以一个接一个地阅读乐谱和印刷纸上的单词,然而它只能识别23个字符,同时这台机器也有能力复制打印好的页面。1954年,J. Rainbow设计了一种机器,每分钟能读一个大写英文字符。早期的认知系统因错误率高和认知速度慢而受到批评,因此,在60年代和70年代,关于这一主题的研究并不多,唯一的进展是在政府机构和大公司,如银行、报纸和航空公司等。由于与识别相关的复杂性,人们认为三种字体应该是标准化文档字体,以减轻光学字符识别的识别任务,Hence、OCRA和OCRB在1970年由ANSI和EMCA开发,提供了相对可接受的认可率[2]。在过去的三十年里,人们对光学字符识别进行了大量的研究,这导致了文档图像分析,多语言分析,手写体光学字符识别系统[2]相继出现,尽管进行了这些广泛的研究,机器可靠阅读文本的能力仍然远低于人类。
1.3手写体汉字字符识别及研究现状
国家标准GB2312-80规定了常用的汉字字符集为6763个常用汉字,其中一类汉字3755个,二类汉字3008个,且一类汉字的使用频率非常高。由于汉字种类多,字形结构有简有繁,对应的训练数据相对较少,并且有多种书写的形式(如:隶书、仿宋、行书等),因此汉字的识别在机器学习中是一个非常棘手的问题。
根据数据获取的类型,手写体字符识别可以分为在线和离线两种,对于离线手写汉字识别,字符是灰度图像,也就是对灰度图像进行分析并分类,本文主要研究离线手写体中文字符识别(Handwritten Chinese Character Recognition,HCCR)。
关于手写字符的自动识别已经研究了很长时间[4],在过去几十年中取得了巨大的成就[5-6]。离线手写汉字识别是40多年来的一个研究热点,旨在解决汉字种类多、相似汉字融合、书写风格多样化的难题[9]。在过去的几年里,许多传统的方法被提出来提高识别的准确率,来自清华大学的王阳伟[7],使用了改进的二次判别函数(Modified Quadratic Discriminant Function, MQDF)作为分类器并结合异方差线性判别分析(Heteroscedastic Linear Discriminant Analysis, HLDA),在ICDAR竞赛数据集上取得了91.54%的正确率,刘成林等人[8]则是结合鉴别特征提取方法(Discriminative Feature Extraction,DFE)和鉴别学习二次判决函数(Discriminative Learning Quadratic Discriminant Function, DLQDF)作为分类器,在ICDAR竞赛数据集上取得了92. 72%的正确率,传统的手写汉字的识别核心在于特征提取和分类识别,所使用的特征主要是结构特征和统计特征,如汉字的笔画特征、方向特征等,这些特征的提取难度大,分类器设计复杂,以致于传统手写汉字识别的准确率止步不前。得益于计算能力的蓬勃发展、大量的训练数据和更好的训练技术,卷积神经网络(Convolutional Neural Networks,CNN)[10]在许多计算机视觉任务中取得了显著的改进。随着深度学习[11]的成功,CNN[12]在离线手写汉字识别上得到了成功的应用,多列深度神经网络[13]是第一个用于手HCCR的卷积神经网络,它在ICDAR 2011测试集上的准确率是92.18%,富士通团队则使用基于CNN的模型赢得了ICDA-2013 HCCR Competition[14],该模型在ICDAR 2013测试集上的的准确率是94.77%,之后富士通团队在此基础之上进行改进,通过数据增强和多网络投票[15],将准确率提高到96.79%,由于深度学习的成功,将传统特征与神经网络结合进行手写汉字的识别也是不错的思路,论文[16]首次将GoogLeNet[17]用于手写汉字识别,并融入了传统特征如HOG特征,准确率达到96.35%,这种特征融合的思路很值得借鉴。
这些深度学习的算法在手写汉字的识别上取得了巨大的成功,但是它们将每个汉字作为一个整体来处理,没有考虑汉字之间的相似性和子结构。汉字与希腊文、希伯来文等纯文字系统不同,将汉字分解为部首和空间结构,然后利用这些信息进行汉字识别是很自然的。在过去的几十年里,基于部首的汉字识别已经做了很多工作,文献[22]提出了一种匹配方法,首先分别检测部首,然后用层次匹配法将部首组合成一个字符,该方法部首检测的正确率是92.5%,匹配过程的实验分为两组:训练组和测试组,每组包括900个字符,在该实验测试集上的识别率为80.9%。文献[23]尝试将字符过度分割为候选部首,但该方法只考虑左右结构的汉字字符,过度分割也带来很多困难。文献[24]提出了一种基于部首的汉字识别的多标签学习方法,它考虑了汉字部首水平构,并使用深度残差网络来检测部首。这些方法考虑到了汉字本身的特点,将汉字的部首信息、结构信息加以利用,但是他们在分割部首和分析部首之间的结构时缺乏灵活性。

1.4本论文主要工作和内容结构安排
随着计算能力的飞速增长、大量的训练数据和更好的非线性激活函数使得深度卷积神经网络在许多计算机视觉任务中取得了显著的进步。在HCCR问题上应用CNN后,过去5年取得的进展大大超过了传统的方法。
本文的主要工作如下:
1.介绍深度学习的发展历程以及国内外关于手写体字符识别的现状,阐述深度学习的主要网络模型结构及涉及到的相关理论基础。
2.分析目前手写汉字识别的模型方法,在此基础上思考构造新的网络结构模型完成手写体汉字字符更准确的识别。
3.利用改进的网络训练3755类手写汉字的识别,也就是国家标准GB2312-80规定的常用一类汉字,对训练完成的网络模型进行测试,比较并分析识别效果。
4.通过与本文的研究分析,总结不足之处以及展望后续研究的方向。

第2章 光学字符识别系统

2.1光学字符识别系统的类型
在过去的几年里,光学字符识别的研究有许多方向。由此出现了不同类型的光学字符识别系统。我们可以根据图像采集模式、字符连接、字体限制等对这些系统进行分类。。
光学字符识别系统在模式识别中占据了一席之地。它们的独特之处在于它不需要控制产生信息的过程。光学字符识别可分为印刷体字符识别和手写体字符识别,而根据输入类型,手写体字符识别又可分为离线识别和在线识别[3]两个子类别,即在线系统和离线系统,如图2.1所示。前者是在用户书写字符时实时执行的,可以捕捉基于时间或空间的信息,即速度、笔画数、书写方向、起始点等,而离线识别系统的操作对象是静态数据,即输入是位图。

在这里插入图片描述

图2.1 典型的光学字符识别系统
离线识别是在书写或打印完成后脱机执行的,而在线识别是在计算机绘制字符的情况下实现字符识别。离线和在线字符都可以识别,但性能与输入文档的质量有很大关系。输入越受约束,光学字符识别系统的性能越好,但是当涉及完全不受约束的光学字符识别时,仍然有很大问题。

2.2光学字符识别的过程
光学字符识别[25-26]是对数字图像中包含的字母、数字或其他字符的光学模式进行分类的过程。字符识别主要是通过分割、特征提取和分类等重要步骤实现的。
典型的光学字符识别系统由多个部分组成[26-27],如图2.2所示。光学字符识别第一步是使用光学扫描仪将文档数字化,当包含文本的区域被准确定位时,我们就可以通过分割提取符字符。提取的字符经过预处理,消除噪声,便于进行特征提取,通过将提取的特征与先前学习阶段获得的字符类别的描述进行比较,就可以完成字符的识别。

在这里插入图片描述

图2.2 典型的光学字符识别过程

光学字符识别的过程是一个包含不同阶段的复合任务。这些阶段如下:
图像采集:从扫描仪或照相机等外部资源获取图像。图像采集是光学字符识别的第一步,它包括获取数字图像并将其转换成计算机容易处理的合适形式。这个过程可能伴随有图像的量化和压缩[10]。量化的一个特殊情况是二值化,在大多数情况下,二值化图像足以表征图像,而压缩可以有损或无损,由此又产生了各种图像压缩技术[11]。
预处理:一旦获得图像,就可以执行不同的预处理步骤来提高图像质量。不同的预处理技术有去噪、阈值和提取图像基线等。其中一种预处理技术是阈值处理,旨在基于一些阈值来最大化图像[11],阈值可以设置为局部阈值或全局阈值。也可以运用不同类型的滤波器,如均值滤波器、最小和最大滤波器来进行预处理。不同的形态学操作,如腐蚀、膨胀、开运算和闭运算也是图像预处理的有效手段。预处理的另一个重要作用是解决文档的扭曲、偏斜,一般所应用的技术包括:投影、霍夫变换、最近邻等方法。在某些情况下,图像的细化也是在此[12]进行的。
字符分割:在这个步骤中,图像中的字符被分离。图像在进入分类阶段之前被分割成字符,一般可以使用连通域分析和轮廓投影。然而,在复杂的情况下,往往会出现字符重叠、断裂或者图像中存在一些噪声,这时就需要相应采取更合适的字符分割技术。
特征提取:将分割后的字符提取不同特征的过程。在这个阶段,目的是获取字符的基本特征,这些特征可以唯一地识别字符。选择正确的特征和要使用的特征总数是一个重要的研究问题。特征提取被认为是模式识别中最困难的问题之一。描述字符最直接的方法是通过实际光栅图像,不同的特征组根据它们的噪声敏感度、变形、易于实现和使用来评估,评估中使用的标准是:噪声、失真、风格变化、平移和旋转方面的稳健性、识别速度、实现复杂性和独立性方面的实际使用。
字符分类:这一步将分割图像的特征映射到不同的类别,常见的字符分类技术有结构分类技术和统计模式分类技术。结构分类技术主要是基于从图像结构中提取的特征,并使用不同的判定规则对字符进行分类,而统计模式分类技术则是基于概率模型和其他统计方法对字符进行分类。常见的统计分类方法有贝叶斯分类器、决策树分类器、神经网络分类器、最近邻分类器等[14]。
后处理:分类后,结果不是100%正确,特别是对于复杂的语言文字。后处理技术可以用来提高光学字符识别系统的准确性。其中一种方法是使用多个分类器对图像进行分类,该分类器可用于级联、并行或分层搜索,分类器的结果可以结合各种方法。此外,进行上下文分析或者基于马尔可夫模型和也有助于提高识别的准确性[12]。后置处理器的时间和空间复杂度不应很高,同时它也不应产生新的错误。
2.3分类识别的方法介绍
2.3.1 最小距离分类方法
最小距离分类算法是一种简单,快速的监督学习算法,即从正确标记对象的训练数据集学习。在机器学习中,任何对象都具有给定的一组特征,多维特征目标自然的就由多维实向量表示,如:。从形式上看,这种模式可以表示为,其中,是与给定对象相关联的多维向量,是给定对象所属类的标签,我们可以简单地将一个类视为一组对象。假定每个对象都仅属于一个类,令为与所有类的集合一一对应的标签集合。分类过程的目的是设计一种分类器,该分类器将标签归于未标记的对象。在监督学习中,这种分类器是通过一组正确标记的对象获得的。
(1.6)
是对象的特征向量,。是对象所属的类标签。
给定训练的数据集,我们可以做如下定义:
(1.7)
第j个类表示所有已标记为的集合。表示的数量。
最小距离分类算法包括以下步骤:
(1)训练:计算类别的质心。
(1.8)
(2)分类:分类器是一个函数 且 。
(1.9)
(1.10)
为了评估分类器性能,引入测试集,
然后,通过将模型应用于测试集,通过在测试集上的准确率来评该估分类器的性能。
2.3.2 支持向量机分类方法
SVM模型是一种基于统计学习理论解决分类问题的非参数方法,是一种基于核的分类器,下面仅简要地总结一下该方法。
对于由可线性分离的N个记录组成的训练数据
(1.11)
其中是类变量,,表示由k个解释性变量组成的向量。训练SVM模型是找到最佳超平面的过程,使得具有 的训练记录被分离到超平面的任一侧,并且最接近的记录到任一侧的超平面的距离被最大化。这个最大化问题可以通过引入拉格朗日乘子来解决。训练好的SVM分类器具有以下基本形式:
(1.12)
其中是拉格朗日乘子,是用于分类记录的超平面的支持向量,b是用于定义超平面的基本函数的实数,其中是垂直于超平面的法向量,是和的点积。对于不能被线性超平面分开的数据,需要非线性变换函数来将数据映射到更高维空间。将核函数应用于该非线性变换,其定义如下:
(1.13)
已经开发了两种主要类型的核函数并将其应用于SVM模型:非齐次多项式核函数和高斯径向基核函数(RBF),定义如下:
(1.14)
(1.15)
在此内核中,是控制内核宽度的参数。
2.3.3 神经网络分类方法
深度神经网络是基于不同层次的连接,每一层将前一层的输出作为输入。图2.3显示了一个完全连接的网络的例子,其中绿色的神经元代表输入,蓝色的神经元属于隐藏层,红色的神经元是输出。如图所示,每一层都由一定数量的单元组成,也称为神经元。输入层的大小取决于实例的维度,而输出层由分类任务决定。隐藏层的数量及其单元数需要人为选择。
在这里插入图片描述

图2.3 全连接网络结构

层激活图的输出表示为,它是通过两步计算获得的:它首先采用输入的线性组合,这些输入是层的输出,即,然后它将非线性激活函数应用于该线性组合,如下:
              (1.16)
,分别是需要学习的权重和偏置。而训练神经网络就是为了找到合适的值和。

训练深层神经网络需要大量的专业知识来设计网络的架构,选择其超参数,并决定如何优化它。与此同时,这种模型比传统的分类算法需要更少的特征工程,并且已经表明在多种任务中获得了更高的精确度。从某种意义上来说,它将与特征工程相关的困难转移到了构建网络架构上。
2.4 离线手写汉字识别技术综述
2.4.1 基于卷积神经网络的手写汉字识别
手写汉字识别已经过相当长时间的研究,而传统的机器学习方法在识别的正确率上止步不前,直到深度学习的出现使得手写汉字的识别有所突破,富士通团队在2015年于之前研究的基础上提出改进算法[15],该算法基于数据增强和多网络投票实现手写汉字的识别,如图2.4所示。

在这里插入图片描述

图2.4 基于数据增强和多网络投票的网络结构
由图可知,该算法主要包括以下三部分:一是数据增强,主要通过使用全局变形和局部变形的方法,增加样本量;二是设计不同的CNN网络结构来更好的适应手写汉字的结构特点,训练获得不同的模型;三是基于不同的模型进行投票,该方法将手写汉字识别的准确率在ICDAR 2013测试集上达到96.79%。
文献[18]为了探索深层卷积神经网络在对手写汉字进行分类方面的性能,使用不同的卷积网络配置集进行了一些实验,该实验分别构建了5层、6层、7层、9层、11层网络进行手写体汉字的识别,网络结构如图2.5所示。
在这里插入图片描述

图2.4 文献[18]的网络结构
其中卷积层所使用的卷积核的大小为3×3,使用的池化层大小为2×2,且都使用最大池化,从该文献的实验结果可以看出,当网络越来越深时,模型的能力也会随之有所增强,识别率有所提高,其中5层网络机构在CASIA HWDB1.1测试集上的准确率为95.9%,11层的网络结构在CASIA HWDB1.1测试集上的准确率为97.7%。
这些方法成功将卷积神经网络运用于手写体中文汉字的识别,相较传统方法,该方法在识别的准确率上有较大的优势,主要由于特征提取上不再需要复杂的手工特征的设计,而是将之交给网络自主学习,但不足之处在于将每个汉字作为一个整体来处理,这种处理方法没有考虑汉字本身的特点,即没有考虑汉字之间的相似性和子结构。
2.4.2基于部首的手写汉字识别
汉字是世界上最古老的、持续使用的文字系统,与希腊文等纯文字系统不同,将汉字分解为部首和空间结构,然后利用这些信息进行汉字识别是可行的。
文献[23]提出了一种基于部首的在线手写汉字识别方法,该方法主要包括三个方面:部首的统计分类、字符过度分割为候选部首、词典驱动的字符识别,该方法主要针对左右结构的汉字,它结合了统计方法和基于部首的结构方法的优势,使用笔划顺序自由特征和统计分类对部首建模,将字符细分为候选部首,并在词典驱动的识别中搜索最佳分割部首,词典将部首以树形结构存储,每条路径对应一个字符,部首是由多个字符共享的子结构,从语言学的角度来看,每个部首也都有语义含义,如图2.5所示。
在这里插入图片描述

图2.5 汉字的部首结构
该算法将字符的部首以字典的形式存储在树结构中,其中每个字符都可以由一系列的部首表示,常见的字符串前缀,如{口-可,口-土,口-力-口},它们都有一个公共的前缀,通过这种方式,既节省了字典的存储空间,又节省了计算空间,因为公共前缀只存储一次,搜索中只匹配一次。该算法最终选择了4284个左右结构的字符,样本由60位作者完成,并按照1:5的比例划分测试集和训练集,最终在训练集上的正确率位97.1%。该算法使用词典来辅助识别,这一措施对提高识别率起到了非常关键的作用,但是该方法仅仅考虑了左右结构的汉字,而实际中的汉字结构类型繁多,因此存在一定的局限性。
文献[24]考虑了汉字的部首水平构成,并使用带有多标签学习的深度残差网络来检测位置相关的部首,如果字符由训练样本中出现的部首组成,即可识别字符,在多标签学习中,每个训练字符样本对其包含的每个部首都被标记,因此在训练之后,模型可以检测到训练集中出现过的部首。
该方法利用大多数汉字可以分解的特性,将汉字进一步分解为不可分割的模式,比如汉字字符“糯”,它可以被细分为“米”,而主体“需”部分则再次分解为“雨”和“而”,该方法通过制定相关规则,将部首分为4类。
规则1:广泛接受的部首,例如“钅”,“衤”,“氵”,“疒”等构成。
规则2:单元素字符以及那些可以看作是连接组成部分的字符,例如“革”,“甫”,“羊”,“乃”等构成。
规则3:常用作固定搭配的符号,即使它们不是相互连接的,例如“鬲”,“曷”,“佥”,“亟”等构成。
规则4:无需分割的半包围字符,例如“勺”, “勾”, “可”, “刁”等构成。
规则5:由重复单元构成,而且该单元为不可分割的部首,例如字符“缀”的右部是由4个“又”组成。
在这里插入图片描述

图2.6 汉字的常规结构模型

在这里插入图片描述

图2.7 文献[24]的网络结构

在这些规则的帮助下,每个字符的都被分解,而每个分解出来的部首都被做了标记,同时该算法还提出了20种汉字的常规结构类型,如图2.6所示,并将部首与位置相结合。该算法使用深度残差神经网络来检测与位置相关的部首,网络结构如图2.7所示,网络中输出神经元的数量与部首类别数相等,因此每个输出神经元都测量输入图像中部首存在的置信度,当输出大于设定的阈值时,则可以判断相应的部首位于输入图像中。该算法通过检测字符图像中的所有部首,达到识别的目的,在当代汉字数据库 PCCDB 上评估得到了不错的结果,在已知字符集和全新字符集上的实验结果证明了该方法的优越性。该方法中对汉字分解部首的定义对字符识别的相关研究大有裨益,对汉字常规结构类型的划分也具有十分重要的参考价值,但是该方法在分析部首结构时缺乏灵活性,需要判断每个部首的置信度。
2.5本章小结
本章主要介绍了光学字符识别系统的分类、光学字符识别的过程、特征提取的方法及不同的分类识别方法,以及汉字识别方法的概述.本文主要是基于深度学习模型来进行手写汉字识别的研究,第四章中会具体运用相关模型进行实践。

第3章 深度学习模型

深度学习模型由多个处理层构成,可以用来学习具有多个抽象特征的数据。这种方法极大地改进了语音识别,视觉对象识别,物体检测等许多其他领域的最新技术。深度学习通过使用反向传播算法来指示机器应如何更改其内部参数以此来发现大数据集中的复杂结构。深度卷积网络在给图像、视频等方面带来了突破,而循环网络则在文本和语音等序列数据中凸显出重大作用。
3.1 反向传播训练
从模式识别的早期阶段开始[28-29],研究人员的目标就已经是用可训练的多层网络取代手工特征,尽管它很简单,但直到20世纪80年代中期才得到广泛的理解。事实证明,多层架构可以通过简单的随机梯度下降进行训练。只要模块的输入功能和内部权重相对平滑,就可以使用反向传播过程计算梯度。
计算目标函数对多层模块权重梯度的反向传播过程,只不过是导数链式法则的实际应用。反向传播方程可以重复应用,以传播所有模块的梯度,从顶部的输出(网络产生其预测)一直到底部(外部输入)。一旦计算出这些梯度,就可以直接计算相对于每个模块的权重梯度。
在这里插入图片描述

图3.1 前馈神经网络架构
在这里插入图片描述

图3.2 神经网络梯度计算

深度学习的许多应用使用前馈神经网络架构,如图3.1,学习将固定大小的输入(例如,图像)映射到固定大小的输出(例如,每个的概率、几个类别)。为了从一个层到另一个层,一组单元计算来自前一层的输入的加权和,并通过非线性函数传递结果,如图3.2。目前,最流行的非线性函数是整流线性单元Relu,它是半波整流器。在过去的几十年中,神经网络使用更平滑的非线性激活函数,例如tanh(z),但Relu通常在具有多层的网络中学得更快,允许训练深度监督网络,而没有无人监督的预训练[30],不在输入或输出层中的单元通常称为隐藏单元,隐藏层可以看作是以非线性方式扭曲输入。
常用的非线性激活函数如下图所示:
Sigmoid函数、Tanh函数、Relu函数、leaky Relus示意图如下图所示。

在这里插入图片描述

图3.3 Sigmoid函数 图3.4 Tanh函数

在这里插入图片描述

图3.5 Relu函数 图3.6 Leaky Relus函数

激活函数通常有如下一些性质:非线性、可微性、单调性。
从图3.5可以看出Sigmoid函数对输出数值有一定的限制作用,它主要使输出值介于0和1之间,如果输入是绝对值很大的负值,则输出0,反之如果输入是绝对值很大的正值,则输出1,但是当输入值连续是绝对值很大的负值或者绝对值很大的正值时,神经元的梯度会接近0,以至于参数无法更新,这也就使得网络的学习变差。tanh 同样对输出数值有一定的限制作用,它可以使输出值在-1和+1之间,由于该函数均值为 0的特点,因此对数据起到了归一化的效果。ReLU 计算简单,因此可以加快网络的计算速度,且仅需设定一个合适的阈值就能得到激活值。Leaky ReLUs 相比ReLU性能上有所改进,它不仅修正数据分布,而且还保留了负轴信息。目前,一般使用ReLU、Leaky ReLUs作为激活函数,它通常在具多层网络中学习更快,允许在无监督的预训练中训练深度监督网络[28]。
3.2 卷积神经网络
CNN旨在处理多阵列形式的数据,例如由三个2D阵列组成的彩色图像,其中包含三个通道像素。CNN背后有四个利用自然信号特性的关键思想:本地连接、共享权重、池化和多层使用。图3.7为LeCun提出的LeNet5卷积神经网络。

在这里插入图片描述

图3.7 LeNet5卷积神经网络
典型的网络结构是由一系列阶段构成的。前几个阶段由两种类型的层组成:卷积层和池化层。特征图的每个单元通过一组称为滤波器组的权重连接到前一层的特征图中。然后,这个局部加权和的结果通过一个非线性单元。特征图中的所有单元共享同一个滤波器组。图层中不同的特征图使用不同的滤波器组。这种架构的原因有两个,首先在图像等阵列数据中,局部值组通常高度相关,形成易于检测的局部基序。其次,图像和其他信号的局部统计对于位置是不变的。
卷积层的作用是检测来自前一层的特征的局部连接,而池化层的作用是将语义相似的特征合并成一个,典型的池化是计算特征图中的局部最大值,从而减小了表示的尺寸,也就是最大池化,此外还有平均池化,经过卷积、非线性、池化之后,更多的是全连接层,网络中的所有权重可以通过反向传播训练得到。
近年来,VGGNet和密集卷积网络(DenseNet,Dense Convolutional Network )[34]被广泛认为是比较好的特征提取器,VGG全称是Visual Geometry Group,它是由牛津大学发布的一些以VGG开头的卷积网络模型,它最初是为物体识别和探测而开发的[8],该网络有比较深的卷积结构同时使用比较小的卷积核,即3×3卷积,使用池化层大小为2×2,VGGNets有四种不同的网络结构,从11层到19层不等,当网络越来越深时,模型的能力就越来越强,但计算成本却越来越高。DenseNet的体系结构主要分为多个DenseBlock,如图4.2所示,在每个密集块中,每个层都直接连接到所有后续层,我们使用 作为第层在某些块中的卷积函数,则第层的输出可以表示为:
(4.1)
其中表示由在同一块中生成的输出特征图的串联,为了进一步提高计算效率,每个DenseBlock中可以使用瓶颈层,也就是在每次3×3卷积之前引入1×1卷积,以将输入的特征图数量减少。
在这里插入图片描述

图3.8 DenseNet网络结构
3.3 循环神经网络
在传统的神经网络中,相邻层之间只有完全连接,而同一层内的节点之间没有连接。这种类型的网络在处理时空问题时效果欠佳,因为时空网络中的节点之间总是存在交互。与常规网络不同,RNN中的隐藏单元会收到从先前状态到当前状态的反馈[31]。图3.9显示了一个基本的RNN体系结构,具有延迟线,并且在时域中展开了两个时间步长。在这种结构中,输入向量一次被馈入RNN,而不是像常规网络结构那样使用固定数量的输入向量。可以看出,最终的输出不仅取决于当前的输入,还取决于先前隐藏层的输出。
在这里插入图片描述

图3.9 RNN体系结构
RNN的数学模型可以表示为:
(3.1)
(3.2)
(3.3)
(3.4)

其中是输入变量,,和是权重矩阵,和是偏差矢量,和g是S型函数,和是临时变量,o是期望的输出。
RNN是非常强大的动态系统,但训练它们已被证明是有问题的,因为反向传播的梯度会在在每个时间步长增长或缩小,所以通常会引发梯度爆炸或梯度消失[26-27]。
3.3.1 长短时记忆网络LSTM
RNN一旦在时间上展开,可以看作是一个非常深的前馈网络,其中所有层的权值相同。尽管它们的主要目的是学习长期依赖关系,但要学会长时间存储信息是困难的。为了解决这个问题,一种方法是用显式内存来扩充网络,如长短时记忆(LSTM)网络,这是一种特殊的RNN,通过使用特殊的隐藏单元,长时间记住输入。与传统的RNN相比,LSTM网络能够捕获更长时间范围内的时间序列特征。
在这里插入图片描述

图3.10 LSTM体系结构

存储单元的结构如图所示。存储单元位于整个单元的中心,用红色圆圈表示。输入是已知数据,输出是预测结果。存储单元中有三个门,即输入门,忘记门和输出门,用绿色圆圈表示。此外,单元的状态由表示,每个门的输入是预处理数据和存储单元S的先前状态。
蓝点是汇合,代表乘法,虚线代表先前状态的功能。基于信息流的存储器结构,存储单元的状态更新和输出可以总结为
(3.5)
(3.6)
(3.7)
(3.8)
(3.9)
(3.10)
其中’o’表示Hadamard乘积,、、是不同门的输出,是存储单元的新状态,是存储单元的最终状态,是存储单元的最终输出。,,,,,和是系数矩阵,它们在图3.10中进行了标记。对于不同的门,LSTM存储单元可以在短期和长期内捕获时间序列内的复杂相关特征,与RNN相比,这是一个显着的改进。
3.3.2 GRU网络
GRU与LSTM[34]的主要区别是LSTM中的记忆单元在GRU中不存在。如图3.11(a)所示,LSTM块中有三个门和一个存储单元。输入门、遗忘门和输出门分别控制输入、内存和输出的数据流。输入门、遗忘门和输出门的激活取决于当前输入、以前的内存和以前或当前的输出。而在GRU中,门的数量减少到两个,这两个门称为更新门和复位门。GRU中的门的激活只依赖于当前的输入和以前的输出。由于参数的减少,使用GRU的模型收敛速度更快,在某些任务[35]中,最终的解决方案往往优于使用LSTM的模型。
在这里插入图片描述

图3.11 GRU体系结构与LSTM体系结构的对比

3.4 Encoder-Decoder框架和Attention机制
Encoder-Decoder(编码-解码)近些年来在深度学习中应用广泛,这种框架最早被应用在机器翻译中,也就是将一种语言序列转换为另一种语言序列,如图所示,Input1、Input2、Input3和Input4表示输入序列,Output1、Output2、Output3表示输出序列,它的本质就是由序列到序列的转换,而输入序列却不仅仅限定于语言序列,文字、语音、图像等都可以作为输入序列,输出序列也可以是文字、图像等。图3.12中的Encoder就是编码,它可以通过语义编码将将输入序列转化为固定长度的向量, Decoder也就是解码,它的作用是是将语义编码向量转化为输出序列,因此基于Encoder-Decoder框架,我们可以设计出各种应用算法以适应不同的任务。

在这里插入图片描述

在这里插入图片描述

图3.12 基本的Encoder-Decoder模型
编码器网络中的每个编码器都与滤波器组进行卷积运算,以生成一组特征图,通常会将它们进行批量归一化[36-37],然后经过非线性激活函数后执行合并,并将结果输出进行二次采样。
解码器的功能是将这些特征图与可训练的解码器滤波器组卷积,以生成密集的特征图,然后经过批归一化与第一个编码器相对应的解码器会生成多通道特征图,这些解码器生成的特征图具有与编码器输入相同的大小和通道数,最终解码器输出的高维特征被馈送到可训练的soft-max分类器。
通过上图可以明显看出,基于这种连接方式的Encoder-Decoder框架的模型有一定的局限性,该局限性主要体现在单个长度固定的语义编码向量无法准确表达输入序列的全部信息,其次输入长度增加会导致编码信息覆盖,从而丢失信息。针对这种连接方式的弊病,Bahdanau等人提出Attention机制[55],如下图3.13所示,可以看到每一个输出都相应的有一个与之对应的编码向量,通过这种方式,我们的输出可以更准确的表达输入序列的信息。

在这里插入图片描述
在这里插入图片描述

图3.13 基于Attention机制的Encoder-Decoder模型

3.5 神经网络的初始化与批归一化
设计神经网络系统的一个主要挑战是在给定当前机器学习问题的数据的情况下,确定网络的最佳结构和相关参数,由于深度学习中所使用的数据量非常庞大,以至于每训练完一次需要耗费大量的时间,同时由于数据和网络自身的特点,往往会带来一些问题,使我们的训练效果与预想的相差太多,如过梯度爆炸与梯度消失问题,以及拟合与欠拟合问题。
3.5.1 初始化
训练这些模型的部分困难在于为模型中的参数选择合适的初始化策略,[57]任意初始化会减慢甚至停止收敛过程,出现这种减速是因为任意初始化导致较深层接收了具有小方差的输入,这反过来又减缓了反向传播,并延迟了整体收敛过程,权重初始化是一个活跃的研究领域,已经提出了许多方法来处理深层的收缩方差问题[57-59]。
比较常见的初始化方法有高斯分布权重初始化、均匀分布权重初始化、MSRA权重初始化。高斯分布权重初始化是将权重参数初始化为小的随机数,如均值是0,方差是0.01的高斯分布,这种初始化在小型网络中表现出较好的性能,但是在深层次网络中会导致反向传播中的梯度比较小,在前向传播时神经元会抑制或饱和,在梯度更新时会出现梯度弥散。均匀分布权重初始化可以使得每层神经元输入输出方差一致。只考虑输入个数时,MSRA权重初始化是一个均值为0方差为2/n的高斯分布,它主是为了让初始化权值的方法变化以适应经过Relu时方差产生的变化,这种初始化方法也是目前比较广泛使用的一种初始化方法。
3.5.2 批归一化
深度神经网络的训练过程中各层输入的分布会随着先前各层参数的变化而变得复杂,这会减慢训练速度使网络难以训练,甚至会出现不收敛,通过归一化层输入就可以很好的解决这个问题,简单来说就是通过将归一化作为模型体系结构的一部分并为每个训练的小批量数据执行归一化,批量归一化允许我们在网络中使用较高的学习率,而降低对初始化的敏感程度,具体来说就是让每一层的输入满足均值为0,方差为1的正态分布,从而使得输入值分布在比较敏感的区域,这种做法可以增强信息的反向传播,对梯度消失问题也有很好的缓解作用。
(3.11)
这里我们不使用小批量统计数据,而是使用总体统计数据,同时忽略,是该神经元的加权输入,是该神经元加权输入的均值,是我们使用的无偏方差估计。
3.6 本章小结
本章首先简述了深度学习的基础理论知识,介绍了卷积神经网络、循环神经网络,对比分析了不同的激活函数,对目前较为常见的分类技术进行了简要概述,同时介绍了Encoder-Decoder框架,卷积神经网络在图像处理中作用突出,在图像的特征提取和分类问题中有较大的优势,循环神经网络则更擅长处理与序列相关的问题。

第4章 手写汉字识别

4.1 数据集
对于本论文,我们使用CASIA脱机数据库,如[6]中所述。数据由孤立手写汉字的纯灰度图像组成,如图4.1所示。该数据库有三个数据集,比如HWDB1.1数据集,该数据集总共包括3755个汉字和171个字母数字和符号,如表4.1所示,每个类别包含来自大约300名作者的手写图像(某些类别略有不同),每个作者为每个类别贡献一张图像。整个数据集被分成两部分:训练集和测试集。测试集包含每个类别的60个随机采样图像,而训练集包含其余的图像(大约240个)。在本课题中,为了在训练过程中调试和比较不同的模型,我们将使用CASIA HWDB1.0和CASIA HWDB1.1数据集,该训练集进一步分为两部分:训练集和验证集,按照4:1的比例进行划分,表中列出了该数据集的详细构成信息。
在这里插入图片描述

图4.1 手写汉字图像示例

表4.1 数据集说明
数据名称 书写人数 汉字/类别 符号/类别 总量
CASIA HWDB1.0 420 1609136/3866 71122/171 1680258
CASIA HWDB1.1 300 1121749/3755 51158/171 1172907
CASIA HWDB1.2 300 990989/3319 50981/171 1041970

4.2 数据的预处理
数据处理的第一步是将二值数据转换成图像格式,转换后的图像具有255个灰度级像素,与文献[2]中使用的方法一样,本文采用了三步预处理方法:缩放、对比度最大化和图像平均。在给定描述手写汉字的原始输入图像的情况下,我们首先将图像大小调整为归一化大小。通过对几个实例的目测检查,我们发现56×56是一个合适的大小。大小调整是均匀进行的,每个字符的最大维度决定了大小调整因子。我们还在调整大小的图像中添加了4像素的白边距,并将字符在最终调整大小的图像中居中。因此,最终尺寸图像的大小为64×64。其次,我们对图像值进行了重新缩放,以最大化对比度。换句话说,我们强制图像的值从0到255。最后,我们用训练集中的所有图像计算平均图像,并从每个样本中减去平均图像,然后将样本输入到模型中。
4.3 基于GPU的图像加速处理器
GPU图像处理器与CPU相似,是专门处理图像的核心处理器。GPU比CPU更加适合处理大数据,且能够重复地进行简单而不停的操作[38]。 GPU存在以下特点:
(1)具有多核并行、大数据、高速的计算结构
(2)具有相当高的访问速度
(3)具有更高的浮点运算技术
深度学习的最主要特点就是对大数据进行训练学习,GPU处理器能够加快网络的训练速度。本文选择了GPU版本的TensorFlow。
在TensorFlow中用张量表示数据[39],用计算图搭建神经网络结构,用会话实行搭好的计算图[39],通过不停地训练优化网络参数,得到适合应用场景的网络模型。
4.4 基于Encoder-Decoder的手写汉字的识别
基于汉字的部首和二维结构,本文将每个汉字都可以分解为部首和空间结构的序列。按照规则[25],字符序列包括三个部分:部首,空间结构和一对大括号(例如“{”和“}”)。
部首代表汉字的基本组成部分,与庞大的汉字类别相比,部首的总数非常有限。根据中国国家语言委员会发布的GB13000.1标准,有超过50,000个部首代表着20,000多个中文字符,而本文选取了13种常见的空间结构,如图4.3所示。这13种结构是:sg:一些汉字是部首本身,例如汉字“尺”。a:左右结构,例如汉字“叶”。d:上下结构,例如汉字“古”。s:环绕结构,例如汉字“圆”。sb:下环绕结构,例如汉字“画”。sl:左环绕结构,例如汉字“区”。st:上环绕结构,例如汉字“闭”。 sbl:左下环绕结构,例如汉字“”达。stl:左上环绕结构,例如汉字“厅”。str:右上环绕结构,例如汉字“习”。w:包含结构,例如汉字“”巫。;lock:锁结构,例如汉字“包”。r:重复结构,例如汉字“品”。

在这里插入图片描述

图4.3 汉字的空间结构

如图4.4所示,汉字“刘”的部首结构有“文”和“刂”,空间结构有左右结构,汉字“榆”的部首结构有“木”、“人”、“一”、“月”、“刂”,空间结构有左右结构和上下结构。
//
在这里插入图片描述

图4.4 汉字的分解示例

4.4.1 编码
在本节中,我们将使用基于部首的手写体汉字识别的方法。通过基于Attention机制的编码器-解码器将汉字分解成一个序列,描述汉字的部首和部首之间的结构,通过网络自主的学习汉字的部首和结构从而达到识别的目的。
卷积网络[16]已被证明是各种计算机视觉任务的良好特征提取器,因此,我们使用卷积神经网络作为编码器从图像中提取高级视觉特征,参照文献[18],我们使用该文献中11层网络中的部分结构作为编码器网络,相较文献[18],这里舍弃了卷积层后的全连接层以及Softmax层,因为这里并不需要完成分类,也就不需要接入全连接层和Softmax层得到属于每个类别的概率,后面还需要将该网络的输出作为解码器的输入,若是将接入全连接层后的向量输入解码器网络,会造成信息的丢失,从而影响识别的结果。
表4.2 编码器网络配置说明
网络配置
2Conv3-64-BatchNorm-Scale-ReLU
Maxpool
2
Conv3-128-BatchNorm-Scale-ReLU
Maxpool
2Conv3-256-BatchNorm-Scale-ReLU
Maxpool
2
Conv3-512-BatchNorm-Scale-ReLU

特征提取的效果对手写汉字识别的准确率起到了至关重要的作用,可以说如果获得的特征越全,准确率越高,文献[15]和文献[16]拥有不同的网络结构,在手写汉字识别的过程中所所关注的面各有不同,将这两种不同网络结构所提取的特征进行融合,无疑会使得我们得到的特征更丰富,所以这里提出另一种编码器结构,主要是将这两种结构进行合成一个新的结构进行本课题研究图像的特征提取,具体结构如图所示。它将卷积层、DenseNet结构单元相结合,这里必须保证特征图形状相同以边在下一层做求和运算。

在这里插入图片描述

图4.5 融合结构
编码器的网络结构及参数如表4.3所示,整个网络的结构同样是在文献[18]的卷积神经网络的基础上改进的,该结构也舍弃了原文中的全连接层以及Softmax层,使用了批归一化,并将融合的单元块放置网络的底部,舍弃全连接层和Softmax层是为了将该编码器网络结构的输出作为下一步解码器网络的输入。
表4.3 编码器网络配置说明
网络配置
2Conv3-64-BatchNorm-Scale-ReLU
Maxpool
2
Conv3-128-BatchNorm-Scale-ReLU
Maxpool
2Conv3-256-BatchNorm-Scale-ReLU
Maxpool
2
Conv3-512-BatchNorm-Scale-ReLU
Conv-512-BatchNorm-Scale-ReLU DenseBlock
SUM
该结构中采用3*3卷积核,步长为1,填充为1,表3.10中DenseBlock的结构如图所示。上一层所有的特得到512个特征图。sum操作将两个特征图对应相加,同样保持特征图的数量为512,然后输出。

在这里插入图片描述

图4.6 DenseBlock结构
4.4.2 解码

解码器生成输入汉字的序列。输出序列 Y 由一系列 1-of-k编码符号表示:
(4.2)
其中 K 是这个数据集总的字符数,包括部首、空间结构和一对大括号,C是序列的长度。
因为标签序列的长度L是固定的,而生成序列的长度C是可变的,所以本文通过计算每个时间步长的中间固定大小向量 来解决这个问题。是汉字图像相关部分在 t 时刻的动态表示,我们利用单向GRU和上下文向量逐步产生序列。每个预测字符的概率由上下文向量计算,当前GRU隐藏状态和前一个单词使用以下等式:
(4.3)
E表示嵌入矩阵, m 和 n是嵌入矩阵和GRU解析器的维数。GRU解析器采用两个单向GRU层来计算隐藏状态。
(4.4)
(4.5)
(4.6)
表示t-1时刻的隐藏状态,是GRU在 t 时刻的隐藏状态预测,基于覆盖的空间注意力模型被参数化为多层感知器。

                         (4.7)
           (4.8)
                      (4.9)

覆盖矢量F是基于过去注意概率的总和来计算的,表示在 t 时刻的空间注意系数,
表示注意维度,q表示滤波器Q的特征图
利用权重,我们计算上下文向量
(4.10)
编码器的网络结构已在前面编码部分进行了介绍,这里分别将介绍的两种编码结构与这里的解码器组合,一种是采取了特征融合,另一种没有采取特征融合,这里的解码器是两个具有256个单元的单向GRU,嵌入矩阵维数m和GRU解析器维数均设置为256,同时这里将GRU解码器中的Q的卷积核设置为5×5,将feature map的数量设置为128,该模型在一个GPU上进行小批量的训练,每一个批量包括150个样本。我们的目标是生成一个最有可能的序列从而判断最可能的字符,在译码过程中,采用beam search搜索算法[50]寻找最优译码路径,beam大小设置为10。
4.4.3 实验结果
在测试集上,将字符识别结果与真实性进行比较,以判断它们是否正确,从而得出准确率,即正确分类的样本在测试样本中所占的百分比,实验结果如表4.4所示。
(4.11)
表4.3 实验结果对比
Methods Accuracy 训练集
DFE+DLQDF [8] 92.72% CASIA-HWDB 1.0+1.1
基于CNN模型 [14] 94.77% CASIA-HWDB 1.0+1.1
改进的CNN [15] 96.79% CASIA-HWDB 1.0+1.1+1.2
Encoder-Decoder方法1(本文方法) 97.84% CASIA-HWDB 1.0+1.1
Encoder-Decoder方法2(本文方法) 98.15% CASIA-HWDB 1.0+1.1

采用深度学习的方法对手写体汉字进行识别,正确率明显高于传统方法,主要原因在于深度学习的方法提取特征的性能相较传统方法更有优势,这也印证了当下深度学习在各个领域的广泛运用,其中文献[14]的CNN模型比文献[8]在识别的准确率上高出2.05%就是最好的说明。文献[15]改进的CNN模型的方法的正确率较文献[8]高出2.02%,主要是文献[15]使用了数据增强,同时设计不同的CNN网络结构并采取了投票的方式。Encoder-Decoder方法1相比较文献[15],准确率提高了1.05%,相较主要是文献[15]是采取全字符建模的方法,该方法将汉字视为一个整体忽略了汉字本身的结构特点,而Encoder-Decoder方法1则是考虑了汉字的部首特点和结构特点,所提取的特征更多,信息更全面,能更好的表示字符,同时由于文献[15]在数据集中加入了 CASIA-HWDB 1.2数据集,而CASIA-HWDB 1.2与HWDB 1.0和HWDB 1.1没有重合,所以文献[15]多处理处理了3319类汉字,准确率也就有所下降。Encoder-Decoder方法2比Encoder-Decoder方法1在识别的准确率上提高了0.31%,主要是在编码方式上的差异,通过不同网络结构的结合进行多特征融合,对识别正确率的提高有一定的作用。
4.6 本章小结
卷积神经网络是一个十分有效的特征提取分类方法,自从这种特征提取的方式出现至今,就不断引起学者关注和重视,卷积神经网络模型在图像中的表现更加突出,它集合了特征提取和分类,所以本文主要基于卷积神经网络提取图像的特征图,编解码的方式虽然最先出现在机器翻译中,处理序列到序列的问题,但编解码框架在图像处理中也能发挥出很好的作用,而这里将这种框架应用在手写汉字的识别中,将图片处理为序列,用序列来表示单个汉字,该序列包含了单个汉字的部首信息和结构信息,这种方式的汉字识别相比汉字的全字符识别的方式更符合汉字本身的特点,。

第5章 总结与展望

5.1 总结
汉字种类繁多、书写风格因人而异、形近字在中文汉字中也占有较大的比重,这些问题都使得汉字识别困难重重。但是近些年来,随着深度学习的发展,在各个领域,尤其是图像领域收获了巨大成功,特别是卷积神经网络在提取特征方面的优越性极大促进了图像分类任务等一些课题的突破。也正是结合当下研究的趋势,本文使用深度学习的方法对手写汉字进行识别,本文的内容主要包括以下几点:
1.调研了光学字符识别的发展历程,同时调研了手写体字符识别,尤其是手写中文汉字识别的国内外研究现状,并对本文主要内容加以详细阐述。
2.分析了不同识别分类的方法,对深度学习方法进行了详细的介绍,对卷积神经网络、循环神经网络进行了详细介绍,同时介绍了本文所采取的神经网络优化方法,指出解决过拟合问题及加速网络训练的方法。
3.基于卷积神经网络,对汉字进行特征提取,同时结合循环神经网络的特点,使用编码-解码的方式对手写汉字进行识别分类,提高手写体汉字识别的准确率。
4.总结分析实验结果,使用卷积神经网络将手写体汉字作为整体,提取特征进行全字符识别,同样使用卷积神经网络进行手写体汉字提取特征的方式,但是它考虑到了汉字本身的特点,结合汉字的部首结构和二维空间结构进行识别,提升了手写汉字识别的准确率。
5.2 展望
本文的方法虽然对手写体汉字识别的效果不错,但是对手写体汉字的识别仍然需要不断的研究、改进。受限于时间及硬件条件,本文还是有些不足,希望以后着眼于以下几个方面进一步的研究、探讨:
1.本文的识别任务仅仅是针对于GB2312-80规定中常用的3755个汉字,但实际上汉字的数量超过五万,下一步可以考虑增加识别汉字的种类。
2.本文采取了深度学习的方法,但是该方法需要消耗大量的时间来训练模型,虽然本文使用了GPU和多线程方法加速训练,但所需时间仍然相对较长,下一步可以从训练时间上考虑,如研究相关算法加速训练,以消耗更少的时间。
3.本文的识别对象是在简单场景下的手写单字,下一步可以考虑自然场景下的识别。
4. 深度学习往往需要海量数据,虽然本文数据量已达百万,但是本文的分类任务类别较多,平均到每一类的样本数据上仍显得有些不足,下一步可以考虑获取更多的数据。

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_1406299528

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值