一种蔬菜识别的方法及装置与流程

文档序号:16579687发布日期:2019-01-14 17:51阅读:287来源:国知局
一种蔬菜识别的方法及装置与流程

本发明涉及图像识别技术领域,特别涉及一种蔬菜识别的方法及装置。



背景技术:

在经济全球化的大背景下,农产品市场也在世界范围内逐步开放,产品种类和交易量激增,随之引发了农产品销售终端的历史性变革。目前在超市和农贸市场的蔬菜识别中,大部分分类工作都要由人工完成,依靠人眼对蔬菜进行识别,近三年来,我国市场监管部门尝试在农产品销售点推行溯源秤,在销售过程中,商贩输入商品的plu码,就会打印出带有“溯源码”等信息的小票,并将信息传送到上游服务器中,以便管理及溯源,然而推行成效并不明显,相对于普通秤,溯源秤需要商贩根据销售的商品,手动输入plu码,操作繁琐且效率低,这样一来,不仅耗费了大量的劳动力,而且工作效率低下,严重影响了蔬菜商品化的发展速度。

现有中国专利(申请号:201510004587.8)公开了一种基于水果蔬菜的识别的一体秤,主要通过ncc模板匹配算法进行图像识别,侧重于种类识别和果蔬溯源,模板匹配算法存在的主要问题是要求模板能够尽可能与待识别图像相似,但是蔬菜包装更新较快,因此模板图像也需要不断更新才能提高准确率,而且这种算法存在着无法识别背景复杂的蔬菜图像的问题。

现有中国专利(申请号:201711133538.x)公开了图像识别方法及追溯秤终端,主要通过深度残差神经网络算法对图像增强后的初始图像进行蔬菜的品类识别,创新点在于图像增强了神经网络“残差学习”原则,但这种算法较为复杂,主要体现在初始图像进行子类识别,需要首先识别出是什么类,再不断识别,因此存在着识别效率较低的问题。



技术实现要素:

本发明所要解决的技术问题是:提供一种蔬菜识别的方法及装置,能够准确识别背景复杂下蔬菜的种类且识别效率高。

为了解决上述技术问题,本发明采用的一种技术方案为:

一种蔬菜识别的方法,包括步骤:

s1、建立第一卷积神经网络模型;

s2、采集每类蔬菜在不同场景下的图像,并构建相应的输入数据集;

s3、根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型,根据所述第二卷积神经网络模型进行蔬菜识别。

为了解决上述技术问题,本发明采用的另一种技术方案为:

一种蔬菜识别的装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现步骤:

s1、建立第一卷积神经网络模型;

s2、采集每类蔬菜在不同场景下的图像,并构建相应的输入数据集;

s3、根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型,根据所述第二卷积神经网络模型进行蔬菜识别。

本发明的有益效果在于:通过建立第一卷积神经网络模型,并采集每类蔬菜在不同场景下的图像,并构建相应的输入数据集,根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型,根据所述第二卷积神经网络模型进行蔬菜识别,提高了蔬菜识别的效率,通过随机梯度下降算法对第一卷积神经网络模型进行训练,能够确保训练得到的第二卷积神经网络模型能准确识别背景复杂下蔬菜的种类。

附图说明

图1为本发明实施例的蔬菜识别的方法流程图;

图2为本发明实施例的蔬菜识别的装置的结构示意图;

标号说明:

1、蔬菜识别的装置;2、存储器;3、处理器。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

本发明最关键的构思在于:通过采集每类蔬菜在不同场景下的图像,并构建相应的输入数据集,根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型进行蔬菜识别,提高了蔬菜识别的效率。

请参照图1,一种蔬菜识别的方法,包括步骤:

s1、建立第一卷积神经网络模型;

s2、采集每类蔬菜在不同场景下的图像,并构建相应的输入数据集;

s3、根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型,根据所述第二卷积神经网络模型进行蔬菜识别。

从上述描述可知,本发明的有益效果在于:通过建立第一卷积神经网络模型,并采集每类蔬菜在不同场景下的图像,并构建相应的输入数据集,根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型,根据所述第二卷积神经网络模型进行蔬菜识别,提高了蔬菜识别的效率,通过随机梯度下降算法对第一卷积神经网络模型进行训练,能够确保训练得到的第二卷积神经网络模型能准确识别背景复杂下蔬菜的种类。

进一步的,步骤s3中所述根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型具体为:

根据所述学习率自适应更新的梯度下降算法计算所述输入数据集在第k次迭代训练时损失函数的值,其中k的取值范围为[1,m),m为迭代训练的总次数;

