当前位置:文档之家› 基于matlab的文字识别算法 课程设计

基于matlab的文字识别算法 课程设计

沈阳理工大学课程设计专用纸

I

摘 要

本课程设计主要运用 MATLAB 的仿真平台设计进行文字识别算法的设计与仿真。

也就是用于实现文字识别算法的过程。从图像中提取文字属于信息智能化处理的前沿课

题,是当前人工智能与模式识别领域中的研究热点。由于文字具有高级语义特征,对图片

内容的理解、索引、检索具有重要作用,因此,研究图片文字提取具有重要的实际意义。

又由于静态图像文字提取是动态图像文字提取的基础,故着重介绍了静态图像文字提取技

术。随着计算机科学的飞速发展,以图像为主的多媒体信息迅速成为重要的信息传递媒介, 在图像中,文字信息(如新闻标题等字幕)包含了丰富的高层语义信息,提取出这些文字, 对于图像高层语义的理解、索引和检索非常有帮助。

关键字 :文字识别算法;静态图像文字提取;检索沈阳理工大学课程设计专用纸

2

目录

1 课程设计目的 ............................................ 3

2 课程设计要求 ............................................ 4

3 相关知识 ................................................ 5

4 课程设计分析 ............................................ 8

5 系统实现 ................................................ 9

6 系统测试与分析 .......................................... 17

6.1 文字识别算法仿真结果 ................................ 17

6.2 基于字符及单词的识别 ................................ 19

6.2.1 基于字符的识别 ................................... 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沈阳理工大学课程设计专用纸

3 沈阳理工大学

1 课程设计目的

图像文字提取又分为动态图像文字提取和静态图像文字提取两种,其中,静态图像文 字提取是动态图像文字提取的基础,其应用范围更为广泛,对它的研究具有基础性,所以 本文主要讨论静态图像的文字提取技术。静态图像中的文字可分成两大类:一种是图像中 场景本身包含的文字, 称为场景文字; 另一种是图像后期制作中加入的文字,称为人工 文字,如右图所示。场景文字由于其出现的位置、小、颜色和形态的随机性,一般难于检 测和提取;而人工文字则字体较规范、大小有一定的限度且易辨认,颜色为单色,相对与 前者更易被检测和提取,又因其对图像内容起到说明总结的作用,故适合用来做图像的索 引和检索关键字。对图像中场景文字的研究难度大,目前这方面的研究成果与文献也不是 很丰富,本文主要讨论图像中人工文字提取技术。

静态图像中文字的特点 静态图像中文字(本文特指人工文字,下同)具有以下主要特征:

(1)文字位于前端,且不会被遮挡;

(2)文字一般是单色的;

(3)文字大小在一幅图片中固定,并且宽度和高度大体相同,从满足人眼视觉感受

的角度来说,图像中文字的尺寸既不会过大也不会过小;

(4)文字的分布比较集中,排列一般为水平方向或垂直方向;

(6)多行文字之间,以及单行内各个字之间存在不同于文字区域的空隙。在静态图

片文字的检测与提取过程中,一般情况下都是依据上述特征进行处理的。

数字图象处理

静态图像文字提取一般分为以下步骤:文字区域检测与定位、文字分割与文字提取、 文字后处理。其流程如图所示。

图 1 静态文字处理流程图 沈阳理工大学课程设计专用纸

4 沈阳理工大学

2 课程设计要求

在高速发展的计算机软硬件技术的支撑下,多媒体技术的发展非常迅速,计算机技术 从传统的办公和计算逐渐向人工智能和数字娱乐发展。在人工智能技术中,对环境信息的 拾取处理和响应显得尤为重要,其中文本信息占环境信息很大一部分,为了使人工智能系 统更为完善,则需要系统能够像人眼一样对周围环境信息进行理解,尤其是环境信息中的 文本信息。

实验表明,人类日常生活中,50%以上的信息量来源于眼睛捕捉的周围环境的图像, 人眼可以快速捕捉到图像中感兴趣的信息,而对于计算机来说,一幅图像仅仅是杂乱的数 据,如何让计算机想人眼一样快速读取图像中的信息并进行分类及检索等相应处理,一直 是多年来计算机视觉和模式识别研究者们探索的问题,如果能很好解决这些问题,能给工 业生产及国防科技带来巨大的改进。文字是信息存储和传递的重要载体,在很多由摄像设 备拍摄的图片中,都存在或多或少的文字,比如路牌、店名、车站牌、商品简介等,识别 图片中的文字对计算机理解图像的整体内容有非常重大的作用。如何将图片中的文字信息 抽象出来形成具有完整语义的信息,再将其表达出来用于信息传递,从而辅助人类的生产 和生活是研究计算机视觉的学者们多年来一直致力于解决的问题。研究如何对自然场景图 片中的字符进行识别,提取出有用信息,在获取图片文本信息的各个领域都有极大的商业 价值。

