基于深度学习的黄瓜病害检测算法研究

2024-06-16 12:30牛伯浩
电脑知识与技术 2024年12期

牛伯浩

关键词:黄瓜病害;VGG;检测模型;小样本;模型优化

0 引言

黄瓜是我国重要的农作物,黄瓜的病害是影响黄瓜产量的重要因素,黄瓜病害的及时发现与诊治有助于提高产量。因此,人们开始思考如何实现黄瓜病害的高效检测。近几年,基于深度学习的图像分类、检测、识别等任务均取得了很好的效果。在计算机视觉领域,运用深度学习的图像分类结果越来越符合人类的视觉认知,而基于深度学习的图像分类方法在小规模图像分类上效果显著[1-3]。

在黄瓜的生长过程中,叶枯病是危害黄瓜健康生长的最主要的病害之一。目前虽然已有一些学者开始关注黄瓜病害图像的研究,但是与黄瓜叶片叶枯病病害图像研究相关的课题并不多。因此本文以黄瓜叶片图像为数据集,以黄瓜的叶枯病分类检测为例,展开算法研究[4-5]。

本文在深度学习与卷积神经网络模型VGG16研究的基础上,提出了黄瓜病害检测模型,然后将此算法应用在小数据集上实现了黄瓜叶枯病的分类检测,为黄瓜叶枯病病害的检测提供一种有效的方法[6-7]。

1 材料与方法

1.1 黄瓜叶片数据集与预处理

本文以黄瓜病害检测为背景,以黄瓜叶片的叶枯病检测为例展开研究。本文实验数据集一共1 500张黄瓜叶片图像。其中包括健康和患有黄瓜叶枯病的黄瓜叶片图像。数据集中健康叶片图像1 200张,患有叶枯病的黄瓜叶片图像300张,通过样本扩充的方法解决数据分布不均匀的问题。

由于本课题数据集具有样本分布不均的特点,因此对数据集进行有选择的扩充,一般情况下,在第一次训练时,筛选出类别概率值比较接近的图片,这类图片要么病害特征不明显,要么健康特征不明显,因此我们将此类图片样本又称之为“难样本”。一个模型最终的分类能力,往往取决于其对难样本的分类能力。在数据集样本数量有限的情况下,对于一些特征不明显样本再次训练,能够进一步提高模型的分类能力。因此,为了提高检测精度,选出训练集中类别概率差值小于50%的图片,并作为新的训练集继续训练,得出最终的分类精度。部分数据集样本如图1所示。

1.2 黄瓜病害检测模型

由于VGG16在每一层大的卷积层中又包含了三个子卷积层,网络具有相对较大感受野,且VGG16具有很好的泛化性能。因此,本文提出的黄瓜病害检测模型利用在VGG16模型的卷积层进行特征提取。具体工作过程包括:首先按照设定的比例将数据集分为测试机和训练集。然后对模型展开训练,在对模型进行训练时,先使用模型的卷积层来提取特征,在获得特征结果的同时,也提高了该模型卷积层在黄瓜病害检测应用中的适用性。然后再次使用已训练过的卷积层进行训练,进一步提高模型的检测精度。

接着单独针对网络最后两层全连接层和sigmoid 层进行训练,其中不对卷积层进行训练。在本文数据集上进行测试时,由之前保留下来的卷积层对测试集中的图像数据提取特征,然后送到最后二层全连接层和sigmoid分类器得到其类别及对应概率值。模型结构如图2所示。

具体步骤如下。

输入:输入预处理后的数据集图片。

特征提取:首先对VGG16 模型进行分解。用VGG16网络模型卷积层来提取黄瓜图片特征。

训练模型:以上一步提取的特征作为输入,用来训练全连接层参数和sigmoid分类器,得到训练模型。

筛选:输出训练集所有图片的各类预测百分比,为了提高精度,筛选出两类预测百分比相差小于50%的图片作为新的数据集。

再训练:将上一步选出的图片作为输入,再训练全连接层参数,得出最终参数。

再预测:再通过该模型sigmoid分类器预测输入图片类别及其对应概率值。

其中VGG16的卷积层作为特征提取器,每段卷积层后连接池化层,最后连接2层全连接层和Softmax分类器得到物体类别及对应概率值。

黄瓜病害检测模型的损失函数是交叉熵损失函数,其中附加了L2正则化项,目的是针对权重参数进行惩罚,减轻过拟合现象。损失函数见式(1) 。

