手写数字识别问题(5)——完结

经过接近15周的艰苦努力,毕业设计(基于MATLAB的手写数字识别系统)已经完结。
设计过程中遇到的部分问题可查阅博客:

  1. 手写数字识别问题(1)——关于MNIST数据集
  2. 手写数字识别问题(2)——利用MATLAB搭建GUI界面
  3. 手写数字识别问题(3)——详解卷积神经网络LeNet-5
  4. 手写数字识别问题(4)——图像处理时常见问题之uint8与double类型详解
    以及本文手写数字识别问题(5)——完结。

本文采用MATLAB型号是MATLAB R2016a,且是利用纯代码BP神经网络设计实现,没有利用MATLAB神经网络工具箱函数,这样更能方便的了解BP神经网络的工作原理——信号前向传播,误差反向传播。最后利用GUI界面进行搭建,方便快捷。
整个过程包括五部分,分别是:
样本库图像预处理。手写数字识别中使用的数据库,主要图像预处理的方法。
样本特征提取。对预处理之后的图像数据选择样本特征进行提取。
分类器设计。通过对比各种分类器选择较为合适的BP神经网络分类器
手写数字的识别。与样本库图像不同,本文所要识别的对象是利用windows 画图产生黑白二值且保存为.bmp 文件的手写数字图像,因此需要进行与样本库图像不同的图像预处理。
搭建GUI界面。利用MATLAB GUI界面搭建软件系统,验证系统的稳定性良好。

GUI界面又包括单数字GUI界面搭建及多数字GUI界面搭建。本设计基本将手写数字识别的各个领域均涵盖在内。而且代码基本都有注释解释,更方便了解。
部分代码如图所示。
主函数部分代码:
在这里插入图片描述
识别函数部分代码:
在这里插入图片描述
单数字GUI界面:
在这里插入图片描述
多数字GUI界面:
在这里插入图片描述
经过训练,测试集识别率可以超过99%,具有良好的识别性能。

在这里插入图片描述
除此之外,本设计还可以提供必要的开题报告、文献综述、论文大纲及答辩PPT和答辩稿等介绍。
由于投入了不少精力和时间,以及走了大量的弯路。有需要代码的可以添加微信联系(备注:手写数字识别毕业设计

在这里插入图片描述