基于matlab的文字识别算法课程设计报告_第1页
基于matlab的文字识别算法课程设计报告_第2页
基于matlab的文字识别算法课程设计报告_第3页
基于matlab的文字识别算法课程设计报告_第4页
基于matlab的文字识别算法课程设计报告_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、-. z.摘 要本课程设计主要运用MATLAB的仿真平台设计进展文字识别算法的设计与仿真。也就是用于实现文字识别算法的过程。从图像中提取文字属于信息智能化处理的前沿课题,是当前人工智能与模式识别领域中的研究热点。由于文字具有高级语义特征,对图片容的理解、索引、检索具有重要作用,因此,研究图片文字提取具有重要的实际意义。又由于静态图像文字提取是动态图像文字提取的根底,故着重介绍了静态图像文字提取技术。随着计算机科学的飞速开展,以图像为主的多媒体信息迅速成为重要的信息传递媒介,在图像中,文字信息如新闻标题等字幕包含了丰富的高层语义信息,提取出这些文字,对于图像高层语义的理解、索引和检索非常有帮助。

2、关键字:文字识别算法;静态图像文字提取;检索-. z.目录 TOC o 1-3 h z u HYPERLINK l _Toc5334989281 课程设计目的 PAGEREF _Toc533498928 h 3HYPERLINK l _Toc5334989292 课程设计要求 PAGEREF _Toc533498929 h 4HYPERLINK l _Toc5334989303 相关知识 PAGEREF _Toc533498930 h 5HYPERLINK l _Toc5334989314 课程设计分析 PAGEREF _Toc533498931 h 8HYPERLINK l _Toc5334

3、989325 系统实现 PAGEREF _Toc533498932 h 9HYPERLINK l _Toc5334989336 系统测试与分析 PAGEREF _Toc533498933 h 17HYPERLINK l _Toc5334989346.1 文字识别算法仿真结果 PAGEREF _Toc533498934 h 17HYPERLINK l _Toc5334989356.2 基于字符及单词的识别 PAGEREF _Toc533498935 h 19HYPERLINK l _Toc5334989366.2.1 基于字符的识别 PAGEREF _Toc533498936 h 19HYPER

4、LINK l _Toc5334989376.2.2 基于单词的识别 PAGEREF _Toc533498937 h 20HYPERLINK l _Toc5334989386.3 现存算法的问题 PAGEREF _Toc533498938 h 21HYPERLINK l _Toc5334989396.3.1 大多文字识别方法依赖于人工定义的特征 PAGEREF _Toc533498939 h 21HYPERLINK l _Toc5334989406.3.2 脱离上下文的字符识别易造成显著的歧义 PAGEREF _Toc533498940 h 21HYPERLINK l _Toc533498941

5、6.3.3 简单的单词整体识别有着较大的局限性 PAGEREF _Toc533498941 h 22HYPERLINK l _Toc5334989426.3.4 训练样本制作繁琐 PAGEREF _Toc533498942 h 22HYPERLINK l _Toc5334989437 参考文献 PAGEREF _Toc533498943 h 23-. z.1 课程设计目的图像文字提取又分为动态图像文字提取和静态图像文字提取两种,其中,静态图像文字提取是动态图像文字提取的根底,其应用围更为广泛,对它的研究具有根底性,所以本文主要讨论静态图像的文字提取技术。静态图像中的文字可分成两大类:一种是图像

6、中场景本身包含的文字, 称为场景文字; 另一种是图像后期制作中参加的文字,称为人工文字,如右图所示。场景文字由于其出现的位置、小、颜色和形态的随机性,一般难于检测和提取;而人工文字则字体较规、大小有一定的限度且易识别,颜色为单色,相对与前者更易被检测和提取,又因其对图像容起到说明总结的作用,故适合用来做图像的索引和检索关键字。对图像中场景文字的研究难度大,目前这方面的研究成果与文献也不是很丰富,本文主要讨论图像中人工文字提取技术。静态图像中文字的特点静态图像中文字本文特指人工文字,下同具有以下主要特征:1文字位于前端,且不会被遮挡;2文字一般是单色的;3文字大小在一幅图片中固定,并且宽度和高度

