首页> 中国专利> 基于卷积神经网络和编码的手写数字识别方法

基于卷积神经网络和编码的手写数字识别方法

摘要

本发明涉及光学符号识别领域,特别是手写数字识别这一应用领域,提出了一种基于卷积神经网络和编码的手写数字识别方法。本发明基于卷积神经网络和编码的方法,通过训练手写数字集和其轮廓特征,训练获得网络模型,求得各分类的二进制编码,识别时比较待识别编码和码本的汉明距离得到预测结果。实验结果证明该方法可以较为准确的识别手写数字,在泛化能力上也有不错的表现。

著录项

  • 公开/公告号CN112508036A

    专利类型发明专利

  • 公开/公告日2021-03-16

    原文格式PDF

  • 申请/专利权人 杭州电子科技大学;

    申请/专利号CN202011279352.7

  • 申请日2020-11-16

  • 分类号G06K9/46(20060101);G06K9/62(20060101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构33240 杭州君度专利代理事务所(特殊普通合伙);

  • 代理人杨舟涛

  • 地址 310018 浙江省杭州市下沙高教园区

  • 入库时间 2023-06-19 10:16:30

说明书

技术领域

本发明涉及光学符号识别领域,特别是手写数字识别这一应用领域,提出了一种基于卷积神经网络和编码的方法,提高了手写数字识别率和识别效率。

背景技术

手写数字识别的研究问题是如何利用电子计算机自动地辨认人手写在纸张上的阿拉伯数字,隶属于光学符号识别技术的范畴。在手写识别应用的领域中,按照识别方式分为在线识别和脱机识别,最困难的是脱机手写字符的识别。到目前为止,在手写数字识别领域中,研究者们已经将其推向各种实际的应用实践中。在针对由阿拉伯数字和少量特殊符号组成的数据信息,比如:银行票据录入,财务发票录入,邮件分拣等应用场景中,处理此类的手写数字信息,手写数字识别技术起到了至关重要的作用,极大地提高了手写数字录入计算机的速度。因此,手写数字识别技术的发明对实际生成过程中有着重大意义,有着极大的社会经济效应。

在过去几十年的技术发展中,研究者们提出很多中针对手写数字识别的方法。这些传统的方法主要包括全局分析方法和结构分析方法两类。对于前者,主要主要使用模版匹配,数学变换等技术,常常与数学统计分类方法一起使用。对于后者,常常需要提取字符的结构特征,比如圆圈,弧,端点等。然而到目前为止,通过这些传统的方法,电子计算机自动识别手写数字的本领还无法与人类的识别能力相比。虽然阿拉伯数字识别的类别只有10类,类别数量小并且笔画简单,但根据一些实验,数字识别的准确率并不如印刷字体识别的准确率高。原因主要在于数字笔画简单,数字之间的形体相近,并且由于人们书写习惯和方式不同,某些手写数字之间很区别较小,很难做出一套兼容所有书写习惯并且拥有高识别率的手写数字识别系统。所以,在手写数字识别这一应用技术上,需要朝着更加综合更加新颖的研究方向发展。随着人工智能深度学习学科的发展,如何将人工神经网络应用到手写数字识别技术上成为了迫切需要解决的问题。

发明内容

鉴于上述问题,本发明提出了一种基于卷积神经网络和二进制编码的手写数字识别方法。

本发明具体采用的技术方案如下:

一种基于卷积神经网络和编码的手写数字识别方法,其步骤如下:

S1:获取手写体数字图像的训练数据,并对每张手写体数字图像进行轮廓信息提取,然后将每张手写体数字图像的原图和轮廓图进行通道相加,再经过归一化后得到双通道手写体数字图像数据集;

S2:构建用于从图像中识别手写体数字的卷积神经网络模型,所述卷积神经网络模型为七层结构,其中第一层到第七层依次为卷积层、池化层、卷积层、池化层、全连接层、全连接层和全连接层,且在第一层和第二层之间以及第三层和第四层之间分别加入一个SENet模块,用于建模通道之间的相互依赖关系;

S3:利用所述双通道手写体数字图像数据集,对所述卷积神经网络模型进行训练,得到手写体数字识别模型;

S4:将每张双通道手写体数字图像输入所述手写体数字识别模型中,获取模型中第六层全连接层中所有节点的参数以及该图像中手写体数字的标签;对于具有相同标签L的所有双通道手写体数字图像,计算所有图像对应的模型中第六层全连接层中所有节点的参数平均值,再转换为该标签L下的二进制码;所有手写体数字标签的二进制码构成码本;

S5:从待识别的手写体数字图片中提取轮廓信息,然后将该图片的原图和轮廓图进行通道相加,经过归一化后得到双通道手写体数字图片,输入所述手写体数字识别模型中获得模型中第六层全连接层中所有节点的参数,再转换为二进制码后计算与所述码本中所有二进制码的汉明距离,选择汉明距离最小的二进制码的标签作为识别结果。

相对于现有技术而言,本发明的有益效果如下:

本发明通过添加轮廓信息进行手写体数字进行识别,并且在网络中添加注意力机制模块,提升了泛化能力;识别时通过编码的方式识别提升了识别结果的正确率。

附图说明

图1为模型训练流程图。

图2为识别流程图。

图3为部分训练样本图。

图4为部分识别结果图。

具体实施方式

下面结合附图和具体实施方式对本发明做进一步阐述和说明。本发明中各个实施方式的技术特征在没有相互冲突的前提下,均可进行相应组合。

在本发明的一个较佳实施例中,提供了一种基于卷积神经网络和编码的手写数字识别方法,其包含模型训练流程和待测图片识别流程,前者的具体流程如图1所示,后者的具体流程如图2所示。下面对其具体实现过程进行展开描述,其步骤如下:

步骤1:预处理手写体数字的训练集和测试集并提取轮廓信息。

(1.1)加载MNIST手写体数字图像的训练集、测试集及其标签,共有60000个训练集样本和10000个测试集样本,每张手写体数字图像的大小是28*28像素。

(1.2)MNIST数据集的格式是以一维数据的形式进行存储,需将其重塑为28*28*1的数据形式。

(1.3)对每张手写体数字图像的图通过Canny算子提取轮廓信息,形成轮廓图。

(1.4)将手写体数字图像的原图和轮廓图(其中部分样本如图3所示)进行通道相加,成为28*28*2的数据形式,形成双通道图像。

(1.5)对训练集和测试集的所有样本的双通道图像进行归一化,记为双通道手写体数字图像;

(1.6)为了防止图片顺序对结果的影响,我们随机对数据集的图片打乱处理,由此得到双通道手写体数字图像数据集。

步骤2:构建卷积神经网络模型。

卷积神经网络模型为七层结构,其中第一层到第七层依次为卷积层、池化层、卷积层、池化层、全连接层、全连接层和全连接层,具体如下:

(2.1)第一层为卷积层,卷积核大小为5*5,卷积核数量为16个,并且采用RELU函数作为激活函数。RELU公式如下:

f(x)=max(0,x)

(2.2)在第一层和第二层之间,本发明加入一个SENet模块,其作用是用于建模通道之间的相互依赖关系。此SENet模块是将(2.1)中第一层卷积层的输出结果,分通道各自进行全局平均池化,然后将每个通道全局平均池化获得的结果通过两个全连接层,得到每个通道的权值,将权值加权相乘到每个通道的特征上,完成在通道维度上的对原始特征的重标定。

(2.3)第二层为池化层,卷积核大小为2*2。

(2.4)第三层为卷积层,卷积核大小为3*3,卷积核数量为64个,并且采用RELU函数作为激活函数。

(2.5)在第三层和第四层之间,我们加入一个SENet模块,与(2,2)中的SENet模块相同,用于建模通道之间的相互依赖关系。但该SENet模块的输入是第三层卷积层的输出结果。

(2.6)第四层为池化层,卷积核大小为2*2。

(2.7)第五、六、七层均为全连接层,节点数量分别为120个,86个和10个,并用RELU函数作为激活函数。

步骤3:运用卷积神经网络模型对手写数字识别进行训练。

利用步骤1中的双通道手写体数字图像数据集,对步骤2中的卷积神经网络模型进行训练,得到手写体数字识别模型。训练过程中,将训练集和测试集放入模型中,batchsize设置为64,epoch设置为20进行训练,通过测试集的验证后,最终得到训练后的模型。

步骤4:提取所有样本第6层全连接层的参数,计算对应类的编码。

(4.1)将双通道手写体数字图像数据集中每张双通道手写体数字图像输入手写体数字识别模型中,获取该图像在模型中第六层全连接层中所有节点的参数。本实施例中,第六层全连接层具有86个节点,因此每张图像保存86个节点参数;同时,也需要保存图像中手写体数字的真值标签。

(4.2)对所有图像按照标签进行归类,对于具有相同标签L的所有双通道手写体数字图像归为一类。在一类标签为L的图像中,计算所有图像对应的模型中第六层全连接层中节点的参数平均值,得到86个参数平均值,再将这86个值转换为该标签L下的二进制码。其中第i个节点的参数平均值H(i)转换为第i位二进制数C(i)的规则为:

(4.3)对每一类图像分别进行二进制码的获取,最终所有手写体数字标签的二进制码构成码本。由于数字一共具有0~9十个,因此码本中具有十个数字标签对应的0-1二进制码。

步骤5:对待识别的图片与10个类二进制码求汉明距离,获取识别结果。

对于待识别的手写体数字图片,需要将其按照与步骤1中训练样本相同的处理方法进行处理,获得双通道手写体数字图片。具体过程为:从待识别的手写体数字图片中通过Canny算子提取轮廓信息,然后将该图片的原图和轮廓图进行通道相加,经过归一化后得到双通道手写体数字图片。

获取该双通道手写体数字图片后,将其输入前述训练的手写体数字识别模型中,获得模型中第六层全连接层中所有86个节点的参数。再将86个节点参数按照(4.2)步骤中的做法转换为二进制码,最后计算该二进制码与码本中10类二进制码的汉明距离,选择汉明距离最小的二进制码的标签作为识别结果。汉明距离公式如下。

在上述步骤1~5的实现过程中,通过添加轮廓信息进行手写体数字进行识别,并且在网络中添加SENet注意力机制模块,提升了泛化能力。同时,本发明直接提取模型中第六层全连接层中所有86个节点的参数,将其转换为二进制码后在码本中查找距离最小的结果。这种识别时仅需比较待识别编码和码本的汉明距离即可得到预测结果的做法,能够大大提升模型识别的效率,避免过大的计算量。

参见图4所示,为利用本发明所述方法识别的部分样本结果,可以看出其能够准确识别出手写体数字。

为了体现本发明的上述技术效果,我们进一步针对同一数据集,设计了相应的对比试验。

第一组我们采用了经典的LeNet网络训练手写体数字识别模型,主要有2个卷积层、2个池化层、3个全连接层,模型层数与结构和本发明相同。

第二组我们在第一组基础上,将数据集的处理方式改为本发明的处理方式,即将训练集和测试集通过Canny算子提取轮廓信息,再通道相加,具体方式如步骤1所示。将处理好的数据送入LeNet网络训练。通过该传统方式提取轮廓信息叠于原图下方的方式训练,可以加大轮廓信息在网络当中占有的权重比,增加识别的准确性。

第三组我们在第二组的网络模型的一、二层与三、四层之间加入了注意力机制模块即SENet模块,具体模型如步骤2所示。这个模块是通过对不同的特征图进行加权,从而来强调有效信息,抑制无效信息,从而达到提升识别准确性的效果。

第四组我们在第三组的模型基础上,通过本发明所提的二进制编码的识别方式,处理训练集和测试集的第六层编码,方式如步骤4所示,识别时我们采用步骤5的方式进行识别。在本组中,我们在识别操作时去掉传统网络模型第七层的矩阵乘法运算获取识别结果的方式,而改成了利用二进制码的码本查找方式,通过二进制编码的位运算计算汉明距离最小的标签,由此来获取识别结果的方式。结果表明,本组的识别效率相比第三组提升5倍,并且通过实验我们发现可以提升少许的准确性。

各组试验的实验结果如下:

以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号