基于神经网络的数字号码识别方法探讨

(整期优先)网络出版时间:2018-12-22
/ 2

基于神经网络的数字号码识别方法探讨

于书航师云秋

辽宁科技大学

摘要:对卷积神经网络(CNN)以及BP神经网络进行了简单介绍,比较了在数字号码识别的应用场合下,BP神经网络与卷积神经网络的识别准确率。针对数字号码识别这一特定场景,对NMIST训练数据进行有针对性的数据增强,实验证明能有效提高识别准确率。根据数字号码识别的应用场景提出了两种图像预处理方法,并通过实验验证了该方法对识别准确率的提升效果。最后分析了两种网络模型的参数大小以及所需运算量。

关键词:卷积神经网络;BP神经网络;数字号码号识别;字符识别

在日常考试中,大部分试卷都要求考生填写数字号码以识别考生身份,阅卷老师需要输入数字号码以录入考生成绩。基于神经网络的手写数字识别得到越来越多研究者的关注。而BP神经网络具有良好的容错能力、强大的分类能力、自适应和自学习等特点,备受人们的重视,在字符识别领域得到了广泛的应用。卷积神经网络在图像分类中表现优异,相比较其他深度、前馈神经网络,卷积神经网络需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。

1系统的总体设计方案

用神经网络实现数字号码识别有两种方法,一种是先根据先验知识,人工选择某些数字特征并对待识别数字进行特征提取,然后将提取出的特征输入到BP神经网络或支持向量机(SVM)进行训练,这种方法的识别效果与选用特征的好坏有关,且需要人工选取特征,检测性能很大程度上取决于人工所选用的特征是否准确,现在已经很少采用;另一种方法是利用神经网络的学习特性,直接将待识别图像输入到神经网络中,让神经网络的输出经过若干次训练后收敛于理想值,这种方式不需要人为指定特征,容错性更强,故本文采用第2种方法识别手写数字号码号。

2本文采用的实验数据

为了使神经网络具备对任意手写字体的泛化能力,在选择训练数据时应考虑识别对象的特性,尽量选用样本较多的数据集,本文选用NMIST手写数字训练集。MNIST数据集来自美国国家标准与技术研究所。训练集由来自250个不同人手写的数字构成,其中50%是高中学生,50%来自人口普查局的工作人员。共60000张,每张大小为28*28像素的灰度图。

2.1数据增强方法

在实际的数字号码识别情况下,考生可能会因为粗心大意把数字填歪,填写的数字大小不一或者偏离中心等情况。因此,为了使识别系统的在个别异常笔迹下仍能较好的识别出数字,本文采用数据增强的方法对上述情况进行模拟,如此不仅更贴合数字号码号识别的应用场景,也可以获得更多样本以供训练。

针对上述在实际中可能会出现的情况,对训练集进行如下扩充:

1)对训练样本随机进行缩放,模拟字迹大小不一的情况;2)对训练样本随机加入小角度旋转,模拟数字歪扭的情况;3)对训练样本随机加入位置扰动,模拟数字出格或偏离中心的情况。

2.2测试数据集

由于试卷上用于填写数字号码号的位置固定,并且在附近标有用于方便机器识别的标记。因此,对手写字符的定位和分割非常简单,进行分割后得到每个手写支付的图像块(patch),然后送入神经网络进行识别。不失一般性地,本文采用以下扫描图片进行测试。

由于数字号码号填写在方框内,因此只需事先设定好ROI区域,根据读入图片相对位置便可找出每个方格对应数字。由于训练样本是黑底白字而测试样本的白底黑字,找好ROI后还需将其进行图片反色,再对其进行大小压缩、归一化处理,将处理后的图片送进神经网络进行识别。

为了尽可能模拟准考号码识别的应用场合,笔者制作了1083个笔迹潦草的手写数字用于测试评估。其中包括字体偏离方框中心,字体出格,字体大小不一等情况。

3手写数字识别神经网络

3.1BP神经网络

BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。BP神经网络模型拓扑结构包括输入层(input)、隐含层(hidelayer)和输出层(outputlayer)。

已有理论证明,含有一个隐含层的BP神经网络可以实现对连续的非线性函数进行任意精度的拟合,因此采用一个隐含层的BP神经网络作为训练网络。采用NMIST手写数字训练集,共60000张,每张大小为28*28像素的灰度图。因此,输入层的节点数选择为784。

