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

合集下载

基于Matlab的语音识别系统的设计本科毕业设计

基于Matlab的语音识别系统的设计本科毕业设计

摘要语音识别主要是让机器听懂人说的话,即在各种情况下,准确地识别出语音的内容,从而根据其信息执行人的各种意图。

语音识别技术既是国际竞争的一项重要技术,也是每一个国家经济发展不可缺少的重要技术支撑。

本文基于语音信号产生的数学模型,从时域、频域出发对语音信号进行分析,论述了语音识别的基本理论。

在此基础上讨论了语音识别的五种算法:动态时间伸缩算法(Dynamic Time Warping,DTW)、基于规则的人工智能方法、人工神经网络(Artificial Neural Network,ANN)方法、隐马尔可夫(Hidden Markov Model,HMM)方法、HMM和ANN的混合模型。

重点是从理论上研究隐马尔可夫(HMM)模型算法,对经典的HMM模型算法进行改进。

语音识别算法有多种实现方案,本文采取的方法是利用Matlab强大的数学运算能力,实现孤立语音信号的识别。

Matlab 是一款功能强大的数学软件,它附带大量的信号处理工具箱为信号分析研究,特别是文中主要探讨的声波分析研究带来极大便利。

本文应用隐马尔科夫模型(HMM) 为识别算法,采用MFCC(MEL频率倒谱系数)为主要语音特征参数,建立了一个汉语数字语音识别系统,其中包括语音信号的预处理、特征参数的提取、识别模板的训练、识别匹配算法;同时,提出利用Matlab图形用户界面开发环境设计语音识别系统界面,设计简单,使用方便,系统界面友好。

经过统计,识别效果明显达到了预期目标。

关键词:语音识别算法;HMM模型;Matlab;GUIABSTRACTSpeech Recognition is designed to allow machines to understand what people say,and accurately identify the contents of voice to execute the intent of people.Speech recognition technology is not only an important internationally competed technology,but also an indispensable foundational technology for the national economic development.Based on the mathematical model from the speech signal,this paper analyze audio signal from the time domain,frequency domain proceeding,and discussed the basic theory of speech recognition technology.Five algorithm are discussed:Dynamic Time Warping(DTW)、Rule-based Artificial Intelligence,Artificial Neural Network(ANN),Hidden Markov Model(HMM),HMM combined with ANN.The focus is put in the theoretical studies of Hidden Markov(HMM) model algorithm,and the classical HMM algorithm is improved.Speech recognition algorithm is realized in various programs,this article taking the method is to use Matlab powerful mathematical operation ability to realize the recognition of speech signal isolation. Matlab is a powerful mathematic software with a mass of toolboxes dealing with signal processing. It gives a terrific shortcut to the research of signal processing,especially the wave analysis. We can characterize the sound with key parameters such as intensity, frequency etc. In this paper, hidden Markov model (HMM) recognition algorithm using MFCC (MELfrequency cepstral coefficients) as the main voice characteristic parameters, the establishment of a Chinese digital speech recognition system, including the preprocessing of the speech signal,the extraction of characteristic parameters the training of the recognition template,identifying matching algorithm;the same time,the use of Matlab graphical user interface development environment designed speech recognition system interface,is designed to be simple,easy to use,friendly interface. Besides,to have a simple exploration of the voice recognition is another target.After statistics,recognition result obviously is made out as the expected goal.Key words:Speech recognition algorithm;HMM model;Matlab;GUI目录一、前言 (1)1.1语音识别的发展历史 (1)1.2语音识别研究现状 (1)1.3语音识别系统的分类 (2)1.4语音识别系统的基本构成 (3)1.5语音识别技术难点 (3)1.6语音识别发展前景 (4)二、语音信号分析 (4)2.1语音学知识 (4)2.1.1音素和音节 (5)2.1.2汉语的声调 (5)2.1.3语音信号产生模型 (6)2.2语音信号数字化和预处理 (7)2.2.1数字化 (7)2.2.2预加重处理 (7)2.2.3防混叠滤波 (8)2.2.4加窗处理 (8)2.3语音信号的时域分析 (9)2.3.1短时能量分析 (9)2.3.2短时平均过零率 (11)2.3.3短时自相关函数和短时平均幅度差函数 (12)2.3.4语音端点检测 (13)2.4语音信号的频域分析 (14)2.4.1滤波器组法 (14)2.4.2傅立叶频谱分析 (14)2.5特征参数提取 (15)2.5.1 LPCC倒谱系数 (15)2.5.2 Mel频率倒谱系数 (16)三、语音识别主要算法 (17)3.1动态时间伸缩算法 (17)3.2基于规则的人工智能方法 (18)3.3人工神经网络方法 (19)3.4隐马尔可夫方法 (20)3.5 HMM和ANN的混合模型 (21)四、隐含马尔可夫模型算法 (23)4.1 HMM的基本理论和数学描述 (23)4.2 HMM的三个基本问题及解决算法 (24)4.3 HMM算法的改进 (31)4.4 HMM的结构和类型 (33)4.5 HMM算法实现的问题 (34)五、基于Matlab环境下的语音识别算法实现 (35)5.1识别系统平台介绍 (35)5.2在Matlab中HMM算法的实现 (36)5.2.1端点检测 (36)5.2.2特征参数提取 (36)5.2.3训练和识别 (37)5.3实验结论分析 (38)六、结束语 (39)6.1回顾 (39)6.2展望 (39)七、致谢 (40)参考文献 (40)一、前言1.1语音识别的发展历史作为智能计算机研究的主导方向和人机语音通信的关键技术,语音识别技术一直受到各国科学界的广泛关注。

