手写数字识别实践指导手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
手写数字系统实践指导手册
1 问题描述
设计一个简单的手写数字识别系统,能够识别手写输入的数字1-9并且能够识别选中的文本文件中的数字,应具有简单方便的操作界面,输入输出等。
1.1功能需求分析
通过分析,以及从用户的角度考虑,系统应该具有以下功能:
(1)数字的手写输入。作为一个手写数字识别系统,首先应该能够让用户过绘制窗口进行数字绘制,系统得到用户的手写输入进行处理。
(2)直接选择文件。用户还可以选择系统中的文本文件进行处理。
(3)数据预处理。包括计算数据大小、二值化、格式化处理等。
(4)数字提取。将经过二值化后的图像中的个数字区域进行提取,只有能够将数字进行准确的提取,才能将其一一识别。
(5)基准库的选择与建立。选择一个可供系统训练和测试的样本库非常重要,本系统的训练集和测试集选择的是《机器学习实战》中所给的数据。
(6)识别数字。经过训练集进行训练后,使用knn算法对需要识别的数字识别。
2 数据集获取
●任务要求:
从网上爬取或者下载适合进行手写数字识别系统的训练集和测试集
●实践指导:
方式一:自己从网上找适合的数据下载
方式二:推荐数据集:“手写数字数据集的光学识别”一文中的数据集合,该文登载与2010年10月3日的UCI机器学习资料库中/ml
3 功能设计与实现
3.1手写数字识别系统结构图:
图一:系统结构图
3.2识别用户选择手选文件功能设计与实现
●任务要求:
用户可以自己从电脑中选择文本文件进行识别。
●实践指导:
KNN分类器的构造思路及原理如下:
1)选择训练集和测试集。系统所采用的数据集选用的是“手写数字数据集的光学识别”一文中的数据集合。0-9每个数字大约有200个训练数据20个测试数据。数字的文本格式如图所示。
文本格式存储的数字的文件命名也很有特点,格式为:数字的值_该数字的样本序号,如图所示。
2)格式化处理数据。将训练集中32*32的二进制图像矩阵转换为1*1024的向量。用于knn距离的计算
3)将训练集中所有的文件内容存在列表中,创建一个m*1024的训练矩阵,矩阵的每行存储一个图像。
4)将需要进行预测的测试集的图像矩阵转换为1*1024的向量。
5)编写KNN算法对训练集进行训练,然后对测试集进行预测。如果使用python的话,可以调用sklearn.neighbors中的KNeighborsClassifier函数对
测试集进行预测。
5)真实值与预测值进行比较。数据中的文件按照规则命名,我们可以从文件名中解析出分类数字,如文件9_1.txt分类时9,他是数字9的第一个实例。
3.3识别用户手写输入功能设计与实现
●任务要求:
用户可以在手写识别系统的界面上用鼠标进行手写输入,然后系统自动识别出用户的输入。
●实践指导:
识别用户手写输入的思路和原理如下:
(1)简单说就是把数字划分成很多很多的小块,如图二所示:每个数字被划分成了4*5=20个小块。分好了小块以后,其实我们要知道每个小块是由很多个像点素构成的。比如数字8,是由5行4列共计:5*4=20个小块构成。
(2)数一下每个小块内,有多少个黑色的点。比如第一行:
第2个小块中,共有28个点,记为28.
第3个小块中,共有10个点,记为10.
第4个小B中,共有0个点,记为0.
以此类推,可以计算出每一行的每一个小块数字是多少。
(3)为了方便,我们把得到的特征,排成一排(数组)就好了。
(4)照着葫芦画瓢,每个数字的特征其实都是一堆数字构成的。这个数字类似于我们的身份证号码,一般来说,是独一无二的。
(5)识别原理:就是比较要识别的数字特征和步骤4中的哪个数字的特征最接近。这里为了方便,假设要识别数字“8”,然后看看怎么从一堆数字里面选出来他
到底应该是几。具体方法时计算其欧式距离,距离越小代表其相似性越大。
4 系统评估
(1) 比较测试集中各个样本的分类结果和真实类别,统计下表中a,b,c,d
(2) 根据下列公式计算查准率、查全率、F1值、正确率
查准率:
查全率:
F1值:
正确率:
如不能完全实现查准率、查全率、F1值、正确率,至少计算下准确率。
5 简单的系统界面
设计良好的图形用户界面来展示系统功能。 输入:用户选择的文本文件或者鼠标的手写输入 输出:识别后的数字结果
%100⨯+=
B A A
precision %100⨯+=
C A A
recall %10021⨯+=
R P PR
F %
100⨯++++=
D C B A D
A Accurarcy