对于输出层结点,由于只需识别0~9的手写数字,输出状态较少,可直接使用10个输出层结点,每个输出层结点输出值对应为该数字的可能性。由此可知,手写体数字0的正确输出应该为(1,0,0,0,0,0,0,0,0,0,0)T。要预测手写体数字,只需找出值最大的输出节点即可。对于隐含层节点数的选择,并没有理论公式指导,本文隐含层选用200个神经元。在送入神经网络前,先将图片的灰度值统一进行归一化。由于BP神经网络会自动收敛,因此随机初始化输入层权重以及隐含层权重。

采用批量梯度下降法更新权值,每批200个样本,迭代500次,即mini_batch=200,epoch=500,采用Adam优化算法。

3.2卷积神经网络

卷积神经网络是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网络由一个或多个卷积层和顶端的全连通层(对应经典的神经网络)组成,同时也包括关联权重和池化层。这一结构使得卷积神经网络能够利用图像的二维结构。

不同于BP神经网络,卷积神经网络对28x28的输入图像进行局部的卷积操作,C1层采用30个5x5大小的卷积核用于特征提取,得到30通道,23x23的特征图后进行最大值池化降采样为30通道,11x11的特征图,再送入C2层进行卷积得到15通道8x8的特征,再次最大值池化为15通道4x4的特征,传入Dropout层,以20%的概率随机断开输入神经元,展开送入全连接层FC1、FC2、FC3,最后用softmax[7]输出对应数字概率。

3.3对比测试

测试发现,卷积神经网络的识别准确率普遍高于BP神经网络。有针对性地根据场景进行数据增强能够大幅提升神经网络的识别准确率,其中使用数据增强对BP神经网络的识别准确率有很大的提升。

4改进提升

在上一章节中,注意到两种神经网络的数字号码识别准确率相比NMIST准确率要低得多,通过观察截取的数字号码,注意到以下特点:1)数字号码中的字体位置不固定;2)数字号码中的字体大小不一。根据上述观察,尝试对输入的数字号码先进行某些预处理,然后再送入神经网络。

4.1字体居中

由于考生在填写数字号码数字时,位置未必处于图像中央,而NMIST训练集的数字往往位于图像中央。因此,在把图片送入神经网络检测前,先求字体重心,然后根据重心整体平移字体到图片中央。

4.2字体尺度调整

填写数字号码的数字大小,不同考生往往有不同的习惯,因此填写数字有可能大也有可能小。但NMIST训练集中的数字较为均匀。为了确保数字号码数字在图片中的尺度,在进行字体居中后,将字体方框的最长边等比例缩放至200像素并居中(整副图像大小为280x280)。

4.3实验结果

使用训练好的模型进行测试,结果如下:可以看到,识别效果最好的模型是使用数据增强训练CNN模型+调整尺度,在此情况下识别率达到了97.14%。在未经数据增强训练出的网络模型下,使用数据增强能够大幅提升其识别准确率。由于经过数据增强训练出的模型已经对数字的位置扰动、尺度等有了一定的抗干扰性,因此使用数据预处理对经数据增强训练的模型提升有限。

5讨论

BP神经网络自1986年问世以来,基于神经网络的研究进度日新月异,在其之后的经典分类网络有LeNet、AlexNet、GoogLeNet等,但权值更新过程中的的梯度反向传递原理仍与BP神经网络大同小异。BP神经网络具备的强大学习特性令其至今仍用于最新的深度学习网络中,但在实验中,也注意到BP神经网络在训练中容易对训练数据”过拟合”,具体表现为对识别数字的位置以及大小非常敏感。此外,BP神经网路的”全连接”特性,使得其更容易对局部值的变化敏感。因此不难解释,为什么BP神经网络常常用于对深度神经网络提取到的高层抽象特征进行学习。

参考文献

[1]杨淑莹.图像模式识别[M].北京:北京交通大学出版社,2018.

[2]王晓娟,白艳萍.基于BP神经网络的手写体数字的识别方法研究[J].数学的实践与认识,2018(7):112-116.

[3]荣辉,张济世.人工神经网络及其现状与展望[J].电子技术应用,2017(10).