摘要:随着科学技术的发展,机器学习成为一大学科热门领域,是一门专门研究计算机怎样模拟或实现人类的学习行为的交叉学科。文章在matlab软件的基础上,利用BP神经网络算法完成手写体数字的识别。

机器学习是一门多领域交叉学科,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织己有的知识结构,使之不断改善自身的性能。实现机器学习的方法多种多样,常见到的主要有神经网络算法、CNN卷积神经网络算法、RNN循环神经网络算法、EM算法、贝叶斯算法、聚类算法、回归算法、SVM等。本文将利用BP神经网络算法来完成手写体数字的识别[1]。

1总体方案

1.1题目分析

手写体数字识别的实现相对于其他元素的识别,具有许多优势。主要表现在以下几个方面:(1)涉及的识别元素数目少,仅有0〜9共10个元素;(2)训练集合背景多为纸张,受到的环境干扰小;(3)识别元素笔画简单,便于识别;(4)训练集合便于采集。

在此基础上,之所以选取BP神经网络作为工具来实现手写体数字识别,其优势主要体现在:(1)BP神经网络算法具有很强的非线性拟合能力,可以影射任何的非线性复杂关系;(2)学习规则简单,便于计算机实现[2]。

1.2总体方案设计

本次试验是识别手写体数字,大体上可以分为两个阶段来实行,分别是训练神经网络和利用神经网络进行识别(预测)。要进行本次试验,首先要下载一个手写体数字素材库,将随机选取素材库中的一部分素材作为训练样本,提取训练样本的特征并以此对神经网络进行训练,这一阶段过后,会得到一个训练成型的神经网路模型。然后利用总样本除去训练样本所剩下的预测样本进行准确度的检验,观察预测的输出是否符合客观实际,多大程度上符合客观实际。

如果得到的最终结果具有比较大的准确度,那么本次试验即成功完成。

通过查阅资料,搜集到了总共5000张每个数字500张的手写体数字图片作为本次实验的素材,随机选取4500张图片作为训练样本,剩下的500张图片作为检验样本[3]。

2算法基本原理

本算法以BP神经网络模型为基础,通过构建图像读取模块、特征提取模块、标签构造模块、训练集/测试集划分模块、神经网络构建以及训练模块、神经网络测试模块和正确率计算模块几个主要模块来实现手写体数字识别这一基本功能,接下来分模块对其原理进行叙述[4]。

2.1图像读取模块

图像读取模块的功能是对搜集到的素材进行数字化的处理,读取到计算机中的模块。其中我们采取了imread函数将5000张手写体数字图片输入计算机。由于计算机的图像存储规则,最终会得到1X5000=5000个图像矩阵,每个图像矩阵都具有其保存的对应图像的绝大部分信息。这些图像矩阵都保存在Cell型变量中,作为后文应用的基础素材。2.2特征提取块特征提取模块即对获得的数字图像进行特征提取。大致的思路如下。首先将将得到的黑白灰度图像在一个合理阈值的范围内转化为二值图像。其次对上一阶段中获得的5000张数字图像(数字矩阵)每一张图像都进行分块处理,再将每一个小的分块看成是一个具体的单位,统计其中有黑色像素存在的小的像素点的个数,并与总像素点的个数做除法得到存在黑色像素的占比大小,将这个占比大小作为每个具体分块单位的特征数据,计入特征矩阵。

在本模块中除了进行特征提取,还对图片的大小进行了统一化的裁切处理,方便后面的应用[5]。

2.3标签构造模块

标签构造模块的目的就是构造出每个具有特征的数字图像所对应的真实值,即标签。这一点是至关重要的,也是进行新图像识别(分类)的基础。在后面的处理中,无论如何变幻原图像,必须保持其与所对应标签的一致性。只有将一组特征(处理后的数据)与最后的标签对应起来,才能保证神经网络训练的有效性。构造标签矩阵的方法较为多样,在这里就不做赘述。

2.4训练集/测试集划分模块

这一模块的主要功能就是划分出训练集与测试集。在这里必须本着随机性均匀性的原则对总的数据集进行划分,这样才能保证最终结果的可靠性。在划分训练集与测试集的同时,需要把标签矩阵的对应元素也同样本数据(特征)一一对应地一并划分,将二者同时作为神经网络训练的输入进行训练。通过这一阶段,我们划分获得了4500个数字图像/对应标签作为训练集,500个数字图像/对应标签作为测试集。

2.5神经网络的构建及训练模块

这个模块的主要功能就是对神经网络进行构建与训练。在这一阶段笔者采用Matlab神经网络工具箱中的相关函数对输入其中的4500组数据链接神经网络进行反复训练,最终得到一个成型的神经网络模型用于后文的预测处理。

