一种基于卷积神经网络图像识别方法与流程

文档序号:23384846发布日期:2020-12-22 13:49阅读:192来源:国知局
一种基于卷积神经网络图像识别方法与流程

本发明属于涉及深度学习,图像识别技术,具体的来讲为一种基于卷积神经网络图像识别方法。



背景技术:

自1985年rumelhart和他的同时发展了学习算法以来,在世界范围内掀起了探索和研究神经网络的热潮,人工神经网络的发展已经渗透到个中研究领域,尤其在模式识别的图像分类技术方面应用逐渐增多,国内外研究较多的有字符识别技术、车牌识别技术、脸部识别技术、各种纸币识别技术、印章识别技术以及对一些军事目标的识别等方面。人工神经网络在完成图像识别任务时,主要有以下几个方面的问题:

(1)参数数量太多,在cifar-10(一个比赛数据集)中,图像只有大小为32x32x3(32宽,32高,3色通道),因此在正常神经网络的第一隐藏层中的单个完全连接的神经元将具有32x32x3=3072个权重。这个数量仍然是可控的,但显然这个完全连接的结构不会扩大到更大的图像。例如,一个更可观的大小的图像,例如200x200x3的图像,则会导致120,000个权重的神经元。此外,我们几乎肯定会有几个这样的神经元,所以参数会增多。显然,这种完全连接是浪费的,而且大量的参数会很快导致过度配套。

(2)没有利用像素之间的位置信息。对于图像识别任务来说,每个像素和其周围像素的联系是比较紧密的,和离得很远的像素的联系可能就很小了。如果一个神经元和上一层所有神经元相连,那么就相当于对于一个像素来说,把图像的所有像素都等同看待,这不符合前面的假设。当我们完成每个连接权重的学习之后,最终可能会发现,有大量的权重,它们的值都是很小的。努力学习大量并不重要的权重,这样的学习必将是非常低效的。

(3)网络层数限制。网络层数越多其表达能力越强,但是通过梯度下降方法训练深度人工神经网络很困难,因为全连接神经网络的梯度很难传递超过3层。因此,不可能得到一个很深的全连接神经网络,也就限制了它的能力。



技术实现要素:

为了解决现有技术中存在的问题,本发明所要解决的技术问题在于提供一种基于卷积神经网络图像识别方法。

本发明是这样实现的,

一种基于卷积神经网络图像识别方法,该方法包括:

步骤1,将原始图片采用卷积神经网络进行模型训练;

步骤2,将待处理图片输入到训练好的模型,进行图片的识别。

进一步地:所述步骤2采用卷积神经网络进行模型训练包括:通过卷积层初步提取图像特征;通过下采样层提取主要特征;

通过全连接层将各部分特征汇总;产生分类器,进行预测识别;

具体包括:

步骤11:对卷积神经网络进行权值的初始化;

步骤12:对输入的图片数据经过卷积层、下采样层、全连接层的向前传播得到输出值;

每一层输出的特征如下:

其中,y(l)是卷积层的输出,f(x)是非线性的激活函数,m是输入该层的特征图集,是该层卷积核的权值,是卷积运算,是卷积层输入的特征向量,bl是偏置;

步骤13:求出卷积神经网络的输出值与目标值之间的误差;当卷积神经网络输出的结果与期望值不相符时,则进行反向传播过程;求出结果与期望值的误差,再将误差一层一层的返回,计算出每一层的误差,然后进行权值更新;通过训练样本和期望值来调整网络权值;

通过前向传播对样本的预测与卷积神经网络期望值的输出来确定模型内部的参数;定义卷积神经网络的目标函数:

其中,l(x)为损失函数,m为样本数,为期望输出,y为样本输出。应用梯度下降法对神经网络里每一层的参数w和b求偏导,得到更新之后的卷积神经网络参数值,让实际的卷积神经网络输出更加接近期望值;

