APP下载

基于改进残差网络的农作物病虫害检测研究

2023-05-19白雪松吴建平景文超崔亚楠康小霖

计算机技术与发展 2023年5期
关键词:残差农作物卷积

白雪松,吴建平,2,3,景文超,崔亚楠,康小霖

(1.云南大学 信息学院,云南 昆明 650504;2.云南省电子计算中心,云南 昆明 650223;3.云南省高校数字媒体技术重点实验室,云南 昆明 650223)

0 引 言

农作物病虫害严重威胁着国家粮食安全和环境,是制约农业生产的重要因素之一[1]。据国家农业技术中心预测,2022年小麦、水稻、玉米等重大病虫害的复发频率增加,影响全国70%的粮食主产区,覆盖面积达20.26亿亩[2]。

农作物病虫害检测是实现粮食安全的重要途径之一。及时准确地识别病虫害有助于采取适当的预防和保护措施,从而提高农产品的产量和质量[3]。传统的检测方法是由经过培训或有经验的人员进行现场检查。然而,传统方法对检测人员的专业素质要求较高,并且浪费大量的时间和资源。此外,由于检测人员的主观因素,极有可能造成误检。随着人工智能技术的迅速发展,深度学习技术已应用到各个领域[4]。近年来,国内外研究人员利用深度学习技术在农作物病虫害检测领域取得了一系列重要成果。Chen等[5]提出了一种基于AlexNet模型的LeafNet模型来检测茶叶病害,获得了比多层感知机(Multi-layer Perceptron,MLP)和支持向量机(Support Vector Machine,SVM)更好的表现。Barbedo[6]利用图像分割技术提取病虫害的主要特征,并通过卷积神经网络进行训练,提高了识别准确率。王佳[7]通过提取香芋叶片的颜色和纹理特征建立数据库,并使用SVM方法进行分类,准确率达到93.00%。项小东等[8]在Xception模型中结合CEM模块,提出了一种通道扩张方法(扩张-保持-再扩张-压缩),在实验中获得了91.90%的准确率。Hassan等[9]提出一种基于Inception架构和跳跃连接的新型网络模型,且将标准卷积换成深度可分离卷积来实现更高的精度。

上述研究均取得了较好的实验结果,但缺乏细粒度层次的特征感知能力。由于受到农作物品种、发病时期、环境等因素的影响,导致病虫害出现类间差异小和类内差异大的情况,增加了细粒度级别的分类难度。现有的解决方案,一方面通过采集更多样本来改善数据源,但难以获取和标注图像;另一方面,采用多模型融合或增加网络层数来提高特征提取能力,但模型参数和复杂度也会显著增加。

针对病虫害叶片特征的识别问题,该文提出了一种基于改进的Res2NeXt50模型的农作物病虫害检测算法。首先,在残差网络(Residual Network,ResNet)的基础上改进得到Res2NeXt50模型,增加网络每一层的感受野,可以在细粒度的层次上学习图像的特征信息。随后,通过分解大卷积、改进下采样、替换激活函数、减少网络层数等方法进一步优化模型,减少模型参数和复杂度。此外,采用标签平滑和EMA方法训练模型以提高泛化能力。

1 基础理论与模型介绍

1.1 Res2NeXt残差块

尽管ResNet在图像识别领域表现不错[10],但仅通过3×3卷积很难有效地提取病变特征。因此,该文采用了一种新的多尺度骨干架构(A New Multi-scale Backbone Architecture,Res2Net)[11],在细粒度级别增加特征感受野,以挖掘病变特征之间的微小差异。

参考ResNeXt50模型[12]中的分组设计,该文构建了Res2NeXt50模型。模型通过分组学习得到的特征耦合度低,且涉及的主要特征不同,因此可以得到互补的信息来更全面地学习图像。Res2NeXt50残差块结构如图1所示。

图1 残差块结构

在图1中,输入特征经过1×1卷积后按通道分成4组子特征,记为Xi。特征Xi不经过卷积得到输出Y1=X1,特征X2经过8组3×3卷积得到输出Y2=K2(X2),特征X3与Y2作残差连接后经过8组3×3卷积得到输出Y3=K3(X3+Y2),特征X4与Y3作残差连接后经过8组3×3卷积得到输出Y4=K4(X4+Y3)。依次类推,输出特征Yi的计算方法如式(1):