2.6神经网络预测模块

这个模块使用的是全部集合中除去训练集剩下的测试集进行预测判断的。在这一阶段通过simulink仿真将500组测试集对应的预测数据全部输出,以备进行最终的准确度检验。

2.7准确度检验模块

将最终的simulink仿真结果保存在一个矩阵中,通过将这个矩阵的元素与对应的客观真实的标签矩阵进行比较,统计出预测正确的数目,再与总预测数目相比较得到预测正确的数目占预测总数目的百分比,最终得到的即为预测的准确度[6]。

3系统实现

在算法中,通过unread函数进行图片的读取,读取得到的每个图片的数字信息储存在Cell类型的变量中,然后通过graythresh和im2bw函数获取一个合理的阈值将灰度图转化为二值图像,之后利用imcrop函数对图像的大小统一化处理。接下来进行数字图像的特征提取。通过对数字图像进行分块划分,将原始图像矩阵划分为多个图像子矩阵,同时将划分出的块落(每个子矩阵)当作一个具体的单位点来看待。编写相关函数统计每个子矩阵中黑色像素存在的元素数占总元素数的比值作为对应子矩阵当前点的特征数据,将若干个子矩阵的特征数据组合按照原先划分的位置重新组合成为一个特征矩阵,作为当前图像的特征矩阵进行后续操作。之后进行标签的构造,选用ones函数生成几个子标签矩阵,再通过矩阵的操作生成整个标签矩阵。以从1开始自大到小依次进1的矩阵重新随机排列的元素作为选定训练集与测试集的依据,取前4500作为训练集,取后500作为测试集,这样一来就达到了随机性均匀性的要求。完成了以上几个步骤,接下来进行神经网络的创建和训练。利用神经网络工具箱输入4500组测试数据和其对应的标签,通过srniulmk仿真将神经网络模型成型。有了神经网络模型,就可以编写函数对监测样本进行预测,观察预测结果是否符合客观实际。最终将预测结果与实际结果(实际标签)相比较,统计预测正确结果的个数并计算其占测试样本总数的百分比,得到正确率[7]。

4实验的缺陷和不足

本次试验仍存在一些不足之处。(1)由于本次试验采取的是黑白两色的数字进行识别,因此在转换二值图像部分具有较好的效果,若是采用彩色图像则效果欠佳,以至于影响后面的特征提取。(2)本次试验采用的5000张手写体数字图像规格相同、字体大小相同且字体均位于图像正中央,这为成功率作出了较大的贡献。反之若选取杂乱图像,效果必定欠佳。

5结语

通过多次利用十折交叉法进行结果检验,本实验最终得到的平均准确率为85.4%。在此条件下可以认为测试结果具有较高的准确率,即手写体数字识别完成良好。

21世纪是科技与人类社会紧密结合的一个世纪。机器学习作为一个应用广泛的学科领域,无疑走在了科技的前列。相信在未来,手写体数字识别作为一个较狭窄的应用领域,会焕发出其应有的活力。

[参考文献]

[1]许欢.李群机器学习模型及应用研究[D].苏州:苏州大学,2007.

[2]何清,李宁,罗文销,等.大数据下的机器学习算法综述[J].模式识别与人工智能,2014(4):327-336.

[3]段向军.基于神经网络的预测控制方法研究[D].大庆:大庆石油学院,2005.

[4]杨梦铎,李凡长,张莉.李群机器学习十年研究进展[J].计算机学报,2015(7):1337-1356.

[5]朱晓波.基于BP神经网络的手写体数字识别分析与研究[D].武汉:武汉科技大学,2003.

[6]白天毅.基于神经网络的手写体数字识别关键技术研究[D].西安:西安工业大学,2014.

[7]黄巧巧.基于BP神经网络的手写数字识别系统研究[D].武汉:华中师范大学,2009.

