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

相关推荐
hans汉斯15 小时前
采煤工作面隐患目标检测中YOLO11与Faster R-CNN的对比研究
人工智能·目标检测·计算机视觉·cnn·信息与通信·信号处理
W_3260017 小时前
Python-OpenCV 轮廓进阶:旋转最小外接矩形、图像矩求质心、嵌套层级 hierarchy、轮廓形状匹配
图像处理·python·opencv·机器学习·计算机视觉
阿瑞斯官方账号18 小时前
多台 CIS 拼接检测现场售后实录:条纹、暗带、拼接错位怎么处理
数码相机·计算机视觉·视觉检测
majorArcs19 小时前
MATLAB 绘制论文级双重饼图:2024 高教社杯 C 题实战
matlab
vivo互联网技术19 小时前
Octopus:基于无历史数据的梯度正交化的学习框架|CVPR 2026
深度学习·计算机视觉·llm
牧羊人.33319 小时前
计算机视觉基础 第 9 章|实战:银行卡号识别
图像处理·人工智能·opencv·计算机视觉·图搜索算法
欧特克_Glodon21 小时前
OpenCV计算机视觉开发入门与实践<十三>:图像转换之灰度图、二值图
c++·人工智能·opencv·计算机视觉
AndrewHZ21 小时前
图像处理入门010 | Pillow 与 OpenCV 对比:双库图像读写实战
图像处理·opencv·计算机视觉·pillow
欧特克_Glodon21 小时前
OpenCV计算机视觉开发入门与实践<十二>:XML 和 YAML 文件读写
xml·c++·opencv·计算机视觉
TAN-90°-1 天前
Deep Learning for Computer Vision——Training CNNs and CNN Architectures
人工智能·深度学习·神经网络·算法·机器学习·计算机视觉·cnn