基于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

相关推荐
weixin_307779137 小时前
C++代码实现MATLAB中的crossval函数功能
开发语言·c++·算法·matlab
loulanyue_8 小时前
体验的Scaling时刻:读淘天首席科学家郑波2026云栖演讲
人工智能·计算机视觉·大模型·多模态
菜鸟~noob23310 小时前
【电子战】 第22篇:误差椭圆与置信区间【含matlab代码】
开发语言·算法·matlab
weixin_3077791310 小时前
C++代码实现MATLAB中的normalize函数功能
开发语言·c++·算法·matlab
答案是你12 小时前
YOLOE 开放词汇检测 + ONNX / TensorRT 推理,开源了!
python·深度学习·yolo·目标检测·计算机视觉·视觉检测
Tingmanyi13 小时前
YOLOv13改进策略【卷积层篇】| RFAConv 感受野注意力卷积,每个位置都值得被单独加权
深度学习·算法·yolo·目标检测·计算机视觉
这张生成的图像能检测吗14 小时前
(论文速读)一种用于图像超分辨率的有效扩散变换结构
人工智能·计算机视觉·扩散模型·超分辨率
指针向南14 小时前
视频截图发黑先检查透明区域
图像处理·人工智能·计算机视觉·音视频
今夜有雨.15 小时前
图像运算、掩膜/ROI 与绘制交互
c语言·数据结构·c++·qt·算法·计算机视觉
Keep_Trying_Go16 小时前
MobileSAM 论文方法详解
人工智能·深度学习·计算机视觉·分割算法