MATLAB--基于BP神经网络的手写数字识别

本文详细介绍了如何使用MATLAB和BP神经网络对手写数字进行识别,涉及手写数字识别的非线性数学模型建立、BP神经网络的创建、训练和测试。通过预处理、特征提取,利用MNIST数据集训练神经网络,实现手写数字的准确识别。
摘要由CSDN通过智能技术生成

MATLAB–基于BP神经网络的手写数字识别

在干活的过程中整理下来的,希望对大家有帮助。
手写数字识别技术作为图像处理和模式识别中的研究热点,在大规模数据统计(如行业年检、人口普查等)、票据识别、财务报表、邮件分拣等方面有着广泛的应用。目前手写数字识别技术也有很多种实现方法,这里介绍与本章内容相关的一种基于BP神经网络的手写数字识别方法。该方法的基本思想来源于以下两方面:一是手写数字图片中黑色像素点和白色像素点之间的空间编排关系构成了我们看到的数字,也就是说图片像素点的空间排布和输出的识别结果之间存在着非线性的映射关系。二是BP神经网络刚好就能解决非线性映射的数学建模问题。如果对像素点空间排布与输出数字之间的关系进行学习、训练,建立有效的人工神经网络,就可对再次给出的手写数字图片进行识别,输出识别结果。
手写数字的识别就是利用计算机自动识别人手写在纸张上的阿拉伯数字,如果输入以下手写数字图片,则计算机输出对应识别结果为:0、1、2、3、4、5、6、7、8、9。
手写数字图片截图
进行手写数字识别时,先要对读取图片进行预处理,包括去噪、二值化等,再进行特征提取。特征提取的方法很多,这里采用一种简单的特征提取方法,即统计每个小区域中图像像素所占百分比作为特征数据。提取特征后再创建、训练BP神经网络模型,最后用测试数据进行测试。
要进行手写数字识别这个实际问题,第一步就是建立手写数字的模型。

1.手写数字识别非线性数学的模型建立

BP神经网络即误差反向传播神经网络,可解决有教师训练的非线性数学建模问题。模型的建立主要包括:BP神经网络的创建、BP神经网络的训练以及BP神经网络的测试三步。
创建BP神经网络前首先要确定网络的输入、输出。

(1)BP神经网络的输入、输出

BP神经网络的输入数据是手写数字样本经过预处理和特征提取后的数据。而为了BP神经网络的输入,我们肯定要先读入手写数字的样本,这里我们使用最通用的MNIST手写数字库,这个数据库直接在百度上就能下载到,该数据库包含0-9这10个数字的手写体,放在10个文件夹里,文件夹的名称对应存放的手写数字图片的数字,每个数字500张,每张图片的像素统一为28×28。
下面介绍用MATLAB程序实现读入手写数字的样本,这里注意,我将手写数字的样本放在和MATLAB 程序同根目录的文件夹里,文件夹的名称对应存放的手写数字图片的数字,也就是说当前文件夹如下图所示。画红线的文件夹就是我们要读入的手写数字的样本,以数字0为例,数据库中图片的名称如下图所示。
来自我的MATLAB截图
来自我的MATLAB截图
这样就可以用在主程序中调用read_train子函数读入手写数字的样本了。

这里需要说明的是,我的MATLAB程序来自于:<

评论 91
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值