步骤14:当误差大于期望值时,将误差传回卷积神经网络中,依次求得全连接层,下采样层,卷积层的误差;当误差等于或小于期望值时,结束训练;

步骤15:根据求得误差判断权值是否为最优,如果不是则进行权值更新;

步骤16:判断是否完成epoch次数,如果已完成则退出模型训练,否则进行下一次的训练。

步骤17:完成训练模型的训练。

进一步地:步骤15中的更新包括卷积层更新与全连接层更新:

利用反向传播算法将误差层层回传,利用梯度下降法更新每一层的权值。

进一步地:步骤13中,

卷积层的向前传播过程是,通过卷积核对输入数据进行卷积操作,卷积核采用步长为1的卷积方式,卷积整个输入图片,形成局部感受野,然后局部感受野进行卷积算法,通过权值矩阵与图片的特征值进行加权和,然后通过激活函数得到输出;

下采样层的向前传播过程是,上一层卷积层提取的特征作为输入传到下采样层,通过下采样层的池化操作,降低数据的维度,采用最大池化方法选取特征图中的最大值;

全连接层的向前传播过程是,特征图进过卷积层和下采样层的特征提取之后,将提取出来的特征传到全连接层中,通过全连接层,进行分类,获得分类模型,得到最后的结果;在全连接层中,参数的个数=全连接层中节点的个数×输入的特征的个数+节点的个数,得到输出矩阵后,经过激励函数的激活,传入下一层。

进一步地:步骤2中,

步骤21:在图像识别系统中加载步骤1的训练模型保存在特定文件里的训练好的最优权值;

步骤22:在训练模型通过权值共享方法得到每一层卷积核的最优权值,将训练好的卷积核权值加载到图像识别的系统当中;

步骤23:训练模型中的卷积神经网络的最后一层的全连接层的输出通过softmax分类器将训练的数据集分为正确与错误两类,在图像识别系统中加载训练模型已经分类好的图片标签;

步骤24:对待识别图片进行归一化预处理;

步骤25:使用基于卷积神经网络的识别系统进行识别;并输出识别结果。

本发明与现有技术相比,有益效果在于:

本发明方法在训练过程通过采用gpu模式来加速神经网络的训练,在训练模型中加入了dropout正则化对系统进行优化处理来防止训练过程中发生过拟合现象,同时对数据集照片进行图集扩充,如:旋转、缩放、翻转等,模型对扩充以后的数据集在训练过程中也无发生过拟合现象。由损失函数曲线图图8可知,训练模型训练到后期时,随着模型学习率逐渐降低,损失函数也保持稳定下降,当卷积神经网络的训练模型在迭代次数达到25次时,损失函数的曲线就开始逐渐趋向于稳定。而根据模型训练的准确率曲线图图9可知,在刚开始几次中,训练模型的准确率偏低,这是由于模型训练迭代次数较少而导致的模型参数没有得到最优化,不过在模型训练迭代次数的逐渐增加的过程中,同时模型数据集的识别率也逐渐提高,当卷积神经网络训练模型在更迭次数达到25次时,模型的准确率曲线图也逐步趋于稳定。综合两张曲线图可知,该模型的迭代25次时达到模型的最佳迭代次数。通过采用一种基于卷积神经网络而设计的训练模型,其准确率可达到96%。

附图说明

图1为本发明实施例用作正确图样;

图2为本发明实施例用作错误的图像;

图3为本发明实施例第一层卷积结构;

图4为本发明实施例第二层卷积结构;

图5为本发明实施例第三层卷积结构;

图6为本发明实施例第四层卷积结构;

图7为本发明实施例第五层卷积结构;

图8为本发明实施例损失函数下降曲线;

图9为本发明实施例训练模型识别准确率。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

一种基于卷积神经网络图像识别方法,其特征在于,该方法包括:

步骤1,将原始图片采用卷积神经网络进行模型训练;

步骤2,将待处理图片输入到训练好的模型,进行图片的识别。

