mnist数据集处理:
convert_MNIST_to_mat.m函数功能:将mnist数据集转换为mat格式,方便后续处理,详情可参考博客:https://blog.csdn.net/didi_ya/article/details/105075859
【注意】:处理时将mnist的四个文件夹放在E:\My Graduation project\MatlabReadMNIST\mnist目录下,当然也可自行更改目录。
数据增强:
DataAdd.m 函数功能:利用图像平移,图像旋转,图像放缩来扩充数据集,将数据集最大扩充为5000*8=40000组。
movement.m:图像平移函数
BP神经网络训练算法:
training.m:训练主函数
backpropagation.m:BP算法
prop_forward.m:前向传播
final_layer_sens.m:计算隐含层-输出层灵敏度
hidden_layer_sens.m:计算输入层-隐含层灵敏度
update_weights_biases.m:权值-阈值更新函数
nndlogsig.m:sigmoid函数
test_network.m:测试网络函数,用于验证集验证以及测试集测试
testing_test_network.m:计算正确率函数
主函数:
randomize_data.m:矩阵随机化函数,将mnist数据集构成的矩阵随机打乱
split_sets.m:将一个矩阵随机拆分成两个给定百分比的矩阵
vectorize_outputs:设立分类规则,把输出从1维变成10维单位向量,就是对10类设置期望值(即one-hot编码,可自行百度)
main.m:单特征提取主函数,负责处理数据集并进行神经网络的训练
mian2.m:多特征提取主函数
Transformation.m:将train_labels的图像转换为标准格式28*28
getFeature2.m:粗网格特征提取算法
getFeature3.m:交点特征提取算法
识别:
TransformationD.m:将现成的手写数字图像转换为标准格式28*28
Recognition.m:单一数字识别函数
Recognition_multi.m:多数字识别
GUI界面:
GUI.m:gui界面
【注意事项】:调用识别函数时最好将画图工具里的笔画调粗一些(8px最佳),多数字识别时数字间隔尽量大一点,然后白底黑字书写。可以利用本文件夹图片中的图片进行识别(这里的图片都是博主利用画图工具手写生成,绝对没毛病),当然也可自行手写;需要注意的是答辩的时候没必要现场手写,只需要读取能正常识别出来的即可,博主就是读取这些图片拿到优秀毕业设计的,如果你能看懂全部代码,相信你也可以!!!