(1)

1.2 分解大卷积

在农作物病虫害诊断时,通常根据病斑颜色变化、受损部位大小等症状进行鉴别。Res2NeXt50模型使用7×7卷积来提取图像的初级特征,但卷积核较大,导致局部特征丢失。如图2所示,为了解决病虫害特征的提取问题,该文提出混合卷积代替7×7卷积来获取局部和全局特征,从而得到更丰富的图像语义信息。

在图2中,改进模型使用7×7、3×3和5×5卷积来提取图像的初级特征,并加入P-ReLU函数和BN层以增强特征的表述能力。然后,通过拼接(Concat)进行特征融合。

图2 混合卷积

1.3 更换激活函数

ReLU函数能有效抑制梯度消失和爆炸,而被广泛使用。Res2NeXt50模型经过分组卷积后,结构更加复杂,更容易过拟合。因此,该文选择具有正则化效果的GELU函数来代替原始残差块中的ReLU函数,以提高鲁棒性。GELU函数的定义如下。

(2)

在式2中,x作为输入值,Φ(x)是高斯分布的累积分布函数。当x减小时,Φ(x)也减小,激活函数输出为0的概率更高,则神经元被丢弃。反之,当x增大时,Φ(x)也增大,激活函数输出为1的概率更高,则保留神经元。

1.4 改进下采样

在Res2NeXt50残差块中,主通道使用两个1×1卷积和一个3×3卷积来改变特征图的大小和数量,并在捷径连接(Shortcut)中使用一个Stride为2的1×1卷积进行下采样以匹配输出。因为1×1卷积下采样时丢失大量特征信息,会对主通道的信息流通产生负面影响,所以,该文选择平均池化(Average Pooling,AvgPool)代替1×1卷积完成下采样,以保留更多的信息。下采样改进方法如图3所示。

图3 改进下采样

在图3中,主通道保持不变,而Shortcut使用Stride为2的AvgPool完成下采样,并加入1×1卷积和BN层,以增加特征的非线性能力。

1.5 改进模型的网络结构

最初的Res2NeXt50模型残差块仍沿用标准的(3,4,6,3)架构,而该文将layer1到layer4的block数调整为(2,4,6,2),从48层变为现有的42层。与原来相比,通过减少网络层数,降低了过拟合风险,同时充分利用Res2Net架构的特征挖掘能力。

改进模型共有44层,由Conv1卷积层、Res2NeXt残差块、池化层和全连接层组成。如表1所示,Conv1卷积层使用混合卷积提取图像的初级特征;Res2NeXt残差块由1×1卷积、3×3卷积和1×1卷积组成,并行拓扑数为8;layer1模块保留原有的下采样方式,其他模块使用改进后的下采样方式;自适应平均池化用于实现全局特征降维。最后,将全连接层的输出维度设置为实验所需的类数。

表1 网络结构参数

2 实验设计

2.1 数据集介绍

AI Challenger 2018农作物病虫害数据集包括训练集31 718张图像,验证集4 540张图像,测试集9 027张无标签图像。数据集包含:10种农作物(苹果、辣椒、马铃薯、桃子、草莓、樱桃、玉米、葡萄、柑桔和番茄)、27种病害(24种分为轻度和重度)和10种健康类别。实验的主要目的是准确识别各种病虫害,因此对原始数据集做了一些调整。首先,对数据集进行清理,删除训练和验证集中的238张重复图像;然后,将同一病害的轻度和重度样本混合,剔除样本数量极不均匀的类别,比如仅有3张图像的番茄疮痂病;最后,将训练集和验证集的同类样本混合打乱,总共得到36 020张图像。调整后的数据集按照“物种-状态”分为36类,即26种病害和10种健康类别。

Plantvillage数据集共有54 305张图像,分为38类。数据集包含:14种农作物(苹果、蓝莓、樱桃、玉米、葡萄、柑橘、桃子、辣椒、马铃薯、树莓、大豆、草莓、南瓜和番茄),26种病害和12种健康类别。

