基于MATLAB手写体数字识别程序设计
手写体识别由于其实用性,一直处于研究进步的阶段,本文主要针对的是对0-9十个手写数字体脱机识别,在Matlab中对样本部分为进行16特征的提取,分别采用最小距离法,最近邻法,KNN法以及BP神经网络算法进行0-9十个数字进行识别,得到每类的分类结果以及各种方法的识别准确率,比较各种方法的优缺点,最后分析比较结果,得出分类结论。
一、课题介绍
本文先是以统计学的方法进行数字识别。识别的数字是从0到9并利用图象处理软件把这些数字处理成相同大小32*32的二值图。将图像转换为文本格式存储,文档中只包含0和1,共计1934个样本,每类样本数目大致200个,测试样本共计946个。读取txt文档后,从生成的矩阵中提取16个特征,然后先用统计学的理论,用最小距离法,最近邻法和KNN法,在Matlab中编写相关程序,得出相关的分类结果和错误率。然后再使用BP神经网络,确定输入,输出节点数和隐藏层节点数,对0-9的样本特征进行训练,得到训练后的网络进行样本测试。将基于BP神经网络的识别结果和错误率和基于统计学的方法的结果进行比较,最终得出分类的结论
参考源码:MATLAB手写数字识别GUI设计.zip-专业指导文档类资源-CSDN下载
二、算法流程
本文是对手写数字识别,即对0-9十个数字进行识别,我们将存储0-9十个数字的图片利用图像处理软件处理成大小相同的(32*32)的二值图,然后将图像转化成文本格式。总共有1934个训练样本,946个测试样本。对每个样本提取特征,这儿我们选用提取了16个特征,然后应用最小距离法,KNN在K=1,K=3,K=5时, 以及神经网络,在Matlab环境下,编程分别对训练样本进行训练, 测试样本进行测试识别,得到分类结果和错误率,然后对每种结果进行对比,分析错误率和分类结果,比较几种方法的优点和缺点, 最终得出结论。
2.1 字符特征选择与提取
特征提取是为了去除信息中对分类没有帮助的部分,将信息集中到有代表性的几个特征上来的过程。选择稳定的、有代表性的特征往往是一个识别系统成功的关键。按照统计的观点,好的特征提取方法必须满足三个条件:一是提取的特征组相互独立或者互不相关;二是特征具有较小的类内差异,而具有较大的类间差异;三是特征向量的维数尽量小。而在实际应用中,寻找满足这三点要求的特征提取方法是一项富有挑战性的工作。
本次手写数字识别中,样本为图片,因此我们可以先将图片二值化,此时图片中的每个点像素不是0和1,然后我