基于svm的手写数字识别程序介绍(matlab)

1、程序界面介绍

该程序GUI界面包括手写板、手写数字可视化(原图)、对图像进行灰度处理(灰度图)、图像二值化处理(二值化)、图像特征可视化(HOG特征(方向梯度直方图))、识别结果可视化。其中包括训练模型、数字识别。

程序GUI界面

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| 数字3识别结果 | 数字4识别结果 |

2、程序的使用

2.1 程序的打开

首先在matlab窗口命令行中,输入"guide"命令,在弹出的对话框中,选择NumberRecog.fig文件并打开,得到数字识别程序界面。

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| 窗口出入命令行 | fig打开对话框 |

程序界面示意图

单击绿色三角即可运行程序

2.2 训练样本制作

本程序基于支持向量机SVM进行手写数字识别,因此需要事先制作训练样本。本程序提供了利用手写板制作样本的方法。利用手写版,对0、1、2、...、9这10个数字,每个数字制作20个样本数字。具体来说,在手写板上,利用鼠标各写20次数字,并利用"保存图片"按钮,将数字进行保存。如制作样本数字0如下:

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| 手写0样本数字 | 0样本数字保存 |

相同数字样本放在同一文件夹下,便于寻找。可以参考如下形式,10个数字分别放在10个文件夹下,并按照一定顺序进行编号,如对样本数字图片,编号为0-1、0-2、0-3、0-4、....。

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| 训练样本存放示例 | 文件夹0中的样本数字 |
| | |
| 文件夹5中的样本数字 | 文件夹8中的样本数字 |

制作完样本数字后,需要制作一个存放样本数字图片的txt文件,如traindata.txt。其中,里面主要存放每个样本数字图片的存放路径。如下图所示:

******需要注意的是,下载到自己电脑上后,一定要将traindata.txt中内容,改成图片实际在你电脑上存放的位置,要不然程序报错。********

traindata.txt文本中图片存放位置示意

2.3 训练模型

在制作好训练数据后,便可以训练模型。点击"训练模型"按钮,打开traindata.txt文件,确定后开始训练模型,模型训练结束后,会弹出"模型训练完成!"的提示,如下图所示。

|---------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
| | |
| 打开训练样本文件 | 训练完成提示 |

2.4 识别数字

在手写板上随意写0-9数字中任意数字,单击"载入"按钮,再单击"数字识别"按钮,最后变可准确识别数字。

当再写其他数字时,单击"重置"按钮,会将手写版清空,再使用鼠标写数字,再单击"载入"、"数字识别",即完成数字识别过程。

4、说明

理论上样本制作的越多,训练的模型精度会更高。若自己想制作更多的训练样本数字训练模型,可以使用写字板最左样本。但是制作完后,需要修改以下地方:

(1)traindata.txt中内容

traindata.txt是存放每个训练样本图片的路径,因此,需要根据最终制作样本图片进行修改。具体来说,将你制作多的训练样本图片路径,添加进来即可。

(2)m文件修改

在NumberRecog.fig文件中,选择"训练模型"按钮,右击,在弹出选项中选择"callback"。

对train_label进行修改,修改主要是行数,比如,本人电脑上每个数字样本图片各为20张,因此train_label中0-9中每个数字各为20。

若你增加了训练样本数字,每个数字样本为30,那么你需要将0-9中每个数字各为30,如下形式:

按照上述介绍,根据自己实际情况进行修改即可。

基于matlab的源代码下载链接:https://download.csdn.net/download/qq_32867925/89275750

相关推荐
2401_858120537 小时前
深入理解MATLAB中的事件处理机制
前端·javascript·matlab
leon6257 小时前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
小齿轮lsl7 小时前
PFC理论基础与Matlab仿真模型学习笔记(1)--PFC电路概述
笔记·学习·matlab
学习不好的电气仔10 小时前
基于虚拟阻抗的逆变器下垂控制环流抑制策略MATLAB仿真
开发语言·matlab
原机小子10 小时前
掌握MATLAB中的数据类型转换技巧
开发语言·matlab
机器学习之心13 小时前
时序预测 | Matlab实现SSA-TCN麻雀搜索算法优化时间卷积网络时序预测-递归预测未来数据(单输入单输出)
matlab·递归预测未来·ssa-tcn·麻雀搜索算法优化时间卷积网络
shiming887916 小时前
MATLAB图像处理
图像处理·计算机视觉·matlab
slandarer16 小时前
MATLAB | R2024b更新了哪些好玩的东西?
java·数据结构·matlab
2401_8581202616 小时前
MATLAB中的无线通信系统部署和优化工具有哪些
开发语言·matlab
MATLAB滤波16 小时前
【PSINS】基于PSINS工具箱的EKF+UKF对比程序|三维定位|组合导航|MATLAB
开发语言·matlab