根据第k次迭代训练损失函数的值进行第k+1次迭代训练,直至所述损失函数的值达到最小,从而得到第二卷积神经网络模型。

由上述描述可知,通过学习率自适应更新的梯度下降算法不断地计算当前迭代训练的损失函数的值,并根据当前迭代训练的损失函数的值进行下一次的迭代训练,直至所述损失函数的值达到最小,从而保证了得到的第二卷积神经网络模型可准确的识别背景复杂下蔬菜的种类。

进一步的,所述第k次迭代训练的过程具体为:

s31、根据所述输入数据集和第一卷积神经网络模型的卷积层计算公式

提取所述图像的颜色特征和纹理特征,得到与所述输入数据集对应的特征图,其中为第一卷积神经网络模型中第l卷积层的第j个特征图的激活值,为所述第一卷积神经网络模型中第l-1卷积层的第i个特征图的激活值,为第l卷积层的第j个特征图的激活值与第l-1卷积层的第i个特征图相连的卷积核,为第l卷积层的第j个特征图的额外偏执项,f()为激励函数,mj为第一卷积神经网络模型中第j个卷积层特征图的数量;

s32、根据第一卷积神经网络模型的池化层的计算公式对所述特征图进行尺寸减小处理,得到新的特征图,其中down()为下采样函数;

s33、所述第一卷积神经网络模型的全连接层根据所述新的特征图,得到第k+1次迭代训练的输入数据集。

由上述描述可知,通过不断的迭代训练,提高了后续得到第二神经网络模型识别蔬菜图像的准确性。

进一步的,所述梯度下降算法和所述损失函数的计算公式具体如下:

其中,为网络参数权值,为梯度,为损失函数,xi为第i个训练样本的输入值,yi为与所述输入值对应的输出值,m为迭代训练的总次数,η为学习率,j为第一卷积神经网络模型中参数的总数目,xj为卷积神经网络提取的纹理与颜色特征值。

由上述描述可知,通过梯度下降算法和损失函数相结合,使得最终迭代得到的第二卷积神经网络模型的稳定性和识别蔬菜的准确性。

进一步的,预设学习率更新的规则,根据所述规则自适应更新迭代训练时所述梯度下降算法的学习率;

所述根据更新规则更新学习率具体为:

判断当前迭代数是否大于更新阈值,若是,则根据第一学习率更新规则更新学习率,否则,根据第二学习率更新规则更新学习率;

所述第一学习率更新规则为:

η=drop(_iteration/iterations_drop)*(in_rate/γ(iterations/begin_iteration))+(σ/γ(iterations/begin_iteration))

所述第二学习率更新规则为:

η=drop(_iteration/iterations_drop)*in_rate+σ

其中,in_rate为初始化学习率,drop为每次更新的幅度,iteration_drop:迭代更新的频率,begin_iteration为开始更新学习率的迭代次数,σ为常数,用于防止学习率接近0,γ为学习率衰减幅度。

由上述描述可知,通过预设学习率的更新规则,即可以防止由于学习率设置过小出现多个最优解或停滞不前,也可以防止由于学习率设置过大跳过最优解,从而解决了学习率设置不当而产生动荡的问题。

请参照图2,一种蔬菜识别的装置1,包括存储器2、处理器3及存储在存储器2上并可在处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现步骤:

s1、建立第一卷积神经网络模型;

s2、采集每类蔬菜在不同场景下的图像,并构建相应的输入数据集;

s3、根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型,根据所述第二卷积神经网络模型进行蔬菜识别。

从上述描述可知,本发明的有益效果在于:通过建立第一卷积神经网络模型,并采集每类蔬菜在不同场景下的图像,并构建相应的输入数据集,根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型,根据所述第二卷积神经网络模型进行蔬菜识别,提高了蔬菜识别的效率,通过随机梯度下降算法对第一卷积神经网络模型进行训练,能够确保训练得到的第二卷积神经网络模型能准确识别背景复杂下蔬菜的种类。

进一步的,步骤s3中所述根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型具体为:

根据所述学习率自适应更新的梯度下降算法计算所述输入数据集在第k次迭代训练时损失函数的值,其中k的取值范围为[1,m),m为迭代训练的总次数;

根据第k次迭代训练损失函数的值进行第k+1次迭代训练,直至所述损失函数的值达到最小,从而得到第二卷积神经网络模型。