所述步骤2采用卷积神经网络进行模型训练包括:通过卷积层初步提取图像特征;通过下采样层提取主要特征;通过全连接层将各部分特征汇总;产生分类器,进行预测识别;

具体包括:

步骤11:对卷积神经网络进行权值的初始化;

步骤12:对输入的图片数据经过卷积层、下采样层、全连接层的向前传播得到输出值;

每一层输出的特征如下:

其中,y(l)是卷积层的输出,f(x)是非线性的激活函数,m是输入该层的特征图集,是该层卷积核的权值,是卷积运算,是卷积层输入的特征向量,bl是偏置;

步骤13:求出卷积神经网络的输出值与目标值之间的误差;当卷积神经网络输出的结果与期望值不相符时,则进行反向传播过程;求出结果与期望值的误差,再将误差一层一层的返回,计算出每一层的误差,然后进行权值更新;通过训练样本和期望值来调整网络权值;

通过前向传播对样本的预测与卷积神经网络期望值的输出来确定模型内部的参数;定义卷积神经网络的目标函数:

其中,l(x)为损失函数,m为样本数,为期望输出,y为样本输出。应用梯度下降法对神经网络里每一层的参数w和b求偏导,得到更新之后的卷积神经网络参数值,让实际的卷积神经网络输出更加接近期望值;

步骤14:当误差大于期望值时,将误差传回卷积神经网络中,依次求得全连接层,下采样层,卷积层的误差;当误差等于或小于期望值时,结束训练;

步骤15:根据求得误差判断权值是否为最优,如果不是则进行权值更新;

步骤16:判断是否完成epoch次数,如果已完成则退出模型训练,否则进行下一次的训练。

步骤17:完成训练模型的训练。

步骤15中的更新包括卷积层更新与全连接层更新:

利用反向传播算法将误差层层回传,利用梯度下降法更新每一层的权值。

步骤13中,卷积层的向前传播过程是,通过卷积核对输入数据进行卷积操作,卷积核采用步长为1的卷积方式,卷积整个输入图片,形成局部感受野,然后局部感受野进行卷积算法,通过权值矩阵与图片的特征值进行加权和,然后通过激活函数得到输出;

下采样层的向前传播过程是,上一层卷积层提取的特征作为输入传到下采样层,通过下采样层的池化操作,降低数据的维度,采用最大池化方法选取特征图中的最大值;

全连接层的向前传播过程是,特征图进过卷积层和下采样层的特征提取之后,将提取出来的特征传到全连接层中,通过全连接层,进行分类,获得分类模型,得到最后的结果;在全连接层中,参数的个数=全连接层中节点的个数×输入的特征的个数+节点的个数,得到输出矩阵后,经过激励函数的激活,传入下一层。

步骤2中,步骤21:在图像识别系统中加载步骤1的训练模型保存在特定文件里的训练好的最优权值;

步骤22:在训练模型通过权值共享方法得到每一层卷积核的最优权值,将训练好的卷积核权值加载到图像识别的系统当中;

步骤23:训练模型中的卷积神经网络的最后一层的全连接层的输出通过softmax分类器将训练的数据集分为正确与错误两类,在图像识别系统中加载训练模型已经分类好的图片标签;

步骤24:对待识别图片进行归一化预处理;

步骤25:使用基于卷积神经网络的识别系统进行识别;并输出识别结果。

本发明中卷积层的运算是卷积神经网络的重要组成部分,其主要作用是图像特征的提取和抽象。而卷积层的核心则是卷积运算,卷积运算时,图像应该先转换成矩阵,然后再进行运算。假定有一个尺寸为6*6的图像,每一个像素点里都存储着图像的信息。再定义一个卷积核(相当于权重),用来从图像中提取一定的特征。卷积核与数字矩阵对应位相乘再相加,得到卷积层输出结果。

卷积核的取值在没有以往学习的经验下,可由函数随机生成,再逐步训练调整。