7、大体一样,从满足人眼视觉感受的角度来说,图像中文字的尺寸既不会过大也不会过小;4文字的分布比拟集中,排列一般为水平方向或垂直方向;6多行文字之间,以及单行各个字之间存在不同于文字区域的空隙。在静态图片文字的检测与提取过程中,一般情况下都是依据上述特征进展处理的。数字图象处理静态图像文字提取一般分为以下步骤:文字区域检测与定位、文字分割与文字提取、文字后处理。其流程如下图。图1 静态文字处理流程图2 课程设计要求在高速开展的计算机软硬件技术的支撑下,多媒体技术的开展非常迅速,计算机技术从传统的办公和计算逐渐向人工智能和数字娱乐开展。在人工智能技术中,对环境信息的拾取处理和响应显得尤为重要,其中文

8、本信息占环境信息很大一局部,为了使人工智能系统更为完善,则需要系统能够像人眼一样对周围环境信息进展理解,尤其是环境信息中的文本信息。实验说明,人类日常生活中,50%以上的信息量来源于眼睛捕捉的周围环境的图像,人眼可以快速捕捉到图像中感兴趣的信息,而对于计算机来说,一幅图像仅仅是杂乱的数据,如何让计算机想人眼一样快速读取图像中的信息并进展分类及检索等相应处理,一直是多年来计算机视觉和模式识别研究者们探索的问题,如果能很好解决这些问题,能给工业生产及国防科技带来巨大的改良。文字是信息存储和传递的重要载体,在很多由摄像设备拍摄的图片中,都存在或多或少的文字,比方路牌、店名、车站牌、商品简介等,识别图

9、片中的文字对计算机理解图像的整体容有非常重大的作用。如何将图片中的文字信息抽象出来形成具有完整语义的信息,再将其表达出来用于信息传递,从而辅助人类的生产和生活是研究计算机视觉的学者们多年来一直致力于解决的问题。研究如何对自然场景图片中的字符进展识别,提取出有用信息,在获取图片文本信息的各个领域都有极大的商业价值。场景文字识别在日常生活也有着重要的地位,例如车牌的识别,盲人对周边环境信息的获取、图书馆管理的数字化和髙效化,以及网络中对指定的容的图像和视频的检索等。自然场景文本识别,就是将提取出来的自然场景图片中的进展识别,提取出信息用于进一步的处理。在对场景文字识别的研究中,获取自然场景图片时候

10、,由于背景物体、光线、阴影、拍摄角度引起的图片背景千变万化,摄像器材的精度、拍摄人员的技术等软硬件的不同为拍摄同样的自然场景图片也带来了相当大的差异,被拍摄的图片中包含的文字大小、颜色、书写风格的各不一样等因素都为自然场景文字识别的实现增加的相当的难度。需要对自然场景图片中的识别首先需要对图片中的文本进展定位,然后再对己经准确定位的图片进展识别。文本定位技术作为整个自然场景文本信息获取系统中的根底技术,已经得到较好开展,一样地,文本识别技术在近年来也得到了比拟好的开展,但是由于文本的复杂性和随机性,较文本定位技术来说,文本识别技术开展较为缓慢。3相关知识1. 在Matlab中调用i1=imre

11、ad8.jpg,可得到原始图像,如下图:图2文字识别算法调制器模型 2. 调用i2=rgb2grayi1,则得到了灰度图像,如下图:图3 灰度图像调用a=sizei1;b=sizei2;可得到:a=3,b=2 即三维图像变成了二维灰度图像3. 调用i3=i2=thresh;其中thresh为门限,介于图4所示之间图4 thresh门限值图5 取得二值得到二值图像,如下图:图6 二值图像4. 把二值图像放大观察,可看到离散的黑点 对其采用腐蚀膨胀处理,得到处理后的图像,如下图图7 腐蚀膨胀处理后的二值图像可见,腐蚀膨胀处理后的图像质量有了很大的改观。横向、纵向分别的腐蚀膨胀运算比横向、纵向同时的

