基于卷积神经网络的纸币分类与点钞

2020-11-10 06:00马亚州侯益明王紫薇
无线互联科技 2020年15期
关键词:池化层纸币步长

张 勇,马亚州,侯益明,王紫薇

(山西农业大学 信息科学与工程学院,山西 太谷 030801)

目前,随着社会经济的迅速发展,纸币流通量开始日益增大,给纸币分离、清点工作带来困扰。因此,通过机器手段解放人力和解决清点前的纸币分类问题变得越来越重要。国内有通过X射线扫描纸币扎带上照影剂成像的条纹数目来确定纸币的把数[1],但是只适用于数额过大并且已经捆成一把的纸币,而且对纸币上的条纹要求过高,适用性差。

为提高纸币分类和点钞效率以及准确率,本研究使用卷积神经网络技术对纸币面值进行了准确识别,适用性强,运行速度快,准确率高,为进一步应用提供了理论指导。

1 图像准备与预处理

1.1 图像准备

准备面值为0.5元、1元、5元、10元、20元、50元、100元的纸币共420张(见表1),各类纸币在新旧程度上均不相同。拍摄纸币多个角度的照片,保证多样性。

表1 样本数量表

1.2 图像预处理

(1)收集的图像大小不一定全部相同,因此,需要对收集到的图像进行处理,将图像就行压缩至150×150(通道为3),使其具有相同大小。

(2)在生成图片的路径和标签之后,需要将所有的图片路径和标签分别做打乱处理,可以保证在训练模型时不会造成同一个batch反复出现,若不做打乱处理,会使得神经网络“记住”这些样本,影响泛化能力,造成过拟合[2]。

(3)由于搜集到的图像类型可能不是完全相同的,可能会有jpg,png等类型,为了预防对训练模型产生影响,需要将图像解码,然后将图像的类型转化成一致的,只能是jpg或只能是png格式。

(4)对图像进行旋转、缩放,归一化操作,在搜集到的图像当中可能会存在物体颠倒的情况,需要进行图像的旋转,使得训练出来的模型更加健壮。

2 纸币分类模型

2.1 CNN特征提取

卷积神经网络是深度学习算法在图像处理领域的一个应用,是多层感知机(Multi-Layer Perceptron,MLP)的变种,本质是一个多层感知机,减少了权重的数量,使得网络易于优化,也降低了模型的复杂度,降低了过拟合的风险[3]。

2.1.1 卷积层

卷积层是卷积神经网络的核心,使用卷积核进行特征的提取和特征的映射,卷积核对预处理后的图像进行相应运算,最终提取出图像中的特征。卷积层的个数会对提取到的特征有一定影响,如果卷积层个数少,可能会使得训练的模型不好、精确度不高,但如果卷积层个数多,可能会使得训练的模型过于贴合训练数据,造成过拟合[4]。在该模型中,经过多次实验,最终确定为两个卷积层。

2.1.2 池化层

池化层也称欠采样或下采样,主要用于特征降维、压缩数据和参数的数量。主要有最大池化法(Max Pooling)、平均池化法(Average Pooling)以及随机池化法(Stochastic Pooling),在模型中采用最大池化方法,相较于平均池化法、随机池化法,最大池化法更像是做了特征的选择,选出了分类辨识度更好的特征,提供了非线性[5]。通过池化可以减小过拟合,提高模型的容错性。

2.1.3 全连接层

池化层没有参数,而在全连接层,全连接层的全连接方式带来了更多的参数。在CNN的尾部进行重新拟合,减少特征信息的损失。在模型中采用了两层全连接层,可以最大限度地减少特征信息的损失,全连接层的输出矩阵用于softmax层的输入进行分类,得到分类结果。

2.2 纸币分类模型

纸币分类模型一共有7层模型,包括两层卷积层、两层池化层、两层全连接层和一层softmax层[5]。为了减少卷积的计算量,在进行卷积之前将图像压缩至150×150。使用到的卷积层的卷积核分别为64个3×3的卷积核以及16个3×3的卷积核。使用两层卷积层可以从不同的视野提取到特征。

为了能够保证取到图像边缘的特征和公平起见,将卷积运算模式设置为填充模式,两层卷积层都设置padding为“SAME”,既可以使得卷积后的图像与原图的尺寸保持一致,又可以保证取得边缘的特征。在每层的卷积层之后,还设置了池化层,每层池化层都采取max pooling的方法,选取3×3的最大池化层(max pooling),第一个池化层设置步长为2,第二个池化层设置步长为1。

模型采用线性整流函数(relu)作为激活函数,造成了网络的稀疏性,可以削弱参数的相互依存关系,缓解过拟合问题的发生。最后的两层为全连接层,在第一个全连接层和第二个全连接层都设置了128个神经元,最后一层利用softmax函数做出多分类的预测。模型的设计结构如图1所示。

图1 模型的设计结构

2.3 模型训练原理

