基于迁移学习的GoogLeNet果园病虫害识别与分级

2021-12-23 13:50万军杰祁力钧卢中奥周佳蕊
中国农业大学学报 2021年11期
关键词:病斑分级病害

万军杰 祁力钧 卢中奥 周佳蕊 张 豪

(中国农业大学 工学院,北京 100083)

果园病虫害影响水果的品质和产量,自动识别病虫害是一个重要研究方向。随着果园生产种植模式不断复杂化,果园生产中所遇到的病虫害情况也越来越复杂,对果树生长造成了严重影响,快速、准确、有效地识别出病虫害危害程度并采取相关防治措施及时止损[1-2],对于提高水果品质和产量至关重要。

随着计算机技术的不断发展,植物病虫害检测技术也取得了长足的进步。植物病虫害识别方法主要分为传统方法和深度学习方法。传统方法需要人工提取病害纹理、颜色等特征,往往识别种类有限且识别精度不高,难以大规模的推广应用。如肖志云等[3]提出了一种基于小波域的马铃薯典型虫害特征提取与识别方法。党满意等[4]利用GrapCut算法与直方图分割算法提取马铃薯晚疫病特征用于晚疫病识别,该方法对于中晚期病害识别准确率能达到90%以上。肖志云等[5]提出了一种马铃薯典型病害图像的自适应特征融合与快速识别方法。张建华等[6-7]利用BP神经网络、支持向量机进行棉花病虫害识别,识别精度基本能达到90%以上。

卷积神经网络(Convolutional neural network,CNN)能够不依赖特定特征,在图像识别领域已经得到了广泛应用[8-11]。如孙俊等[12]提出了一种批归一化与全局池化相结合的卷积神经网络识别模型,对于多种植物叶片病害的识别准确率达到了99.56%。房若民等[13]设计了一种嵌入式农业病虫害识别防治系统,可以识别多种病虫害且识别准确率达92.6%。于小东等[14]设计了一款实时在线农作物病虫害等级识别手机APP,能够在0.1~0.5 s获取识别结果。任守纲等[15]构建了一种基于反卷积引导的VGG网络模型,能同时实现植物叶部病害种类识别与病斑分割。Gonzalez-Huitron等[16]构建了一种轻量级卷积神经网络,并将其成功应用在Raspberry Pi 4上进行番茄病虫害的识别。李就好等[17]提出了一种改进Faster R-CNN模型来识别田间苦瓜叶片病虫害,改进后平均准确率为86.39%。王春山等[18]利用改进Multi-scaleResNet模型进行蔬菜叶部病害识别,在真实环境下识别准确率达到了93.05%。

上述研究大多以常见病虫害识别为主,少有对病虫害危害程度进行分级识别研究。目前在果园精细化管理中,仅仅识别果树病虫害种类,难以满足果园精准变量施药的要求。基于此,本研究拟采用迁移学习技术与卷积神经网络相结合的方法研究果园病虫害识别与危害程度分级问题,以期为现代果园智能化、精细化管理提供一定的技术支持。

1 材料与方法

1.1 试验数据

1.1.1数据来源

试验数据主要来源于PlantVillage官网(https:∥plantvillage.psu.edu)。从PlantVillage官网收集了11 653张病虫害样本图像。另外,从北京市通州区(116.65° E,39.92° N)中农富通现代果园中,利用飞萤8 SE相机(分辨率1 280像素×720像素)人工拍摄了1 500张果树健康与患病叶片图像,总计13 153张样本图像。在全部样本图像中,含有桃、苹果、樱桃、葡萄、柑橘、草莓等6种果园作物,共计25种病虫害类型样本(10种病害,9种虫害,6种健康)。本研究所收集病虫害样本数量见表1。

1.1.2数据预处理

由统计样本分布情况可知,各类病虫害样本数量在232~1 899张不等(表1)。为了防止因训练样本数量过少而导致模型发生过拟合现象,本研究对已有图像进行随机翻转、平移、缩放以及对比度增减等操作(图1)将图像扩充至105 224张。同时,考虑到样本来源不同,导致所收集的图像格式、大小等存在差异,使用MATLAB自编函数将所有图像调整为统一大小(224像素×224像素)。

