一种基于神经网络和迁移学习的水果图像分类方法及装置与流程

文档序号:16740383发布日期:2019-01-28 12:57阅读:742来源:国知局
一种基于神经网络和迁移学习的水果图像分类方法及装置与流程
本发明涉及深度学习领域,特别涉及一种基于神经网络和迁移学习的水果图像分类方法及装置。
背景技术
:目前卷积神经网络被广泛用于图像分析的应用场景当中,通过给定数据集上训练模型来完成特定任务,比如分类、检测、识别等。深度学习是图像分析研究中的一个新的领域,其目的在于模拟人脑进行自主学习。深度学习是一种数据驱动型模型,能够模拟人脑视觉机理自动地学习到数据各个层次的抽象特征,从而更好地反映数据的本质特征。随着图像库的不断增大,复杂度不断增高,单机的提取rgb图像特征已经远远不能满足需求,使用数据并行处理无疑是一个好的解决方案。传统图像分类算法主要有两种,一种是采用sift算法提取特征、进行分类;另一种是,采用神经网络全连接方式和反向传播算法(bp)的方式,利用高斯分布或随机初始值的方法,通过迭代的方式计算当前网络的输出的得分值,然后根据当前预测标签和实际标签之间得分值的差去不断调整前面各层之间的参数,直到整个模型的参数权重w和偏置b收敛。传统的sift算法,误差较大,且需结合大量及繁琐的图像预处理。传统的bp算法,存在着梯度弥散和爆炸问题、图像训练样本不足以及局部最优等问题。与此同时,由于互联网中海量无标签rgb图像呈爆发式增长,bp算法已不能满足日前海量无标签rgb图像分类的需求。技术实现要素:有鉴于此,本发明提供一种基于神经网络和迁移学习的水果图像分类方法,可解决对输入的任意尺寸图像进行分类,该方法依赖基于神经网络和迁移学习的水果图像分类模型,提高识别和分类效率,降低大量时间成本,可靠性高。为了解决上述技术问题,第一方面,本发明实施例提供一种基于神经网络和迁移学习的水果图像分类方法,包括:将待分类的图像进行预处理,经预处理后再结合smote算法进行数据增强;将数据增强后的图像的像素点进行bn批量归一化操作,使所述像素点符合正态分布;将所述正态分布的像素点输入基于神经网络和迁移学习的水果图像分类模型,输出所述图像的分类结果。在一个实施例中,将待分类的图像进行预处理,包括:将待分类的图像处理尺寸为299*299像素的图像。在一个实施例中,所述数据增强的方式包括以一种或多种:缩放:将图像尺寸缩放80~120%,数据增加至2倍;镜像翻转:将原始图像进行垂直和水平反转,将图像数据扩充2倍;高斯噪声:将原始图像中添加一些高斯噪声,将图像数据扩充2倍;颜色抖动:增强或减弱原始图像对比度,将图像数据扩充2倍;旋转图片:对原始图像进行旋转45度,将图像数据扩充2倍。在一个实施例中,所述结合smote算法进行数据增强,公式如下:式中:特征向量xi,i∈{1,......,t},t个样本,i为样本编号,ζ为0~1之间的随机数。在一个实施例中,所述基于神经网络和迁移学习的水果图像分类模型由下述步骤训练生成,包括:采集大量水果图像,进行预处理;经预处理后再结合smote算法,进行数据增强;将数据增强后的图像的像素点进行bn批量归一化操作,使所述像素点符合正态分布;构建一个卷积神经网络模型;所述卷积神经网络模型包含一个含有cnn、分类神经网络、输出网络三部分的卷积;将inceptionv3模型在imagenet数据集上训练的权重迁移至所述卷积神经网络模型上;将所述正态分布的像素点输入迁移后的所述卷积神经网络模型,进行一次前向传播,输出得出每一分类得分值,通过softmax函数,得出每一类的概率值;计算所述得分值与所述真实分类之间的loss值;使用反向传播算法,根据随机梯度下降算法沿着所述loss值下降的方向微调权重系数w;当所述loss值趋向收敛时,停止训练,生成基于神经网络和迁移学习的水果图像分类模型。在一个实施例中,在计算所述得分值与所述真实分类之间的loss值步骤之后,使用反向传播算法之前,包括:加l2正则化trick操作。在一个实施例中,计算所述得分值与所述真实分类之间的loss值,通过下述公式计算:其中,c表示预测值与真实值之间的差值,m表示训练过程中样本总数量,x表示输入值,b表示偏置值,y表示真实标签值,a表示卷积神经网络物体的预测值,σ表示激活函数,z表示得分值,k为惩罚项因子。在预测模型中,k超参数取2.0。在一个实施例中,当所述loss值趋向收敛时,停止训练;包括:采用earlystopping的训练方法,经过10个epoch之后,验证集loss相比上一个epoch没有下降,则停止训练。第二方面,本发明还提供一种基于神经网络和迁移学习的水果图像分类装置,包括:处理增强模块,用于将待分类的图像进行预处理,经预处理后再结合smote算法进行数据增强;归一化模块,用于将数据增强后的图像的像素点进行bn批量归一化操作,使所述像素点符合正态分布;输出模块,用于将所述正态分布的像素点输入基于神经网络和迁移学习的水果图像分类模型,输出所述图像的分类结果。第三方面,本发明还提供一种基于神经网络和迁移学习的水果图像分类装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:将待分类的图像进行预处理,经预处理后再结合smote算法进行数据增强;将数据增强后的图像的像素点进行bn批量归一化操作,使所述像素点符合正态分布;将所述正态分布的像素点输入基于神经网络和迁移学习的水果图像分类模型,输出所述图像的分类结果。本发明的优点在于,本发明的一种基于神经网络和迁移学习的水果图像分类方法,可解决对输入的任意尺寸图像进行分类,该方法依赖基于神经网络和迁移学习的水果图像分类模型,提高识别和分类效率,降低大量时间成本,可靠性高。本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。附图说明附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:图1为本发明实施例提供的基于神经网络和迁移学习的水果图像分类方法的流程图;图2为本发明实施例提供的基于神经网络和迁移学习的水果图像分类过程的示意图;图3为本发明实施例提供的基于神经网络和迁移学习的水果图像分类方法的smote算法分析图;图4为本发明实施例提供的基于神经网络和迁移学习的水果图像分类方法部分模块结构图;图5为本发明实施例提供的基于神经网络和迁移学习的水果图像分类方法的gpu数据并行模式示意图;图6为本发明实施例提供的一种基于神经网络和迁移学习的水果图像分类方法的十万张图片分类训练结果示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本发明是为了解决对输入的任意尺寸图像进行分类,为了克服现有rgb图像分类方法受图像清晰度、亮度、对比度等各方面的影响造成的不良效果。本发明提出一种基于神经网络和迁移学习的水果图像分类方法,基于深度学习可以分类图像。参照图1所示,包括:s11、将待分类的图像进行预处理,经预处理后再结合smote算法进行数据增强;s12、将数据增强后的图像的像素点进行bn批量归一化操作,使所述像素点符合正态分布;s13、将所述正态分布的像素点输入基于神经网络和迁移学习的水果图像分类模型,输出所述图像的分类结果。其中上述步骤s11中,比如包括图像清洗、中心裁剪等预处理,包括对对图像进行加噪、翻转、缩放等,并结合smote算法和mixup算法,进行数据增强。步骤s12-s13中对数据增强后的图像数据的像素点进行bn批量归一化操作,之后输入到训练好的基于神经网络和迁移学习的水果图像分类模型,从而输出该图像的分类结果。本实施例中,该基于神经网络和迁移学习的水果图像分类方法,可解决对输入的任意尺寸图像进行分类,该方法依赖基于神经网络和迁移学习的水果图像分类模型,提高识别和分类效率,降低大量时间成本,可靠性高。下面详细说明本发明的步骤。上述基于神经网络和迁移学习的水果图像分类方法依赖超大样本集,对样本进行图像清洗、中心裁剪等预处理后进行预训练,后使用卷积网络进行学习;考虑到卷积网络在cpu运行效率低下,本发明使用cuda优化后的卷积,相比cpu实现效率提升达30倍左右,学习后的结果用于rgb分类应用当中,降低大量时间成本,可靠性高。迁移学习:利用基于imagenet图像训练的inception_v3模型的权重文件对上述基于神经网络和迁移学习的水果图像分类模型权重w做初始化操作。fine-tune:因为训练过程需要对某部分参数进行调试,采用fine-tune的trick,可以大大减少训练时间。比如:输入一幅n维rgb图像,对图像进行加噪、翻转、缩放等,并结合smote算法和mixup算法,进行数据增强。数据增强的方式可包括下述一种或多种方式:镜像翻转:将原始图像进行垂直和水平反转,将数据扩充2倍;高斯噪声:将原始像中添加一些高斯噪声,将数据扩充2倍;颜色抖动:增强或减弱图像对比度,将数据扩充2倍;旋转图片:对图像进行旋转45度,将数据扩充2倍;上述预处理比如采用中心裁剪的方式,把任意尺寸的图像,固定为299*299的大小。假设x,y为图像两边,所以图像中心点为裁剪中心为299/2,299/2,所以smote计算公式如下:其中,l表示求出的像素点值的大小,用于区分本文其他参数符号,特征向量xi,i∈{1,......,t},t个样本,i为样本编号,ζ为0~1之间的随机数。将每一层输入进行批量归一化n(0,1)的正太分布,然后输入后一层计算。假设输入为q1,q2,q3.....qn,其计算公式为:np.mean取输入q的平均值,std(q)是求输入方差,输入点为一个均值为0,方差为1的正态分布。正因为采用bn的正则化方式,学习率lr采取较大的值,步长为0.1。采用inceptionv3为基础模型,加入1*1卷积核,去掉最后一层,加入dropout层和分类层。dropout采用参数值为0.5。激活函数采用relu函数:函数为score=max(0,a),导数为1因为sigmoid指数类函数的特征,其公式为:v(x)是计算得出的函数值,exp就是指数e作为底部,p就是每一层输入计算的值,即上一层的输出值。因指数函数两端平缓,导数接近于0,导致权重更新缓慢,出现梯度消失问题。采用多分类损失函数【categorical_cross-entroy】,可以有效解决梯度消失,并计算预测值与真实值之间的误差。为拟制过拟合,降低模型复杂度,加l2正则化trick操作。其计算方法为:其中,c表示预测值与真实值之间的差值,m表示训练过程中样本总数量,x表示输入值,b表示偏置值,y表示真实标签值,a表示卷积神经网络物体的预测值,σ表示激活函数,z表示得分值,k为惩罚项因子。在预测模型中,k超参数取2.0。优化器采用动量梯度下降法,给momentum参数采用默认值0.9。梯度下降法公式为:h(x)=hθ(x)=θ0+θ1x1+θ2x2θ这里为参数,设x0=1,x1,x2为特征向量。由此推出:hθ(x)=θtx损失函数:求梯度下降法的算法过程如下:首先对θ赋值,这个值可以是随机的,也可以让θ是一个全零的向量。改变θ的值,使得j(θ)按梯度下降的方向进行减少。公式过程:j(θ)是损失函数值,θ就是权重,h(θ)就是预测值,y就是真实标签值,加二分之一是因为求导约去2,求的就是误差值。θi=θi-α(hθ(x)-y)x(i)lr初始值采用0.1大小最后用softmax函数特征和性质建立分类器,对输入的图像进行分类。其函数公式为:以指数e作为底部。vi,vj分别为各分类图像的得分值,si为最后的概率值,范围在(0,1)之间。得分值越大,概率值越大,分类图像的可能性越高。i,j代表的是每个分类的编号,全部分类加起来就等于1,所以si求的每个分类占的比率。比率越大,则那个分类可能性越高。调用调回函数reducelrplateau函数,当验证集损失值不再下降时,减少学习率的步长大小:lr=lr*0.5。采用earlystopping正则化方法,当验证集损失值在10个轮回中不再下降,中止训练。bp反向传播计算权重和偏置值,并更新权值w与偏置值b。循环迭代批量输入,每批次为64。双gpu数据并行模式,将模型在两gpu上复制,输入分为两个大小为32的子batch,在两个gpu上分别运行,通过连接后在cpu上返回大小为64的结果。参照图2所示,以linux系统环境为例,解释了整个分类过程的步骤:1.输入层(1)rgb图像输入(2)bn,每一层输入都标准化维n(0,1)的正态分布(3)数据增强+smote算法;2.卷积层(1)特征组合(2)下采样(3)非线性变换(4)部分失活;3.输出层(1)softmax(2)损失值(3)l2正则化+约束项因子;4.优化器:通过随机动量梯度下降法优化模型参数,得到最优的权重w和偏置b的参数值;5.输出分类结果。本方法利用卷积神经网络架构,用于完成识别和分类两个任务。用户可以直接把图像输入用户界面,图像通过卷积神经网络进行特征选择,最后通过分类模块进行分类,分类结果返回用户界面显示。用户操作方便快速,系统鲁棒性好,并实现快速且较高准确率的图像分类结果。具体地:步骤1,在linux系统环境下,采用tensorflow为后端的keras框架,对收集的图像数据集,分别以6:2:2的比例分成训练集、验证集和测试集。步骤2,输入图像,进行数据预处理,中心裁剪的操作,固定大小为299*299的图像。参照图3所示:对299*299尺寸大小图像进行数据增强,采用了缩放、镜像翻转,添加噪声干扰、颜色抖动、旋转图片等操作。缩放:将图像尺寸缩放80~120%,数据增加至2倍;镜像翻转:将原始图像进行垂直和水平反转,将数据扩充2倍;高斯噪声:将原始像中添加一些高斯噪声,将数据扩充2倍;颜色抖动:增强或减弱图像对比度;旋转图片:对图像进行旋转45度,将数据扩充2倍。步骤3,对输入像素点进行bn批量归一化操作,使像素点分布为均值为0,方差为1的正态分布,能提高到达最优化点效率。步骤4,构建神经网络训练模型结构。采用迁移学习,借鉴别人学习的经验,导入inception在imagenet数据集上的训练的权重文件,对自己模型进行参数值的初始化的操作,有助于提高训练速率和效率。采用fine-tune微调的方式,调整部分参数以后,导入自己保存的权重文件进行训练,可以大幅度减少训练时间。参照图4所示,在inception的基础建立神经网络模型,加入1*1卷积核,增加模型非线性拟合能力。卷积核采用3*3大小尺寸,采用relu激活函数,池化层采用2*2的最大池化。中间层添加一层dropout层,对中间层50%的神经元进行随机失活的正则化操作,有助于降低模型复杂度,有效抑制过拟合造成模型泛化能力不足的问题。步骤5,建立分类器。在最后一层添加softmax分类器,对输入图像进行多分类任务。步骤6,采用多分类交叉熵损失函数,按照以下式子,计算预测值与真实值之间的误差大小。加入l2正则化项,进行权重衰减,作用在于降低模型复杂度,抑制过拟合,提高模型泛化能力。步骤7,建立优化器。采用动量梯度下降法,对预测值与真实值之间的误差值进行优化,不断缩小错误率,提高分类精度。更新参数值,通过动量梯度下降法降低损失值的大小,接近最优化点。当损失值连续5轮不再下降,减小学习率。采用反向传播算法计算,每轮更新权重值w大小:参照图5所示,采用双gpu数据并行的方式,对64批量大小的图片进行训练。对97433张进行训练,每轮迭代1521次。当每10轮,验证集损失值不再下降时,中止训练。保存最终的权重文件以及模型。参照图6所示,通过tensorboard可视化工具得知,训练集验证集准确率分别为99.3%,98.4%,训练集验证集的损失值分别为0.11,0.14。以下是加了l2正则化和没加l2正则化的训练结果对比表:验证集加l2正则化不加l2正则化准确率98.496.38损失值0.140.15表1训练集加l2正则化不加l2正则化准确率99.398.5损失值0.110.037表2以下是实验条件:采用两块型号为1080ti,显存为11g的gpu,采用的cpu内存为8g1600mhzddr3,处理器为2.6ghzintelcorei5。操作系统为linux和ios系统。基于同一发明构思,第二方面,本发明还提供一种基于神经网络和迁移学习的水果图像分类装置,包括:处理增强模块,用于将待分类的图像进行预处理,经预处理后再结合smote算法进行数据增强;归一化模块,用于将数据增强后的图像的像素点进行bn批量归一化操作,使所述像素点符合正态分布;输出模块,用于将所述正态分布的像素点输入基于神经网络和迁移学习的水果图像分类模型,输出所述图像的分类结果。第三方面,本发明还提供一种基于神经网络和迁移学习的水果图像分类装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:将待分类的图像进行预处理,经预处理后再结合smote算法进行数据增强;将数据增强后的图像的像素点进行bn批量归一化操作,使所述像素点符合正态分布;将所述正态分布的像素点输入基于神经网络和迁移学习的水果图像分类模型,输出所述图像的分类结果。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1