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

下载本文档

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

文档简介

摘要自从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,…,wnp1p2由多个这样的神经元连接而成的人工神经网络就可以拥有各种各样的拓扑结构,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的图片库,生成的结果当然是有两万多张汉字图片,并且只是一种字体的。这不是我想要的结果,我只需要我们常用到的汉字就可以了,毕竟生僻字太多而且出现的机率极低,会大大减低处理速度并且造成空间浪费。后来把事先找好的所需要的汉字写入txt并存入内存,利用font方法,解决了难题。接下来是图像预处理的问题,在灰度化、二值化等没有差错,但是匹配不成功,检查后发现是没有对图像进行标准化,会因为大小等因素造成失败。4.2研究现状初期的OCR技术主要研究数字和字母,且被运用于邮政编码、票据、身份证、驾驶证等简单的印刷文本场景识别。随着技术的快步革新,以及扫描媒介的多样化和推广,手写字体的识别也取得了令人瞩目的成就。文本检测框架DetectingTextinNaturalImagewithConnectionistTextProposalNetwork结合CNN和LSTM,用于复杂场景的文本检测,效果良好,是目前比较热门的、成熟的检测框架,美中不足的是效率不高。Pixel-Anchor是结合anchor-based和pixel-based的优点提出的框架,虽然框架创新性不高,但是想法新颖,并且能够良好检测长行的中文。RARE由空间变形网络和序列识别网络组成,适合低质量的图像文本检测,例如文字扭曲,纸张变形。FOTS是端到端的集成检测,计算速度是其显著优点,同时学习效率也更高。如今汉字识别检测技术在各个领域全面地取得成绩。其中TH-OCR97是佼佼者,它不仅可以完成印刷图像多文种多字体混合的识别输入,还能完成手写识别。几年来,中文OCR技术不断更新,市场扩大,全球各地都有用户使用相干产品。现在OCR在我们生活中可以说是无处不在了,二维码的扫描,无人超市,高铁站的人脸识别,医疗领域的病理自动检测,包括邮政编码的自动识别,政府交通部门的驾驶证自动检测,公民身份证的只能输入识别检测以及现如今的5G技术融入汽车自动驾驶,等都可以发现OCR的存在。参考文献[1]王学梅.OCR文字识别系统的应用[A].山东文宇工学院,2019.[2]李国强,周贺,马锴,张露.特征分组提取融合深度网络手写汉字识别[J/OL].计算机工程与应用.2019[3]夏昌新,莫浩泓,王成鑫,王瑶,闫仕宇.基于深度学习的图像文字识别技术研究与应用[A]南华大学计算机学院.2019[4]王来兵.基于贝叶斯与生成式对抗网络的手写字文本识别算法[A].滁州职业技术学院.2019[5]徐华鹏.基于多模态表征的细粒度图像分类方法的研究[A].东南大学,2018[6]周一枫.基于图像识别的敏感文件检测技术研究[A].浙江理工大学.2019[7]唐结玲.基于视频流的文本识别研究与实现[A].电子科技大学.2019[8]刘艺.基于深度学习的低质量中文图像ORC识别算法研究[A].电子科技大学.2019[9]裴宸平.基于深度学习的场景图像文本检测技术:[A]河南大学.20187[10]薛玉磊.图像识别云服务自动[J].清远职业技术学院测试系统设计玉实现[A]北京邮电大学.2019[11]汪一文.深度卷积神经网络在OCR问题中的应用研究[A],电子科技大学,2018.[12]于玉梅.面向医学文献的图像模式识别关键技术研究[A],大连理工大学,2018.[13]姜毅,彭清畅,徐娟.基于图元识别的PCR文本图像矫正算法分析[A],中车青岛四方机车车辆股份有限公司,2019.致谢大学四年走过,这篇论文将是我大学生涯中最后一笔,也是最重要一笔。自从开始写我的毕业设计两个月以来,我遇到了非常多的困难,有的是软件安装的问题,有的是计算机本身硬件故障,有的是环境配置不成功,系统设计过程中我也想过要更换题目,因为我对OCR的技术以及实现流程知之不多,相当于学习一个全新的领域,因此实现过程非常困难,幸运的是如今的网络发达,有技术的网友也很热心,加上同学之间的互相交流讨论,互相帮助,这些问题都逐一得到解决。今年的毕业设计以及答辩可能是最特殊的,由于世界范围的疫情,一切问题只能网上解决,在此期间,特别感谢我的父母给予的关心爱护。在本文的撰写过程中,我要特别感谢我的指导老师。从本文选题开始,我的知道老师一直都非常关心论题的合理性以及可实现性,老师帮我们收集资料,提供学习道具,指导论文的格式、内容以及指出不合理的地方。对我来说,在最后阶段老师对我的指导是最重要的,因为当时我的计算机除了一些问题,给了我不小的压力,但是我的指导老师对我的关心使我振作信心,完成我的毕业实际。因此我要在这里由衷地对我的老师说一声谢谢!毕业之际,感慨万千。写完这一笔,意味着我要和我四年的同窗好友说再见,要对培育我的老师们说再见,要对我亲爱的母校说再见,即使再舍不得,我们也要互相道别,因为此后可能就没有机会了。再见以及谢谢你们!