Plant_leaves数据集共有4 502张图像,分为22类。数据集包含:12种农作物(芒果、榄仁、番石榴、萨塔帕尼、鹰榅桲、蒲桃、麻风树、番红花、罗勒、粉红石榴、柠檬和梧桐),11种病害和11种健康类别。

上述数据集以4∶1的比例分成训练集和测试集,使用相同的数据增强技术和评价指标。

2.2 数据增强

数据增强不仅可以增加样本数量,还可以丰富样本的多样性,避免过拟合。现有的数据增强技术分为两类,一是离线增强,二是在线增强。考虑到实验数据的规模和数量,采用在线增强技术。在训练集中,先将图像缩放到256 px×256 px,随后进行图4所示处理。

在测试集,先将图像缩放到256 px×256 px,然后中心裁剪至224 px×224 px、像素归一化和标准化。

图4 数据增强处理

2.3 训练设计

考虑到收敛效果和速度,实验最终选择AdamW优化器。初始学习率和weight-decay分别设置为0.001和0.05,Batchsize设置为32。此外,使用周期余弦退火策略(Cyclic Cosine Annealing Learning Rate Schedule)调整学习率,每20个epoch进行一次热重启,以获得更好的收敛结果。

在训练中,使用标签平滑和EMA方法来提高模型的训练效果。当标签平滑系数和EMA系数分别为0.1和0.999时,实验效果最佳。

2.4 实验环境

代码基于PyTorch1.71,Python 3.6版本。电脑配置:Windows10 OS,32 GB内存,AMD Ryzen7 5800X处理器和NVIDIA 3070显卡。

2.5 评价指标

在实验中,选择准确率(Accuracy,Acc)、参数量和FLOPs作为评价指标。Acc的定义如下:

(3)

式中,TP(True Positive)为真阳;TN(True Negative)为真阴,all为样本总数。

参数量即网络参数和,单位M。FLOPs即浮点运算次数,用来衡量模型的复杂度,单位G。

3 实验及结果分析

3.1 不同模型实验对比分析

为了验证改进模型的性能,在AI Challenger 2018农作物病虫害数据集上与另外8种模型进行实验对比。所有模型均在相同的实验条件下进行,并使用开源代码和默认参数复现。每个模型训练100轮,根据其在数据集上的表现选择最佳模型。对比结果如表2所示。

表2 不同模型实验对比

由表2可见,不同模型的识别准确率均在97%以上,说明CNN可以有效识别农作物病虫害。Res2NeXt50模型结合了Res2Net50和ResNeXt50模型的结构优势,其识别率高于以上7种模型,达到了98.25%。改进模型在Res2NeXt50模型的基础上优化了网络结构和信息流通,不仅减少了模型参数和复杂度,还进一步提高了模型性能。同时,该文利用标签平滑对样本的真实标签进行处理,以更好地训练网络,提高模型的泛化能力。与VGG16、Inception-v4、DenseNet169、ResNet50、ResNet101、ResNeXt50和Res2Net50模型相比,改进模型的准确率分别提高了0.78百分点、1.53百分点、0.87百分点、0.83百分点、0.77百分点、0.73百分点和0.64百分点。相较于Res2NeXt50模型,改进模型减少了4.5 M参数和0.48 G FLOPs,但准确率提高了0.54百分点。

另外,该文使用改进模型对测试集中的26种病害图像进行测试,实验结果如表3所示。

表3 26种病害的测试准确率

3.2 消融实验及分析

为了分析改进方法的效果,在相同的实验条件下进行消融实验。每个模型训练100轮,实验对比结果如表4~表8所示。

表4 分解大卷积

在表4中设置了两组对照实验,分别采用传统的3组3×3卷积和该文提到的混合卷积代替7×7卷积。通过对比实验结果,模型使用混合卷积时,准确率高达98.42%,比原来提高了0.17百分点。

表5 更换激活函数

在表5中,对照模型使用GELU函数代替原残差块中的ReLU函数,准确率提高了0.1百分点。

表6 改进下采样

