手写数字识别系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于SVM的手写数字识别系统
2150230509 文 成 软件工程
Introduction
手写数字识别系统: 手写数字识别是符号识别的一个分支,虽然只是识别简单的10个数字,但 却有着非常大的实用价值。 在我们的日常生活中,每天都要进行大量的文档处理工作,税单、银行支 票、汇款单、信用卡账单的处理,以及邮局信函的分检等等,如何利用计算 机字符识别和文档处理技术,使人们从这些繁重的手工劳动中解放出来已成 为一个迫切需要解决的问题。另外随着平板电脑和触摸屏手机的普及,手写 输入成为了很多人的主要输入方式。 手写数字虽然只有10个种类,但很多情况下对识别的精度要求非常高, 而且每个人都有不同的字迹,要做到准确地识别还是有一定难度的。况且在 实际应用中,手写数字识别的精确度要求要比汉字严格的多,因为数字识别 经常用在财务、金融等领域。
(总共提供60000个训练样本,每个数字提供6000个训练样本。另 外提供1000个测试数据)
训练样本
压缩
28*28
10*10
SVM训练
0
//C++、opencv2.4 + SVM 实现 //建立训练样本 Mat trainingDataMat(x, x, CV_32FC1, trainingData); Mat labelsMat (x, x, CV_32FC1, labels); //设置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);
手写数字识别的一般方法
训练样本 图像预处理 SVM训练
测试样本
图像预处理
识别器
结果
训练集:MNIST手写数字图片库
(https://code.google.com/archive/p/supplement-of-the-mnist-database-of-handwrittendigits/downloads)
两个不足: (1) SVM算法对大规模训练样本难以实施(由于SVM是借助二次规划来求解支持向量,而求解 二次规划将涉及m阶矩阵的计算(m为样本的个数),当m数目很大时该矩阵的存储和计算将耗 费大量的机器内存和运算时间。) (2) 用SVM解决多分类问题存在困难(经典的支持向量机算法只给出了二类分类的算法,而在 数据挖掘的实际应用中,一般要解决多类的分类问题。可以通过多个二类支持向量机的组合 来解决。)
实现:C++、Opencv + SVM
实验演示(Android)
实验结果分析
每个数字 100个训练样本,测试数据正确率80.21%(训练集太少) 每个数字1000个训练样本,测试数据正确率95.45%(体现小样本高准确率的特性) 每个数字6000个训练样本,测试数据正确率97.67%
当手写字体比较正式的 情况下,其识别效果较好,但 当手写字比较随意时,识别效 果比较差。比如右图横着写的8 和加了噪音的3。 这存在多个方面因素, 一方面是由于训练样本中不存 在歪曲的样本,另一方面用 SVM解决多分类问题存在困难。 还有图像预处理时将原图像映 射成10*10的,存在精度丢失。
Literature review
目前解决该问题的技术已经相当成熟。 包括我们手机上的大部分输入法不仅支持数字的识别,而且支持汉字的 识别,而且准确度也比较高。
手写识别常见的例子: “wenku.baidu.comoGou拼音输入法”
Proposed method
SVM 支持向量机 (是借助最优化方法来解决机器学习问题的新工具,是克服“维数灾难” 和“过学习等传统困难的有力手段”)
非0 1
核函数的选择: 核函数是SVM的核心,不同的核函数可以构造不 同的SVM分类器,比如线性核函数,二次核函数 和多项式核函数,径向基核函数等等。 非1
。。。
(SVM最初设计出来是用于解决二分类问题 的,多分类问题需将多个SVM的二分类器组 合起来。)
测试样本
预处理
压缩
10*10
实验演示(Windows)
机理
– 来源于解决分类问题:系统随机产生一个超平面,通过训练移动它, 直到训练集合中不同的类别正好位于该超平面的不同侧面。 – 支持向量机的机理是:寻找一个满足分类要求的最优分类超平面, 即两侧空白空间最大化。
L1
L2
H1 H H2
SVM的特点与不足
特点: (1)非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高维空间的非线性映射; (2)对特征空间划分的最优超平面是SVM的目标,最大化分类边际的思想是SVM方法的核心; (3)支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支持向量。 (4)SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂性取决于支持向量的数目,而 不是样本空间的维数,这在某种意义上避免了“维数灾难”。 (5)少数支持向量决定了最终结果,这不但可以帮助我们抓住关键样本、“剔除”大量冗余样 本,而且注定了该方法不但算法简单 (6) SVM在小样本训练集上能够得到比其它算法好很多的结果。
相关文档
最新文档