1.1.3病害危害程度分级

通过观察不同患病叶片颜色以及病斑大小划分病害级别。本研究具体分级标准参考GB/T 17980.24—2000 《农药 田间药效试验准则(一)杀菌剂防治梨黑星病》[19]中叶片病情分级标准,按照病斑占整个叶片面积比例划分6个等级:0级,无病斑;1级,0<病斑≤10%;3级,10%<病斑≤25%;5级,25%<病斑≤40%;7级,40%<病斑≤65%;9级,病斑>65%。本研究采用人工分级方式将果树病害危害程度分为3级:0级为健康,无病斑;Ⅰ级为一般,0<病斑≤30%;Ⅱ级为严重,病斑>30%。本研究病害样本分级后数量见表2。

在总体样本集中,随机选出60%和20%的图像样本分别作为训练集(Train set)与验证集(Validation set),剩余20%的图像样本作为测试集(Test set)。其中,验证集用来对模型进行修正,测试集用于评估最终模型的泛化能力[17]。

表1 病虫害样本原始数量及增强后数量Table 1 Data from original and augmented samples of pests and diseases

图1 图像增强效果Fig.1 The effect of image data augmentation

1.2 模型搭建

1.2.1模型简介

GoogLeNet网络模型主要由9个模块化结构(Inception v1)串联而成,结构见图2。在第一个Inception模块之前,模型含有3个卷积层(Convolution layer),3个激活层(Relu layer),2个最大池化层(Max pooling layer),2个归一化层(Normalization layer)。在第2、3个Inception模块以及第7、8个Inception模块之间都含有一个最大池化层(Max pooling layer)。在Inception模块之后,依次是全局平均池化层(Global average pooling layer)、Dropout层(Dropout layer)、全连接层(Fully connected layer)、Softmax层(Softmax layer)、分类层(Classification layer)。本研究主要将模型最后3个网络层进行替换,并将全连接层的输出大小修改为35,其他参数保持不变。

图2 GoogLeNet网络结构图Fig.2 GoogLeNet structure diagram

Softmax层用于计算某张病虫害图像属于各等级的概率值,选择最大概率值对应的等级作为预测输出,输出层通过交叉熵损失函数计算误差,评价实际输出与期望输出的接近程度[8],在反向传播过程中对各层参数进行优化更新,交叉熵损失函数表达式为:

(1)

式中:W为权重矩阵;b为偏置向量;N为样本数;K为类别数;tij为第i个样本属于类别j的概率;yij为类别j中样本i的输出概率。

1.2.2迁移学习

迁移学习是把在大型数据集(如ImageNet)上学到的图像分类知识成功运用到待解决的新目标分类中[20-22]。相比原模型,其优势在于:1)以现有最佳网络模型为基础,通过微调网络层结构来构建本研究的模型,比构建和训练随机初始化的新网络更快且更容易;2)预训练网络模型由于已学习了丰富的特征,无需庞大的数据量再训练,可以有效缩短训练时间。因此,本研究以经典的GoogLeNet作为预训练模型,利用模型结构微调和参数微调的迁移学习方法,对果园病虫害图像的识别与危害程度分级进行研究。

1.2.3超参数设置

在深度学习训练时,超参数选择困难且费时,因为超参数最优组合不仅仅取决于模型本身,还取决于软件与硬件环境。本研究模型的超参数经多次微调确定。在利用GoogLeNet模型进行训练时,采用批量训练方式,随机将训练集与验证集划分多个批次,训练批次(Minibatch)大小为32,轮(Epoch)为30,每轮迭代1 265次,共迭代37 950次。每1 000次迭代验证1次,初始学习率设为0.001,权重衰减值为1×10-5。优化器采用带动量的随机梯度下降法(Stochastic gradient descent with momentum,SGDM),动量为0.9。为了进一步防止过拟合,将Dropout层随机丢弃概率设置为0.4,即随机丢弃40%的节点。模型训练其它初始参数权重采用经过ImageNet数据集训练的权重值。