基于MATLAB手写体数字识别程序设计

基于MATLAB手写体数字识别程序设计

• 139•基于MATLAB手写体数字识别程序设计广东工业大学自动化学院 刘思慧 江 维手写体识别由于其实用性,一直处于研究进步的阶段,本文主要针对的是对0-9十个手写数字体脱机识别,在Matlab中对样本部分为进行16特征的提取,分别采用最小距离法,最近邻法,KNN法以及BP神经网络算法进行0-9十个数字进行识别,得到每类的分类结果以及各种方法的识别准确率,比较各种方法的优缺点,最后分析比较结果,得出分类结论。

1.引言本文先是以统计学的方法进行数字识别。

识别的数字是从0到9并利用图象处理软件把这些数字处理成相同大小32*32的二值图。

将图像转换为文本格式存储,文档中只包含0和1,共计1934个样本,每类样本数目大致200个,测试样本共计946个。

读取txt文档后,从生成的矩阵中提取16个特征,然后先用统计学的理论,用最小距离法,最近邻法和KNN法,在Matlab中编写相关程序,得出相关的分类结果和错误率。

然后再使用BP神经网络,确定输入,输出节点数和隐藏层节点数,对0-9的样本特征进行训练,得到训练后的网络进行样本测试。

将基于BP神经网络的识别结果和错误率和基于统计学的方法的结果进行比较,最终得出分类的结论。

2.数字识别本文是对手写数字识别,即对0-9十个数字进行识别,我们将存储0-9十个数字的图片利用图像处理软件处理成大小相同的(32*32)的二值图,然后将图像转化成文本格式。

总共有1934个训练样本,946个测试样本。

对每个样本提取特征,这儿我们选用提取了16个特征,然后应用最小距离法,KNN在K=1,K=3,K=5时,以及神经网络,在Matlab环境下,编程分别对训练样本进行训练,测试样本进行测试识别,得到分类结果和错误率,然后对每种结果进行对比,分析错误率和分类结果,比较几种方法的优点和缺点,最终得出结论。

2.1 字符特征选择与提取特征提取是为了去除信息中对分类没有帮助的部分,将信息集中到有代表性的几个特征上来的过程。

基于Matlab的字符识别系统设计

基于Matlab的字符识别系统设计

基于Matlab的字符识别系统设计
要设计一个基于Matlab的字符识别系统,可以按照以下步骤进行:
1.数据收集和预处理:收集包含不同字符的图像数据集,并对图像进行预处理,例如灰度化、二值化、去噪等操作,以提高识别的准确性。

2.特征提取:使用特征提取算法从预处理后的图像中提取出有区分度的特征,例如边缘检测、形状描述等。

3.特征选择和降维:对提取的特征进行选择和降维,以减少特征的维度并提高计算效率。

4.模型训练和选择:根据特征进行模型的训练和选择,常用的分类器包括支持向量机(SVM)、k近邻算法(KNN)等。

5.模型评估和调优:使用测试集对训练好的模型进行评估,并根据评估结果对模型进行调优,例如调整模型参数、增加训练样本等。