电脑不启动故障诊治了解电脑启动的过程在诸多电脑故障中,无法正常启动是最令用户头痛的事了。笔者长期从事维护电脑的工作,在这个方面积累了一些经验,现在就将这些经验整理归纳出来与朋友们分享。本文将以家用电脑和windows98操作系统为基础,介绍电脑无法正常启动故障的诊治。要想准确地诊断电脑不启动故障,首先要了解的起动过程,当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还没有完全稳定,主板控制芯片组会根据CMOS中的CPU主频设置向CPU发出一个Reset(重置)信号,让CPU初始化,电压完全稳定后,芯片组会撤去Reset信号,CPU马上从地址FFFF0H处执行一条跳转指令,跳到系统BIOS中真正的启动代码处。系统BIOS首先要做的事情就是进行POST(PowerOnSelfTest,加电自检)。POST的主要任务是检测系统中的一些关键设备(电源、CPU芯片、BIOS芯片、定时器芯片、数据收发逻辑电路、DMA控制器、中断控制器以及基本的64K内存和内存刷新电路等)是否存在和能否正常工作,如内存和显卡等。自检通过后,系统BIOS将查找显示卡的BIOS,由显卡BIOS来完成显示卡的初始化,显示器开始有显示,自此,系统就具备了最基本的运行条件,可以对主板上的其它部分进行诊断和测试,再发现故障时,屏幕上会有提示,但一般不死机,接着系统BIOS将检测CPU的类型和工作频率,然后开始测试主机所有的内存容量,内存测试通过之后,系统BIOS将开始检测系统中安装的一些标准硬件设备,这些设备包括:硬盘、CD-ROM、软驱、串行接口和并行接口等连接的设备,大多数新版本的系统BIOS在这一过程中还要自动检测和设置内存的相关参数、硬盘参数和访问模式等。标准设备检测完毕后,系统BIOS内部的支持即插即用的代码将开始检测和配置系统中已安装的即插即用设备。每找到一个设备之后,系统BIOS都会在屏幕上显示出设备的名称和型号等信息,同时为该设备分配中断、DMA通道和I/O端口等资源。最后系统BIOS将更新ESCD(ExtendedSystemConfigurationData,扩展系统配置数据)。ESCD数据更新完毕后,系统BIOS的启动代码将进行它的最后一项工作,即根据用户指定的启动顺序从软盘、硬盘或光驱启动。以从C盘启动为例,系统BIOS将读取并执行硬盘上的主引导记录,主引导记录接着从分区表中找到第一个活动分区,然后读取并执行这个活动分区的分区引导记录,而分区引导记录将负责读取并执行IO.SYS,这是Windows最基本的系统文件。IO.SYS首先要初始化一些重要的系统数据,然后就显示出我们熟悉的蓝天白云,在这幅画面之下,Windows将继续进行DOS部分和GUI(图形用户界面)部分的引导和初始化工作,一切顺利结束,电脑正常启动。根据故障现象诊治了解电脑启动的过程,故障就好判断了,下面我们就根据故障现象开始诊治了:现象一:系统完全不能启动,见不到电源指示灯亮,也听不到冷却风扇的声音。这时,基本可以认定是电源部分故障,检查:电源线和插座是否有电、主板电源插头是否连好,UPS是否正常供电,再确认电源是否有故障,最简单的就是替换法,但一般用户家中不可能备有电源等备件,这时可以尝试使用下面的方法(注意:要慎重):先把硬盘,CPU风扇,或者CDROM连好,然后把ATX主板电源插头用一根导线连接两个插脚(把插头的一侧突起对着自己,上层插脚从左数第4个和下层插脚从右数第3个,方向一定要正确),然后把ATX电源的开关打开,如果电源风扇转动,说明电源正常,否则电源损坏。如果电源没问题直接短接主板上电源开关的跳线,如果正常,说明机箱面板的电源开关损坏。现象二:电源批示灯亮,风扇转,但没有明显的系统动作。这种情况如果出现在新组装电脑上应该首先检查CPU是否插牢或更换CPU,而正在使用的电脑的CPU损坏的情况比较少见(人为损坏除外),损坏时一般多带有焦糊味,如果刚刚升级了BIOS或者遭遇了CIH病毒攻击,这要考虑BIOS损坏问题(BIOS莫名其妙的损坏也是有的),修复BIOS的方法很多杂志都介绍过就不重复了;确认CPU和BIOS没问题后,就要考虑CMOS设置问题,如果CPU主频设置不正确也会出现这种故障,解决方法就是将CMOS信息清除,既要将CMOS放电,一般主板上都有一个CMOS放电的跳线,如果找不到这个跳线可以将CMOS电池取下来,放电时间不要低于5分钟,然后将跳线恢复原状或重新安装好电池即可;如果CPU、BIOS和CMOS都没问题还要考虑电源问题:PC机电源有一个特殊的输出信号,称为POWERGOOD(PG)信号,如果PG信号的低电平持续时间不够或没有低电平时间,PC机将无法启动。如果PG信号一直为低电平,则PC机系统始终处于复位状态。这时PC机也出现黑屏、无声响等死机现象。但这需要专业的维修工具外加一些维修经验,因此,建议采用替换法;电源没有问题就要检查是否有短路,确保主板表面不和金属(特别是机箱的安装固定点)接触。把主板和电源拿出机箱,放在绝缘体表面,如果能启动,说明主板有短路现象;如果还是不能启动则要考虑主板问题,主板故障较为复杂,可以使用替换法确认,然后更换主板。现象三:电源指示灯亮,系统能启动,但系统在初始化时停住了,而且可以听到嗽叭的鸣叫声(没有视频):根据峰鸣代码可以判断出故障的部位。ccid_page/AwardBIOS1短声:说明系统正常启动。表明机器没有问题。2短声:说明CMOS设置错误,重新设置不正确选项。1长1短:说明内存或主板出错,换一个内存条试试。1长2短:说明显示器或显示卡存在错误。检查显卡和显示器插头等部位是否接触良好或用替换法确定显卡和显示器是否损坏。1长3短:说明键盘控制器错误,应检查主板。1长9短:说明主板FlashRAM、EPROM错误或BIOS损坏,更换FlashRAM。重复短响:说明主板电源有问题。不间断的长声:说明系统检测到内存条有问题,重新安装内存条或更换新内存条重试。AMIBIOS1短:说明内存刷新失败。更换内存条。2短:说明内存ECC较验错误。在CMOS中将内存ECC校验的选项设为Disabled或更换内存。3短:说明系统基本内存检查失败。换内存。4短:说明系统时钟出错。更换芯片或CMOS电池。5短:说明CPU出现错误。检查CPU是否插好。6短:说明键盘控制器错误。应检查主板。7短:说明系统实模式错误,不能切换到保护模式。8短:说明显示内存错误。显示内存有问题,更换显卡试试。9短:说明BIOS芯片检验和错误。1长3短:说明内存错误。内存损坏,更换。1长8短:说明显示测试错误。显示器数据线没插好或显示卡没插牢。现象四:系统能启动,有视频,出现故障提示,这时可以根据提示来判断故障部位。下面就是一些常见的故障提示的判断:一、提示“CMOSBatteryStateLow”原因:CMOS参数丢失,有时可以启动,使用一段时间后死机,这种现象大多是CMOS供电不足引起的。对于不同的CMOS供电方式,采取不同的措施:1.焊接式电池:用电烙铁重新焊上一颗新电池即可;2.钮扣式电池:直接更换;3.芯片式:更换此芯片,最好采用相同型号芯片替换。如果更换电池后时间不长又出现同样现象的话,很可能是主板漏电,可检查主板上的二极管或电容是否损坏,也可以跳线使用外接电池,不过这些都需要有一定的硬件维修基础才能完成。二、提示“CMOSChecksumFailure”CMOS中的BIOS检验和读出错;提示“CMOSSystemOptionNotSet”,CMOS系统未设置;提示“CMOSDisplayTypeMismatch”,CMOS中显示类型的设置与实测不一致;提示“CMOSMemorySizeMismatch”,主板上的主存储器与CMOS中设置的不一样;提示“CMOSTime&DateNotSet”,CMOS中的时间和日期没有设置。这些都需要对CMOS重新设置。三、提示“KeyboardInterfaceError”后死机原因:主板上键盘接口不能使用,拔下键盘,重新插入后又能正常启动系统,使用一段时间后键盘无反应,这种现象主要是多次拔插键盘引起主板键盘接口松动,拆下主板用电烙铁重新焊接好即可;也可能是带电拔插键盘,引起主板上一个保险电阻断了(在主板上标记为Fn的东西),换上一个1欧姆/0.5瓦的电阻即可。四、自检过程中断在xxxKCache处这表示主板上Cache损坏,可以在CMOS设置中将“ExternalCache”项设为“Disable”故障即可排除。同理,在自检主板部件时出现中断,则可以认为该部件损坏,解决方法一般可以在CMOS中将其屏蔽,如果不能屏蔽该部件最好更换主板。五、提示“FDDControllerFailure”BIOS不能与软盘驱动器交换信息;提示“HDDControllerFailure”,BIOS不能与硬盘驱动器交换信息。应检查FDD(HDD)控制卡及电缆。六、提示“8042GateA20Error”8042芯片坏;提示“DMAError”,DMA控制器坏。这种故障需要更换。七、提示“DisplaySwitchNotProper”主板上的显示模式跳线设置错误,重新跳线。八、提示“KeyboardisLock...Unlockit”键盘被锁住,打开锁后重新引导系统。九、IDE接口设备检测信息为:“DetectingPrimary(或Secondary)Master(或Slave)...None”表示该IDE接口都没有找到硬盘,如果该IDE口确实接有硬盘的话,则说明硬盘没接上或硬盘有故障,可以从以下几方面检查:1、硬盘电源线和数据线是否接触不良,或换一根线试试;2、CMOS设置有无错误,进入CMOS将“PrimaryMaster”、“PrimarySlave”、“SecondaryMaster”三项的的“TYPE”都设置成“Auto”;3、替换法确认硬盘本身有故障。十、IDE接口设备检测信息下面显示“Floppydisk(s)fail(40)”出错信息表示CMOS所指定的软盘驱动器有问题。判断和解决的方法与硬盘相似。现象五:系统不能引导。这种故障一般都不是严重问题,只是系统在找到的用于引导的驱动器中找不到引导文件,比如:BIOS的引导驱动器设置中将软驱排在了硬盘驱动的前面,而软驱中又放有没有引导系统的软盘或者BIOS的引导驱动器设置中将光驱排在了硬盘驱动的前面,而光驱中又放有没有引导系统的光盘,这个都很简单,将光盘或软盘取出就可以了,实际应用中遇到“DiskBootFailure,InsertSystemDiskAndPressEnter”的提示,多数都是这个原因。如果是硬盘不能引导的话一般有两种情况:一种是硬盘数据线没有插好,另一种就是硬盘数据损坏。前者一般多会出现硬盘容量检测不正确和引导时出现死机的现象;后者则是干脆找不到引导文件或提示文件损坏。前者只需重新连接好数据线即可;后者则需要用win98的启动软盘或启动光盘启动,根据实际情况来定:一、提示“Invalidpartitiontable”或“NotFoundany[activepartition]inHDDDiskBootFailure,InsertSystemDiskAndPressEnter”,这说明找不到硬盘活动分区,需要对硬盘重新分区。二、提示“Missoperationsyste”,说明硬盘活动分区需要重新格式化(formatc:/s)。三、提示“InvalidsystemdiskReplacethedisk,andthenpressanykey”或显示“StartingWindows98…”时出现死机,说明硬盘上的系统文件丢失了或损坏,使用“sysc:”,命令传递系统文件给c盘,再将C拷贝给c盘。现象六:硬盘可以引导,但Windows不能正常启动,也不能进入安全模式。这种情况表明Windows98出现了严重的错误,首先,用杀毒软件查杀病毒,看是不是病毒造成的,如果没有发现病毒可以用以下方法试一试。一、直接将接口卡与各个外设都拨去,再插回去,并调整接口卡上的设置(如果可以的话)来检查是否是硬件冲突造成,开机看看是否可正常进入Windows。二、检查CMOS中的设置是否有不正确的地方,若不清楚,可选择LoadBiosDefault项目,然后重开机,开机看是否可正常进入Windows。三、在启动时按下F8键,一般会出现6个选项(如果安装了DOS6.22则出现7个选项)选

温馨提示

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

评论

0/150

提交评论