场景文字识别在日常生活也有着重要的地位,例如车牌的识别,盲人对周边环境信息 的获取、图书馆管理的数字化和髙效化,以及网络中对指定的内容的图像和视频的检索等。

自然场景文本识别,就是将提取出来的自然场景图片中的进行识别,提取出信息用于 进一步的处理。在对场景文字识别的研究中,获取自然场景图片时候,由于背景物体、光 线、阴影、拍摄角度引起的图片背景千变万化,摄像器材的精度、拍摄人员的技术等软硬 件的不同为拍摄同样的自然场景图片也带来了相当大的差别,被拍摄的图片中包含的文字 大小、颜色、书写风格的各不相同等因素都为自然场景文字识别的实现增加的相当的难度。 需要对自然场景图片中的识别首先需要对图片中的文本进行定位,然后再对己经精确定位 的图片进行识别。文本定位技术作为整个自然场景文本信息获取系统中的基础技术,已经 得到较好发展,相同地,文本识别技术在近年来也得到了比较好的发展,但是由于文本的 复杂性和随机性,较文本定位技术来说,文本识别技术发展较为缓慢。 沈阳理工大学课程设计专用纸

5 沈阳理工大学

3 相关知识

1. 在 Matlab 中调用 i1=imread(‘8.jpg'),可得到原始图像,如图所示:

图 2 文字识别算法调制器模型

2. 调用 i2=rgb2gray(i1),则得到了灰度图像,如图所示:

图 3 灰度图像

调用 a=size(i1);b=size(i2);可得到:a=3,b=2 即三维图像变成了二维灰度图像

3. 调用 i3=(i2》=thresh);其中 thresh 为门限,介于图 4 所示之间

图 4 thresh 门限值

图 5 取得二值

得到二值图像,如图所示: 图 6 二值图像

4. 把二值图像放大观察,可看到离散的黑点 对其采用腐蚀膨胀处理,得到处理后的

图像,如图所示 沈阳理工大学课程设计专用纸

6 沈阳理工大学

图 7 腐蚀膨胀处理后的二值图像

可见,腐蚀膨胀处理后的图像质量有了很大的改观。横向、纵向分别的腐蚀膨胀运算

比横向、纵向同时的腐蚀膨胀运算好上很多。

5、对腐蚀膨胀后的图像进行Y方向上的区域选定,限定区域后的图像如图所示: 扫

描方法:中间往两边扫。

6、对腐蚀膨胀后的图像进行X方向上的区域选定,限定区域后的图像如图11所示:

扫描方法:两边往中间扫,纵向扫描后的图像与原图像的对照。

7. 调用 i8=(iiXY~=1),使背景为黑色(0),字符为白色(1),便于后期处理。8.

调用自定义函数(字符获取函数)i9=getchar(i8)。

9、调用自定义的字符获取函数对图像进行字符切割,并把切割的字符装入一维阵列。

10. 调用以下代码,可将阵列 word 中的字符显示出来。

for j=1:cnum %cnum 为统计的字符个数

subplot(5,8,j),imshow(word{j}),title(int2str(j)); %显示字符

end

11. 调用以下代码,将字符规格化,便于识别:

for j=1:cnum word{j}=imresize(word{j},[40 40]); %字符规格化成 40×40

end

12. 调用以下代码创建字符集:

code=char(‘由于作者水平有限书中难免存在缺点和疏漏之处恳请读批评指正,。');

将创建的字符集保存在一个文件夹里面,以供匹配时候调用。

13. 字符匹配采用模板匹配算法:将现有字符逐个与模板字符相减,认为相减误差最

小的现有字符与该模板字符匹配。

图 8 字符匹配

也就是说,字符A 与模板字符T1更相似,我们可以认为字符集中的字符T2就是字符

A。经模板匹配。 沈阳理工大学课程设计专用纸

7 沈阳理工大学

14、调用以下代码,将字符放入 newtxt.txt 文本:

new=[‘newtxt',‘.txt'];

c=fopen(new,‘a+') ;

fprintf(c,‘%s\n',Code(1:cnum));

fclose(c);

相关主题