6.应用部署:将训练好的模型应用于实际场景中,通过输入新的字符图像进行识别。

在Matlab中,可以使用Image Processing Toolbox和Machine Learning Toolbox等工具箱来实现上述步骤。

此外,Matlab还提供了一些已经训练好的字符识别模型,例如OCR(Optical Character Recognition)工具箱,可以直接使用这些模型进行字符识别。

基于MATLAB的汉语数字语音识别系统

基于MATLAB的汉语数字语音识别系统
张 培 玲 , 凌 飞 成
( 河南理工大学 电气学院 , 河南 焦作 440) 5 0 0

要: 应用动 态时间规整 (T 为识别 算法, 用M C ( E 频率倒谱 系数) D W) 采 F CM L 为主要语音特 征参数 , 建立 了一 个汉
语数字语音识别 系统 , 中包括语音信号 的预 处理 、 其 特征 参数的提 取 、 别模板 的训练、 别匹配算 法; 识 识 同时 , 出利 提 用 MA L B图形用户界 面开发环境设计语音识 别 系统界 面 , TA 设计 简单 , 用方便 , 使 系统界 面友好 。
为 了体 现语 音 的动态 特性 及能 量对 语音 区分 的作 用 , 在 上述 语 音 特征 矢 量 中加 人 了一 阶差 分 MF C 还 C 及 其 一 阶能 量 和一 阶差分 能 量 , 中能量 参 数 用语 音 其
平 均能 量进 行 了归一 化 。
3 训 练 与识 别
路 径不 是 随 意选 择 的 , 因为任 何 一种 语 音 的发 音快 慢 都有 可 能变化 , 但是 其各 部分 的先后 次 序不 可能 改变 , 因此 所选 的路 径必 定是从 左 下角 出发 , 在右上 角结 束 ,

xk z ) / . (一 n (一 (e K. i ∑ )
尸 ) xkl (=l( 。 ).

( 1 )
( 2 )
其中 , 为 52 l 点。然后再求信号能量谱 , : 即 5 根据 ( ) ) 4 式进行频率弯折 , 在弯折后 的频率轴 上取等间隔滤波器组在频域对功率谱进行滤波.
4 对加窗后的语音信号进行 5 2 ) 1 点离散傅立叶变
换( F , : D T) 即
用过零率找到语音端点的相对精确位置 , 分解 出每一 个 语 音段 。 个实例见 图 2 其 中 5 , 表示无 声段 ,表示 有声 , 段 , 示 有 声 段 结束 后 的无 声 部 分 。从 图 中可 知 有 H表

基于MATLAB的图片中文字的提取与识别要点

基于MATLAB的图片中文字的提取与识别要点

基于MATLAB的图片中文字的提取及识别邹浩,余龙,邹勇博,宇童,和振乔,少梅(电子科技大学电子工程学院,,710126)摘要随着现代社会的发展,信息的形式和数量正在迅猛增长。

其中很大一部分是图像,图像可以把事物生动地呈现在我们面前,让我们更直观地接受信息。

同时,计算机已经作为一种人们普遍使用的工具为人们的生产生活服务。

从图像中提取文字属于信息智能化处理的前沿课题,是当前人工智能与模式识别领域中的研究热点。

由于文字具有高级语义特征,对图片容的理解、索引、检索具有重要作用,因此,研究图片文字提取具有重要的实际意义。

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

