基于VGGNet-16的数字识别系统文献综述
2020-04-20 13:02:40
随着计算机计算能力的不断升级,原来许多出现在科幻作品中的情节相继出现在我们的身边。AlphaGo、机械狗,无人驾驶汽车的出现鼓舞着我们投入更多的精力去研究人工智能带来的惊喜。而人工智能这一领域中最为核心的内容之一就是深度学习。深度学习属于机器学习领域的一部分,机器学习方法是唯一的一种可使得构建的机器学习系统适用于复杂的真实世界环境的途径。深度学习是一种特定的机器学习算法,通过将对世界的感知表达为一种嵌套层次的概念表示,每一层概念表示均是比较简单的特征表这与提取,逐层迭代,层层嵌套,最终这些特征表达将比较复杂抽象的特征转换为比较简单的易于计算机表达的特征,深度学习在很多领域展现出巨大的实用性及高度的灵活性。
在深度学习中,计算机视觉是深度学习技术最早实现突破性成就的领域,其中以数字识别的应用最为广泛。在实际应用中,对数字识别单字识别正确率的要求要比文字要苛刻得多。这是因为,数字没有上下文关系,每个单字的识别都事关重要,而且手写数字识别经常涉及的财会、金融领域,其严格性更是不言而喻的。因此,用户的要求不是单纯的高正确率,更重要的是极低的、千分之一甚至万分之一以下的误识率。此外,大批量数据处理对系统速度又有相当的要求,许多理论上很完美但速度过低的方法是行不通的。因此,研究高性能的手写数字识别算法是一个有相当的挑战性的任务。其次,由于数字是全世界通用的符号,识别种类较小,有助于作深入分析及验证一些新的理论。由于手写数字识别的方法很容易推广到其它一些相关问题上,例如英文字母、汉语拼音等文字的识别,所以它逐步成为模式识别的一个热点的研究领域。从50年代开始,许多的研究者就在这一研究领域开展了广泛的探索并为模式识别的发展产生了积极的影响。可以说,手写数字识别的研究将有助于模式识别、机器理解、机器人技术的发展,具有很大的理论价值。
深度学习算法中一个重要的网络结构是卷积神经网络(Convolutional Neural Networks,CNN)结构,它属于人工神经网络的一种,近年来成为图像分类,目标检测,图像分割,语音识别方面的热口内容。卷积神经网络是一种仿生网络,即模仿生物神经网络,它具有传统检测分类算法无法达到的优秀特性,与传统检测分类算法不同的是,卷积神经网络具有权值共享的网络结构,这种结构的网络模型更加简洁,权值的总数大大减少。本文所述的离线中文手写体字符数据是图像数据,图像数据是多维的,在传统检测识别算法中,对多维数据处理时首先要对复杂的多维特性进行特征提取,在特征提取之后还要对提取的特征进行数据重建,传统算法的复杂性比较高,而在卷积神经网络中,类似于图像这种多维数据可作为网络的直接输入,避免了传统算法的复杂性。
基于卷积神经网的手写字符识别由来已久。早在1998年,Le Cun Y 等人就提出了Le Net-的5层卷积神经网模型,该网络在数字字符手写体MNIST 数据集识别上取得了显著的效果,将误识率降到了 0.95%。2003 年,Simard等人在Le Net-5的基础上增加了数据集的预处理模块,通过仿射变换、弹性变换等扩展样本,在MNIST 数据集上的误识率降至 0.4%,Ranzato等人在 2006年构建更大更深的Conv Nets,将错误率又下降了0.01%,2009年,Jarrett探讨了网络结构与识别率的关系,构建了多级网络使误识率达到达到0.53%,2011年,Ciresan等在7 列深层网络基础上增加了normalization手段,直接将错误率将至了0.27%,隔年,他又提出多列卷积神经网模型(MCDNN),通过对35列Conv Nets网络取平均值将MNIST的误识率降至新的最低值0.23%。2014年,K.Simonyan等人提出了VGGNet深度卷积神经网络结构,VGGNet网络共有13层(指卷积特征提取层W及全连接层)。2015年,谷歌公司口推出了GoogLeNet网络结构,GoogLeNet网络结构共有22层,同样是从提高卷积神经网络的深度来改进网络的性能。
2. 研究的基本内容与方案
{title}本课题基于深度学习,要求学习基础的卷积神经网络,并且设计经典的VGGNet-16深度神经网络来实现简单的数字识别功能。深度学习的开发平台使用基于python的tensorflow平台,使用的数据集使用MNIST等经典的数据集,数据集要分为训练集和预测集,要求识别准确率在90%以上。
VGGNet对图片有很强的特征提取能力,并且拓展性很强。VGGNet主要特点是全部使用了3x3的卷积核和2x2的池化核,并通过加深网络结构来提升性能。VGGNet系列网络有6个版本的网络结构,层数从11到19,本次设计使用16层的网络模型(即VGGNet-16)。从整体来看VGGNet-16有5段卷积,每段内有2~3个卷积层,同时在每段末尾都会连接一个最大池化层,用来减小图片尺寸。而且每段内的每个卷积层的卷积核个数相同,段与段之间的卷积核个数随着网络层数加深而增多。在网络最后一个最大池化层后面接入了一个三层的传统神经网络一全连接层网络。最后的输出层是一个softmax函数,即多分类器。
用VGGNet-16网络对手写数字进行识别前,应先对手写数字位图样本进行预处理,即先将256色位图转为灰度图,然后二值化,最后进行归一化处理,以消除各数字在位置和大小上的差异, 从而提高识别的准确率。归一化处理后的字符便可进行特征向量提取。将所提取的特征输入到神经网络进行识别,最后输出并显示识别结果。数字识别过程如图1所示。
图1 数字识别过程