由上述描述可知,通过学习率自适应更新的梯度下降算法不断地计算当前迭代训练的损失函数的值,并根据当前迭代训练的损失函数的值进行下一次的迭代训练,直至所述损失函数的值达到最小,从而保证了得到的第二卷积神经网络模型可准确的识别背景复杂下蔬菜的种类。

进一步的,所述第k次迭代训练的过程具体为:

s31、根据所述输入数据集和第一卷积神经网络模型的卷积层计算公式

提取所述图像的颜色特征和纹理特征,得到与所述输入数据集对应的特征图,其中为第一卷积神经网络模型中第l卷积层的第j个特征图的激活值,为所述第一卷积神经网络模型中第l-1卷积层的第i个特征图的激活值,为第l卷积层的第j个特征图的激活值与第l-1卷积层的第i个特征图相连的卷积核,为第l卷积层的第j个特征图的额外偏执项,f()为激励函数,mj为第一卷积神经网络模型中第j个卷积层特征图的数量;

s32、根据第一卷积神经网络模型的池化层的计算公式对所述特征图进行尺寸减小处理,得到新的特征图,其中down()为下采样函数;

s33、所述第一卷积神经网络模型的全连接层根据所述新的特征图,得到第k+1次迭代训练的输入数据集。

由上述描述可知,通过不断的迭代训练,提高了后续得到第二神经网络模型识别蔬菜图像的准确性。

进一步的,所述梯度下降算法和所述损失函数的计算公式具体如下:

其中,为网络参数权值,为梯度,为损失函数,xi为第i个训练样本的输入值,yi为与所述输入值对应的输出值,m为迭代训练的总次数,η为学习率,j为第一卷积神经网络模型中参数的总数目,xj为卷积神经网络提取的纹理与颜色特征值。

由上述描述可知,通过梯度下降算法和损失函数相结合,使得最终迭代得到的第二卷积神经网络模型的稳定性和识别蔬菜的准确性。

进一步的,预设学习率更新的规则,根据所述规则自适应更新迭代训练时所述梯度下降算法的学习率;

所述根据更新规则更新学习率具体为:

判断当前迭代数是否大于更新阈值,若是,则根据第一学习率更新规则更新学习率,否则,根据第二学习率更新规则更新学习率;

所述第一学习率更新规则为:

η=drop(_iteration/iterations_drop)*(in_rate/γ(iterations/begin_iteration))+(σ/γ(iterations/begin_iteration))

所述第二学习率更新规则为:

η=drop(_iteration/iterations_drop)*in_rate+σ

其中,in_rate为初始化学习率,drop为每次更新的幅度,iteration_drop:迭代更新的频率,begin_iteration为开始更新学习率的迭代次数,σ为常数,用于防止学习率接近0,γ为学习率衰减幅度。

由上述描述可知,通过预设学习率的更新规则,即可以防止由于学习率设置过小出现多个最优解或停滞不前,也可以防止由于学习率设置过大跳过最优解,从而解决了学习率设置不当而产生动荡的问题。

实施例一

请参照图1,一种蔬菜识别的方法,包括步骤:

s1、建立第一卷积神经网络模型;

s2、采集每类蔬菜在不同场景下的图像,并构建相应的输入数据集;

s3、根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型,根据所述第二卷积神经网络模型进行蔬菜识别;

步骤s3中所述根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型具体为:

根据所述学习率自适应更新的梯度下降算法计算所述输入数据集在第k次迭代训练时损失函数的值,其中k的取值范围为[1,m),m为迭代训练的总次数;

根据第k次迭代训练损失函数的值进行第k+1次迭代训练,直至所述损失函数的值达到最小,从而得到第二卷积神经网络模型;

所述第k次迭代训练的过程具体为:

s31、根据所述输入数据集和第一卷积神经网络模型的卷积层计算公式

提取所述图像的颜色特征和纹理特征,得到与所述输入数据集对应的特征图,其中为第一卷积神经网络模型中第l卷积层的第j个特征图的激活值,为所述第一卷积神经网络模型中第l-1卷积层的第i个特征图的激活值,为第l卷积层的第j个特征图的激活值与第l-1卷积层的第i个特征图相连的卷积核,为第l卷积层的第j个特征图的额外偏执项,f()为激励函数,mj为第一卷积神经网络模型中第j个卷积层特征图的数量;

s32、根据第一卷积神经网络模型的池化层的计算公式对所述特征图进行尺寸减小处理,得到新的特征图,其中down()为下采样函数;