关键词:MATLAB 图像处理文字提取文字识别Text Extraction and Recognition in Images Based on MATLABZOU Hao, YU long, ZOU Yongbo, LIU Yutong, HE Zhenqiao, LI Shaomei(Xidian University Electronic Engineering College,Xi'an,710126)AbstractWith the development of society,the form and quantity of imformation are increasing quickly.A large part of them are images,which can make things vividly presented in front of us,let us more intuitive to accept information.At the same time, the computer has been as a widely used tool for people's production and living services.Extracting text from image belongs to the frontier of intelligent information processing, and it is the current hot research topic in the field of artificial intelligence and pattern recognition.As the text with high-level semantic feature and plays an important role on understanding,indexing and retrieval image content.Therefore,the study on extracting texts from images have important actual meanings. And because extracting texts from still images is the basis for extracting texts from dynamic images, the article emphatically introduces the technology of extracting texts from still images.Key Words: MATLAB image processing word extraction word recognition一.引言随着计算机科学的飞速发展,以图像为主的多媒体信息迅速成为重要的信息传递媒介,在图像中,文字信息(如新闻标题等字幕) 包含了丰富的高层语义信息,提取出这些文字,对于图像高层语义的理解、索引和检索非常有帮助。

基于MATLAB的手写体数字识别算法的实现与分析毕业论文

基于MATLAB的手写体数字识别算法的实现与分析毕业论文

基于MATLAB的手写体数字识别算法的实现与分析摘要手写体数字识别是利用计算机自动辨认手写体阿拉伯数字的一种技术,是光学字符识别技术的一个分支。

手写体数字识别在邮政编码、财务报表、银行票据、各种凭证以及调查表格的识别等等方面有着重要应用,由于数字识别经常涉及财会、金融领域,其严格性更是不言而喻的。

所以,对识别系统的可靠性和识别率要求很高,构成了手写体数字识别面临的主要困难,大批量数据处理对系统速度又有相当高的要求。

本文基于MNIST数据集,通过Matlab平台,对决策树算法、SVM算法和人工神经网络(ANN)算法进行实现,并对分类算法的准确率进行评估。

实验结果表明,人工神经网络(ANN)的准确率最高,为99.69%,SVM算法次之,准确率为94.53%,决策树算法的准确率为83.53%。

三种分类算法中,决策树算法的速度最快,SVM算法的速度最慢。

另外,针对每一种分类算法在MNIST数据集上的实验结果,本文还得出以下结论:第一,MNIST数据集的归一化与否对决策树的分类效果几乎没有影响;对SVM的分类效果影响较大,未归一化时的准确率为11.35%,归一化之后的准确率为94.53%;对人工神经网络的分类效果影响较小,未归一化时的准确率为82.11%,归一化之后的准确率为99.69%。

这说明三种分类算法对数据的不平衡分布的敏感程度各不相同。

第二,对于SVM分类算法,当训练数据集的样本容量小于60000(MNIST训练数据集的最大样本容量)时,该算法对测试数据集分类预测的准确率随样本容量的增大而增大。

第三,针对人工神经网络,数据类标签的表示形式对分类预测的准确率的影响较大。

使用10位数据表示类标签是的准确率为99.69%,远远高于使用1位数据表示类标签时的准确率60.24%。

关键词:手写体数字识别;决策树算法;SVM算法;人工神经网络算法ABSTRACTHandwritten numeral recognition is a technique that uses computer to recognize handwritten Arabic numerals automatically and is a branch of optical character recognition technology. Handwritten numeral recognition has important applications in postal codes, financial statements, bank notes, various kinds of vouchers and the identification of survey forms. Since digital identification often involves accounting and finance, its strictness is self-evident. The demand for identification system of the reliability and recognition rate is very high, constituting a handwritten digital identification facing major difficulties, high-volume data processing on the system speed and a very high demand.In this paper, we use Matlab to implement decision tree algorithm, SVM algorithm and artificial neural network (ANN) algorithm based on MNIST dataset, and the accuracy of classification algorithms is calculated by using the real data tag. Experimental results show that the artificial neural network (ANN) the highest accuracy rate for 99.69%, SVM algorithm, followed by 94.53 percent accuracy rate, decision tree algorithm accuracy is 83.53%. In terms of speed, decision tree algorithm is the fastest, SVM algorithm is the slowest. In addition, for each classification algorithm we also concluded that:Firstly, whether or not the MNIST dataset is normalized has no effect in the classification tree; While it has a great impact on SVM classification. When it is not normalized the accuracy is 11.35%, and after normalized the accuracy is 94.53% ; The artificial neural network classification is less affected, and when it is not normalized the accuracy is 82.11% while after normalized the accuracy is 99.69%. This shows the sensitivity of the three classification algorithms to unbalanced distribution of data.Secondly, for the SVM classification algorithm, when the sample size is less than 60,000(maximum size of MNIST test data set), the accuracy increases with the increasing of sample size.Thirdly, for the artificial neural network, the impact of class label representation is large on the classification accuracy. When using 10 bits to represent class labels, the accuracy is 99.69%, far higher than the accuracy of 60.24% when using 1 bit to represent data labels.KEY WORDS: Handwritten numeral recognition; Decision tree algorithm; SVM algorithm; Artificial neural network algorithm目录ABSTRACT (II)1. 引言 (1)1.1 手写数字识别 (1)2. 分类算法 (1)2.1 决策树算法 (2)2.1.1 ID3算法 (2)2.1.2 C4.5算法 (3)2.1.3 CART算法 (3)2.1.4 SLIQ算法 (3)2.1.5 SPRINT算法 (3)2.1.6 经典决策树算法的比较 (4)2.2 支持向量机 (4)2.3 人工神经网络 (6)2.3.1人工神经网络的原理 (6)2.3.2反向传播网络(BP) (6)2.3.3 Hopfield网络 (8)3 实验过程与结果分析 (10)3.1 实验环境 (10)3.2实验数据集 (10)3.3数据预处理 (10)3.4决策树分类实验 (11)3.4.1实验过程 (11)3.4.2实验结果 (12)3.5 SVM分类实验 (13)3.5.1实验过程 (13)3.5.2实验结果 (14)3.6人工神经网络分类实验 (14)3.6.1实验过程 (14)3.6.2实验结果 (15)4 结论 (19)4.1 三种分类算法的比较 (19)4.2 决策树算法的分析 (19)4.3 SVM算法分析 (19)4.4 神经网络算法分析 (20)参考文献 (21)1.引言1.1手写数字识别手写数字识别是模式识别领域的一个重要分支,它研究的核心问题是:如何利用计算机自动识别人手写在纸张上的阿拉伯数字。

利用MATLAB平台实现少量字的语音识别(含源文件)

利用MATLAB平台实现少量字的语音识别(含源文件)

本科毕业论文(设计)目录引言 (4)1.语音识别简介 (5)1.1语音识别系统的分类 (5)1.2语音识别系统的基本构成 (5)2.语音识别参数 (6)2.1线性预测系数(LPC) (6)2.2线性预测倒谱系数(LPCC) (8)2.3MFCC系数 (8)2.4参数计算流程 (9)3.DTW算法 (11)3.1DTW算法原理 (11)3.2DTW的高效算法 (14)4.HMM算法 (16)4.1HMM的原理 (16)4.2HMM的前向概率和后向概率 (17)4.3识别算法——V ITERBI解码 (19)4.4 BAUM-WELCH算法 (20)5.实验及总结 (23)5.1实验准备以及步骤 (23)5.2实验结果及讨论 (25)5.3实验结论 (29)参考文献 (30)引言自上世纪80年代开始,语音识别技术的研究进入了一个蓬勃发展的时期,一些商用系统也从实验室进入市场。

然而,在实际的应用中,由于各种干扰因素导致的测试条件与训练环境的不匹配,系统的性能往往会收到极大的影响。

因此提高语音识别系统的性能就成为了语音识别技术真正走向实用化的关键课题。

语音识别是以声音作为研究对象它是语音信号处理的一个重要研究方向,是模式识别的一个分支涉及到生理学、心理学、语言学、计算机科学以及信号处理等诸多领域,甚至还涉及到人的体态语言(如人在说话时的表情、手势等行为动作可帮助对方理解),其最终目标是实现人与机器进行自然语言通信。

本文研究了汉语语音识别技术及其实现方法。

论文首先分析了语音信号预处理问题。

对MFCC倒谱系数在语音识别中的运用做了详细介绍。

其次研究了基于DTW的语音识别系统,针对DTW算法中系统识别性能过分依赖于端点检测、动态规划的计算量太大等缺陷,分别提出了快速DTW算法和端点松动的DTW算法,仿真结果比较理想。

继而研究了基于HMM的语音识别系统。

针对HMM在实际应用中的优化计算问题,包括初始模型选取,定标等进行了深入的分析与探讨。

基于matlab的字母识别系统

基于matlab的字母识别系统

说明:A1.bmp图片为手写B的图片,其余为26个字母标准图片;draw_outline.m,Feature_Building.m,fsd.m,outline.m为主程序所调用的子程序。

字母识别顺序结构程序如下:clcclearRGB1=imread('D:A1.bmp');RGB2=imread('D:A.bmp');RGB3=imread('D:B.bmp');RGB4=imread('D:C.bmp');RGB5=imread('D:D.bmp');RGB6=imread('D:E.bmp');RGB7=imread('D:F.bmp');RGB8=imread('D:G.bmp');RGB9=imread('D:H.bmp');RGB10=imread('D:I.bmp');RGB11=imread('D:J.bmp');RGB12=imread('D:K.bmp');RGB13=imread('D:L.bmp');RGB14=imread('D:M.bmp');RGB15=imread('D:N.bmp');RGB16=imread('D:O.bmp');RGB17=imread('D:P.bmp');RGB18=imread('D:Q.bmp');RGB19=imread('D:R.bmp');RGB20=imread('D:S.bmp');RGB21=imread('D:T.bmp');RGB22=imread('D:U.bmp');RGB23=imread('D:V.bmp');RGB24=imread('D:W.bmp');RGB25=imread('D:X.bmp');RGB26=imread('D:Y.bmp');RGB27=imread('D:Z.bmp');FD1=Feature_Building(RGB1);FD2=Feature_Building(RGB2);FD3=Feature_Building(RGB3);FD4=Feature_Building(RGB4);FD5=Feature_Building(RGB5);FD6=Feature_Building(RGB6);FD7=Feature_Building(RGB7);FD8=Feature_Building(RGB8);FD9=Feature_Building(RGB9);FD10=Feature_Building(RGB10);FD11=Feature_Building(RGB11); FD12=Feature_Building(RGB12); FD13=Feature_Building(RGB13); FD14=Feature_Building(RGB14); FD15=Feature_Building(RGB15); FD16=Feature_Building(RGB16); FD17=Feature_Building(RGB17); FD18=Feature_Building(RGB18); FD19=Feature_Building(RGB19); FD20=Feature_Building(RGB20); FD21=Feature_Building(RGB21); FD22=Feature_Building(RGB22); FD23=Feature_Building(RGB23); FD24=Feature_Building(RGB24); FD25=Feature_Building(RGB25); FD26=Feature_Building(RGB26); FD27=Feature_Building(RGB27);FD1=reshape(FD1,1,120);FD2=reshape(FD2,1,120);FD3=reshape(FD3,1,120);FD4=reshape(FD4,1,120);FD5=reshape(FD5,1,120);FD6=reshape(FD6,1,120);FD7=reshape(FD7,1,120);FD8=reshape(FD8,1,120);FD9=reshape(FD9,1,120);FD10=reshape(FD10,1,120);FD11=reshape(FD11,1,120);FD12=reshape(FD12,1,120);FD13=reshape(FD13,1,120);FD14=reshape(FD14,1,120);FD15=reshape(FD15,1,120);FD16=reshape(FD16,1,120);FD17=reshape(FD17,1,120);FD18=reshape(FD18,1,120);FD19=reshape(FD19,1,120);FD20=reshape(FD20,1,120);FD21=reshape(FD21,1,120);FD22=reshape(FD22,1,120);FD23=reshape(FD23,1,120);FD24=reshape(FD24,1,120);FD25=reshape(FD25,1,120);FD26=reshape(FD26,1,120); FD27=reshape(FD27,1,120);d1=norm(FD1-FD1);d2=norm(FD1-FD2);d3=norm(FD1-FD3);d4=norm(FD1-FD4);d5=norm(FD1-FD5);d6=norm(FD1-FD6);d7=norm(FD1-FD7);d8=norm(FD1-FD8);d9=norm(FD1-FD9);d10=norm(FD1-FD10);d11=norm(FD1-FD11);d12=norm(FD1-FD12);d13=norm(FD1-FD13);d14=norm(FD1-FD14);d15=norm(FD1-FD15);d16=norm(FD1-FD16);d17=norm(FD1-FD17);d18=norm(FD1-FD18);d19=norm(FD1-FD19);d20=norm(FD1-FD20);d21=norm(FD1-FD21);d22=norm(FD1-FD22);d23=norm(FD1-FD23);d24=norm(FD1-FD24);d25=norm(FD1-FD25);d26=norm(FD1-FD26);d27=norm(FD1-FD27);运行结果如下:从图中可以看出d3的值最小,从而识别正确。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

也就是用于实现文字识别算法的过程。

从图像中提取文字属于信息智能化处理的前沿课题,是当前人工智能与模式识别领域中的研究热点。

由于文字具有高级语义特征,对图片内容的理解、索引、检索具有重要作用,因此,研究图片文字提取具有重要的实际意义。

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

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

关键字:文字识别算法;静态图像文字提取;检索目录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)图像文字提取又分为动态图像文字提取和静态图像文字提取两种,其中,静态图像文字提取是动态图像文字提取的基础,其应用范围更为广泛,对它的研究具有基础性,所以本文主要讨论静态图像的文字提取技术。