本研究所用模型的训练采用正向传播的过程来逐步提取图像的特征。在每层的卷积层中,卷积核在给定输入的矩阵上滑动,将3×3的卷积核与输入矩阵采用内积计算方式进行计算,得到的内积结果加上偏执量(bias)得到输出卷积矩阵的一个元素,输出矩阵所有元素都是通过卷积核在给定输入矩阵上进行滑动作运算得到的。并且在滑动窗口滑动前,设置好步长,如果想要获得更多的特征,可以尽量使步长小一点。通过卷积层之后得到的图像特征的大小为:

D2=K

(1)

式(1)中,H1表示图像的高,W1表示图像宽,K表示通道数,H2表示卷积之后的图像的高,W2表示卷积之后的图像宽,D2表示卷积之后的通道数,F表示Filter大小,P表示边界填充(padding),S表示步长。通过此公式就可以计算出经过卷积层得到的特征图的大小。

选用一个大小为3×3的最大池化层(max-pooling),本研究没有选择average-pooling,因为相较于average-pooling,最大池化层更像是做了特征的选择,选出了分类辨识度更好的特征,提供了非线性[6]。经过最大池化层后,将一个n×n的矩阵划分成多个小区域,再从小区域中选择出最大的值作为这个区域的特征。池化之后,再执行“lrn()”操作,使得局部响应归一化,有助于快速收敛,也可以使得响应比较大的值变得更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。

通过卷积层、池化层后得到的是一个“立体”的特征图,但是后面要进行分类,在全连接层需要进行矩阵的运算,因此,需要将这个“立体”的特征图进行“拉长”操作,让这个特征图进行reshape变成一个一维向量,再进行全连接的操作。在最后连接一个归一化指数函数(softmax函数),进行预测结果[7]。将预测结果映射到[0,1]的区间,比较预测结果与真实结果的拟合效果,并且通过dropout来调整参数,减小损失值(loss),使得训练模型的分类效果更好。全连接层计算的过程如图2所示。

图2全连接层计算示意图

(2)

式(2)是通过全连接层后得到的矩阵,得到矩阵后通过softmax函数计算就可以得到分类的结果。

2.4 实验过程

在训练模型时,卷积层的个数越多,训练出来的模型越好,但是训练好模型之后进行数据测试,发现训练出来的模型产生了过拟合的现象,对于新收集到的数据进行分类的效果不是很好,甚至出现了错误。因此,需要减少卷积层的数目,经过不断实验,最终发现当模型中的卷积层的个数为2、池化层的个数为2时,得到的模型能够达到最好的效果。

在确定完卷积层、池化层、全连接层个数后进行训练,发现损失值很大,训练效率很低,对此,调整了训练的次数,使得次数以5的步长增大,可以发现当次数为130的时候,能够保证训练出来的模型的损失值最小,训练效率最高。为了使模型更好,可以改变学习率(learning rate)来调整损失值的大小[8],使得损失值尽可能小。在训练损失值,使得损失值尽可能小的时候,采用的是自适应距估计(Adam算法)的方法,因为每次迭代参数的变化都有一定的范围,不会因为梯度很大而导致学习率(步长)也变得很大,参数的值相对比较稳定。经过不断的实验,最终发现当学习率为0.000 1的时候,能够达到最优的效果。

输入图像以150×150×3输入,经过第一层卷积层之后以150×150×64大小输出,之后经过第一层池化层(3×3),池化层选择的是最大池化层,以75×75×64的大小输出;然后经过第二层卷积层、池化层得到75×75×16大小的三维数组。之后要连接全连接层,因此,需要将这个三维数组进行reshape操作,使其变成一个一维的向量,再连接两个全连接层,在卷积层和全连接层都采用线性整流函数(relu函数)进行激活操作,以保证梯度不会越来越小至梯度消失。最后一层为softmax层,得到的数值映射到[0,1]区间,从而转化为每个类别的概率[9]。

随着训练轮次不断增加,损失值也在不断地减小,可以观察到当选取轮次为130的时候,得到的损失值最小,之后轮次再增加,损失值会有小幅度的增大,如图3所示。

图3 损失值变化情况

随着轮次的增大,训练效率也在不断地增大,当轮次为120的时候,得到的训练效率为100%。在此选择轮次为130时的模型,此时训练出来的模型效果最好,如图4所示。

图4 训练效率

3 纸币分类与点钞结果分析

在进行点钞测试时,一次性输入多张图片,模型依次读取每张图片,并且对其进行分类,再将分类结果相加,即为最终钱币金额,实现点钞功能。测试次数为150次,成功求得金额146次,准确率97.33%。纸币分类结果如表2所示。

4 结语

实验表明,纸币识别准确率达97.78%,点钞测试准确率达97.33%,进一步证明了基于卷积神经网络进行纸币分类、计数的可行性。该方法具有简单实现、运行速度快的优点,进一步为金融部门等工作人员解决了困难,具有巨大的研究价值。

表2 各类别的识别准确率

猜你喜欢
池化层纸币步长
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
卷积神经网络模型研究分析*
改进深度卷积神经网络及其在变工况滚动轴承故障诊断中的应用
基于深度学习卷积神经网络的人体行为识别研究
基于全卷积神经网络的SAR图像目标分类*
消失的纸币
猜纸币
猜纸币
基于逐维改进的自适应步长布谷鸟搜索算法
一种新型光伏系统MPPT变步长滞环比较P&O法