1、沈阳理工大学课程设计专用纸 摘 要 本课程设计主要运用 MATLAB 的仿真平台设计进行文字识别算法的设计与仿真。 也就是用于实现文字识别算法的过程。从图像中提取文字属于信息智能化处理的前沿课 题,是当前人工智能与模式识别领域中的研究热点。由于文字具有高级语义特征,对图 片内容的理解、索引、检索具有重要作用,因此,研究图片文字提取具有重要的实际意 义。又由于静态图像文字提取是动态图像文字提取的基础,故着重介绍了静态图像文字 提取技术。随着计算机科学的飞速发展,以图像为主的多媒体信息迅速成为重要的信息 传递媒介,在图像中,文字信息(如新闻标题等字幕)包含了丰富的高层语义信息,提 取出这些文字,对于图像高层语义的理解、索引和检索非常有帮助。 关键字:文字识别算法;静态图像文字提取;检索 沈阳理工大学课程设计专用纸 目录 1 课程设计目的课程设计目的.3 2 课程设计要求课程设计要求.4 3 相关知识相关知识 5 4 课程设计分析课程设计分析.8 5 系统实现系统实现 9 6 系统测试与分析系统测试与分析.17 6.1 文字识别算法仿真结果.17 6.2 基于字符及单词的识别19 6.2.1
2、 基于字符的识别.19 6.2.2 基于单词的识别.20 6.3 现存算法的问题.21 6.3.1 大多文字识别方法依赖于人工定义的特征21 6.3.2 脱离上下文的字符识别易造成显著的歧义21 6.3.3 简单的单词整体识别有着较大的局限性22 6.3.4 训练样本制作繁琐 .22 7 参考文献参考文献 23 沈阳理工大学课程设计专用纸 沈阳理工大学 1 课程设计目的 图像文字提取又分为动态图像文字提取和静态图像文字提取两种,其中,静态图像 文字提取是动态图像文字提取的基础,其应用范围更为广泛,对它的研究具有基础性, 所以本文主要讨论静态图像的文字提取技术。静态图像中的文字可分成两大类:一种是 图像中场景本身包含的文字, 称为场景文字; 另一种是图像后期制作中加入的文字, 称为人工文字,如右图所示。场景文字由于其出现的位置、小、颜色和形态的随机性, 一般难于检测和提取;而人工文字则字体较规范、大小有一定的限度且易辨认,颜色为 单色,相对与前者更易被检测和提取,又因其对图像内容起到说明总结的作用,故适合 用来做图像的索引和检索关键字。对图像中场景文字的研究难度大,目前这方面的研究 成果
3、与文献也不是很丰富,本文主要讨论图像中人工文字提取技术。 静态图像中文字的特点静态图像中文字的特点 静态图像中文字(本文特指人工文字,下同)具有以下主要特征: (1)文字位于前端,且不会被遮挡; (2)文字一般是单色的; (3)文字大小在一幅图片中固定,并且宽度和高度大体相同,从满足人眼视觉感受 的角度来说,图像中文字的尺寸既不会过大也不会过小; (4)文字的分布比较集中,排列一般为水平方向或垂直方向; (6)多行文字之间,以及单行内各个字之间存在不同于文字区域的空隙。在静态图 片文字的检测与提取过程中,一般情况下都是依据上述特征进行处理的。 数字图象处理数字图象处理 静态图像文字提取一般分为以下步骤:文字区域检测与定位、文字分割与文字提取、 文字后处理。其流程如图所示。 图 1 静态文字处理流程图 沈阳理工大学课程设计专用纸 沈阳理工大学 2 课程设计要求 在高速发展的计算机软硬件技术的支撑下,多媒体技术的发展非常迅速,计算机技 术从传统的办公和计算逐渐向人工智能和数字娱乐发展。在人工智能技术中,对环境信 息的拾取处理和响应显得尤为重要,其中文本信息占环境信息很大一部分,为了使人工
4、智能系统更为完善,则需要系统能够像人眼一样对周围环境信息进行理解,尤其是环境 信息中的文本信息。 实验表明,人类日常生活中,50%以上的信息量来源于眼睛捕捉的周围环境的图像, 人眼可以快速捕捉到图像中感兴趣的信息,而对于计算机来说,一幅图像仅仅是杂乱的 数据,如何让计算机想人眼一样快速读取图像中的信息并进行分类及检索等相应处理, 一直是多年来计算机视觉和模式识别研究者们探索的问题,如果能很好解决这些问题, 能给工业生产及国防科技带来巨大的改进。文字是信息存储和传递的重要载体,在很多 由摄像设备拍摄的图片中,都存在或多或少的文字,比如路牌、店名、车站牌、商品简 介等,识别图片中的文字对计算机理解图像的整体内容有非常重大的作用。如何将图片 中的文字信息抽象出来形成具有完整语义的信息,再将其表达出来用于信息传递,从而 辅助人类的生产和生活是研究计算机视觉的学者们多年来一直致力于解决的问题。研究 如何对自然场景图片中的字符进行识别,提取出有用信息,在获取图片文本信息的各个 领域都有极大的商业价值。 场景文字识别在日常生活也有着重要的地位,例如车牌的识别,盲人对周边环境信 息的获取、图书馆管理的
5、数字化和髙效化,以及网络中对指定的内容的图像和视频的检 索等。 自然场景文本识别,就是将提取出来的自然场景图片中的进行识别,提取出信息用 于进一步的处理。在对场景文字识别的研究中,获取自然场景图片时候,由于背景物体、 光线、阴影、拍摄角度引起的图片背景千变万化,摄像器材的精度、拍摄人员的技术等 软硬件的不同为拍摄同样的自然场景图片也带来了相当大的差别,被拍摄的图片中包含 的文字大小、颜色、书写风格的各不相同等因素都为自然场景文字识别的实现增加的相 当的难度。需要对自然场景图片中的识别首先需要对图片中的文本进行定位,然后再对 己经精确定位的图片进行识别。文本定位技术作为整个自然场景文本信息获取系统中的 基础技术,已经得到较好发展,相同地,文本识别技术在近年来也得到了比较好的发展, 但是由于文本的复杂性和随机性,较文本定位技术来说,文本识别技术发展较为缓慢。 沈阳理工大学课程设计专用纸 沈阳理工大学 3 相关知识 1. 在 Matlab 中调用 i1=imread(8.jpg),可得到原始图像,如图所示: 图 2 文字识别算法调制器模型 2. 调用 i2=rgb2gray(i1),则得到了
6、灰度图像,如图所示: 图 3 灰度图像 调用 a=size(i1);b=size(i2);可得到:a=3,b=2 即三维图像变成了二维灰度图像 3. 调用 i3=(i2=thresh);其中 thresh 为门限,介于图 4 所示之间 图 4 thresh 门限值 图 5 取得二值 得到二值图像,如图所示: 图 6 二值图像 4. 把二值图像放大观察,可看到离散的黑点 对其采用腐蚀膨胀处理,得到处理后的 图像,如图所示 沈阳理工大学课程设计专用纸 沈阳理工大学 图 7 腐蚀膨胀处理后的二值图像 可见,腐蚀膨胀处理后的图像质量有了很大的改观。横向、纵向分别的腐蚀膨胀运 算比横向、纵向同时的腐蚀膨胀运算好上很多。 5、对腐蚀膨胀后的图像进行 Y 方向上的区域选定,限定区域后的图像如图所示: 扫描方法:中间往两边扫。 6、对腐蚀膨胀后的图像进行 X 方向上的区域选定,限定区域后的图像如图 11 所示: 扫描方法:两边往中间扫,纵向扫描后的图像与原图像的对照。 7. 调用 i8=(iiXY=1),使背景为黑色(0),字符为白色(1),便于后期处理。8. 调用自定义函数(字符获取函数)i9=ge
7、tchar(i8)。 9、调用自定义的字符获取函数对图像进行字符切割,并把切割的字符装入一维阵列。 10.调用以下代码,可将阵列 word 中的字符显示出来。 for j=1:cnum %cnum 为统计的字符个数 subplot(5,8,j),imshow(wordj),title(int2str(j); %显示字符 end 11. 调用以下代码,将字符规格化,便于识别: for j=1:cnum wordj=imresize(wordj,40 40); %字符规格化成 4040 end 12. 调用以下代码创建字符集: code=char(由于作者水平有限书中难免存在缺点和疏漏之处恳请读批评指正,。); 将创建的字符集保存在一个文件夹里面,以供匹配时候调用。 13. 字符匹配采用模板匹配算法:将现有字符逐个与模板字符相减,认为相减误差最 小的现有字符与该模板字符匹配。 沈阳理工大学课程设计专用纸 沈阳理工大学 图 8 字符匹配 也就是说,字符 A 与模板字符 T1 更相似,我们可以认为字符集中的字符 T2 就是字 符 A。经模板匹配。 14、调用以下代码,将字符放入 newtxt.
8、txt 文本: new=newtxt,.txt; c=fopen(new,a+); fprintf(c,%sn,Code(1:cnum); fclose(c); 沈阳理工大学课程设计专用纸 沈阳理工大学 4 课程设计分析 1、算法具有局限性。对于左右结构的字符(如:川)容易造成误识别,“川”字将 会被识别成三部分。当图片中文字有一定倾斜角度时,这将造成识别困难。 2、模板匹配效率低。对于处理大小为 mm 的字符,假设有 n 个模板字符, 则识别一个字符至少需要 mmn2 次运算,由于汉字有近万个,这将使得运算 量十分巨大!此次字符识 别一共花了 2.838 秒。 3、伸缩范围比较小。对于受污染的图片,转换成二值图像将使字符与污染源混合在 一起。对于具体的图片,需反复选择合适的 thresh 进行二值化处理,甚至在处理之前必须 进行各种滤波。 沈阳理工大学课程设计专用纸 沈阳理工大学 5 系统实现 文字识别算法仿真代码如下: function Stroke= StrDetect01(LeftD,Y1,Y2,ST,PT) % ST 为结构阈值,为了指定高度和宽度结构变化的不同 SL=0;
9、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(j)0) SR=SR+1; else SV=SV+1; end end else % 检测到突变的决策 if (Count=fix(Range/4)+1) % 设定字符轮廓可能发生的突变范围 if (SL=3) else if (SV=2*(SL+SR) else if (SRSL) else if (max(SL,SR)=3) end end end end end Stroke=Stroke Str; end if (j=2+Y1) else if (SV=2*(SL+SR) 沈阳理工大学课程设计专用纸 沈阳理工大学 else if (SRSL) else if (max(SL,SR)=3) end end end end end Stroke=Stroke Str; function Numeral=Recognition(StrokeTop,StrokeLeft,StrokeRight,StrokeBottom,Comp) % 采用四边的轮廓结构特征和笔划统计(仅针对 0 和 8)识别残缺数字 % Comp 是用于识别 0 和 8 的底部补充信息 StrT=T; StrL=T; StrR=T; StrB=T; RStr=T; % 用于保存识别出的数字 temp XT=size(StrokeTop); temp XL=size(StrokeLeft); temp XR=size(StrokeRight); %temp XB=size(StrokeBottom); for Ti=2:XT if (StrokeTop(Ti)=C) if (XL=2) else RStr=0; end 沈阳理工大学课程设计专用纸 沈阳理工大学 else if (StrokeLeft(XL)=
《基于matlab的文字识别算法 课程设计》由会员小**分享,可在线阅读,更多相关《基于matlab的文字识别算法 课程设计》请在金锄头文库上搜索。