静态图像中的文字可分成两大类:一种是图像中场景本身包含的文字,称为场景文字;另一种是图像后期制作中加入的文字,称为人工文字,如右图所示。

场景文字由于其出现的位置、小、颜色和形态的随机性,一般难于检测和提取;而人工文字则字体较规范、大小有一定的限度且易辨认,颜色为单色,相对与前者更易被检测和提取,又因其对图像内容起到说明总结的作用,故适合用来做图像的索引和检索关键字。

对图像中场景文字的研究难度大,目前这方面的研究成果与文献也不是很丰富,本文主要讨论图像中人工文字提取技术。

静态图像中文字的特点静态图像中文字(本文特指人工文字,下同)具有以下主要特征:(1)文字位于前端,且不会被遮挡;(2)文字一般是单色的;(3)文字大小在一幅图片中固定,并且宽度和高度大体相同,从满足人眼视觉感受的角度来说,图像中文字的尺寸既不会过大也不会过小;(4)文字的分布比较集中,排列一般为水平方向或垂直方向;(6)多行文字之间,以及单行内各个字之间存在不同于文字区域的空隙。

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

数字图象处理静态图像文字提取一般分为以下步骤:文字区域检测与定位、文字分割与文字提取、文字后处理。

其流程如图所示。

图1 静态文字处理流程图在高速发展的计算机软硬件技术的支撑下,多媒体技术的发展非常迅速,计算机技术从传统的办公和计算逐渐向人工智能和数字娱乐发展。

