题目 基于SVM的手写数字识别
1.1 题目的主要研究内容
- 工作的主要描述
本文设计了基于SVM的手写数字识别系统。首先将图片进行预处理,然后建立支持向量机,最后对测试样本进行测试,识别出手写数字。
(2)系统流程图
1.2 题目研究的工作基础或实验条件
- 硬件环境:
主机:Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz 1.99 GHz
操作环境:Windows10
(2)软件环境:
MATLAB
1.3 数据集描述
选取的训练样本为50幅手写体数字,每个数字均有5幅图片,每幅图片大小为50×50像素,如图所示;
另外选取30幅手写体数字图片作为测试样本,每个数字有3幅测试图片,每幅图片大小为50×50像素,如图所示;
1.4 特征提取过程描述
由于图片中数字的大小和位置不尽相同,为了消除这些影响,首先对每幅图片做标准化预处理:把每幅图片做反色处理,并转为二值图像,然后截取二值图像中包含数字的最大区域,最后将截取到的区域转化为标准的16×16像素的图像。因此数字上的像素点灰度值为1,背景像素点灰度值也为0,也就是说标准处理后的图像为黑底白字的图像。黑白图的分辨率换成16×16以后,那么就可以用256个二进制数字存储一幅图,256个数组成一个数组来输入给软件来进行处理。
1.5 分类过程描述
支持向量机(support vector machines,SVM)是一种二分类模型,它将实例的特征向量映射为空间中的一些点,SVM 的目的就是想要画出一条线,以 “最好地” 区分这两类点,以至如果以后有了新的点,这条线也能做出很好的分类。通过SVM工具箱中svmpredict函数进行分类。preTestLabel = svmpredict(TestLabel, TestData, model)。TestLabel表示测试集的标签,TestData表示测试集的数据,model是上面训练得到的模型。
1.6 主要程序代码