在表6中,对照模型使用Stride为2的AvgPool进行下采样。与原来相比,模型的准确率提高了0.15百分点,而且参数量和FLOPs保持不变。

表7 调整网络层数

在表7中,对照模型将layer1到layer4的block数调整为(2,4,6,2)。与Res2NeXt50模型相比,改进模型的准确率提高了0.12百分点,而且参数量和FLOPs分别减少了4.50M、0.45G。

表8 训练方法对比

在表8中,通过不同的训练方法,模型的准确率均有不同程度的提高。当同时使用EMA和标签平滑方法时,模型准确率达到了98.52%,比原来提高了0.27百分点。

3.3 可视化分析

该文采用类激活映射(Class Activation Mapping, CAM)方法[13],以热力图的形式显示图像响应的强弱特征。为了展示改进模型的检测效果,将部分病虫害可视化输出,如图5所示。

图5 部分病虫害可视化

为了比较不同网络模型的特征提取能力,将ResNeXt50、Res2Net50和改进模型生成的热力图进行可视化,如图6所示。

在图6中,高亮区域代表图像中的关键部分。通过对比分析,改进后的模型高亮响应区域更多更细腻,能学习到更多的图像语义信息。

此外,为了更好地分析改进模型提取图像特征的过程,将部分卷积层的特征图可视化输出,如图7所示。

图6 特征图可视化

图7 卷积核可视化

在图7中,随着网络层次不断加深,卷积核提取的图像特征越来越抽象,其纹理也被更高层次的语义信息所取代。

3.4 公开数据集实验对比与分析

为了全面客观地评价文中模型的泛化能力,分别在Plantvillage和Plant_leaves数据集进行实验,并和近几年的研究方法对比。实验对比结果如表9和表10所示。

表9 Plantvillage数据集实验对比

由表9可见,文献[14]使用Inception-v3模型加载预训练权重,并部署到手机端进行病虫害识别,准确率为95.62%。文献[15]建立了VGG16和VGG19的融合模型,并采用粒子群优化算法进行参数寻优,准确率达到98.20%。文献[16]使用神经结构搜索策略寻找最佳网络结构,且对数据集进行过采样和欠采样,得到了99.01%的准确率。文献[17]采用多尺度卷积和SE模块等方法改进ResNet101模型,达到了99.40%的准确率。文献[18]对EfficientNet-B3模型进行微调,并用双稳态逻辑损失函数训练,达到了98.32%的准确率。在文献[19]中,结合轻量级模块Ghost对VGG16进行改进,同时减少卷积核数量,取得了99.37%的准确率。与上述文献相比,该文提出的模型准确率达到99.89%,高于上述研究方法,具有更强的泛化能力。

表10 Plant_leaves数据集实验对比

由表10可见,文献[20]用改进的ResNet模型来识别叶片病害,在实验中获得了91.95%的准确率。文献[21]用方向梯度直方图(Histogram of Oriented Gradient,HOG)来描绘图像特征,并结合SVM进行分类,准确率达到99.18%。与上述研究方法相比,文中模型获得了99.23%的准确率,分别比文献[20]和文献[21]高7.28百分点和0.05百分点。由于文献[21]中使用的HOG方法属于传统的模式识别,描述子生成慢,而该文采用的深度学习方法检测速度快,适用性更强。

4 结束语

该文提出了一种基于改进的Res2NeXt50模型的农作物病虫害检测算法,用于识别具有不同症状的农作物叶片图像。改进后的模型结合了Res2Net50模型和ResNeXt50模型的结构优势,不仅减少了模型参数和复杂度,而且泛化能力更强。与现有的研究方法相比,提出的改进模型可以在细粒度水平上学习图像特征,从而准确识别各种农作物疾病。

未来将进一步对模型进行剪枝,部署到手机端,建立实时的病虫害检测系统平台。

猜你喜欢

残差农作物卷积
高温干旱持续 农作物亟须“防护伞”
俄发现保护农作物新方法
夏季农作物如何防热害
基于双向GRU与残差拟合的车辆跟驰建模
厉害了!农作物“喝”上环保酵素
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于残差学习的自适应无人机目标跟踪算法
基于递归残差网络的图像超分辨率重建
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法