s33、所述第一卷积神经网络模型的全连接层根据所述新的特征图,得到第k+1次迭代训练的输入数据集;

所述梯度下降算法和所述损失函数的计算公式具体如下:

其中,为网络参数权值,为梯度,为损失函数,xi为第i个训练样本的输入值,yi为与所述输入值对应的输出值,m为迭代训练的总次数,η为学习率,j为第一卷积神经网络模型中参数的总数目,xj为卷积神经网络提取的纹理与颜色特征值;

预设学习率更新的规则,根据所述规则自适应更新迭代训练时所述梯度下降算法的学习率;

所述根据更新规则更新学习率具体为:

判断当前迭代数是否大于更新阈值,若是,则根据第一学习率更新规则更新学习率,否则,根据第二学习率更新规则更新学习率;

所述第一学习率更新规则为:

所述第一学习率更新规则为:

η=drop(_iteration/iterations_drop)*(in_rate/γ(iterations/begin_iteration))+(σ/γ(iterations/begin_iteration))

所述第二学习率更新规则为:

η=drop(_iteration/iterations_drop)*in_rate+σ

其中,in_rate为初始化学习率,drop为每次更新的幅度,iteration_drop:迭代更新的频率,begin_iteration为开始更新学习率的迭代次数,σ为常数,用于防止学习率接近0,γ为学习率衰减幅度。

实施例二

本实施例将结合具体的应用场景,进一步的说明本发明上述蔬菜识别的方法是如何实现的:

1、建立卷积神经网络的alexnet模型;

卷积神经网络模型有多种模型,如googlenet、resnet和vggnet,而alexnet模型与其他模型相比,理论更加成熟,且识别率高,所述alexnet模型,基本组成为:5个卷积层、3个全连接层和1个softmax层,5个卷积层中前两个卷积层和第五个卷积层有池化层,其他两个卷积层没有池化层,在每一个卷积层中包含了激励函数relu以及局部相应归一化(lrn)处理,然后经过降采样(pool处理);

卷积层用于提取图像特征,层数越低,特征越简单,随着卷积层的增多,从低级特征中迭代出更复杂的特征,在卷积层中会对输入数据做卷积操作,即对卷积核在输入矩阵上按步长移动,从而计算每个覆盖区域的加权和,以得到一个特征矩阵,这样能够使得原有的信号得到增强,一般来说一个卷积神经网络图像最少会包含3-5个卷积层来对图像信号进行增强操作;

池化层会对数据(一般来源于卷积层)做池化操作,即对池化核在输入矩阵上按步长移动,对每个池化核大小的切片计算池化结果,其中最大值池化即求取区域中的最大值,平均值池化求取区域中的平均值,池化层能够减少整个矩阵的参数的数量,也能够使得整个模型具有较好的平移不变性。

局部响应归一化(lrn)层,是对图片或者矩阵做局部处理,可以起到局部抑制的作用,即对局部的输入区域进行归一化运算,从而使得这一区域中的变量方差变得相同或相似,从而加快整个卷积神经网络模型的训练进程;

全连接层中的每一个神经元与其前一层的所有神经元进行全连接,全连接层可以整合卷积层或者池化层具有类别区分性的局部信息;

最后一层全连接层的输出值被传递给softmax层,其作用是在归一化后得出一个长度为n的一维向量,其中n为样本数量;

2、采集每类蔬菜在不同场景下的图像,并构建相应的输入数据集;

采集叶菜类、瓜果类、菌类、条菜类、菌类等常见的16中蔬菜,在不同光照强度、不同包装、不同拍摄角度、不同新鲜程度和不同背景的图像,每类照才片选取1000张,共计16000张图片;

3、根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型,根据所述第二卷积神经网络模型进行蔬菜识别;

所述根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型具体为:

根据所述学习率自适应更新的梯度下降算法计算所述输入数据集在第k次迭代训练时损失函数的值,其中k的取值范围为[1,m),m为迭代训练的总次数;

根据第k次迭代训练损失函数的值进行第k+1次迭代训练,直至所述损失函数的值达到最小,从而得到第二卷积神经网络模型;

所述第k次迭代训练的过程具体为:

根据所述输入数据集和第一卷积神经网络模型的卷积层计算公式

提取所述图像的颜色特征和纹理特征,得到与所述输入数据集对应的特征图,其中为第一卷积神经网络模型中第l卷积层的第j个特征图的激活值,为所述第一卷积神经网络模型中第l-1卷积层的第i个特征图的激活值,为第l卷积层的第j个特征图的激活值与第l-1卷积层的第i个特征图相连的卷积核,为第l卷积层的第j个特征图的额外偏执项,f()为激励函数,mj为第一卷积神经网络模型中第j个卷积层特征图的数量;