12、腐蚀膨胀运算好上很多。5、对腐蚀膨胀后的图像进展Y方向上的区域选定,限定区域后的图像如下图: 扫描方法:中间往两边扫。6、对腐蚀膨胀后的图像进展*方向上的区域选定,限定区域后的图像如图11所示: 扫描方法:两边往中间扫,纵向扫描后的图像与原图像的对照。7. 调用i8=ii*Y=1,使背景为黑色0,字符为白色1,便于后期处理。8. 调用自定义函数字符获取函数i9=getchari8。9、调用自定义的字符获取函数对图像进展字符切割,并把切割的字符装入一维阵列。 10.调用以下代码,可将阵列word中的字符显示出来。for j=1:um %um为统计的字符个数subplot5,8,j,imshoww

13、ordj,titleint2strj; %显示字符 end11. 调用以下代码,将字符规格化,便于识别: for j=1:um wordj=imresizewordj,40 40; %字符规格化成4040end 12. 调用以下代码创立字符集:code=char由于作者水平有限书中难免存在缺点和疏漏之处恳请读批评指正,。;将创立的字符集保存在一个文件夹里面,以供匹配时候调用。13. 字符匹配采用模板匹配算法:将现有字符逐个与模板字符相减,认为相减误差最小的现有字符与该模板字符匹配。图8 字符匹配也就是说,字符A与模板字符T1更相似,我们可以认为字符集中的字符T2就是字符A。经模板匹配。 14、

14、调用以下代码,将字符放入newt*t.t*t文本:new=newt*t,.t*t; c=fopennew,a+; fprintfc,%sn,Code1:um; fclosec; 4 课程设计分析1、算法具有局限性。对于左右构造的字符如:川容易造成误识别,川字将会被识别成三局部。当图片中文字有一定倾斜角度时,这将造成识别困难。2、模板匹配效率低。对于处理大小为m&TImes;m的字符,假设有n个模板字符,则识别一个字符至少需要m&TImes;mn2次运算,由于汉字有近万个,这将使得运算量十分巨大!此次字符识 别一共花了2.838秒。3、伸缩围比拟小。对于受污染的图片,转换成二值图像将使字符与污染