1.3 评价指标

为评价模型的优劣,选择模型大小(M)、识别时间(T)、损失值(L)、准确率(Acc)作为模型训练结果的评价指标。其中,模型大小反映该模型训练完成后所占用的计算机储存空间[8],单位为MB。损失值能够估计模型预测值与真实值的偏差程度,损失值越小,表示模型预测结果越接近真实结果,计算公式为:

(2)

式中:yi为第i个样本对应的标签;f为模型输出函数;j为求和变量;K为样本总数。

准确率[23]反映的是识别结果中识别正确的图像数量占全部识别图像数量的比率,可以反映模型的训练效果,计算公式为:

(3)

式中:TP(True positive)为被模型预测为正的正样本;TN(True negative) 为被模型预测为负的负样本;FN(False negative) 为被模型预测为正的负样本;FP(False positive) 为被模型预测为负的正样本。

2 结果与讨论

本研究采用中国农业大学植保机械实验室计算机,其硬件配置为:Windows10专业版64位操作系统,CPU为英特尔 i7-10700,GPU为英伟达GTX 1660 Super 6 GB,主板为微星MAG B460M,内存为32 G。摄像头为免驱USB摄像头,焦距F6.0 mm,视像解析度640像素×480像素。软件开发环境为MATLAB2020a版本。

2.1 训练结果

为验证本研究方法的有效性与优越性,随机选取AlexNet、VGG-16、ResNet-18、GoogLeNet、SqueezeNet和MobileNet-v2这6种模型。在相同训练参数设置条件下,进行6种模型训练与验证,训练曲线见图3。本研究将经过迁移学习的GoogLeNet网络模型记为GoogLeNet*,与原模型以示区别。

训练精度曲线可以描述随着迭代次数的增加,模型预测精度的波动情况。由图3(a)可知,除SqueezeNet模型,其余6种模型在收敛时训练精度均达到了90%以上。其中,收敛速度最快的模型是GoogLeNet*,最慢的是SqueezeNet。当迭代次数为400次时,GoogLeNet*模型训练精度率先达到80%,迭代5 000次后趋于收敛,此时模型训练精度为95%,最终模型训练精度为99%。然而,SqueezeNet模型在迭代次数为12 000次时,其训练精度才达到80%,并且在训练过程中训练精度曲线波动幅度较大,最终模型训练精度为88%。其余5种模型训练精度曲线大致相同,最终模型训练精度为90%~95%。训练结果表明,本研究模型无论在收敛速度方面,还是模型精度方面都表现出色。

损失曲线则表示随着迭代次数的增加,模型预测值与真实值之间偏差波动情况。损失值越小,表明模型精度越高,预测出错概率越小[8]。由图3(b)可知,GoogLeNet*模型率先达到收敛,最终损失值为 0.007 8,均低于其他6种模型。SqueezeNet模型损失值最大为0.353 7,其余模型损失值介于二者之间。在模型平均训练时长方面,7种模型平均训练时长分布在2.15~24.17 h。其中,AlexNet与SqueezeNet模型训练时间最短约2 h,VGG-16模型最长约24 h,其余模型训练时长均在10 h以内。然而,本研究模型训练时长为4.13 h,比原GoogLeNet模型缩短0.25 h。

对于病虫害识别最重要的是识别精度与识别时间,其次是模型大小。因此,本研究按照优先级:识别精度>识别时间>模型大小进行模型评价。7种模型验证精度分布在85.49%~96.93%(图4)。其中,GoogLeNet*模型验证精度最高为96.93%,SqueezeNet模型验证精度最低为85.49%,其他模型验证精度均在90%以上。在识别时间方面,SqueezeNet模型识别时间最短约1.4 ms,最长为VGG-16模型约5.9 ms。其中,AlexNet、SqueezNet、GoogLeNet、GoogLeNet*、MobileNet-v2模型平均识别时间均在5 ms以内,而VGG-16与ResNet-18模型平均识别时间则超过5 ms。这主要是模型结构、层数、参数量不同所致。在模型大小方面,由于ResNet-18、SqueezeNet、GoogLeNet、MoblieNet-v2模型为轻量级神经网络,所以训练完成后模型大小都在10 MB以下。其中,SqueezeNet模型最小仅为2.47 MB,最大为MobileNet-v2模型的8.24 MB。另外,3种模型(VGG-16、AlexNet、GoogLeNet*)稍微大一些,分别为474、199和21.3 MB。

