您好, 访客   登录/注册

基于改进VGG-16和朴素贝叶斯的手写数字识别

来源:用户上传      作者:

  摘  要: 为了解决手写数字识别困难和准确率问题,提出基于改进VGG?16和朴素贝叶斯的手写数字识别,主要通过归一化和双线性插值对图像进行预处理,然后通过改进的VGG?16网络框架对图像进行特征提取和特征融合,通过LDA方法进行数据降维,最后通过朴素贝叶斯分类器进行分类。在MNIST数据集中进行实验,获得了99.36%的准确率。实验结果验证了卷积神经网络与朴素贝叶斯结合后可以有效地提高识别准确率。
  关键词: 手写数字识别; VGG?16网络; 朴素贝叶斯分类器; 图像预处理; 特征提取; 数据降维
  中图分类号: TN919?34; TP391.41               文献标识码: A                      文章编号: 1004?373X(2020)12?0176?06
  Abstract: The handwritten digit recognition based on naive Bayes and improved VGG?16 is proposed to improve the difficult recognition and low accuracy in handwritten digital recognition. The images preprocessing are performed by means of the normalization and bilinear interpolation, and then the improved VGG?16 network framework is used to extract and fuse the features of the preprocessed images; the data dimension reduction is carried out by means of the LDA method, and then the data classification is conducted by means of the naive Bayesian classifier. The experiments were conducted in MNIST, yielding an accuracy of 99.36%. The experimental results prove that the convolution neural network combined with naive Bayes can effectively improve the recognition accuracy.
  Keywords: Handwritten numeral recognition; VGG?16 network; naive Bayes classifier; images preprocessing; feature extraction; data dimension reduction
  0  引  言
  数字识别一直是计算机视觉与深度学习领域研究的热点问题。在财务处理、金融管理、车牌识别、邮政编码识别和无人驾驶等领域应用广泛。然而对于手写数字,人工的手写数字笔体不一,导致图像本身的复杂性和不确定性,使识别更加困难。例如,日常生活中邮政编码识别时,微小的错误可能导致巨大损失。
  传统的方法都存在特征提取不充分导致准确率不高的问题,如模板匹配法、统计决策法、句法结构法、模糊判别法、逻辑推理法和神经网络法等[1?5]。因此,解决手写数字图像识别的关键在于特征提取,其直接影响最后分类器的识别准确率。部分学者为了对特征进行高效的提取来提高准确率,提出的文献[6]基于旋转投影统计特征的手写数字识别方法通过抽取数字的轮廓和骨架来提取几何特征,文献[7]中基于贝叶斯网络的手写数字识别的研究与应用以及文献[8]中基于主成分分析法及贝叶斯分类器的手写数字识别,虽然在原有的基础上提高了准确率,但是未考虑特征是否提取充分,准确率依旧不足的问题。
  近年来,针对这一问题,文献[9]提出一种基于卷积神经网络的联机手写汉字识别系统,文献[10]提出的基于卷积神经网络的藏文手写数字识别,都是通过卷积神经网络对图像进行充分的提取特征,但是存在提取特征不充分,并未把握浅层特征和深层特征之间的关系。在此基础上,部分学者研究采取特征融合型卷积神经网络[11],还有部分学者则是采用传统的机器学习算法与之结合的方法,如基于KNN的卷积神经网络[12],还有学者则是基于深度卷积自编码神经网络的手写数字识别研究也取得不错的成果[13]。
  在此启发下,本文提出朴素贝叶斯[14?16]和卷积特征相结合的方法,在VGG?16网络框架下加上一个分支来融合浅层特征和深层特征,并在此基础上为了使网络能够加快学习的速度,将采用交叉熵代价函数[17],针对网络可能出现的过拟合问题,采用dropout[18]的方法来减少过拟合。为保持数据之间原有的特征联系,采用LDA[19]进行数据降维。最后通过朴素贝叶斯分类器做分类,在MNIST数据集上进行实验。验证结果表明,该方法解决了传统方法的特征提取困难和提取特征不充分等问题,并提高了准确率。
  1  相关工作
  1.1  改进VGG?16网络
  在传统VGG?16的网络上加上一个分支,利用这个分支网络实现浅层特征与深层特征的融合,更好地体现出它们之间的联系,进而有效地提高了识别准确率。   1.1.1  卷积层
  2  算法设计
  2.1  算法框架
  本文提出基于改进VGG?16和朴素贝叶斯的手写数字识别的主要思想是通过双线性插值和归一化先对图像进行预处理,然后经改进的VGG?16網络框架对图像进行特征提取和特征融合,再采用LDA方法进行数据降维,最后利用朴素贝叶斯分类器进行预测分类。算法框架如图1所示。
  由图1可知,算法主要包括两个阶段:训练阶段和测试阶段。训练阶段:利用训练数据集对改进的VGG?16网络进行训练,然后用训练好的网络对数据集中的样本进行特征提取,把提取后的特征图转换成特征向量输入到LDA中进行数据降维,然后把降维后的向量输入朴素贝叶斯分类器中做最后的分类。测试阶段:用测试数据集中带识别的样本数据进行改进VGG?16网络的特征提取和LDA数据降维,送入朴素贝叶斯分类器得到样本的预测类别。
  2.2  图像预处理
  图像预处理包括两个阶段:第一阶段,把MNIST数据集的图像做归一化处理;第二阶段,把归一化后的图像采用双线性插值增强的方法对图像进行放大处理。
  2.2.1  归一化
  本文采用的是MNIST手写数据集作为实验数据。为了避免卷积时数据值过大,因此在训练阶段之前对数据集中的图像进行归一化处理,由于MNIST数据集中的手写数字图像其灰度值都在0~255之间,因此将图像的原始像素都除以255,把所有像素归一化到[0,1]之间。
  2.2.2  双线性插值
  因VGG?16网络需要把原有的28×28放大到224×224作为输入,则需要通过双线性插值的方法进行放大处理。
  设原图像大小是m·n,目标图像大小是a·b。那么两幅图像的边长比分别就是[ma]和[nb]。目标图像的第(i,j)个像素点(i行j列)可以通过边长比对应回源图像。其对应坐标为([i·ma],[j·nb])。显然,这个对应坐标一般来说不是整数,而不是整数的坐标是不能在图像上使用的。因此就需要寻找对应坐标上最近的4个像素点,进而求得该点的值。假设未知函数f在点P=(x,y)的值,已知函数f在Q11=(x1,y1),Q12=(x1,y2),Q21=(x2,y1)以及Q22=(x2,y2)四个点的值。R1位于Q12和Q22之间,R2位于Q11和Q21之间,首先对x方向进行线性插值,得到:
  2.3  网络结构
  基于改进VGG?16和朴素贝叶斯的手写数字识别的网络结构主要有输入层、卷积层、池化层、特征融合分支、LDA数据降维、朴素贝叶斯分类器和输出层。本文提出用归一化和双线性插值法对图像进行预处理,然后通过改进的VGG?16网络对图像进行特征提取和特征融合,再通过LDA进行数据降维处理,最后采用朴素贝叶斯分类器分类,网络的结构如图2所示。
  图2所示,网络主要参数设置如下:
  1) 输入层为归一化和插值后的224×224图像;
  2) 第一卷积层分别用两组64个3×3的卷积核和64个1×1卷积核对输入层的图像进行卷积操作,由于用到补零操作,所以得到64个224×224的图像;
  3) 第一池化层通过两组2×2的区域对激活的特征图执行最大值池化,得到64个112×112的特征图;
  4) 第二卷积层通过两组128个3×3和128个1×1的卷积核对第一池化层中的特征图进行卷积操作,同样是补零的操作,所以得到128个112×112的图像;
  5) 第二池化层通过2×2的区域在对激活的特征图执行最大值池化,得到128个56×56的特征图;
  6) 第三卷积层通过三次256个3×3和256个1×1的卷积核对输入层的图像进行卷积操作,由于用到补零操作,所以得到256个56×56的图像;
  7) 第三池化层通过2×2的区域对激活的特征图执行最大值池化,得到256个28×28的特征图;
  8) 第四卷积层通过三次512个3×3和512个1×1的卷积核对输入层的图像进行卷积操作,由于用到补零操作,所以得到512个28×28的图像;
  9) 第四池化层通过2×2的区域对激活的特征图执行最大值池化,得到512个14×14的特征图;
  10) 第五卷积层通过三次512个3×3和512个1×1的卷积核对输入层的图像进行卷积操作,由于用到补零操作,所以得到512个14×14的图像;
  11) 第五池化层通过2×2的区域对激活的特征图执行平均池化,得到512个7×7的特征图,整合成特征向量;
  12) 在每次池化前保留上一层的特征,确保浅层特征和深层特征的融合进而提高识别准确率;
  13) 最后对均值池化进行融合浅层特征和深层特征;
  14) 在把特征向量放入LDA中进行数据降维;
  15) 将整合后的特征向量作为朴素贝叶斯分类器的输入进行分类判断;
  16) 为了避免过拟合现象采用dropout来保证;
  17) 损失函数为交叉熵函数。
  3  实验结果
  本节首先介绍MNIST数据集,介绍所使用程序运行工具,再对实验结果进行展示分析。
  3.1  数据集
  本文采用的是MNIST数据集,MNIST数据集包括60 000行的训练集和10 000行的测试数据集。MNIST数据集中部分图像如图3所示。
  3.2  卷积特征可视化
  通过导入训练好的网络参数对样本数据集进行图像的特征提取,本文为了更好地展示出提取的特征,对部分特征进行可视化处理,如图4所示。   图4展示了通过双线性插值放大后的图像224×224通过第一卷积层64个3×3的卷积核和64个1×1卷积核对图像进行特征提取;然后进行相似操作,生成特征向量放入LDA中进行数据降维;最后放入朴素贝叶斯分类器中进行判别分类。
  3.3  LDA降维
  通过改进VGG?16网络提取出的特征向量是25 088维数据,为降低特征维数,本文采用可以保留上下文本关系的LDA降维方法进行数据降维。为了研究特征维数贡献率与准确率之间的联系,采用列举的方式,如图5所示。
  令[β]为特征维数贡献率,由图5可知,当[β]的取值逐渐变大准确率随着上升,当[β]=95%时,准确率达到最大值,但当[β]继续增加时准确率反而下降,这时卷积提取的部分有用信息被LDA删除。因此,本次实验中选取当[β]=95%时,特征维数为25 088降维到15 386维,降维的效果最佳且准确率达到最高。
  3.4  对比实验
  本文采用VGG?16网络做对比实验,在MNIST数据集上的损失函数曲线如图6所示,识别曲线如图7所示,识别结果如图8所示。
  从图6~图8中可以看出,在整个过程中误差一直在减小,最终不变化,整个网络达到收敛状态,训练集结果达到97.52%,在全部数据集上达到97.89%,达到预期目标。
  3.5  实验结果与分析
  实验环境是Windows 7系统,采用Python语言,神经网络的框架采用Tensorflow。实验中先采用改进的VGG?16网络对图像进行特征提取和特征融合,然后采用LDA方法进行数据降维,再利用朴素贝叶斯分类器进行预测分类,计算分类识别率。经过60 000步训练,损失结果基本趋于稳定,用训练好的网络再对数据集进行测试,结果如图9所示。
  由图9可知,本文提出的算法在MNSIT数据集中获得了99.36%的成功率。为进一步验证此算法的有效性和优越性,将此方法与传统的手写识别算法在全部的样本上进行对比实验,实验结果如表1所示。
  表1的实验结果表明,本文提出的基于改进VGG?16和朴素贝叶斯的手写数字识别,在MNIST数据集的分类效果好于传统的分类方法。本文方法相对于文献[11]方法提高3.68%,相对于文献[2]方法提高1.46%,相对于文献[5]提高5.1%,相对于卷积神经网络提高1.47%,相对于文献[13]提高0.03%。这一结果表明,卷积神经网络与朴素贝叶斯分类器相结合可进一步提高手写数字识别的准确率。
  4  结  语
  当下手写数字识别仍是研究的热点。为了充分利用图像的浅层特征、深层特征和解决识别准确率不足等问题,本文提出基于改进VGG?16和朴素贝叶斯的手写数字识别,利用改进VGG?16网络,做特征提取和特征融合,进行LDA的数据降维,通过朴素贝叶斯分类器做分类。通过对MNIST手写数据集的实验结果可以验证,本文提出的算法不仅可以有效地解决浅层特征和深层特征之间联系的问题,且有效地提高准确率,为手写数字识别算法提供一种新的思路。
  参考文献
  [1] QIAO J, WANG G, LI W, et al. An adaptive deep Q?learning strategy for handwritten digit recognition [J]. Neural networks, 2018(12): 107?109.
  [2] 宋晓茹,吴雪,高嵩,等.基于深度神经网络的手写数字识别模拟研究[J].科学技术与工程,2019,19(5):193?196.
  [3] ARNALDO P C. Handwritten digit recognition [J]. Practical artificial intelligence, 2018(2): 461?478.
  [4] 陈岩,李洋洋,余乐,等.基于卷积神经网络的手写体数字识别系统[J].微电子学与计算机,2018,35(2):71?74.
  [5] 张翼成,陈欣,杨红军,等.基于组合特征的BP神经网络数字识别方法[J].计算机系统应用,2013,22(3):113?116.
  [6] 庄伟,雷小锋,宋丰泰,等.基于旋转投影统计特征的手写数字识别方法[J].计算机科学,2011,38(11):278?281.
  [7] 周佳敏.基于贝叶斯网络的手写数字识别的研究与应用[J].科技视界,2013(8):27.
  [8] 尹东霞.基于主成分分析法及贝叶斯分类器的手写数字识别[J].大众科技,2015,17(9):39?41.
  [9] 刘欣.基于卷积神经网络的联机手写汉字识别系统[D].哈尔滨:哈尔滨工业大学,2015.
  [10] 夏吾吉,色差甲,扎西吉,等.基于卷积神经网络的藏文手写数字识别[J].现代电子技术,2019,42(5):79?82.
  [11] 刘文斌,张乐.基于KNN的卷积神经网络改进算法[J].信息与电脑(理论版),2019(2):48?49.
  [12] JIANG L, ZHANG L, LI C, et al. A correlation?based feature weighting filter for naive Bayes [J]. IEEE transactions on knowledge and data engineering, 2019, 31(2): 201?213.
  [13] 曾文献,孟庆林,郭兆坤.基于深度卷积自编码神经网络的手写数字识别研究[J].计算机应用研究,2020,37(4):1?4.
  [14] LIU P, ZHAO H H, TENG J Y, et al. Parallel naive Bayes algorithm for large?scale Chinese text classification based on spark [J]. Journal of Central South University, 2019, 26(1): 1?12.
  [15] 邱宁佳,高鹏,王鹏,等.基于改进信息增益的ACO?WNB分类算法研究[J].计算机仿真,2019,36(1):295?299.
  [16] 孙玫,张森,聂培尧,等.基于朴素贝叶斯的网络查询日志session划分方法研究[J].南京大学学报(自然科学),2018,54(6):1132?1140.
  [17] 赵舵,唐启超,余志斌.一种采用改进交叉熵的多目标优化问题求解方法[J].西安交通大学学报,2019,53(3):66?74.
  [18] GUO Y, LIU Y, OERLEMANS A, et al. Deep learning for visual understanding: a review [J]. Neurocomputing, 2016, 187: 27?48.
  [19] MAHDI G V, ZAHRA S A, MOJTABA T, et al.  Differentiation of cumin seeds using a metal?oxide based gas sensor array in tandem with chemometric tools [J]. Talanta, 2018(4): 176.
  [20] 闫河,王鹏,董莺艳,等.改进的卷积神经网络图片分类识别方法[J].计算机应用与软件,2018,35(12):193?198.
转载注明来源:https://www.xzbu.com/8/view-15249101.htm