基于matlab的手写体数字识别系统相关推荐

  1. 基于matlab的手写体数字识别系统,基于matlab的手写体数字识别系统研究

    基于matlab的手写体数字识别系统研究 丁禹鑫1,丁会2,张红娟2,杨彤彤1 [摘要]随着科学技术的发展,机器学习成为一大学科热门领域,是一门专门研究计算机怎样模拟或实现人类的学习行为的交叉学科.文 ...

  2. 基于MATLAB的手写体数字识别算法的实现

    基于MATLAB的手写体数字识别 一.课题介绍 手写数字识别是模式识别领域的一个重要分支,它研究的核心问题是:如何利用计算机自动识别人手写在纸张上的阿拉伯数字.手写体数字识别问题,简而言之就是识别出1 ...

  3. MATLAB实现数字识别系统,基于人工神经网络的MATLAB手写数字识别系统

    <基于人工神经网络的MATLAB手写数字识别系统>由会员分享,可在线阅读,更多相关<基于人工神经网络的MATLAB手写数字识别系统(8页珍藏版)>请在人人文库网上搜索. 1.基 ...

  4. 基于MATLAB的人脸考勤识别系统

    基于MATLAB的人脸考勤识别系统 摘 要 人脸识别是模式识别和图像处理等学科的一个研究热点,它广泛应用在身份验证.刑侦破案.视频监视.机器人智能化和医学等领域,具有广阔的应用价值和商用价值.人脸特征 ...

  5. 超详细基于MATLAB的人脸考勤识别系统

    基于MATLAB的人脸考勤识别系统 摘 要 人脸识别是模式识别和图像处理等学科的一个研究热点,它广泛应用在身份验证.刑侦破案.视频监视.机器人智能化和医学等领域,具有广阔的应用价值和商用价值.人脸特征 ...

  6. 基于matlab的自动人脸识别系统GUI设计

    基于matlab的自动人脸识别系统GUI设计 之前做的一个课设项目半成品,一边网上找资料一边自己瞎捣鼓,完成了GUI界面的设计,实时视频中的人脸检测和追踪,PCA算法训练,单张人脸识别.但是识别率比较 ...

  7. 基于Matlab神经网络语音情感识别系统

    文件大小:5.1M 代码行数:55行(主程序) 开发环境:Matlab2018 点击下载:点击下载 简要概述:基于Matlab神经网络语音情感识别系统,五种基本情感:'生气','高兴','中性','悲 ...

  8. 基于TensorFlow的手写体数字识别

    目录 一.MNIST数据集介绍 二.原理 2.1.卷积神经网络简介( convolutional neural network 简称CNN) 2.1.1卷积运算过程 2.1.2滑动的步长 2.1.3卷 ...

  9. 基于VS的印刷数字识别系统

    工程文件详见 :z199912230/-VS-: 数字图像处理:图像识别 (github.com) 要求  根据题目要求,利用图像处理相关知识,完成印刷数字图像的采集及识别,确定具体数字. 采集印刷体 ...

最新文章

  1. python 类和函数的区别
  2. Windows 10 安装
  3. MVC 之var与dynamic
  4. 谷歌 CEO 发全员公开信:今年将放缓招聘速度
  5. 电脑如何查看x86与arm_电脑关联程序更改 如何更改电脑查看图片的方式
  6. DNS在什么情况下才能动态更新|活动目录集成的dns区域
  7. 基于网络的服装定制MTM系统研究 - 硕士论文 - 道客巴巴
  8. 在html中加入中文字体,html中中文字体的代码
  9. 免费网页设计学习课程,视频以及设计工具大全,网页设计不过如此!!!
  10. 芒果改进YOLOv7系列:首发改进特征融合网络BiFPN结构,融合更多有效特征
  11. 4000元台式电脑组装配置单2022 4000元组装电脑配置清单
  12. 使用百度ai识别身份证信息
  13. 实验三:基于A*算法的迷宫
  14. 激励函数简介 Tensorflow最简单的三层神经网络及matplotlib可视化 附激励函数常见类型
  15. html网页登录红色按钮,CSS让网页提交input按钮与众不同
  16. linux ps2键盘不能用,解决usb鼠标与ps2键盘合用时开机键盘失效
  17. 原创教程:下载和安装“图形化积木Python编程”海龟编辑器
  18. 清华规划院 伟景行 诚聘 Jsp/Java/Web高级开发工程师 互联网开发主管 测试工程师 etc.
  19. “大姨吗”创始人柴可:“慢就是快”
  20. DSP入门小白学习日记第三篇

热门文章

  1. 1038 01背包动态规划
  2. 24c02读程序C语言详解,24C02读写C语言程序
  3. Unity接入苹果内购(IAP)
  4. 不用网的cmd小游戏来啦
  5. 3des java ecb_C# And Java 3DES加解密 ECB模式/PKCS7
  6. logback之二:输出日志到控制台
  7. Elasticsearch查询时还在百度DSL语句吗?你可能需要这份总结
  8. stm32单片机实现多个闹钟_基于STM32F103系列单片机的11个定时器解析
  9. WGS84(GPS)、火星坐标系(GCJ02)、百度地图(BD09)坐标系转换案例教程(附转换工具下载)
  10. 含有一般疑问句的歌_一般疑问句,特殊疑问句和否定句