识别时间为图像平均识别时间,ms;气泡上的数值表示训练完成后模型的大小,MB。The recognition time is the average image recognition time, ms. The value on the bubble indicates the memory size of the model after the training is completed, MB.图4 7种模型训练结果Fig.4 Training results of seven models

综合看,本研究模型所占储存空间虽不是最小,但其验证精度最高,比其他6种模型提高了2.38%~11.44%,且单张图片平均识别时间仅为2.6 ms,其模型大小仅为21.3 MB。因此,本研究提出的基于迁移学习的GoogLeNet模型是明显优于其他6种模型的。

2.2 模型性能探讨

2.2.1数据集大小对模型性能的影响

数据集在很大程度上决定了模型的识别性能[24-25]。为了研究数据集大小对病虫害分级精度的影响,设置了5种不同大小的数据集进行模型训练。从原有数据集中每类样本随机选取100、200、500、1000、2000张图像形成新的数据集,记为100、200、500、1 000、2 000。使用5种不同大小数据集训练出的模型精度见表3。可知,模型精度随着数据集的增大而提高。经过不同大小数据集训练得到的模型验证精度与测试精度范围分别在87.42%~96.23%,85.62%~95.07%。经过迁移学习的GoogLeNet模型,即使在每类样本只有100张图像的情况下,模型仍具有85%以上的测试精度。这表明经过迁移学习的卷积神经网络,对于小样本数据集也具有良好的识别性能。但是为了模型能够具有更高的精度以及泛化能力,仍就需要足够的图像样本来确保模型能够充分学习到细微特征,以便区分相似病虫害。

表3 本研究模型在不同大小数据集下的验证精度与测试精度Table 3 The verification and testing accuracy under different data set sizes based on this model

2.2.2优化算法对模型性能的影响

目前,常用优化算法有Adam(Adaptive moment estimation)、SGDM(Stochastic gradient descent with momentum)、RMSprop(Root mean square prop)等。其中Adam和SGDM在机器视觉、自然语言处理等方面应用最为广泛。

为探究不同优化算法对模型性能的影响,选取了3种常用优化算法进行模型训练,得到不同优化算法下的模型精度见表4。在相同试验条件下,经过3种优化算法得到的模型精度差别很大。在训练时长方面,三者比较接近,均在5 h左右,其中SGDM算法耗时最短。在验证精度方面,SGDM算法比Adam、RMSprop算法分别提高了5.3%、19.82%;在测试精度方面,SGDM算法比Adam、RMSprop算法分别提高了6.29%、27.85%。因此,SGDM优化算法更适合本研究模型。

表4 不同优化算法下的模型精度Table 4 Model accuracy under different optimization algorithms

2.3 模型验证

为验证本研究模型的实用性,开发了一款果园病虫害分级识别系统进行试验验证,开发环境为MATLAB2020a。软件包含前端用户操作界面和后台识别模块这2部分。其中,前端设计采用APP Designer设计器进行可视化界面布局,采用了Button组件、Label组件、图像窗口组件、坐标区域组件、文本区域组件。其软件工作流程和前端界面见图5。后台处理通过使用MATLAB语言编写程序打开或关闭相机,并调用训练好的GoogLeNet*

图5 本研究设计的软件工作流程(a)与用户操作界面(b)Fig.5 The software work flow chart (a) and user interface diagram (b) designed in this research

模型进行果树病虫害识别与危害程度分级。同时,该软件还能根据识别结果调用本地浏览器自动检索病虫害防治建议和防治药品展示给用户。

2.3.1病虫害识别