在人工智能技术中,对环境信息的拾取处理和响应显得尤为重要,其中文本信息占环境信息很大一部分,为了使人工智能系统更为完善,则需要系统能够像人眼一样对周围环境信息进行理解,尤其是环境信息中的文本信息。

实验表明,人类日常生活中,50%以上的信息量来源于眼睛捕捉的周围环境的图像,人眼可以快速捕捉到图像中感兴趣的信息,而对于计算机来说,一幅图像仅仅是杂乱的数据,如何让计算机想人眼一样快速读取图像中的信息并进行分类及检索等相应处理,一直是多年来计算机视觉和模式识别研究者们探索的问题,如果能很好解决这些问题,能给工业生产及国防科技带来巨大的改进。

文字是信息存储和传递的重要载体,在很多由摄像设备拍摄的图片中,都存在或多或少的文字,比如路牌、店名、车站牌、商品简介等,识别图片中的文字对计算机理解图像的整体内容有非常重大的作用。

如何将图片中的文字信息抽象出来形成具有完整语义的信息,再将其表达出来用于信息传递,从而辅助人类的生产和生活是研究计算机视觉的学者们多年来一直致力于解决的问题。

研究如何对自然场景图片中的字符进行识别,提取出有用信息,在获取图片文本信息的各个领域都有极大的商业价值。

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