根据第一卷积神经网络模型的池化层的计算公式对所述特征图进行尺寸减小处理,得到新的特征图,其中down()为下采样函数;

所述第一卷积神经网络模型的全连接层根据所述新的特征图,得到第k+1次迭代训练的输入数据集;

所述梯度下降算法和所述损失函数的计算公式具体如下:

其中,为网络参数权值,为梯度,为损失函数,xi为第i个训练样本的输入值,yi为与所述输入值对应的输出值,m为迭代训练的总次数,η为学习率,j为第一卷积神经网络模型中参数的总数目,xj为卷积神经网络提取的纹理与颜色特征值;

预设学习率更新的规则,根据所述规则自适应更新迭代训练时所述梯度下降算法的学习率;

所述根据更新规则更新学习率具体为:

判断当前迭代数是否大于更新阈值,若是,则根据第一学习率更新规则更新学习率,否则,根据第二学习率更新规则更新学习率;

所述第一学习率更新规则为:

η=drop(_iteration/iterations_drop)*(in_rate/γ(iterations/begin_iteration))+(σ/γ(iterations/begin_iteration))

所述第二学习率更新规则为:

η=drop(_iteration/iterations_drop)*in_rate+σ

其中,in_rate为初始化学习率,drop为每次更新的幅度,iteration_drop:迭代更新的频率,begin_iteration为开始更新学习率的迭代次数,σ为常数,用于防止学习率接近0,γ为学习率衰减幅度;颜色特征是图像检索中应用最为广泛的视觉特征,对于蔬菜来说,主要有绿色、黄色或红色等,绿色如:菠菜、韭菜、芹菜、香菜、青椒等,黄色或红色蔬菜是指以类胡萝卜素或黄酮类色素为主的蔬菜,如:胡萝卜、黄花菜、马铃薯、瓜类、红萝卜、西红柿等,机器视觉中有很多表示颜色特征的方法,如颜色直方图、颜色矩、颜色聚合向量以及颜色相关图等,根据蔬菜颜色特征的特点,本发明使用颜色直方图的方法,该方法原理简单,提取复杂度明显减小;

纹理特征是指存在于图像中某一范围内的形状很小的、半周期性或有规律地排列的图案,在图像分类中通过纹理特征表示图像的均匀、细致、粗糙等现象,是一种全局特征,它描述了蔬菜的表面性质,本发明方法适用于碎叶菜如:菠菜、韭菜、大葱、香菜、青菜等颜色相近、形状无规则的蔬菜;

经试验,运用本发明通过卷积神经网络的alexnet模型对蔬菜图像进行识别,综合考虑不同场景本发明的蔬菜识别率可达95%以上,其中在强光、自然光、弱光条件下,强光条件下识别率最高,平均识别率为:97.2%;在购物袋包装、背景复杂包装、无包装条件的条件下,无包装的平均识别率最高,平均识别率为98.1%,;而现有的灰度共生矩阵算法对蔬菜图像进行识别,平均识别率为:89.7%。

实施例三

请参照图2,一种蔬菜识别的装置1,包括存储器2、处理器3及存储在存储器2上并可在处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例一中的各个步骤。

综上所述,本发明提供的一种蔬菜识别的方法及装置,通过建立第一卷积神经网络模型,并采集每类蔬菜在不同场景下的图像,并构建相应的输入数据集,根据学习率自适应更新的梯度下降算法和所述输入数据集对所述第一卷积神经网络模型进行迭代训练,得到第二卷积神经网络模型,根据所述第二卷积神经网络模型进行蔬菜识别,提高了蔬菜识别的效率,通过随机梯度下降算法对第一卷积神经网络模型进行训练,能够确保训练得到的第二卷积神经网络模型能准确识别背景复杂下蔬菜的种类,通过学习率自适应更新的梯度下降算法不断地计算当前迭代训练的损失函数的值,并根据当前迭代训练的损失函数的值进行下一次的迭代训练,直至所述损失函数的值达到最小,从而保证了得到的第二卷积神经网络模型可准确的识别背景复杂下蔬菜的种类,通过预设学习率的更新规则,即可以防止由于学习率设置过小出现多个最优解或停滞不前,也可以防止由于学习率设置过大跳过最优解,从而解决了学习率设置不当而产生动荡的问题。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

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