本研究从测试集随机选取20种病虫害类型(10种病害、8种虫害、2种健康),每类选取20张图像进行模型识别效果分析,测试结果见表5。可知,本研究模型对虫害识别精度要高于病害识别精度。其中,病害的平均识别精度达到了98.70%,健康叶片以及虫害平均识别精度都达到了100%,病虫害总体平均识别精度为99.35%。同时,该系统识别单张图像的平均用时约为0.43 s。测试结果表明本研究模型识别病虫害效果较好,能够满足果园病虫害实时监控系统识别要求。

表5 本研究模型识别病虫害图像的精度与时间Table 5 The accuracy and time of recognizing images of diseases and pest based on this model

本研究模型对病害与虫害识别精度存在差异。分析其原因,主要是害虫具有清晰地纹理、颜色特征(图6(a2)、(a3)),卷积神经网络能够学习到更多关键特征用于识别。相比之下,病害主要依靠颜色特征进行识别(图6(b3)),而纹理特征相对较少(图6(b2)),加之病斑形态各异,给模型识别带来了一定的难度。

图6 黑守瓜(a)与葡萄轮斑病(b)的可视化激活特征图Fig.6 Visualized activation feature map of Aulacophora lewisii (a) and Acrospermun viticola (b)

2.3.2病害分级

目前在果园精细化管理中,仅仅识别病虫害种类是不能满足精准施药的要求。所以需要进一步对病虫害危害程度进行分级,从而更好的进行精准变量施药。为了验证本研究模型病害危害程度分级效果,从测试集中随机选取6种病害进行危害程度分级,每等级样本数量为20张。本研究模型对病害危害程度分级结果见表6。可知,病害危害程度分级精度相比病害识别精度有所下降。其分级精度在80%~100%,但平均分级精度也达到了92.78%。分析个别病害分级精度低的原因,主要是病害危害程度Ⅰ级(一般)与Ⅱ级(严重)之间分级特征较少,仅有病斑大小这一细微特征。模型在学习时难以找出两者之间明显的分界阈值。其次,模型训练的分级样本标签由人工标定,严格而标准的分级工作是十分繁琐、耗时的,难免会发生个别样本标记错误。最后,数据来源不同也导致同等级样本在图像背景、光照强度、图像尺寸、果树种类等方面存在着一定差异。在后续研究中,考虑采取病斑分割与识别相结合的方式来进一步提高病害分级精度。

表6 本研究模型识别病害危害等级分级精度Table 6 Grading accuracy of the grade of disease damage based on this model

3 结 论

1)针对现有果树病虫害危害程度分级模型存在精度不高,难以满足精准施药要求的问题,本研究采用迁移学习技术与GoogLeNet模型相结合的方法,对果园病虫害样本进行了识别和危害程度分级研究。所设计模型大小为21.3 MB,平均识别精度达到了99.35%。其中,病害识别精度为98.70%,虫害识别精度为100%。对病害样本进行危害程度分级,平均分级精度为92.78%。

2)在相同训练参数下,本研究模型较AlexNet、VGG-16、ResNet-18、SqueezeNet、原GoogLeNet及MobileNet-v2模型验证精度提高了2.38%~11.44%,并且损失值最低。同时,探究了不同数据集大小与不同优化算法对模型性能的影响。研究结果表明,迁移学习技术能够在一定程度上加快模型收敛速度;本研究模型精度随着数据集的增大而提高;在3种优化算法中,SGDM算法耗时最短且精度最高,更适合本研究模型。

3)基于MATLAB平台,设计了一款可视化的果园病虫害分级识别系统。经过400次实际测试,该系统识别单张图像仅需0.43 s。本研究所设计系统实用性与稳定性较强,可为现代果园智能化、精细化管理提供一定的技术支持。

猜你喜欢
病斑分级病害
早春养羊需防六大病害
小麦常见三种病害咋防治
葡萄病害周年防治历
果树休眠期咋防病害
改进自适应分水岭方法分割棉花叶部粘连病斑
一种桑轮纹病病叶发病程度的评价指数
9种药剂防治山核桃干腐病试验研究
分级诊疗路难行?
分级诊疗的“分”与“整”
分级诊疗的强、引、合