式(1) 中J 为训练损失,θ 为权重参数,λ 为正则项系数,x 为批次训练样本,p 为期望的类别概率,q 为模型预测的类别概率,类别概率由Softmax计算。

黄瓜如果患有病害,一般情况下都会在叶片中有所体现。黄瓜叶枯病症状包括叶片的颜色和表面纹理特征变化。采用方向梯度直方图(Histogram of ori?ented gradient,HOG)用来提取黄瓜叶片的颜色纹理特征,并通过SVM进行分类。

2 实验与讨论

2.1 实验设置

本实验是以Anaconda3中的Juypter notebook为运行环境,开源深度学习框架Tensorflow作为开发环境,Python作为开发语言,展开实验研究。本文实验环境是一台CPU内存为8GB的系统为Windows10的计算机,程序语言环境是深度学习框架 Tensorflow,然后进行模型初始化工作,接着进行训练。其中模型学习率为0.001,迭代次数为100次,批处理大小(Batch _ size) 为10。用VGG16模型训练黄瓜叶片图像集进而获得其特征向量,然后将特征向量输入到Softmax分类器中获得分类结果,并进行可视化展示。

2.2 实验结果与分析

在未对训练集进行数据筛选并再训练之前,本文所用到的两种算法的基础实验结果如表1所示。从表1中可以看出,关于黄瓜叶枯病病害的检测精度,本文提出的黄瓜病害检测模型可以达到95.4%,而基于SVM的检测精度仅为88.3%。

在基于小样本数据集以及样本分布不均匀的分类问题中,为了提高模型精度,选出训练集中类别概率差值小于50%的图片,并作为新的训练集继续训练。

这种方法首先从某种程度上解决了数据分布不均的问题,其次,可以减少训练阶段的过度拟合,从而提升网络的泛化性能。将筛选出的数据送入模型进行再训练。为了提高说服力,先后在原始数据集和扩充后的数据集上,使用了传统方法支持向量机模型和黄瓜病害检测模型开展实验,性能对比如表2所示。

由表2可知,将筛选出的数据送入模型进行再训练之后,基于SVM的检测精度为88.6%,黄瓜病害检测模型叶枯病检测精度可达96.8%。显然,黄瓜病害检测模型在病害检测问题中更具有优势。此外,基于迁移学习的VGG16方法与传统方法相比,节省了大量的训练时间,效率更高且取得了更高的检测精度。该模型实验结果如图3所示。

图3是黄瓜病害检测模型在测试集上的检测结果,分类检测精度均可以达到96%,而基于SVM分类器的黄瓜病害检测精度仅为88.6%。根据在测试集以及验证集上实验结果,本文所提出的黄瓜病害检测模型对黄瓜病害的检测取得了较高的精度。因此,该黄瓜病害检测模型在小样本数据集上完成病害检测任务是可行的。

此外,由于优化器的选择有助于提高训练的速度和精度,不同的模型匹配不同的优化器。机器学习常见的优化器包括:Adam、Adadelta 以及GradientDes?cent。其中Adam、Adadelta 为自适应学习率优化算法,GradientDescent为梯度下降法。为了选择最优的优化器,将对这三种优化器进行对比试验,本文从优化器对模型测试精度的影响方面展开实验研究,实验对比结果如表3所示。

从表3可以看出,相同的优化器算法,在学习率不同的情况下,会对最终的预测精度产生影响。相同的学习率,选择不同的优化器算法,也会对最终的预测精度产生影响。综合优化器算法和学习率两个因素,在选择Adam优化器算法且定义学习率为0.001情况下来训练模型,训练好的模型预测精度最高,为98.79%。

从这三种优化器在学习率三种不同的取值时的取得的测试准确率来看,Adam优化器取得的最高测试精度为98.79%,此时的学习率为0.001;Adadelta优化器取得的最高测试精度为92.12%,此时的学习率为0.01;而GradientDescent 优化器在学习率为0.01 和0.005时均取得的最高测试精度为95.76%。因此不同的优化器都有与之匹配的学习率,选择与优化器相匹配的学习率,有助于模型取得更好的效果。

3 结束语

本文提出了黄瓜病害检测模型在原始数据集扩充的基础上,完成了特征提取、训练模型、参数训练、优化模型、改进损失函数。实验结果表明,本文提出的黄瓜病害检测模型与基于SVM分类器的方法相比,取得了更高的检测精度。因此,本文的研究在小样本数据集和小设备背景下具有一定的实用价值。