一种基于深度学习的手写体数字识别方法及系统与流程

文档序号:11234412阅读:1371来源:国知局
一种基于深度学习的手写体数字识别方法及系统与流程

本发明涉及模式识别和机器学习领域,具体涉及一种基于深度学习的手写数字识别方法及系统。



背景技术:

手写数字识别是日常生活和工业领域处理一些数据和信息的核心技术,比如:统计报表、财务报表、邮政编码、各种票据等等。手写体数字识别作为图像识别领域下的一个很重要的分支,同时也是模式识别下的一个传统研究领域,不仅具有重大的现实意义和应用价值,还有着极其关键的理论价值。在实际应用中尤其在金融领域对识别的精度有相当苛刻的要求,单个数字的正确与否就可能造成难以估量的损失。

卷积神经网络是专门为处理二维数据的,被认为是第一个采用多层次网络结构的深度学习方法,近年来在图像识别领域取得了巨大的成功。由于采用局部连接和权值共享,保持网络深层结构的同时又大大减少了网络参数,使模型具有良好的泛化能力又较容易训练。

在经典的模式识别中,一般是事先提取特征。提取诸多特征后,要对这些特征进行相关性分析,找到最能代表字符的特征,去掉对分类无关和自相关的特征。然而,这些特征的提取太过依赖人的经验和主观意识,提取到的特征的不同对分类性能影响很大,甚至提取的特征的顺序也会影响最后的分类性能。同时,图像预处理的好坏也会影响到提取的特征。而卷积神经网络不用对图像进行复杂的预处理操作,可以方便地把图像作为输入,通过大量的数据来学习特征的,避免了显示的特征提取,比以往的人工选取特征更可靠。



技术实现要素:

为了解决上述问题,本发明提出一种基于深度学习的手写数字识别方法和系统,避免了显式的提取特征,直接将图片作为输入,训练得到一个卷积神经网络,选取卷积神经网络最后一层的输出最为识别结果,明显提高了识别的正确率和效率。

本发明是通过以下方案实现的:

本发明涉及一种基于卷积神经网络的手写体数字识别方法,通过构建带标签的训练集作为样本集对卷积神经网络进行训练,并将训练好的卷积神经网络处理待识别的图片,最后根据卷积神经网络的输出向量判断识别结果。

本发明具体步骤如下:

步骤1,制作训练集并将图片做预处理:根据可能出现的书写状况,不同的书写习惯,尽可能有偏差的书写,制作手写数字图像的训练集和标签集,训练集 为经过预处理后的手写数字图像,首先将彩色图像灰度化,然后把灰度图像归一化为28*28大小;

步骤2,构造七层的卷积神经网络:该网络包括:输入层、两个卷积层、两个降采样层、一个全连接层和一个输出层,其中:输入层的数据是预处理完的手写数字图片,是28*28像素点构成的矩阵,卷积层c1有个特征图,降采样层s2同样有6个特征图,卷积层c3则有12个特征图,s4层对c3层特征图基础上进行降采样得到12张特征图,此时结束了特征提取的过程,随后通过单层感知机,最终得到一个10*1的列向量输出;

步骤3,训练卷积神经网络,网络的基本参数和规格设置完成后,每次选取固定个数的样本输入到卷积神经网络中,结合bp反向传播算法调整权重和偏置,具体过程如下:

步骤3.1:对网络初始化:对卷积核和权重进行随机初始化,对偏置进行全0初始化;

步骤3.2:将2000个训练样本和标签集导入初始化好的网络进行训练,经过卷积层和降采样层的逐层计算,最终得到实际输出,其中训练样本包括10个数字类别:数字0-9;

步骤3.3:将实际输出与标签进行对比,得到误差,结合bp反向传播算法调整cnn的权重和偏置。

步骤4:手写数字的识别,在系统手写板中完成数字的书写后,转化为灰度图,进行归一化处理后,然后将其输入到训练好的卷积神经网络中,最终得到识别结果。

通过以上内容可知,本申请提供的是一种基于卷积神经网络的手写体数字识别方法及系统,首先制作根据实际需要制作训练集和标签,然后设计网络的层数、特征图的数目和卷积核的大小等等,之后将训练集输入网络中利用bp传播算法完成对网络权重和偏置的调整,最后输入手写数字图像,预处理后输入卷积神经网络,完成对数字图像的识别。本申请通过卷积神经网络识别手写数字图像,避免了显示的特征提取,直接将图片作为网络的输入,识别准确率很高;且网络一经训练即可反复使用,处理效率高;训练时间短。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种手写体数字识别方法的流程图。

