基于支持向量机(SVM)算法的手写数字识别系统的实现
摘要
在银行、税务、财政、金融等领域,每天会产生大量的手写数字,人工录入工作量过大且无法保证准确率,需要机器及时准确地识别,因此研究高效率且高准确率的手写数字识别方式是非常有必要的。相较于其他手写文字,手写阿拉伯数字因为具有国际通用性,所以研究手写数字识别方法易推广且具有广泛的应用前景和理论意义。
可用于手写数字识别的算法很多,本课题在分析了卷积神经网络(CNN)和支持向量机(SVM)算法后选择了SVM算法,且选用了在手写数字识别时经常对算法准确度进行测试的MNIST数据集测试算法,在MATLAB开发环境中进行编程,通过处理MNIST数据集,灰度化、二值化,HOG特征提取,训练和评估SVM分类器,使SVM算法在手写数字识别上达到了接近99%的准确度。并且利用了GUI面板,演示了手写数字的识别,准确预测了结果。证明了SVM算法作为机器学习中非常经典的算法,对于复杂程度不高、数据量也相对较少的识别任务,亦可以很好地完成。
关键词:手写数字识别;CNN;SVM;MNIST数据集
目录
TOC\o1-3\h\u3820第一章引言 1
7481.1研究背景及意义 1
154581.2国内外研究现状 1
9485第二章CNN、SVM算法原理 1
275432.1卷积神经网络 1
59602.1.1卷积神经网络概述 1
213722.1.2LetNet-5模型 2
270012.1.3卷积神经网络识别手写数字流程 3
282592.2支持向量机 3
222552.2.1支持向量机简介 3
50232.2.2支持向量机分类 4
97302.2.3支持向量机优点 5
21295第三章手写数字识别的设计 6
96263.1MATLAB介绍 6
193833.2MNIST数据集介绍 6
163133.3基于SVM算法实现手写数字识别基本方法 7
136543.3.1算法流程图 7
44843.3.2划分数据集 8
287003.3.3图像预处理 8
154543.3.4特征提取 9
69503.3.5训练与测试 9
2753.3.6分类过程 9
8622第四章实现手写数字识别 9
320384.1MATLAB中实现手写数字识别 9
219084.1.1处理MNIST数据集 9
255314.1.2灰度化、二值化 12
110444.1.3HOG特征提取 12
58194.1.4训练和评估SVM分类器 13
20934.1.5GUI面板中演示结果 15
27168结论 16
PAGE
PAGE5
引言
1、研究背景及意义
手写数字识别研究的目的是设计一种有效的方法,用来识别用户通过数字设备提交的手写数字,本课题要求对目前的手写识别技术进行研究,设计实现手写数字识别。生活中很多场合都会涉及到大量手写数字,如在人口普查、财务报表等应用中,均会产生大量的数据需要统计输入,如果只靠人工录入,不仅准确率无法保证,时间成本和人力成本都会大大增加,所以研究一种高效准确的机器识别方法是非常有必要的。随着社会的发展,快递邮件分拣等领域利用手写数字识别+人工辅助识别的识别方法将会越来越普遍,大大提高生产生活效率。
手写数字识别的研究成果不仅可以在现实生活中得到广泛的应用,解决很多问题,在理论研究方面也有重要意义。阿拉伯数字是唯一全球通用的数字语言,对其研究得出的方法具有通用性,研究成果也可以相互借鉴启发,虽然经过多年研究后手写数字识别的原理已经不算神秘和复杂,但其研究方法有助于深入分析及验证一些新的理论,也可推广到其他字符的识别问题。本课题研究来源于现实需求,在大数据时代的背景下具有广泛的应用前景。
2、研究现状
文字识别的研究起源于二十世纪六十年代,主要由美国的IBM公司负责该工作。我国在手写体数字识别的研究方面虽然没有走在最前沿,也取得了一定的成果。如娄正良等人提出了一种新的基于小波变换和局部傅立叶变换的脱机手写数字特征提取方法,在MNIST数据集中该方法取得了较好的识别效果。常见的手写数字识别方法有卷积神经网络、支持向量机、贝叶斯算法、近邻算法、人工神经网络等。
第一章CNN、SVM算法原理
1.1卷积神经网络
1.1.1卷积神经网络概述
手写数字识别一直是机器学习、深度学习的一个研究热点,目前卷积神经网络(CNN)因为识别准确率高、算法较为先进而被广泛应用。卷积神经网络对数据处理方式和数学中的卷积类似,因此得名,是一种前馈型神经网络卷积神经网络,CNN模型众多,LeNet5就是一