1、文档仅供参考,不能作为科学依据,请勿模仿;如有不当之处,请联系网站或本人删除。Introduction手写数字识别系统手写数字识别系统: 手写数字识别是符号识别的一个分支,虽然只是识别简单的10个数字,但却有着非常大的实用价值。 在我们的日常生活中,每天都要进行大量的文档处理工作,税单、银行支票、汇款单、信用卡账单的处理,以及邮局信函的分检等等,如何利用计算机字符识别和文档处理技术,使人们从这些繁重的手工劳动中解放出来已成为一个迫切需要解决的问题。另外随着平板电脑和触摸屏手机的普及,手写输入成为了很多人的主要输入方式。 手写数字虽然只有10个种类,但很多情况下对识别的精度要求非常高,而且每个人
2、都有不同的字迹,要做到准确地识别还是有一定难度的。况且在实际应用中,手写数字识别的精确度要求要比汉字严格的多,因为数字识别经常用在财务、金融等领域。文档仅供参考,不能作为科学依据,请勿模仿;如有不当之处,请联系网站或本人删除。Literature review目前解决该问题的技术已经相当成熟。包括我们手机上的大部分输入法不仅支持数字的识别,而且支持汉字的识别,而且准确度也比较高。手写识别常见的例子:“SoGou拼音输入法”文档仅供参考,不能作为科学依据,请勿模仿;如有不当之处,请联系网站或本人删除。Proposed methodSVM 支持向量机支持向量机(是借助最优化方法来解决机器学习问题的
3、新工具,是克服“维数灾难”和“过学习等传统困难的有力手段”)机理 来源于解决分类问题:系统随机产生一个超平面,通过训练移动它,直到训练集合中不同的类别正好位于该超平面的不同侧面。 支持向量机的机理是:寻找一个满足分类要求的最优分类超平面,即两侧空白空间最大化。L1L2H1H2H文档仅供参考,不能作为科学依据,请勿模仿;如有不当之处,请联系网站或本人删除。SVM的特点与不足的特点与不足特点:(1)非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高维空间的非线性映射;(2)对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想是SVM方法的核心;(3)支持向量是SVM的训练结果
4、,在SVM分类决策中起决定作用的是支持向量。(4)SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了“维数灾难”。(5)少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样本,而且注定了该方法不但算法简单(6) SVM在小样本训练集上能够得到比其它算法好很多的结果。在小样本训练集上能够得到比其它算法好很多的结果。两个不足:(1) SVM算法对大规模训练样本难以实施算法对大规模训练样本难以实施(由于SVM是借助二次规划来求解支持向量,而求解二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很
5、大时该矩阵的存储和计算将耗费大量的机器内存和运算时间。)(2) 用用SVM解决多分类问题存在困难解决多分类问题存在困难(经典的支持向量机算法只给出了二类分类的算法,而在数据挖掘的实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向量机的组合来解决。)文档仅供参考,不能作为科学依据,请勿模仿;如有不当之处,请联系网站或本人删除。训练集训练集:MNIST手写数字图片库(https:/ + SVM 实现/建立训练样本Mat trainingDataMat(x, x, CV_32FC1, trainingData); Mat labelsMat (x, x, CV_32FC1, labels)
6、;/设置SVM参数CvSVMParams params; params.svm_type = CvSVM:C_SVC; params.kernel_type = CvSVM:LINEAR; params.term_crit = cvTermCriteria(CV_TERMCRIT_ITER, 100, 1e-6);/训练支持向量机CvSVM SVM; SVM.train(trainingDataMat, labelsMat, Mat(), Mat(), params);文档仅供参考,不能作为科学依据,请勿模仿;如有不当之处,请联系网站或本人删除。测试样本预处理压缩10*10文档仅供参考,不能作
7、为科学依据,请勿模仿;如有不当之处,请联系网站或本人删除。实验演示(Windows)实现:C+、Opencv + SVM文档仅供参考,不能作为科学依据,请勿模仿;如有不当之处,请联系网站或本人删除。实验演示(Android)文档仅供参考,不能作为科学依据,请勿模仿;如有不当之处,请联系网站或本人删除。实验结果分析当手写字体比较正式的情况下,其识别效果较好,但当手写字比较随意时,识别效果比较差。比如右图横着写的8和加了噪音的3。这存在多个方面因素,一方面是由于训练样本中不存在歪曲的样本,另一方面用SVM解决多分类问题存在困难。还有图像预处理时将原图像映射成10*10的,存在精度丢失。每个数字 100个训练样本,测试数据正确率80.21%(训练集太少)每个数字1000个训练样本,测试数据正确率95.45%(体现小样本高准确率的特性)每个数字6000个训练样本,测试数据正确率97.67%