图2为本申请所使用的卷积神经网络结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

实施例1

如图1所示,本实施例包括以下步骤:

步骤1,图片预处理:

步骤1.1:根据可能出现的书写状况,不同的书写习惯,尽可能有偏差的书写,得到2000个手写数字的图像;

步骤1.2:将以上得到的手写数字图像转化为灰度图像;

步骤1.3:把步骤1.2所得到的图像归一化为28*28大小,把像素点按空间位置不变排列成28*28的矩阵,每一个矩阵代表一张图片,并保存在训练集中,然后根据训练集制作相应的标签集,10*1的矩阵代表一个数字的标签。

步骤2,构建卷积神经网络:

本实施例中采用的卷积神经网络是一个多层的神经网络,由输入层、中间层和输出层等多层组成,每层由多个二维平面构成,而每个平面由多个独立神经元构成。

卷积神经网络是专门为处理二维数据的,被认为是第一个采用多层次网络结构的深度学习方法,是一种特殊的深层的神经网络模型,体现在局部连接和权值共享两个方面,这使得它更接近生物神经网络。

步骤2.1:构造如图2所示的多层神经网络,包括输入层,两个卷积层,两个降采样层,一个全连接层和一个输出层,卷积层中的神经元通过局部感受野(一个卷积核,5*5大小)与上层相连接,并且通过卷积运算提取该局部的特征,该层使用单调递增的sigmoid函数作为激活函数,每个卷积层的后面都跟着一个降采样层,采用池化的方法进行二次提取,对图片进行降维,减少信息的处理量并不会使有用信息流失。这种特有的两次特征提取使网络对输入样本有较高的即便容忍能力;

步骤2.2:卷积神经网络的输入为28*28的灰度图,卷积层c1卷积核大小为5*5,有6张特征图,降采样层s2有6张特征图,卷积层c3由s2的6张特征图经卷积而后得到12张特征图,因为特征图的数量较少,为了得到更全面的特征,组合方式采用全连接的方式,降采样层s4有12张特征图,全连接层将s4的12张特征图排列,设置192个节点,输出层设置为10个节点;

步骤2.3:c1层经5*5的卷积核卷积后,6个特征图的大小均为24*24,特征图中每个神经元与输入中5*5的卷积核相连,每个滤波器5*5共25个元参数和一个偏置参数,一共6个滤波器(即卷积核),共(5*5+1)*6=156个训练参数,共156*(24*24)=89856个连接;s2层经降采样后得到6个12*12的特征图,特征图中的每个单元与c1层中对应特征图中的2*2邻域连接,每个单元的4个输入相加,乘以一个可训练参数,再加上一个可训练偏置,结果通过sigmoid函数计算,每个单元的2*2邻域并不重叠,因此s2中每个特征图的大小是c1中特征图大小的1/4(行和列各1/2),s2层有12个可训练参数和12*12*(4+1)*6=4320个连接;c3层同样通过5*5的卷积核去卷积降采样层s2,得到12个8*8的特征图,共有(5*5+1)*12=312个可训练参数,共312*(8*8)=19968个连接;s4层是一个降采样层,由12个5*5大小的特征图构成,特征图中的每个单元与c3中相应特征图的2*2邻域相连接,跟c1和s2之间的连接一样,s4层有24个可训练参数和(2*2+1)*12*5*5=1500个连接;全连接层与输出层之间则有192个可训练参数。

步骤3,训练卷积神经网络:

步骤3.1:用不同的小随机数(0-1之间)对可训练参数初始化,对偏置初始化为0;

步骤3.2:向图2中的卷积神经网络输入2000个训练样本来训练网络,每条样本包括(输入向量和标签),输入经过逐层变换,最后在输出层输出,得到输出向量;

步骤3.3:计算残差,结合反向传播bp算法更新可调整参数和偏置。

步骤4,手写数字识别:

步骤4.1:在系统的手写板中写完数字保存之后,进行灰度化,归一化预处理;

步骤4.2:得到预处理之后的图片,输入到已经训练保存好的卷积神经网络中,等待输出,取输出向量最大值得行号为识别结果,即完成对手写数字的识别。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1