当所有的像素点都至少被覆盖一次后,就可以产生一个卷积层的输出(卷积步长为1)。

机器一开始并不知道要识别的部分具有哪些特征,是通过与不同的卷积核相作用得到的输出值,相互比较来判断哪一个卷积核最能表现该图片的特征——比如要识别图像中的某种特征(比如曲线),也就是说,这个卷积核要对这种曲线有很高的输出值,对其他形状(比如三角形)则输出较低。卷积层输出值越高,就说明匹配程度越高,越能表现该图片的特征。

下采样层也称之为池化层,工作过程为:

池化层的作用主要是减少参数的数量,提高计算速度,并增强所提取特征的鲁棒性,同时防止过拟合现象的发生,池化层一般放于卷积层之后,缩减模型的大小,降低特征维度。

最常见的两种池化层的形式:

最大池化:max-pooling——选取指定区域内最大的一个数来代表整片区域。

均值池化:mean-pooling——选取指定区域内数值的平均值来代表整片区域。

卷积层和池化层的工作就是提取特征,并减少原始图像带来的参数。然而,为了生成最终的输出,需要应用全连接层来生成一个等于需要的类的数量的分类器。

全连接层的工作原理和之前的神经网络学习很类似,需要把池化层输出的张量重新切割成一些向量,乘上权重矩阵,加上偏置值,然后对其使用relu激活函数,用梯度下降法优化参数既可。

实施例:

本次实施例中的训练模型共有40个epoch来更新学习率,在训练开始时设一个较大的学习率,随着学习过程中系统总误差的减小学习率也逐渐减小,每当完成一次epoch训练,将最佳权重保存,以便后期神经网络模型的部署,训练过程中使用sgd随机梯度下降法对训练系统进行优化,同时使用minibatch训练加快模型收敛。在完成40个epoch训练后,保存了训练中的最佳权重,在模型预测中则直接调用已保存的最佳权重进行模型预测参数初始化开始对图片预测。

在训练开始之前,先加载需要训练的图片,对训练集进行预处理,包括图片归一化、图片通道统一等,然后进行模型的搭建并进行训练,即开始前向传播和反向传播,反向传播采用随机梯度下降法进行优化,每完成一次优化则进行一次判断是否结果更优,如果更优,则更新相关的权重,否则,进行判断是否完成所有epoch训练,如果未完成则返回训练模型继续训练,否则整个模型训练完成。

在神经网络模型预测中,先加载已经训练完成的模型参数,加载图片分类的标签值,以便模型后续预测结果输出,然后在用户端传入需要分类的图片,系统得到待识别的图片后,显示进行图片的预处理,将相关的参数进行统一化,使用已经加载的神经网络进行预测,最后输出当前图片的识别结果,完成整个图像识别的流程。

数据集共分为2类,包括70张训练模型优化模型参数的训练集与10张测试模型识别情况的测试集。选择两张图样,其中用红绿蓝三色图作为正确的图样,如图1;用非红绿蓝三色图作为错误的图样,如图2。分别在不同角度拍摄40张照片,每张图样取35张拍摄的照片作为优化网络参数的训练集,则每张图样剩余的5张照片作为验证集。过程如下:(1)对输入的图片矩阵进行预处理和归一化等处理,将大小为128x128的图片送入网络。

(2)第一层卷积结构用96个20*20的卷积核,卷积步长为2,padding操作为valid,输出特征图为55*55*96。经过归一化和prelu激活处理之后进行最大池化操作,其局部感受区域为3*3,池化步长为2,padding操作为valid,输出特征图为27*27*96。如图3。

(3)第二层卷积结构以27*27*96特征图为输入,用256个5*5的卷积核,卷积步长为1,padding操作为same,输出特征图为27*27*256。经过归一化和prelu激活处理之后进行最大池化操作,其局部感受区域为5*5,池化步长为2,padding操作为valid,输出特征图为13*13*256。如图4。