自然场景文本识别,就是将提取出来的自然场景图片中的进行识别,提取出信息用于进一步的处理。

在对场景文字识别的研究中,获取自然场景图片时候,由于背景物体、光线、阴影、拍摄角度引起的图片背景千变万化,摄像器材的精度、拍摄人员的技术等软硬件的不同为拍摄同样的自然场景图片也带来了相当大的差别,被拍摄的图片中包含的文字大小、颜色、书写风格的各不相同等因素都为自然场景文字识别的实现增加的相当的难度。

需要对自然场景图片中的识别首先需要对图片中的文本进行定位,然后再对己经精确定位的图片进行识别。

文本定位技术作为整个自然场景文本信息获取系统中的基础技术,已经得到较好发展,相同地,文本识别技术在近年来也得到了比较好的发展,但是由于文本的复杂性和随机性,较文本定位技术来说,文本识别技术发展较为缓慢。

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. 把二值图像放大观察,可看到离散的黑点对其采用腐蚀膨胀处理,得到处理后的图像,如图所示图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)); %显示字符end11. 调用以下代码,将字符规格化,便于识别:for j=1:cnum word{j}=imresize(word{j},[40 40]); %字符规格化成40×40end12. 调用以下代码创建字符集:code=char(‘由于作者水平有限书中难免存在缺点和疏漏之处恳请读批评指正,。

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

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

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

经模板匹配。

14、调用以下代码,将字符放入newtxt.txt文本:new=[‘newtxt’,‘.txt’];c=fopen(new,‘a+’);fprintf(c,‘%s\n’,Code(1:cnum));fclose(c);4 课程设计分析1、算法具有局限性。

对于左右结构的字符(如:川)容易造成误识别,“川”字将会被识别成三部分。

当图片中文字有一定倾斜角度时,这将造成识别困难。

2、模板匹配效率低。

对于处理大小为m&TImes;m的字符,假设有n个模板字符,则识别一个字符至少需要m&TImes;m×n×2次运算,由于汉字有近万个,这将使得运算量十分巨大!此次字符识别一共花了2.838秒。

3、伸缩范围比较小。

对于受污染的图片,转换成二值图像将使字符与污染源混合在一起。

对于具体的图片,需反复选择合适的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:Y2Count=Count+1;if (abs(LeftD(j))<PT)if (LeftD(j)<0)SL=SL+1;else if (LeftD(j)>0)SR=SR+1;elseSV=SV+1;endendelse % 检测到突变的决策if ((Count>=fix(Range/4)+1)) % 设定字符轮廓可能发生的突变范围if ((SL>=3)&&(SR>=3))Str='C';else if ((SV>=2*(SL+SR))&&((max(SL,SR)<3)||(min(SL,SR)<2)))Str='V';else if ((SL>SR)&&((SL>=0.5*SV)&&((SR<=1)||(SL>(SR+SV)))))Str='L';else if((SR>SL)&&((SR>=0.5*SV)&&((SL<=1)||(SL>(SR+SV)))))Str='R';else if (max(SL,SR)>=3)&&(min(SL,SR)>=2)Str='C';endendendendendStroke=[Stroke Str];endif ((j>=2+Y1)&&((j<=Y2-2)))Stroke=[Stroke 'P'];endSL=0;SR=0;SV=0;Count=0;Str='T';endend%========= 提取结构===============%if (Count>=fix(Range/4)+1) % 发生突变后,剩余部分可能无法形成字符结构if ((SL>=ST)&&(SR>=ST))Str='C';else if ((SV>=2*(SL+SR))&&((max(SL,SR)<3)||(min(SL,SR)<2)))Str='V';else if ((SL>SR)&&((SL>=0.5*SV)&&((SR<=2)||(SL>=(SR+SV)))))Str='L';else if ((SR>SL)&&((SR>=0.5*SV)&&((SL<=2)||(SL>=(SR+SV)))))Str='R';else if (max(SL,SR)>=3)&&(min(SL,SR)>=2)Str='C';endendendendendStroke=[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:XTif (StrokeTop(Ti)=='C')if ((XL==2)&&(XR==2))if((Comp>=3)||((StrokeBottom(2)~='C')&&(StrokeLeft(2)=='C')&&(StrokeRight(2)=='C')))RStr='8';elseRStr='0';endelse if((StrokeLeft(XL)=='L')&&(StrokeLeft(XL-1)=='P')&&(StrokeLeft(2)~='C'))RStr='2';else if ((StrokeLeft(2)=='C')&&(XL>=3)&&(StrokeLeft(3)=='P'))RStr='9';else if (XL>2)for Li=2:XLif (StrokeLeft(Li)=='P')RStr='3';endendelse if (XL==2)for Ri=2:XR-1if (StrokeRight(Ri)=='P')RStr='6';endendendendendendendelse if (StrokeTop(Ti)=='V') % Topif ((XR==2)&&(StrokeRight(2)=='C')) % 数字3 右端只有一个结构RStr='3';else if((XR==2)&&((StrokeLeft(2)=='P')||(StrokeLeft(3)=='P')||(StrokeLeft(XL)=='V')))RStr='7';else if (XR>2)for Ri=2:XRif (StrokeRight(Ri)=='P')RStr='5';endendendendI0=imread('8.jpg');% 必须为二值图像I=im2bw(I0,0.4);[y0 x0]=size(I);Range=sum((~I)');Hy=0;for j=1:y0if (Range(j)>=1)Hy=Hy+1;endendRangeX=sum((~I));Wx=0;for i=1:x0if (RangeX(i)>=1)Wx=Wx+1;endendAmp=24/Hy; % 将文字图像归一化到24像素点的高度。

相关文档
最新文档