基于改进AlexNet的辣椒叶片病害检测方法

文档序号:30950975发布日期:2022-07-30 07:33阅读:298来源:国知局
基于改进AlexNet的辣椒叶片病害检测方法
基于改进alexnet的辣椒叶片病害检测方法
技术领域
1.本发明一般涉及病害检测方法,尤其涉及基于改进alexnet的辣椒叶片病害检测方法。本发明属于图像识别技术领域。


背景技术:

2.我国是世界第一大辣椒生产国与消费国,播种面积约占世界辣椒播种面积的40%,具有很高的经济价值。然而,辣椒的生长中时常有病害发生,且多起始于叶部并蔓延到整个植株,从而影响了辣椒的产量和质量,造成经济的损失。因此,准确及时地识别出辣椒叶片病害类型对辣椒病害的防治尤为重要。
3.传统的辣椒病害检测方法主要是基于农业工作者的肉眼观察和经验判断,这样的方法速度慢、主观性强、效率低且容易产生误诊,使得农药的错误使用而辣椒病害得不到及时救治。
4.近年来,基于图像识别的技术在农业病害检测中的应用有一定的进展。现有的辣椒叶病害检测方法,通过拍摄实验室内的辣椒叶,建立病害数据集,并通过传统机器学习方法,对特定的病害特征进行特征提取之后,使用svm等机器学习算法对提取的特征进行分类,因此其识别效果很大程度上取决于人工设计的特征。而农作物病害的表征具有复杂多样性,特定的病害特征不能完全体现农作物的病害信息,从而造成识别精度低、泛化效果差。此外,图像识别技术还存在模型参数量大、难于在移动设备中部署等问题。


技术实现要素:

5.本发明提供基于改进alexnet的辣椒叶片病害检测方法及装置,旨在至少解决现有技术中存在的技术问题之一。
6.本发明的技术方案涉及基于改进alexnet的辣椒叶片病害检测方法,
7.所述方法包括以下步骤:
8.a、通过拍摄叶片获得叶片图像;建立病害数据集,将所述叶片图像输入所述病害数据集;
9.b、对所述病害数据集进行数据增强,其数据增强的操作包含在tensorflow下调用opencv模块进行样本扩充,其中所述样本扩充的方式包括随机角度旋转、水平翻折、垂直翻折和调整曝光度;
10.c、将所述病害数据集的图像数据进行病害类型分类并打好对应标签;建立模型数据集,将已打好标签的图像数据输入所述模型数据集;将所述模型数据集的图像数据按4:1:1的比例划分为训练集、验证集和测试集;
11.d、构建卷积神经网络模型,对所述卷积神经网络模型中的alexnet模型进行特征提取,其特征提取的操作包含在所述alexnet模型中将第一层卷积层设置多尺度的卷积核,并且去除所述alexnet模型的全连接层同时将所述全连接层替换为全局平均池化层,在所述alexnet模型的每层卷积层中加入bn层;
12.e、设置alexnet模型训练的超参数,使用所述训练集对已设计多尺度的alexnet模型进行训练;
13.f、保持已训练好的alexnet模型,并用保存好的alexnet模型测试所述测试集。
14.进一步,其中,所述步骤a中,所述叶片图像是以手掌为背景的叶片图片。
15.进一步,其中,所述步骤a中,所述叶片为田间自然生长条件下的辣椒叶片,拍摄操作是在所述叶片的生长环境中进行拍摄。
16.进一步,其中,所述步骤d包括:
17.sda:所述卷积核设置有6种尺度,所述6种尺度分别为1
×
1、3
×
3、5
×
5、7
×
7、9
×
9和11
×
11;所述6种尺度的卷积核个数均设置为16个;
18.sdb:去除所述alexnet模型中的第6层全连接层和第7层全连接层,将第6层全连接层和第7层全连接层均替换为全局平均池化层;
19.sdc:所述alexnet模型接入softmax分类器。
20.进一步,其中,所述步骤d中,所述alexnet模型的全局平均池化设计包括以下步骤:
21.sdd:将所述alexnet模型的卷积层每个特征图所有值进行平均池化,得到一个平均特征值,以使所述平均特征值的维度等于卷积层的特征图数目;其中,所述平均特征值的技术公式如下:
[0022][0023]
其中,y表示平均特征值;m
·
n为所述卷积层的特征图尺寸;x
ij
为所述卷积层的特征图值。
[0024]
进一步,其中,所述步骤d中,所述bn层设置于所述alexnet模型的卷积层和激活层之间,以使所述alexnet模型的每层输入都调整到均值为0和方差为1的标准正太分布。
[0025]
进一步,其中,所述步骤e中,所述超参数的设置包括以下步骤:
[0026]
sda:输入图像分辨率为224
×
224,将损失函数设置为交叉熵,采用adamoptimizer优化更新所述超参数,所述alexnet模型迭代80个epoch,采用批量训练方法。
[0027]
进一步,其中,所述步骤d包括:
[0028]
sdb:对已设计多尺度的alexnet模型进行训练时,每迭代一个epoch后,测试一次所述验证集的精度。
[0029]
进一步,其中,所述方法还包括以下步骤:
[0030]
sg:通过tensorflow lite转换器将alexnet模型的文件格式转换为tflite格式,并通过优化,以减少alexnet模型的文件大小和提高alexnet模型的性能;
[0031]
sh:将转为tflite格式的alexnet模型文件部署到移动设备,以开发一个叶片病害识别app。
[0032]
进一步,其中,所述步骤d包括:
[0033]
步骤sda:将alexnet模型保存为savedmodel格式;
[0034]
步骤sdb:将所述测试集的图像数据存入已保存的alexnet模型,然后进行推理运算,以得到预测病害类型和预测标签;
[0035]
步骤sdc:将预测标签与真实标签对比计,以计算出所述alexnet模型的准确率。
[0036]
本发明还涉及一种计算机可读存储介质,其上储存有程序指令,所述程序指令被处理器执行时实施上述的方法。
[0037]
本发明的有益效果如下:
[0038]
本发明实施例的基于改进alexnet的辣椒叶片病害检测方法,通过构建卷积神经网络模型,采用深度卷积神经网络的方式,利用卷积神经网络的自动提取图像特征的功能和出色的鲁棒性,提高图像识别精度,并简化图像特征提取操作,实现自动学习图像中的有用特征;基于alexnet模型改进,采用多尺度设计、全局平均池化设计,以及加入bn层,提高模型准确率,缩小模型,加快模型识别速度,并使得模型易于部署到移动设备。因此,本发明实施例的基于改进alexnet的辣椒叶片病害检测方法,可提高识别精度,提高检测速度。
附图说明
[0039]
图1是根据本发明的方法的总体流程图。
[0040]
图2是根据本发明实施例中的alexnet模型的结构图。
[0041]
图3是根据本发明实施例中的叶片病害识别app的流程图。
[0042]
图4是根据本发明实施例中的叶片病害识别app的流程图。
[0043]
图5是根据本发明实施例中的叶片病害识别app的手机端识别效果图。
[0044]
图6是根据本发明实施例中的病害数据集的示意图。
具体实施方式
[0045]
以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。
[0046]
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。本文所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
[0047]
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本公开范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
[0048]
参照图1至6,在一些实施例中,根据本发明的基于改进alexnet的辣椒叶片病害检测方法,其方法包括下列步骤:
[0049]
sa:通过拍摄叶片获得叶片图像;建立病害数据集,将叶片图像输入病害数据集;
[0050]
sb:对病害数据集进行数据增强,其数据增强的操作包含在tensorflow下调用opencv模块进行样本扩充,其中样本扩充的方式包括随机角度旋转、水平翻折、垂直翻折和调整曝光度,从而有利于避免因深度学习的样本太少,而导致模型训练出现过拟合现象。
[0051]
sc:将病害数据集的图像数据进行病害类型分类并打好对应标签;建立模型数据集,将已打好标签的图像数据输入模型数据集;将模型数据集的图像数据按4:1:1的比例划分为训练集、验证集和测试集;
[0052]
sd:构建卷积神经网络模型,对卷积神经网络模型中的alexnet模型进行特征提取,其特征提取的操作包含在alexnet模型中将第一层卷积层设置多尺度的卷积核,并且去除alexnet模型的全连接层同时将全连接层替换为全局平均池化层,在alexnet模型的每层卷积层中加入bn层;
[0053]
se:设置alexnet模型训练的超参数,使用训练集对已设计多尺度的alexnet模型进行训练;
[0054]
sf:保持已训练好的alexnet模型,并用保存好的alexnet模型测试测试集。
[0055]
本发明实施例的基于改进alexnet的辣椒叶片病害检测方法,通过构建卷积神经网络模型,采用深度卷积神经网络的方式,利用卷积神经网络的自动提取图像特征的功能和出色的鲁棒性,提高图像识别精度,并简化图像特征提取操作,实现自动学习图像中的有用特征;基于alexnet模型改进,采用多尺度设计、全局平均池化设计,以及加入bn层,提高模型准确率,缩小模型,加快模型识别速度,并使得模型易于部署到移动设备。因此,本发明实施例的基于改进alexnet的辣椒叶片病害检测方法,可缩小模型,提高识别精度,提高检测速度。
[0056]
在本发明的一些具体实施例中,在拍摄叶片过程中,易于设置叶片图片的背景为手掌,因此步骤sa中叶片图像是以手掌为背景的叶片图片,使得病害数据集内的叶片图像特征更接近日常拍摄的叶片图像特征,从而提高模型的普适性。
[0057]
可以理解的是,叶片为田间自然生长条件下的辣椒叶片,与传统的采用在实验室生长的辣椒叶片想比,如此设置有利于提高病害数据集内的叶片图像特征与日常拍摄的叶片图像特征的接近度。更进一步地,拍摄操作是在所述叶片的生长环境中进行拍摄,取代传统的在实验室环境下拍摄叶片,使得病害数据集内叶片图像的光线和背景更丰富,更贴近日常拍摄的叶片图片,有利于提高模型的识别精度。
[0058]
需要说明的是,可采用相机、手机等工具拍摄叶片,其中手机使用方法,采用手机拍摄叶片,使得病害数据集内的叶片图像特征更接近日常拍摄的叶片图像特征,从而提高模型的普适性,提高模型的识别精度。
[0059]
在本发明的一些具体实施例中,步骤sd的具体实施方式包含:
[0060]
sda:卷积核设置有6种尺度,6种尺度分别为1
×
1、3
×
3、5
×
5、7
×
7、9
×
9和11
×
11;6种尺度的卷积核个数均设置为16个,对卷积神经网络模型中的alexnet模型进行特征提取后,合并为同一张量,往下一层卷积层传递。从而通过对alexnet模型进行多尺度设计,能够提升卷积神经网络模型对辣椒叶片病害图像不同粒度的响应,提前辣椒叶片中的多维度信息,从而提高模型的识别精度,增强模型的鲁棒性。
[0061]
sdb:去除alexnet模型中的第6层全连接层和第7层全连接层,将第6层全连接层和第7层全连接层均替换为全局平均池化层。传统的alexnet模型中第6层全连接层和第7层全连接层含有大量神经元,使得模型参数量大,导致在训练过程中容易出现过拟合现象,也不便于在移动设备中部署模型。本发明上述实施例中,如此设置,有利于缩小模型,加快模型识别速度,使得模型易于部署到移动设备。
[0062]
更进一步地,alexnet模型的全局平均池化设计包括以下步骤:
[0063]
sdd:将alexnet模型的卷积层每个特征图所有值进行平均池化,得到一个平均特征值,以使平均特征值的维度等于卷积层的特征图数目;其中,平均特征值的技术公式如下:
[0064][0065]
其中,y表示平均特征值;m
·
n为卷积层的特征图尺寸;x
ij
为卷积层的特征图值。
[0066]
sdc:最后在全局平均池化层后,alexnet模型接入连接softmax分类器。
[0067]
根据本发明的一些实施例,步骤sd中,bn层设置于alexnet模型的卷积层和激活层之间,以使alexnet模型的每层输入都调整到均值为0和方差为1的标准正太分布,从而解决卷积神经网络中梯度消失的问题,加速模型的收敛。
[0068]
在本发明的一些具体实施例中,步骤se中,超参数的设置包括以下步骤:
[0069]
sea:输入图像分辨率为224
×
224,将损失函数设置为交叉熵,采用adamoptimizer优化更新超参数,alexnet模型迭代80个epoch,采用批量训练方法,每个批次32个样板,使用学习率衰减,其中初始学习率设置为0.001,每迭代一个epoch,学习率衰减为原来的0.9倍。
[0070]
seb:对已设计多尺度的alexnet模型进行训练时,每迭代一个epoch后,测试一次验证集的精度。
[0071]
在本发明的一些具体实施例中,还包括以下步骤:
[0072]
sg:通过tensorflow lite转换器将alexnet模型的文件格式转换为tflite格式,并通过优化,以减少alexnet模型的文件大小和提高alexnet模型的性能;
[0073]
sh:将转为tflite格式的alexnet模型文件部署到移动设备,如android设备,以开发一个叶片病害识别app,方便使用。
[0074]
在本发明的一些具体实施例中,步骤sf包括:
[0075]
步骤sfa:将alexnet模型保存为savedmodel格式;
[0076]
步骤sfb:将测试集的图像数据存入已保存的alexnet模型,然后进行推理运算,以得到预测病害类型和预测标签;
[0077]
步骤sfc:将预测标签与真实标签对比计,以计算出alexnet模型的准确率。
[0078]
下面参考图1至6以一个具体的实施例详细描述根据本发明实施例的基于改进alexnet的辣椒叶片病害检测方法。值得理解的是,下述描述仅是示例性说明,而不是对发明的具体限制。
[0079]
本发明实施例的方法包括以下步骤:
[0080]
步骤sa:建立辣椒叶片病害图像的病害数据集,其具体实施方式:到田间等辣椒自由生长的地方,按需选择辣椒叶片,将辣椒叶片放置于手掌上,采用手机对在田间自然生长的辣椒叶片进行拍摄,获得以手掌为背景的叶片图片。将获得的叶片图片输入的病害数据集中,以作为病害数据集的叶片图像。
[0081]
步骤sb:对病害数据集进行数据增强。其具体实施方式:对病害数据集进行样本扩充,其样本扩充的方式包括:随机角度旋转、水平翻折、垂直翻折和调整曝光度等。
[0082]
步骤sc:将所述病害数据集的图像数据进行病害类型分类并打好对应标签,其具
体实施方式:将每种辣椒叶片病害类型的叶片图像分类,其中共采集了4种辣椒叶片病害类型,4种辣椒病害类型分别为褐斑病、叶霉病、病毒病和健康。将叶片图像打好对应标签,病害类型与对应标签关系如下:
[0083]
表1辣椒叶片病害类别与对应标签
[0084][0085]
完成叶片图像的打标后,建立模型数据集,已打好标签的图像数据输入所述模型数据集,并将模型数据集的图像数据按4:1:1划分为训练集、验证集和测试集。此外,为测试模型的鲁棒性,将测试集的图像进行
±
20曝光度处理。
[0086]
步骤sd:构建卷积神经网络模型,卷积神经网络模型结构如附图2所示,卷积神经网络模型在alexnet模型上进行改进,使得模型尽可能小,以及提升模型精度。其具体实施方式:
[0087]
步骤sda:在alexnet模型的卷积层第一层设置多尺度卷积核,对模型数据集的叶片图像(辣椒叶片病害图像)进行特征提取,其中多尺度卷积核共设计有6种尺度,卷积核的大小分别为1
×
1,3
×
3,5
×
5,7
×
7,9
×
9和11
×
11,6种尺度的卷积核个数均设置16个。对模型数据集的叶片图像(辣椒叶片病害图像)进行特征提取后,合并为同一张量,往下一层卷积层传递。
[0088]
步骤sdb:在alexnet模型的每层卷积层中加入bn(batch normalization)层,bn层设置于卷积层后,并且设置于激活层前,以使alexnet模型的每层输入都调整到均值为0、方差为1的标准正态分布。
[0089]
步骤sdc:将alexnet中模型的第6层全连接、第7层全连接层剔除,并替换为全局平均池化层,其中全局平均池化设计包括:将卷积层中的每个特征图所有值进行平均池化,得到一个平均特征值,以使得特征值的维度等于卷积层的特征图数目。那么通过全局平均池化后所得的平均特征值为:
[0090][0091]
其中,y表示平均特征值;m
·
n为卷积层的特征图尺寸;x
ij
为卷积层的特征图值
[0092]
最后在全局平均池化层后连接softmax分类器。
[0093]
步骤se:使用tensorflow2.0作为深度学习框架,搭建卷积神经网络模型,设置模型的超参数,使用训练集对已经过多尺度设置的alexnet模型进行训练。其具体实施方式:输入图像的分辨率为224
×
224,损失函数设置为交叉熵,采用adamoptimizer优化更新超参数,alexnet模型迭代80个epoch,采用批量训练方法,每个批次32个样本,使用学习率衰减,初始学习率设置为0.001,每迭代一个epoch学习率衰减为原来的0.9倍。训练时,每迭代一个epoch后测试一次验证集精度,观察模型是否过拟合。使用训练集对搭建好的改进
alexnet模型进行训练,模型的训练使用nvidia rtx2060 super加速运算,模型训练时准确率曲线如附图3所示。
[0094]
步骤sf:保存训练好的alexnet模型,alexnet模型的保存格式为savedmodel格式,将测试集的叶片图像输入到已保存的alexnet模型,并进行推理运算,从而得到预测病害类型和预测标签,然后通过alexnet模型的标签与真实标签进行对比,以计算alexnet模型的准确率。测试结果统计如表2所示:
[0095]
表2各个模型在测试集的性能测试结果
[0096][0097]
从实验结果来看,改进的多尺度alexnet模型最好,准确率达到100%,其alexnet模型内存占用最小,预测一张图的速度比vgg-13net和googlenet分别快77ms和36ms,更符合快速准确识别的需求。
[0098]
步骤sg:通过tensorflow lite转换器将alexnet模型的文件格式转换为tflite格式,并通过引入优化,以减少alexnet模型的文件大小和提高alexnet模型的性能。其中,alexnet模型的转换调用python api中tf.lite.tfliteconverter.from_saved_model进行转换。
[0099]
步骤sh:将转为tflite格式的alexnet模型文件部署到移动设备,如android设备,开发一个辣椒叶片病害识别app。app系统的识别流程如附图4所示,输入叶片图片到app系统中,app系统统一将输入的叶片图片尺寸调整为224
×
224
×
3,alexnet模型推理运算返回预测最大概率所对应的标签和辣椒病害类型名称。需要说明的事,用户可以选择相册中的叶片图片输入alexnet模型中进行推理识别,也可以打开手机等的摄像头,获取每一帧的叶片图片并识别病害的类型,从而达到实时预测的效果。app运行效果如附图5所示,alexnet模型推理取最大概率标签所对应病害即为该叶片图片识别结果,手机端识别系统能够快速识别一张叶片图片的病害,识别准确率高。
[0100]
应当认识到,本发明实施例中的方法步骤可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
[0101]
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执
行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
[0102]
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、ram、rom等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还可以包括计算机本身。
[0103]
计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
[0104]
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1