15、源混合在一起。对于具体的图片,需反复选择适宜的thresh进展二值化处理,甚至在处理之前必须进展各种滤波。5 系统实现文字识别算法仿真代码如下:function Stroke= StrDetect01(LeftD,Y1,Y2,ST,PT)% ST为构造阈值,为了指定高度和宽度构造变化的不同SL=0;SR=0;SV=0;Count=0;%PT=5; % 突变的阈值Str=T; % T表示构造未定,Str用于保存当前的根本构造Stroke=T; % 用于保存根本构造Range=Y2-Y1+1; % 字符的宽度或者高度for j=Y1:Y2 Count=Count+1; if (abs(LeftD(

16、j)PT) if (LeftD(j)0) SR=SR+1; else SV=SV+1; end end else % 检测到突变的决策 if (Count=fi*(Range/4)+1) % 设定字符轮廓可能发生的突变围 if (SL=3)&(SR=3) Str=C; else if (SV=2*(SL+SR)&(ma*(SL,SR)3)|(min(SL,SR)SR)&(SL=0.5*SV)&(SR(SR+SV) Str=L; else if (SRSL)&(SR=0.5*SV)&(SL(SR+SV) Str=R; else if (ma*(SL,SR)=3)&(min(SL,SR)=2) S

17、tr=C; end end end end end Stroke=Stroke Str; end if (j=2+Y1)&(j=fi*(Range/4)+1) % 发生突变后,剩余局部可能无法形成字符构造if (SL=ST)&(SR=ST) Str=C;else if (SV=2*(SL+SR)&(ma*(SL,SR)3)|(min(SL,SR)SR)&(SL=0.5*SV)&(SR=(SR+SV) Str=L; else if (SRSL)&(SR=0.5*SV)&(SL=(SR+SV) Str=R; else if (ma*(SL,SR)=3)&(min(SL,SR)=2) Str=C;

18、end end end end endStroke=Stroke Str; function Numeral=Recognition(StrokeTop,StrokeLeft,StrokeRight,StrokeBottom,p)% 采用四边的轮廓构造特征和笔划统计仅针对 0 和 8识别残缺数字% p 是用于识别 0和8 的底部补充信息StrT=T;StrL=T;StrR=T;StrB=T;RStr=T; % 用于保存识别出的数字temp *T=size(StrokeTop);temp *L=size(StrokeLeft);temp *R=size(StrokeRight);%temp *B

19、=size(StrokeBottom);for Ti=2:*T if (StrokeTop(Ti)=C) if (*L=2)&(*R=2) if (p=3)|(StrokeBottom(2)=C)&(StrokeLeft(2)=C)&(StrokeRight(2)=C) RStr=8; else RStr=0; end else if (StrokeLeft(*L)=L)&(StrokeLeft(*L-1)=P)&(StrokeLeft(2)=C) RStr=2; else if (StrokeLeft(2)=C)&(*L=3)&(StrokeLeft(3)=P) RStr=9; else i

20、f (*L2) for Li=2:*L if (StrokeLeft(Li)=P) RStr=3; end end else if (*L=2) for Ri=2:*R-1 if (StrokeRight(Ri)=P) RStr=6; end end end end end end end else if (StrokeTop(Ti)=V) % Top if (*R=2)&(StrokeRight(2)=C) % 数字 3 右端只有一个构造 RStr=3; else if (*R=2)&(StrokeLeft(2)=P)|(StrokeLeft(3)=P)|(StrokeLeft(*L)=V)

21、 RStr=7; else if (*R2) for Ri=2:*R if (StrokeRight(Ri)=P) RStr=5; end end end endI0=imread(8.jpg);% 必须为二值图像I=im2bw(I0,0.4);y0 *0=size(I);Range=sum(I);Hy=0;for j=1:y0 if (Range(j)=1) Hy=Hy+1; endendRange*=sum(I);W*=0;for i=1:*0 if (Range*(i)=1) W*=W*+1; endendAmp=24/Hy; % 将文字图像归一化到24像素点的高度。I=imresize

22、(I,Amp);y *=size(I);%I=bwmorph(I,skel,Inf);%I=I;tic%= 根本构造 =% 第一类:竖V;左斜L;右斜R;突变P% 第二类:左半圆弧C;右半圆弧Q% 的三类:构造待定T;%=%Left=zeros(1,y); % 左端轮廓检测for j=1:y i=1; while (i=*)&(I(j,i)=1) i=i+1; end if (i=*) Left(j)=i; end endfor j=1:y-1 LeftD(j)=Left(j+1)-Left(j);end%= 构造特征提取 =%j=1;while (Left(j)1)&(jy) j=j+1;

23、end Y1=j;j=y;while (Left(j)1) j=j-1;end Y2=j-1; % 去掉急剧变化的两端%= 右边 =%Right=zeros(1,y); % 左端轮廓检测for j=1:y i=*; while (i=1)&(I(j,i)=1) i=i-1; end if (i=1) Right(j)=i; end endfor j=1:y-1 RightD(j)=Right(j+1)-Right(j);end%=%Top=zeros(1,*); % 顶端轮廓检测for i=1:* j=1; while (j=y)&(I(j,i)=1) j=j+1; end if (j=y)

24、Top(i)=j; end endfor i=1:*-1 TopD(i)=Top(i+1)-Top(i);end%=%i=1;while (Top(i)1)&(i*) i=i+1; end *1=i;i=*;while (Top(i)1) i=i-1;end *2=i-1; % 去掉急剧变化的两端%=%Bottom=zeros(1,*); % 底部轮廓检测for i=1:* j=y; while (j=1)&(I(j,i)=1) j=j-1; end if (j=1) Bottom(i)=j; end endfor i=1:*-1 BottomD(i)=Bottom(i+1)-Bottom(i

25、);end%= 数字 1 的宽度特征 =%Width=zeros(1,y);for j=1:y Width(j)=Right(j)-Left(j);end W=m6系统测试与分析6.1 文字识别算法仿真结果识别原图如图9a所示,仿真结果如图9b所示。图9a识别原图图9b仿真结果6.2 基于字符及单词的识别6.2.1基于字符的识别Strokelets: A Learned Multi-scale Representation for Scene Te*t RecognitionCVPR 2014通过聚类图像块来学习中层笔画特征,然后使用霍夫HOG投票算法检测字符。在笔画特征和HOG特征的根底上,

26、使用随机森林分类器来进展字符分类。End-to-end scene te*t recognition2011借鉴计算机视觉通用的目标检测方法,提出了一个新的文本识别系统。他们利用字符置信度以及字符之间的空间约束关系,给出最可能的检测和识别结果。但是该算法只能用于水平方向排列的文本的检测识别。End-to-End Te*t Recognition with Hybrid HMM Ma*out Models2013和PhotoOCR: Reading Te*t in Uncontrolled Conditions2013等人通过无监视的二分类技术或有监视的分类器,将单词图像分割为潜在的字符区域。E

27、nd-to-End Te*t Recognition with Hybrid HMM Ma*out Models2013使用一种复杂的,包含分割、矫正以及字符识别的N网络,结合使用固定词典的隐马尔科夫模型HMM,生成最终的识别结果。PhotoOCR系统使用基于HOG特征的神经网络分类器,对分割得到的候选结果进展打分,使用结合N元语言模型N-gram的Beam搜索算法,得到候选字符集合。最后,再进一步使用语言模型和形状模型对候选字符组合进展重新排序。Deep Features for Te*t Spotting2014结合了文本一非文本分类器、字符分类器、二元语言模型分类器,对整图进展稠密的基于

28、滑动窗口的扫描。最后结合固定词典,对图片中的单词进展分析。基于字符的识别技术依赖于使用字符分类器对图像进展逐字符识别,最终将识别得到的字符进展集成,得到图像中的整个单词。基于单词的识别Scene Te*t Recognition using Higher Order Language Priors以及Large-Le*icon Attribute-Consistent Te*t Recognition in Natural Images的工作依旧依赖于显式的字符分类器,但是通过构建一个图构造来推导整个单词。这会遇到和基于字符识别方法类似的困难。Whole is Greater than Sum

29、 of Parts: Recognizing Scene Te*t Words2013使用整文字图片来识别单词:他们使用基于梯度的特征图与预先制作好的单词图像进展比照,利用动态k近邻来判断当前图片所包含的单词。该方法依赖于一个固定词典以及预先生成的单词图片。Label embedding for te*t recognition2013使用集成的Fisher向量以及构造化的支持向量机框架来建立图片和整个单词编码的关系。Word Spotting and Recognition with Embedded Attributes2014进一步探索了单词编码的概念,他们为图片和单词字符串创立了一个编

30、码空间。这其实是Supervised mid-level features for word image representation2014方法的扩展:显式利用字符级别的训练数据来学习中间特征。Multi-digit Number Recognition from Street View Imagery using Deep Convolutional Neural Networks2013等人使用深度N对整图片进展编码,并使用多个位置敏感的字符级分类器来进展文字识别。他们在街景门牌号识别任务中取得了极大的成功。他们还将该模型应用到长达8位的验证码识别任务上,并使用了合成的训练数据对模型进展

31、训练。该方法在goggle街景门牌号识别任务中获得了96%以上的识别率。同时还在对goggle验证码识别任务中获得了99%以上的识别率。Synthetic Data and Artificial Neural Networks for Natural Scene Te*t Recognition2014和Reading Te*t in the Wild with Convolutional Neural Networks2014对上述模型做了细微变动:取消了预测字符长度的分类器,并引入了完毕符表示文字结尾。他们随后证明了,使用合成的训练数据训练出的模型,能够成功应用到现实世界的识别问题中。将单

32、词编码为向量是一种可行的词典单词识别方法,但是在无约束情况下,字符之间可以任意组合。当字符数量足够多时,基于固定长度向量编码的方法性能会显著下降。但是依然存在一些缺乏:一些研究将深度学习技术用于单个字符的识别步骤中,但整体框架依旧遵循传统处理流程设计,因此在其它步骤中依旧会遇到绪论所述问题。Good fellow等人的研究使用纯神经网络直接完成整个识别流程,取得了业界领先的成绩。但是由于他们需要使用固定大小的图像作为输入,并且将输入图像编码为固定长度的特征向量,在图片中字符较多的情况下,模型的识别精度会显著下降。另一方面,由于他们的模型没有对图片进展显式地字符定位和分割,因此无法得知每个字符在原图中

温馨提示

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

评论

0/150

提交评论