(4)第三层卷积结构以13*13*256特征图为输入,用384个3*3的卷积核,卷积步长为1,padding操作是same,本层只进行归一化与prelu激活处理不池化,输出特征图为13*13*384。如图5。

(5)以13*13*384特征图为输入,用384个3*3的卷积核,卷积步长为1,padding操作为same,本层只归一化和prelu激活处理不池化,输出特征图的为13*13*384。如图6。

(6)第五层卷积结构以13*13*384特征图为输入,用256个3*3的卷积核,卷积步长为1,padding操作是same,输出特征图为13*13*256。经过归一化和prelu激活处理之后进行最大池化操作,其局部感受区域为3*3,池化步长为2,padding操作为valid,输出特征图为6*6*256。如图7。

(7)第一层全连接层的结构,将第五层卷积层输出的特征图通过全连接层压缩成一维特征图,输出参数为4096,dropout层参数为0.2,防止过拟合发生,输出特征图为4096*1。

(8)第二层全连接层的结构,以第一层全连接层输出特征图作为输入,输出参数是4096,dropout层参数是0.25。因此本层输出特征图为4096*1。

(9)第三层全连接层结构,以4096*1特征图为输入,本层输出参数为2,输出特征图为2*1。

(10)最后将第三层全连接层输出的2*1特征图作为softmax分类器输入,通过分类器输出2种类别的分类数据。

上面阐述了实验中的卷积神经网络,具体程序如下:

(1)卷积神经网络的卷积与池化层程序。

x=conv2d(96,(20,20),strides=(2,2),padding='valid')(input_dim)

x=bn_relu(x)

x=maxpooling2d(pool_size=(3,3),strides=(2,2),padding='valid')(x)

x=conv2d(256,(5,5),strides=(1,1),padding='same')(x)

x=bn_relu(x)

x=maxpooling2d(pool_size=(3,3),strides=(2,2),padding='valid')(x)

x=conv2d(384,(3,3),strides=(1,1),padding='same')(x)

x=prelu()(x)

x=conv2d(384,(3,3),strides=(1,1),padding='same')(x)

x=prelu()(x)

x=conv2d(256,(3,3),strides=(1,1),padding='same')(x)

x=prelu()(x)

x=maxpooling2d(pool_size=(3,3),strides=(2,2),padding='valid')(x)

(2)卷积神经网络的全连接层程序。

x=flatten()(x)

fc1=dense(4096)(x)

dr1=dropout(0.2)(fc1)

fc2=dense(4096)(dr1)

dr2=dropout(0.25)(fc2)

fc3=dense(out_dims)(dr2)

本实施例的训练模型在训练过程中模型训练的迭代次数最大为40个epoch,选用的块大小为128,通过采用gpu模式来加速神经网络的训练,在训练模型中加入了dropout正则化对系统进行优化处理来防止训练过程中发生过拟合现象,同时对数据集照片进行图集扩充,如:旋转、缩放、翻转等,模型对扩充以后的数据集在训练过程中也无发生过拟合现象。由损失函数曲线图图8可知,训练模型训练到后期时,随着模型学习率逐渐降低,损失函数也保持稳定下降,当卷积神经网络的训练模型在迭代次数达到25次时,损失函数的曲线就开始逐渐趋向于稳定。而根据模型训练的准确率曲线图图9可知,在刚开始几次中,训练模型的准确率偏低,这是由于模型训练迭代次数较少而导致的模型参数没有得到最优化,不过在模型训练迭代次数的逐渐增加的过程中,同时模型数据集的识别率也逐渐提高,当卷积神经网络训练模型在更迭次数达到25次时,模型的准确率曲线图也逐步趋于稳定。综合两张曲线图可知,该模型的迭代25次时达到模型的最佳迭代次数。通过采用一种基于卷积神经网络而设计的训练模型,其准确率可达到96%。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1