软件工程基于深度学习的图像文本切分与识别_第1页
软件工程基于深度学习的图像文本切分与识别_第2页
软件工程基于深度学习的图像文本切分与识别_第3页
软件工程基于深度学习的图像文本切分与识别_第4页
软件工程基于深度学习的图像文本切分与识别_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于深度学习的图像文本切分与识别ImagetextsegmentationAndrecognitionbasedondeeplearning内容摘要自从1929年德国科学家提出OCR的概念,各个国家就开始对此展开研究,OCR全称OpticalCharacterRecognition,即光学字符识别。一开始专家们并没有对字母、单词、文字、字形等进行研究,就像电话还没有被发明之前一样,人们觉得这是天方夜谭,研究要从基础开始,因此,但是的人们是从最简单的10个数字(0-9)开始的。由于历史原因,中文识别起步较晚,并且由于汉字字形与由字母组成的英文、法文等不同,汉字字形各异,组织结构复杂,机器寻求其中的规律比较困难,常常会因为偏旁部首出现切分错误,要精准地识别并不容易,可以说是相当有挑战性的。随着信息化水平不断的提升,图像时代已经越来越近,这是一件必然的事情,当我们拥有足够的科技,足够的能力,印刷文化将会被新的视觉文化所取代,识别技术的发展势不可挡,我们能很明显地感受到身边相关的技术,百度、谷歌等都有相关应用。在字符识别方面,可选择的有谷歌Tesseract、百度API、传统的字符特征提取、模板匹配法以及基于深度学习下的CNN字符识别。本文使用模板匹配法以及基于深度学习下的CNN字符识别相互结合的方法。关键词:OCR中文文本识别卷积神经网络文本检测AbstractSince1929,GermanscientistsputforwardtheconceptofOCR,Countriesbegantostudyit,andOCRfullnameopticalcharacterrecognition,Atthebeginning,expertsdidn'tstudyletters,words,characters,glyphs,etc.,justlikebeforethetelephonewasinvented,peoplethoughtitwasafantasy,andtheresearchshouldstartfromthefoundation,so,peoplestartedfromthesimplest10numbers(0-9).Forhistoricalreasons,Chineserecognitionstartedlate,andduetothedifferencesbetweenChinesecharactersandalphabeticEnglish,French,etc,Chinesecharactershavedifferentshapesandcomplicatedorganizationalstructure,soitisdifficultformachinestofindtherulesamongthem,Thereareoftensegmentationerrorsduetotheradicals,itisnoteasytoidentifyaccurately,whichisquitechallenging.Withthecontinuousimprovementofinformationtechnology,theimageagehasbecomemoreandmoreclose,whichisaninevitablething.Whenwehaveenoughtechnologyandability,theprintingculturewillbereplacedbythenewvisualculture,andthedevelopmentofrecognitiontechnologyisunstoppable,wecanclearlyfeeltherelevanttechnologyaroundus,Baidu,Googleandotherrelevantapplications.Intheaspectofcharacterrecognition,wecanchooseGoogleTesseract,baiduAPI,traditionalcharacterfeatureextraction,templatematchingandCNNcharacterrecognitionbasedondeeplearning.Inthispaper,templatematchingandCNNcharacterrecognitionbasedondeeplearningareused.Keywords:OCRChinesetextrecognitionCNNTextdetection广东东软学院本科生毕业设计(论文)目录第一章绪论 11.1研究背景及意义 11.2国内外研究历史以及现状 2第二章基础理论及相关技术 32.1卷积神经网络概述 32.2OCR与卷积神经网络技术 52.3OCR流程 62.3.1预处理 72.3.2计算轮廓和切割 82.3.3字符识别 9第三章系统设计与实验分析 103.1建立中文字体库 103.1.1生成汉字映射表 113.1.2收集字体文件 113.1.3文字图像生成 123.2图像处理 133.3文字识别 13第四章实验研究总结 164.1实验研究总结 134.2研究现状 13参考文献 17致谢 18第一章绪论1.1研究背景及意义生活中常常有一些时候,需要将手上的图像资料重新整理一遍,或者要把纸质材料输入计算机存储,每当这个时候,我们会觉得如果能够把手上的图像资料或者纸质材料通过某种手段、媒介,一下子就能由电子产品输出,而不是逐字逐句地手抄或者手动输出打印,那么就会方便很多,节省了大量地时间,也能减轻眼睛的负担,省心省力。随着科学技术的不断进步,人们的生活质量也而稳步上升,多媒体信息成为信息传递重中之重,图像信息更是因为丰富的信息内容和直观的展现方式而具有高度可研究价值。随着科技进步,我们能很明显地感受到身边相关的技术,百度、谷歌等都有相关应用。我们如今离图像时代已经越来越近,这是一件必然的事情,当我们拥有足够的科技,足够的能力,印刷文化将会被新的视觉文化所取代。科技是为了人类服务的,从这方面出发,这就对识别技术提出了更高的要求。举个例子,如果我们高速路的收费站采用全自动收费,那就意味着扫描识别的结果要清晰,处理速度要快,识别率要非常高,否则就会出错,会由于速度不够快而引起用户不满。因此,OCR技术在我们的生活具有重要的意义。现如今OCR技术已经有了显著的成果,在多个领域都有其用武之地,包括邮政编码的自动识别,政府交通部门的驾驶证自动检测,公民身份证的只能输入识别检测以及现如今的5G技术融入汽车自动驾驶,医疗上对X射线结果的自动诊断,学校的自动评卷,由此可见文本识别的在生活中无处不在且相当重要,然而在同时,因为汉字数量大,字体拥有形态种类多样,尤其笔画众多,字形结构极端复杂多变,这些使得对汉字图像文的识别更加困难。科学技术在发展,生产力在提高,人的需求也在增加,如今评判一个OCR产品的优劣也不仅仅是识别精准度,更包括识别速度、拒识率、用户界面的友好性以及产品的易用程度、稳定程度等等。通过结合深度学习技术,对模糊不清的低质量图像的识别是可以实现的。1.2国内外研究历史自从1929年OCR概念被提出以后,印刷体字体识别是首先被研究的,60年代IBM公司公开了OCR产品——IBMl287,即首款OCR技术产品问世以后,经过不断的技术革新,算法变换,传统的基于图像处理和统计机器学习的方法分辨率和识别率也大大提升。初期的OCR技术主要研究数字和字母,且被运用于邮政编码、票据、身份证、驾驶证等简单的印刷文本场景识别。目前,随着技术的快步革新,以及扫描媒介的多样化和推广,手写字体的识别也取得了令人瞩目的成就。文本检测框架DetectingTextinNaturalImagewithConnectionistTextProposalNetwork结合CNN和LSTM,用于复杂场景的文本检测,效果良好,是目前比较热门的、成熟的检测框架,美中不足的是效率不高。Pixel-Anchor是结合anchor-based和pixel-based的优点提出的框架,虽然框架创新性不高,但是想法新颖,并且能够良好检测长行的中文。RARE由空间变形网络和序列识别网络组成,适合低质量的图像文本检测,例如文字扭曲,纸张变形。FOTS是端到端的集成检测,计算速度是其显著优点,同时学习效率也更高。中文识别起步较晚,并且由于汉字字形与由字母组成的英文、法文等不同,汉字字形各异,组织结构复杂,机器寻求其中的规律比较困难,常常会因为偏旁部首出现切分错误,要精准地识别并不容易,可以说是相当有挑战性的。随着信息化水平不断的提升,以图像为主的多媒体信息迅速成为重要的信息传递媒介,图像中的文字数据包含丰富的语义信息与分析价值。1986年,国家863计划信息领域课题组织了清华大学、北京信息工程学院、沈阳自动化所三家单位联合进行中文OCR软件的开发工作。至1989年,清华大学率先推出了国内第一套中文OCR软件--清华文通TH-OCR1.0版,至此中文OCR正式从实验室走向了市场。而在接下来的三年,我国的汉字识别技术成果呈井喷式爆发,多个单位对印刷体汉字进行了多次检测识别,这些汉字字体包括了fangzheng_fangsong,fangzheng_heti,fangzheng_kaiti,其中包括3至5号字体,识别速度很快,识别精准度高。20世纪90年代初期,TH-OCR94系统被推出,这个包含了众多人心血的系统被认为是具有创新型、代表性的,它拥有超前的技术,领先当时的世界水准。我国高校开始对汉字识别的综合研究发生于20个世纪90年代中后期,在这之后,汉字识别检测技术在各个领域全面地取得成绩。其中TH-OCR97是佼佼者,它不仅可以完成印刷图像多文种多字体混合的识别输入,还能完成手写识别。几年来,中文OCR技术不断更新,市场扩大,全球各地都有用户使用相干产品。第二章基础理论及相关技术2.1卷积和人工神经网络在泛函分析中,卷积、旋积或摺积是通过两个函数f和g生成第三个函数的一种数学算子,表征函数f与g经过翻转和平移的重叠部分函数值乘积对重叠长度的积分。卷积运算是卷积神经网络中的核心,相当于图像处理中的“滤波器运算”。对于一个mxn大小的卷积核W=w11w12…w1nw21其对某一原图像进行卷积运算的过程为:卷积核中的每一个权值w分别和覆盖的原图像中所对应的像素x相乘,然后再求和。计算公式为:z=W1X1+W2X2+…+WmnXmn=k=1mnWkXk=事实上卷积就是一种加权求和,如下公式:cx,y把函数所有的s值和t值遍历一遍,然后函数f的值和函数g的值相乘再相加,得到c值。根据上面的式子,我们可以发现实际上卷积是一种以(x,y)为中心的加权求和。人工神经网络是一种模拟自然界的神经细胞的计算模型,我们类比两者之间的关系,就能很快明白人工神经网络是怎么工作的。输入层相当于自然界神经元的树突,它的作用就是输入信息,另外,就像树突有多个一样,输入的信息也可以是来自前一层的神经元;线性计算和激活函数相当于胞体,他是一种计算机制,决定是否激活从输入层输入的信息;显而易见的,输出层相当于神经元的轴突,他负责传递上一层的信息给下一层。单个的神经元只能做简单的数学运算,异运算和或运算是无法进行的,而大量的神经元组成的人工神经网络就能解决这个问题。我们假设对输入神经元p1,p2,p3,…,pn加权求和,对以上操作后的式子施加函数,就能够得到下面的公式,a是神经元的输出,b是偏置值:A=f(n)=fi=inpiwi+b=fw1,w2,…,wnp1由多个这样的神经元连接而成的人工神经网络就可以拥有各种各样的拓扑结构,inputlayer输入的数据要链接到hidinglayer1的每一个节点,hidinglayer1的每一个节点的输出数据又要连接到hidinglayer2的每一个节点,然后再输出,以此类推,可以有hidinglayer3、hidinglayer4等等,最后一层outputlayer的输出就是整个神经网络的输出。值得注意的是,并不是说卷积层的层数越多越好,这取决于数据的复杂程度。图(1-1)是神经网络结构图:图(1-1)2.2OCR与卷积神经网络技术卷积神经网络是把卷积和人工神经网络的思想结合在一起的网络。它是一类包含卷积计算且具有深度结构的前馈神经网络,对处理大型图像有优秀的能力,在计算机视觉领域有广泛应用。如场景识别,图像特征提取。卷积神经网络根据动物地视觉系统研究的,如S层对应感受野,C则对应就接收和回应。卷积神经网络一开始被应用于语音识别,当平移不变人工神经网络出现后,开始在医学领域应用,同时尝试着结合计算机视觉问题以期得到更广泛的应用。1998年,LeNet-5在手写数字识别中取得成功,卷积神经网关注度上升。由于其表征学习能力强,卷积神经网络在深度学习的概念被提出以后,得到空前的关注度。图(2-1)神经网络输入层(inputlayer)会对图像做一个简单预处理,首先式去均值化,去均值能够把数据样本贴合坐标,围绕坐标原点分布,避免了过拟。为了提高数据提取简便度,可以进行把数据变成(0,1)之间的小数。卷积层(hiddenlayer)可由多个卷积核组成,有多少图像输入通道就有多少卷积核,对他们进行点积累加可以得到一张功能图。举个例子,我们把通过三个通道得到的三张功能图的对应的位置相加,就能得到一张新卷积操作的功能图。一般来说,图片有红、绿、蓝三个通道。卷积层的计算是图像矩阵与卷积核点积的过程,即滤波。图(2-2)图(2-3)激活函数可以解决线性不可分的问题,如图(2-2),要用一条直线分开圆形和三角形,明显是做不到的,用激活函数加入非线性因素,这时候就可以使用激活函数来使数据可分,如图(2-3)。激活函数再神经网络中尤其重要,如果没有激活函数,那么线性不管经过多少层都仍然是线性。图(2-4)池化就是取区域平均或最大,假设4x4的数据表,分成4个2x2的区域,分别取其中的最大数,得到的新的2x2数据表,这个过程就是池化。如上图图(2-4),取左边图表左上的最大数6,左下的最大数3,右上的最大数8和右下的最大数4,组合在一起即右边图表。所谓的池化层特征不变性就是尺度不变性,当一张动物的图像被进行压缩时,我们仍然能看得出那是什么,这是因为图像压缩不会删除重要的特征,而我们判断物体是什么就只根据其重要特征进行的。一张图像可以包含非常丰富的信息,有繁多的特征,但是有一些信息是不重要的,或者重复的去除这一类信息就是池化层特征降维。全连接层的作用是实现分类,全连接层之前是在做特征提取,而这一层就是把被找到图像的各个特征组合在一起,然后寻找最符合要求的类,这就是全连接层。值得一提的是这一层的参数很多,可占整个网络的80%。什么是CNN把握图像局部特征?我们假设一个神经网络,它接受mxm个输入,有两个hiddenlayer,每一层都有mxm个神经元,第一层hiddenlayer有mxm个整数值输入,实际上就是神经网络的图像输入。第二层的每个神经元连接3x3范围内的值,把第二层hiddenlayer每个神经元的输入值和权重相乘,然后全部相加,产出mxm个输出。到这里我们就可以发现,这个神经网络并不是全连接的,第二层hiddenlayer的每一个节点只连接前一层的局部图像输入。把握局部特征会减少权值,运算时间。这个时候其实整个神经网络只有9个权值,因为他们实际上是共享的,如此这个网络的计算就很少了。cl2.get_weights()卷积第二层len(w)=1权值列表的长度是1w[].shape元素的维度权值列表的长度是1。唯一的元素的维度是(32,32,3,3)。第一个32对应着32个滤波器。后面的32*3*3是一个三维离散滤波器,取一个3*3区域,区域来自输入的32个通道,把它们放在一起滤,得到的通道是28*28,因此第二层hiddenlayer仍然输出32个通道,滤波器把输入的32个通道放一起过滤出每一个通道。1.计算卷积:convolve()2.调整像素:np.uint8()3.保存滤波后的图像:Image.fromarray().save()4.建立模型:model=Sequential()5.添加卷积层,有滤波器:model.add(Convolution2D())2.3OCR流程简单来说,OCR就是把图像输入电子产品通过扫描后,由计算机输出图像内容。计算机处理信息的方式不像自然界那么灵活,它只有0和1,图像文本信息也不例外,他的数据一样通过0、1进行记录识别。关于识别方法,OCR识别检测图像文本上的信息,主要有特征提取法和模式匹配法两种。特征提取识别法流程可以分为:1.对样本生成特征向量矩阵2.计算每一列的特征的平均值,和每一维度进行相应的减法运算3.特征用数据表示,计算他们的协方差矩阵4.针对协方差矩阵进行特征值和特征向量的计算5.对特征值排序6.取出前n个特征向量和特征值并回退。因此OCR特征提取就是将每个字符分解成组成字符的特征,接着将字符和分解而来的特征进行匹配。这种方法可以满足汉字字体多样性的需求。模式匹配识别法原理很简单,是一种暴力易用的方法,遍历母串,一旦发现有和字串完全符合的片段即匹配成功。在OCR文本识别中,则将每一个字符比较匹配。向系统输入一张文本页图像,系统会对页面上的文本朝向进行判断识别。假如图像是直接从电子仪器上截屏,那么识别很容易就能确定行线坐标,划分区域,这是因为截屏图像水平投影和垂直投影的情况都很理想。但是实际生活中我们可以发现所需要识别的图像并不是理想的,它可能是倾斜的,可能会明暗度差,甚至可能还有污渍,因此进行图像预处理是首先要做的事,预处理包括图像去噪和角度矫正。在进行角度矫正的工作中,首先要检测出图像的文本范围,这一步利用Sobel算子进行边缘检测。Sobel算子是计算机常用的视觉领域处理方法,图像中每个像素的都有四个灰度值,求它们的加权差。边缘检测之后用霍夫变换进行平空间到极坐标空间的转换,图像上的点会被分为不同的,属于孤立的点、连续的曲线或者连续的区域的子集,这一步称为特征检测。最后利用数学模型仿射变换旋转图像。模式匹配识别法原理很简单,是一种暴力易用的方法,遍历母串,一旦发现有和字串完全符合的片段即匹配成功。在OCR文本识别中,则将每一个字符比较匹配。传统文字识别技术就是在这个基础上进行的,但是对于长行文本,没有办法一下子就识别出来,只能切分文本行成数个单字,再对它们进行逐个识别。流程如下图图(1-2.1)图(1-2.1)2.3.1预处理我们向系统输入的图像如果是直接从电子仪器上截屏,那么识别很容易就能确定行线坐标,划分区域并标定各部分属性,这是因为截屏图像水平投影和垂直投影的情况都很理想。但假如我们拍摄下来的图像角度倾斜,那么完成行列划分就需要先将图片角度矫正。不仅如此,因为纸张的厚薄程度、颜色、透光度、反光度、平滑度和和字迹的清晰程度等等因素,都会造成识别的精准率。因此我们要先对这些因素进行排除处理,即去噪,然后再开始识别检测。上诉的内容都要在图像文本识别之前进行。预处理的工作有灰度化,二值化,版面矫正等等。灰度化是为了处理图像的亮度,它不包含其他信息。举个例子,把输入的图像进行灰度化处理,那么计算机会把图像的三个颜色通道的值设为相等,不管你的图像是蒙娜丽莎还是乘法口诀表,计算机都不会处理。彩色的图像一定要经过二值化,它能够大大减少图像的数据量,在图片文本识别中,二值化能够凸显轮廓,从而更好识别轮廓。用霍夫变换进行平空间到极坐标空间的转换,从而进行倾斜矫正。输入:图片路径过程:读取图像:cv2.imread(图片)非局部平均去噪:cv2.fastNlMeansDenoisingColored()转灰度图:cv2.cvtColor(img_c,cv2.COLOR_BGR2GRAY)二值化:cv2.threshold(()cv2.THRESH_OTSU+cv2.THRESH_BINARY)边缘检测:cv2.Sobel(gray,cv2.CV_8U,1,0,ksize=3)求直线斜率:hufu=binary.astype(np.uint8旋转图像:cv2.warpAffine输出图像:cv2.imwrite图(1-3.1)图(1-3.2)2.3.2计算轮廓和切割汉字字符切割是OCR的一大难题,主要原因是汉字的字形结构复杂多变,左右结合的汉字容易一个字被切成两个,排列密集的汉字则容易切割失败,值得一提的是自从有字符识别技术到现在,都没有一个能得到所有人认可的解决方案。以下是本次实验计算轮廓和切割汉字用到的部分函数:Non-LocalMeans():处理自然场景中图片信息冗杂的问题,能够较好地去噪cv2.findContours():接受两个参数,对轮廓进行检测,保留终点坐标。cv2.drawContours():是轮廓填充函数,里面可以有多个函数,能够指明要绘制轮廓地图像,轮廓个数,画第几个,轮廓颜色等信息cv2.RETR_EXTERNAL:表示只检测外轮廓cv2.CHAIN_APPROX_SIMPLE:压缩各个方向的元素,只保留终点坐标图(1-3.3)图(1-3.4)图(1-3.5)2.3.3字符识别文本识别让计算机“认字”的关键,我们都知道模式匹配识别法原理很简单,是一种暴力易用的方法,遍历母串,一旦发现有和字串完全符合的片段即匹配成功。在OCR文本识别中,则将每一个字符比较匹配。传统文字识别技术就是在这个基础上进行的,但是对于长行文本,没有办法一下子就识别出来,只能切分文本行成数个单字,再对它们进行逐个识别。由于汉字字形与由字母组成的英文、法文等不同,汉字字形各异,组织结构复杂,机器寻求其中的规律比较困难,常常会因为偏旁部首出现切分错误,要精准地识别并不容易。举个例子,我们要识别“好”字,但是实际结果出来,发现被切成“女”字和“子”字,为了解决这一问题,我们需要设计一个损失函数。第三章系统设计与实验分析3.1建立中文字体库在本文中,我们只需要对印刷体的中文进行识别,我们选用模板匹配的方法,因此需要生成一个有足够量的中文字体图片库,其中包括常用汉字、常见字体的图片。字体库的图片内容自己决定,可以选择多种字体,可以选择字体的旋转角度。但是并不是说图片库越大越好,图片数据大固然可以提高识别率,但同时也会增加匹配时间。3.1.1生成汉字映射表首先确定所需要的汉字,这里选用了常见的汉字,写入空白的txt文件中,建立字典,每一个汉字对应相应的ID,生成映射表利用pickle.dump读入内存,下面附上部分代码:输入:收集的汉字建立字典:d1=dict(zip('',range()))将字典写入文本:withopen("my.txt","wb")asmy:读入内存:pickle.dump()读入label:for()inlabel_dict.items()得到汉字映射表:label_dict图(1-1)图(1-2)图(1-1)是汉字对应label映射表,图(1-2)是我们收集的部分常用汉字。3.1.2收集字体文件字体文件选择适用于中文的字体,例如DroidSansFallback.ttf,考虑到字体多样性,此次设计选用了九种字体,作为中文字体数据集所需的字体:DroidSansFallbackmingliuSourceHanSansCN-Lightfangzheng_fangsongfangzheng_kaitiSourceHanSansCN-BoldSourceHanSansCN-Heavyfangzheng_hetiSourceHanSansCN-Normal3.1.3文字图像生成图像生成使用PIL工具,利用其中的汉字生成工具结合字体文件,生成汉字图片,此时可以设定我们想要的图片尺寸以及图片颜色。接下来写两个循环,内层循环是函子列表,外层循环是字体列表,按比例分开训练集和测试集。在读取汉字文件txt之后,我们定义好输入参数,定义用argparse包,源码如下(部分):1.汉字图像存储目录:parser.add_argument('--out_dir',…)2.字体文件路径:parser.add_argument('--font_dir',…)3.图像宽度:parser.add_argument('--width',…)4.图像高度:parser.add_argument('--height',…)5.字体与边缘的间隔:parser.add_argument('--margin',…)6.生成字体图像:classFont2Image(object):7.定义背景和字体颜色:font=ImageFont.truetype8.划分训练集和测试集:parser.add_argument('--test_ratio',…)9.打乱图像列表:random.shuffle代码运行之后会生成一个训练集,一个测试集。图(1-1.1)图(1-1.2)图(1-1.1)和图(1-1.2)分别是生成的mingliu字体图片和仿宋楷体图片。接下来我们可以对图片进行一些处理,对图像增强,比如说增加图片尺寸,适当膨胀,适当腐蚀,图像的膨胀和腐蚀都是建立在黑白像素地基础上的,能够把图片中极小的白色括大,把图片中极大的白色缩小,使图像更加合理。3.2图像处理要识别的图像首先要经过处理,不然可能会因为清晰度、反光、角度不正、磨损污渍等原因造成文本切割不成,文字提取失败。获得文本行后,需要进行单个字符的切割,将每个字符切割出来后以便于后续字符识别。输入:图片路径1.读取图像:cv2.imread(图片)2.灰度化转换:cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)3.二值化:cv2.threshold(()cv2.THRESH_OTSU+cv2.THRESH_BINARY)4.边缘检测:cv2.Sobel(gray,cv2.CV_8U,1,0,ksize=3)5.求直线斜率:hufu=binary.astype(np.uint86.6.旋转图像:cv2.warpAffine得到字符后,我们首先要对图像进行预处理,包括图像去噪、二值化、图像边缘检测和切割、图像角度矫正和统一分辨率。减弱或者去除不需要的信息,在进行角度矫正的工作中,首先要检测出图像的文本范围,边缘检测之后用霍夫变换进行平空间到极坐标空间的转换,最后利用数学模型仿射变换旋转图像。3.3文字识别像神经网络输入图片样本之后,经过卷积层的处理后,输出一个大于0小于1的数,如果输出的数值离1越近,那就证明和字符越接近。本次实验所使用的深度学习框架是Tensorflow,我们建立一个基本的网络做文字识别。导入keras相关库:fromkeras.modelsimportSequential…模型初始化:model=Sequential()创建第一个卷积层:model.add(Convolution2D()…)创建全连接层:model.add(Flatten())创建输出层:model.add(Dense()…)设置损失函数和优化算法:pile(…,metrics=[])训练:model.fit()图(1-3.1)图(1-3.2)图(1-3.1)是损失函数,图(1-3.2)是准确率,我们可以看到准确率随着损失函数的下降而上升,数值接近1训练好模型之后就可以进行汉字识别,当然在此之前还要对每张图片尺寸进行标准化和归一化。我们把要识别的图片按照顺序进行编号,依次放入文件夹中,识别时只需要读取文件夹路径,对里面内容逐一识别。图(1-3.3)图(1-3.4)图(1-3.3)是单字切分,图(1-3.4)是测试结果。广东东软学院本科生毕业设计(论文)第四章实验研究总结4.1实验研究总结自从1929年德国科学家提出OCR的概念,各个国家就开始对此展开研究,OCR全称OpticalCharacterRecognition,即光学字符识别。一开始专家们并没有对字母、单词、文字、字形等进行研究,就像电话还没有被发明之前一样,人们觉得这是天方夜谭,研究要从基础开始,因此,但是的人们是从最简单的10个数字(0-9)开始的。图片在被检测之前要经过版面分析和预处理,处理过的图片会被切成大小一样的单字,然后再开始匹配,识别使用的是基于Tensorflow的模板匹配法,结合卷积神经网络,完成实验。在本次实验中,一开始就在汉字字体图片库上遇到难题。起初我使用的是python库中的pygame,生成由Unicode的0x4E00到0x9FA5的图片库,生成的结果当然是有两万多张汉字图片,并且只是一种字体的。这不是我想要的结果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论