手写识别模式识别实验论文.docx
- 文档编号:6714799
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:11
- 大小:100.54KB
手写识别模式识别实验论文.docx
《手写识别模式识别实验论文.docx》由会员分享,可在线阅读,更多相关《手写识别模式识别实验论文.docx(11页珍藏版)》请在冰豆网上搜索。
手写识别模式识别实验论文
手写数字识别系统的设计与实现
摘要手写体数字识别是文字识别中的一个研究课题,是多年来的研究热点,也是模式识别领域中最成功的应用之一。
主要功能是通过在点击手写数字识别菜单下的绘制数字标签弹出的绘制数字窗口中完成数字的手写,在此窗口中可以进行数字的保存及清屏,然后通过文件菜单中的打开标签打开所绘制的数字,从而进行数字的预处理,其中包括灰度化及二值化处理,然后进行特征提取,最后实现数字的识别。
利用Matlab程序设计的相关知识,运用模块设计等相关技术,最终完成手写体识别综合设计。
实验结果表明,本系统具有较高的识别率。
关键词:
绘制数字;预处理;特征提取;特征库;数字识别
1前言
自上世纪六十年代以来,计算机视觉与图像处理越来越受到人们的关注,并逐渐成为一门重要的学科领域。
而作为它们的研究对象的数字图像,也因为它含有研究目标的丰富信息而成为越来越重要的研究对象。
图像识别的目标是用计算机自动完成某些信息的处理,用来替代人工去处理图像分类及识别的任务。
手写数字识别是图像识别学科下的一个分支,是图像处理和模式识别领域研究的课题之一,由于其具有很强的实用性一直是多年来的研究热点。
由于手写体数字的随意性很大,例如,笔画的粗细,字体的大小,倾斜等等都直接影响到字符的正确识别,所以手写体数字识别是一个很有挑战性的课题。
在过去的数十年中,研究者们提出了许多的识别方法,取得了较大的成果。
手写体数字识别实用性很强,在大规模数据统计(如例行年检,人口普查),财务,税务,邮件分拣等等应用领域中都有广阔的应用前景。
本课题拟研究手写体数字识别的理论和方法,开发一个小型的手写体数字识别系统。
在研究手写体数字识别理论和方法的基础上,开发这样一个小型的手写体数字识别系统需要完成以下主要方面的研究与设计工作:
手写数字绘制的问题、数字的预处理问题、特征提取问题、特征库的建立问题、数字识别问
2课题的背景
2.1手写数字识别的发展
模式识别是六十年代初迅速发展起来的一门学科。
由于它研究的是如何用机器来实现人及某些动物对事物的学习、识别和判断能力,因而受到了很多科技领域研究人员的注意,成为人工智能研究的一个重要方面。
字符识别是模式识别的一个传统研究领域。
从50年代开始,许多的研究者就在这一研究领域开展了广泛的探索,并为模式识别的发展产生了积极的影响。
手写体数字识别是多年来的研究热点也是字符识别中的一个特别问题。
手写体数字识别在特定的环境下,如邮政编码自动识别系统,税表和银行支票自动处理系统等一般情况。
当涉及到数字识别时,人们往往要求识别器有很高的识别可靠性,特别是有关金额的数字识别时,如支票中填写的金额部分,更是如此。
因此针对这类问题的处理系统设计的关键环节之一就是设计出高可靠性和高识别率的手写体数字识别方法。
这个领域取得了飞速的发展,部分是由于更好的学习算法,部分是由于更优良的训练集。
美国国家科学学会(NIST)建立了一个包含60000个经过标注的数字的数据库,它已经成为对新的学习算法进行比较的性能测试标准。
然而可以说还没有哪个手写体数字识别器达到完美的识别效果。
2.2手写数字识别研究的意义
手写体数字识别是文字识别中的一个研究课题,是多年来的研究热点,也是模式识别领域中最成功的应用之一。
手写数字识别的研究不仅存在很大的应用价值,由于手写数字识别本身的特点,对它的研究也存在着重要的理论价值:
1)阿拉伯数字作为唯一被世界各国通用的符号,所以对手写体数字识别的研究基本上与文化背景无关,各地的研究工作者可以说是基于同一平台开展工作的,有利于研究的比较和探讨。
2)手写数字识别应用广泛,如税表系统,银行支票自动处理和邮政编码自动识别等。
在以前,这些工作需要大量的手工录入,投入的人力物力都相对较多,而且劳动强度较大。
为了适应无纸化办公的需要,大大提高工作效率,研究实现手写数字识别系统是必须要做的。
3)由于数字类别只有0-9共10个,比其他字符识别率较高,可将其用于验证新的理论或做深入的分析研究。
许多机器学习和模式识别领域的新理论和算法都是先用手写数字识别进行检验,验证其理论的有效性,然后才会将其应用到更为复杂的领域当中。
在这方面的典型例子就是人工神经网络和支持向量机。
4)手写数字的识别方法很容易将其推广到其它一些相关的问题上,如对英文之类拼音文字的识别。
事实上,有许多学者就是把数字和英文字母的识别放在一起研究的。
3数字识别系统的设计方案
在本文中书写数字识别程序用Matlab来实现,程序实现了窗口显示,在显示的窗口中实现手写数字的输入、识别、学习过程。
在最初的样本中可能没有包括全部的数据,所以程序中的学习功能能增加程序的可用性,更加人性化。
在数字识别时主要使用了Bayes决策。
3.1数字识别系统功能需求
根据对用户需求的分析,系统应包含以下功能:
1)数字的获取
在绘制数字的窗口中实现数字的手写,并对其坐标值进行保存,利用复位按钮可实现数字的清除工作。
2)数字的预处理
在手写数字图像识别系统中,图像的预处理跟一般图像系统不同,我们不需要对图像进行灰度化处理、去噪处理等基本操作,我们利用程序保存的坐标值就可以对生成一张二值化图像,相当于图像处理系统的二值化处理。
3)特征的提取
在第二步中我们得到了手写数字的二值化图像,进行特征提取前需要对此图像的数据区域进行定位,在程序中我们遍历此二值化图像,找到手写数字区域的上、下、左、右边界,重新生成一张数字图片,利用新生成的数字图片分成5*5的区域,统计每个区域的目标像素个数和整个小区域像素个数,计算目标像素个数与整个小区域像素的比值,得到25个特征值,作为这个手写数字的特征值。
4)特征库的训练
我们需要训练一个特征库,作为识别的标准。
系统中我们手写一个数字提取出它的特征值,再输入此手写数字,将数字与这些特征值相对应存储到特征库里面,特征库我们使用的是Access数据库,字段是数字及这个数字所对应所有特征值。
特征库越丰富,识别率越高。
5)数字识别
在手写数字识别中,我们使用的方法是模板匹配法,其实质就是提取出手写数字的特征值,利用这些特征值与特征库的数字的特征值进行比对,找出待识别数字特征值与特征库里存储的特征值最接近的数字,作为识别结果。
一般分为左右两部分,左半部分完成未知类别模式的分类;右半部分属于
设计分类器的训练过程,利用样品进行训练,确定分类器的具体参数,完成分类器的设计。
而分类决策在识别过程中起作用,对待识别的样品进行分类决策。
图1数字识别系统的基本结构
3.2贝叶斯方法原理
Bayes方法是模式识别中的一种经典方法。
用Bayes方法进行分类时需要满足两个前提条件。
其一是各类别的总体概率分布是已知的,也即类条件概率密度P(X|Wi)和先验概率P(Wi)是已知的;其二是决策类别数目已知。
类条件概率密度函数P(X|Wi)是指在已知某类别Wi的特征空间中,出现特征值X的概率密度,也即在Wi条件下出现X的概率密度。
其中对于待分类样本数字X,Bayes公式可以计算出该数字分属与各个类别的概率,称为后验概率。
考察X属于那个类的可能性最大,就把X归于可能性最大的那个类。
在Bayes决策中,后验概率作为识别待分类样本的类别依据。
其公式可表示如下:
其中,P(X|Wi)表示在X出现的条件下,待识别对象为Wi类的概率。
1、基于Bayes决策的分类
在已知先验概率和类条件概率密度函数的情况下,可以用Bayes方法进行分类。
根据分类类别数目的不同,后验概率计算公式可以表示为不同的形式;下面分两种情况进行讨论:
(1)两类情况:
待分类样本分别属于W1和W2类中的一类,在已知这两类的类条件概率密度P(X|W1)和P(X|W2),先验概率分别为P(W1)和P(W2)时,对于任一个待分类样本X,X分属于两类的后验概率Bayes公式可以改写为:
其中i=1或2,针对两类情况,可以用后验概率进行判别;后验概率较大的对应的类别为该对象X所属的类别。
(2)多类情况:
待分类样本可能的类别有N类,分别为W1、W2、⋯、Wn,各类的类的条件概率密度P(X|Wi)和先验概率P(Wi)已知。
我们可以利用式子计算待分类样本对应的各个类的后验概率,后验概率最大的对应的类别为待分类样本的类别。
3.3贝叶斯分类器设计
3.3.1设计要求
已知0-9十个数字图片文件夹,每个文件夹内有40个样本,选定后30个为训练样本,设计程序对前10个测试样本进行识别,根据输出的测试结果可以得出每个字符被识别的情况以及错误率,也可根据每个字符的识别情况,对识别率低的分析原因、改进处理方法。
3.3.2设计思路
为了提取训练样本集测试样本的特征,首先要理解题目所提供的字符图片的基础特征,他们是位图图像,是由0~255组成的像素点,应用Matlab函数可以读出由这些像素点的数据组成的矩阵,再通过面积的阈值比较将所得矩阵转换为只含0、1两个元素的矩阵。
然后就可以对矩阵分块,统计每个矩阵块中含有数值1的个数,按照相同的分块方法,得到每个字符每个对应矩阵块中1的个数大多是不同的,而同一个字符的样本每个矩阵块中数值1的个数是基本相等的。
因此,如果按相同方法对被测试的样本进行统计,那么相同的字符所得的个数也是相差不多的,因此取测试样本与训练样本的特征进行差值比较,取得最小值的即为与被测值相同的字符。
3.3.3贝叶斯分类器设计
在本系统中将以使用者联机手写的数字作为测试样本。
当手写一个数字时,就进行分类识别测试,得出其所属的类别,并可根据需要决定是否要学习该数字。
在识别之前须首先知道先验概率和类条件概率密度函数,其中先验概率P(Wi)可以由训练样本集中的各类数字的个数和样本总数之比近似计算;类条件概率密度函数P(X|Wi)可以按照模板匹配等方法进行数字的区域划分再进行进一步计算得到。
在得到先验概率和类条件概率密度函数以后,可以运用Bayes公式进行后验概率P(Wi|X)的计算;由于手写数字0~9共有十类,该公式可以表示如下:
在这是i为总类别数,分别为0、1、⋯、9等。
紧接着就可以进行后验概率的比较,其中值最大的所对应的类别即为该手写数字的所属的类别,即:
则x∈Wi。
4手写数字识别系统的设计与基本原理
4.1系统整体功能模块设计
整体模块如图4.1所示:
4.2手写数字识别系统的基本原理
下面分别介绍各部分工作的基本原理:
4.2.1图像的预处理
图像的预处理是为了突出手写体数字的特征。
在本次设计中主要包括:
图像二值化处理。
图像的二值化处理就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。
二值图像是指整幅图像画面内仅黑、白二值的图像。
进行图像二值变换的关键是要确定合适的阈值,使得字符与背景能够分割开来,二值变换的结果图像必须要具备良好的保形性,不丢掉有用的形状信息,不会产生额外的空缺等等。
采用二值图像进行处理,能大大地提高处理效率。
二值化的关键在于阈值的选取,阈值的选取方法主要有三类:
全局阈值法、局部阈值法、动态阈值法。
全局阀值二值化方法是根据图像的直方图或灰度的空间分布确定一个阀值,并根据该阀值实现灰度图像到二值化图像的转化。
全局阀值方法的优点在于算法简单,对于目标和背景明显分离、直方图分布呈双峰的图像效果良好,但对输入图像量化噪声或不均匀光照等情况抵抗能力差,应用受到极大限制。
局部阀值法则是由像素灰度值和像素周围点局部灰度特性来确定像素的阀值的。
本文采用全局阈值的方法,实现将图像二值化的功能。
如果某个像素的值大于等于阈值,该像素置为白色;否则置为黑色
4.2.2图像的特征提取
若直接把预处理后的数据作为输入量,进行分类计算时数据时数据量大,同时由于手写字体的多样化及图像本身和预处理过程中附带的某些干扰的影响,对系统的容错能力要求较高。
特征提取的目的就是从分析数字的拓扑结构入手,把它的某些结构特征提取出来,使数字的位移、大小变化、字形畸形等干扰相对较小,也就是把那些反映数字特征的关键信息提供给系统,这样就等于间接地增加了系统的容错能力,而且经过特征提取后数据量也大大减少了,这样就提高了识别的效率。
手写数字识别的特征提取极大程度地影响着分类器的设计和性能,以及识别的效果和效率。
为了保证所要求的分类识别的正确率和节省资源,希望依据最少的特征达到所要求的分类识别的正确率。
在进行手写数字识别的过程中,特征提取应遵循以下原则:
1)特征应能尽量包含字符的有用信息。
2)特征的提取方法应简单而且提取快速。
3)各个特征之间的相关性应尽可能小。
4)特征数量尽可能少。
5)特征应有较好的抗干扰能力。
考虑到算法的实时性、快速性和准确性,在此次设计中采用的是一种简单的模板法对待测样本进行特征提取。
步骤为:
1、搜索数据区域,找出手写体数字的上下左右边界。
2、将搜索到的数字区域平分成8*8共64个小区域。
3、计算8*8的每一个小区域中白色像素所占比例,即用每一个小区域内的白色像素个数除以该小区域的面积总数(总像素数),即得特征值,第一行的8个比例值是特征的前8特征值,第二行对应着特征的9~16个,以此类推。
4.2.3特征库的建立
在手写数字识别系统中,我们首先要建立一个特征库,我们手写一个数字,并且取得这个数字的特征值,然后再想程序输入这个数字,在程序中将此输入数字与所有特征值相对应,作为模板库的一条记录,初始化模板库之后,就可以对手写数字进行识别,在识别的过程中我们不断的丰富模板库,如果手写数字识别成功则不需要将此数字存储到模板库中,如果识别失败就需要将此数字存储到模板库中,这样我们的模板库将越来越丰富。
4.2.4图像数字的识别
在手写数字图像特征提取结束后,即可进行数字的识别。
这也是手写数字识别系统设计的最后一个环节,在本次设计中采用模板匹配法进行手写体数字识别。
模板匹配法是图像识别中最具有代表性的方法之一。
它是将从待识别的图像提取的若干特征量与模板对应的特征量进行比较,在识别之前须首先知道先验概率和类条件概率密度函数,其中先验概率P(Wi)可以由训练样本集中的各类数字的个数和样本总数之比近似计算;类条件概率密度函数P(X|Wi)可以按照模板匹配等方法进行数字的区域划分再进行进一步计算得到。
在得到先验概率和类条件概率密度函数以后,可以运用Bayes公式进行后验概率P(Wi|X)的计算;由于手写数字0~9共有十类,该公式可以表示如下:
在这是i为总类别数,分别为0、1、⋯、9等。
紧接着就可以进行后验概率的比较,其中值最大的所对应的类别即为该手写数字的所属的类别,即:
则x∈Wi。
5手写数字识别系统程序设计
本次设计使用Matlab来实现该系统,其用户界面分别介绍如下:
5.1数字的特征提取
数字特征的提取是为了更好的实现数字的识别,在此是通过提取所绘制数字的像素特征即如前面所介绍的用目标像素个数除以这个小区域内总得像素个数的结果作为此区域的特征值。
在此通过在函数GetFeature(I)来实现数字特征的提取功能。
具体实现代码为:
functiondata=GetFeature(I)
[row,col]=find(I==0);%返回数字的上下左右的边界
I=I(min(row):
max(row),min(col):
max(col));%截取手写数字图像,使其紧包含数字边界,不包含多余的空白
imwrite(I,'当前手写数字.bmp','bmp');%保存截取后的手写数字图像
[row,col]=size(I);
r=fix(row/5);
c=fix(col/5);
sum=0;
k=1;
feature=[];
fori=1:
r:
5*r%先从行开始计算
forj=1:
c:
5*c%保持行不变,先计算列
form=i:
i+r-1
forn=j:
j+c-1
ifI(m,n)==0
sum=sum+1;
end
end
end
data(k)=sum/(r*c);%第k个特征分量
sum=0;
k=k+1;
end
end
data=data';%将当前手写数字的特征向量由行向量变为列向量
end
5.2数字的识别
点击系统界面上的特征识别按钮即可实现手写数字的识别,此系统主要是通过函数来实现手写数字的识别,识别过程即把所绘制数字的特征值与模板库里面的每个特征值进行比较,在得到先验概率和类条件概率密度函数以后,可以运用Bayes公式进行后验概率P(Wi|X)的计算;紧接着就可以进行后验概率的比较,其中值最大的所对应的类别即为该手写数字的所属的类别,识别结果会通过弹出对话框来显示,如图所示:
Bayes决策的分类代码如下:
functionResult=BayesTwoValue(data)
clc;
loadtemplatepattern;
%求先验概率
sum=0;
pw=[];%P(wi)---先验概率
fori=1:
10
sum=sum+pattern(1,i).num;
end
fori=1:
10
pw(i)=pattern(1,i).num/sum;
end
%求类条件概率
p=[];
pxw=[];%P(x|wi)---类条件概率
fori=1:
10
forj=1:
25
sum=0;
fork=1:
pattern(1,i).num
ifpattern(1,i).feature(j,k)>0.1%第i类第k个样品的第j个特征值
sum=sum+1;
end
end
p(j,i)=(sum+1)/(pattern(1,i).num+2);
end
end
fori=1:
10
sum=1;
forj=1:
25
ifdata(j)>0.1
sum=sum*p(j,i);
else
sum=sum*(1-p(j,i));
end
end
pxw(i)=sum;
end
%求后验概率
sum=0;
pwx=[];%P(wi|x)---后验概率
fori=1:
10
sum=sum+pw(i)*pxw(i);
end
fori=1:
10
pwx(i)=pw(i)*pxw(i)/sum;
end
[maxval,maxpos]=max(pwx);
Result=maxpos-1;
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 手写 识别 模式识别 实验 论文