基于ResNet网络模型的番茄病虫害识别方法
2023-12-07韩涛詹炜
韩涛,詹炜
(长江大学,湖北 荆州 434023)
0 引言
番茄作物作为我国重要的经济农作物之一,随着番茄作物在我国种植面积的不断扩大,番茄作物的病虫害问题也日益突出。番茄病虫害的暴发,会导致番茄的产量和质量的严重下降,从而给整个农业经济带来不小的影响。因此,番茄病虫害的检测和识别对于防治番茄病虫害尤为重要。目前,人为识别番茄病虫害存在准确率低、效率低、成本高等问题,无法广泛应用于大面积的番茄作物区域,而且由于人为的错误识别可能会使用错误的防治策略,进而影响番茄作物的产量和质量,从而对当地的农业经济造成不可挽回的损失。
随着计算机视觉和深度学习技术的快速发展和人工智能技术的不断进步,在农业病虫害防治领域中,为通过使用计算机视觉图像识别技术来加强对农作物病虫害的识别和病虫害的及时预警和预防,提供了有力的技术和理论支持[1]。基于图像处理的病虫害识别方法已经被运用于其他农业病虫害识别领域当中,例如水稻病虫害识别[2-3]、玉米病虫害识别[4-5]等。李子茂等人[6]提出了一种基于DenseNet的茶叶病害识别方法,该方法对5种常见的茶叶病害类别进行了识别,最终DenseNet 模型识别准确率达到了92.66%。刘君等人[7]提出了一种基于YOLO 卷积神经网络模型的番茄病虫害识别方法,该方法对8种常见的番茄病虫害进行了检测和识别,最终训练得到的YOLO 卷积神经网络模型对番茄病虫害的平均检测精度达到了85.09%。上述所提到的方法,都只对病虫害进行了识别和分类,但是并没有对神经网络模型所学习到的图像特征进行显示,从而缺乏不同类别病虫害图像特征的可视化佐证,也就无法判断神经网络模型是否正确地学习到了各类病虫害的图像特征。基于此,本文提出了使用ResNet[8]卷积神经网络模型来完成对番茄病虫害的识别和分类任务,并通过加入Grad-CAM 算法[9],对训练完成的ResNet 卷积网络模型所学习到的番茄病虫害的图像特征进行了可视化的显示。
1 材料和方法
1.1 数据集获取及数据集预处理
在实验的过程中,所使用的番茄病虫害数据集总共包括7 073张JPG格式的图像数据。所有图像的分辨率为256×256(像素), 经过农业领域专业研究人员的仔细辨认和分类,整个番茄病虫害数据集总共包括菌斑病、早疫病、晚疫病、叶霉病、白粉病、斑枯病、二斑叶螨病、斑点病、番茄病毒病、番茄黄化曲叶病毒病及健康番茄叶这11种类别。每种番茄病虫害类别的图像数据约为614张,数据集示例如图1所示。
图1 番茄病虫害类别
非专业人员,很难从图1 中分辨出不同类别的番茄病虫害。例如,二斑叶螨病、斑点病、番茄病毒病这3种番茄病虫害的区分度并不是很高,非常容易误判。
为了使神经网络模型在训练的过程中具有更好的准确性、鲁棒性和泛化能力,以适应于不同复杂情况,需要对番茄病虫害的数据集进行数据预处理操作。数据集预处理过程中,主要使用的是数据增强操作,具体方式包括:1) 随机裁剪,按照原始图像大小的90%进行裁剪作为输入;2) 随机旋转:将原始图像旋转45°、90°和135°作为输入;3) 高斯模糊,对数据集中的一部分图像进行高斯模糊,得到相对模糊的图像作为输入。
1.2 方法
传统的卷积神经网络模型如VGG[10],只能通过堆叠网络层数来提高网络模型的识别精度,然而随着网络模型层数的不断增加,网络模型会发生退化的现象,即浅层网络模型的精度会比深层网络的精度要高,而更深层的卷积网络模型不仅在准确率上低于浅层模型,而且模型训练时间更长、模型参数量更多。因此,为了解决传统卷积网络所带来的上述问题,Kaiming He 团队于2016 年首次提出了ResNet 残差网络结构,该结构可以很好地解决网络退化、难以训练等问题,而且可以使得整个网络结构更加轻量化。ResNet 网络模型分为3种常见的结构,根据网络层数的大小进行命名,分别为ResNet34、ResNet50 和ResNet101。本文使用的是ResNet50 网络模型结构,因为ResNet50在保证一定的模型深度的同时,模型大小和参数量也不会太大,具有可移植性。
整个ResNet50卷积神经网络模型结构图如图2所示。
图2 ResNet网络结构
在整个ResNet卷积神经网络模型结构中有2 个重要的ResNet 残差结构,分别为Res_1 和Res_2。Res_1 和Res_2 残差结构都由2个分支构成。如图2所示,Res_1 残差结构的一个分支由3 个conv卷积网络构成,另一个分支则直接是输入的特征图大小,最后两个分支的输出位置进行一个相加的连接操作。而Res_2 残差模块的两个分支都由conv 卷积网络构成,只是数量有所不同,一个分支由3个卷积层构成,另一分支则只有一个卷积层构成,最后2 个分支将各自提取的特征同样进行相加的连接操作。Res_1和Res_2 两个残差结构的作用是对神经网络模型中的低尺度特征图和高尺度特征图进行不同方式的融合,使得整个神经网络模型在增加层数的过程中不会丢失对低层次特征的感知能力,从而在一定程度上学习到全局性特征。
所有的ResNet卷积神经网络模型都分为4 个stage(x 表示数量),只是不同层数的ResNet 网络模型的每个stage 所包含的Res_1 和Res_2残差模型的数量有所不同。其中,每个stage都由Res_1和Res_2这两种残差结构所构成。
1.3 实验环境和参数设置
硬件实验环境配置信息包括:CPU Intel Core i9-12900k;内存32 GB;显卡RTX 4090,显存24 GB。软件实验环境配置信息如下:Ubuntu 22.04;Python 3.8;Pycharm 2022.3;Pytorch 1.13.0,CUDA 11.7。在训练过程中,训练集、验证集和测试集按照7:2:1的比例进行划分,并将图片输入网络模型的尺寸大小设置为224×224(像素),优化器设置为SGD,动量因子设置为0.9,批次大小设置为32,迭代次数epoch设置为500。
番茄病虫害的识别在计算机图像处理领域属于一个分类任务,为了得到较好的分类和检测效果,采用SiLU作为ResNet 卷积神经网络模型的激活函数。SiLU函数是一个没有上界,有下界的一个平滑曲线函数,在一定程度上可以避免网络模型在训练过程中出现的过拟合问题,同时曲线的平滑更有利于训练过程的收敛。SiLU激活函数如公式(1)所示:
Sigmoid函数由下列公式定义:
Sigmoid具有平滑易于求导的优点,适用于计算机图像处理领域中的分类任务。
1.4 评价指标
为了量化ResNet 卷积神经网络模型对于番茄病虫害识别和分类的实际效果,需要选择能够评价训练完成的ResNet 模型的模型评价指标。模型评价指标选择平均精度均值(mAP)、模型大小(Model size)、参数量(Parameters)和浮点运算数(FLOPs)。平均精度均值mAP 能够描述网络模型的平均检测精度;模型大小,能够体现模型所占磁盘空间大小,是评价一个网络模型是否能够移植其他平台的重要指标;参数量是衡量网络模型复杂度的一个重要指标;浮点运算数体现了网络模型在训练过程中需要的具体计算量,也是衡量网络模型复杂度的一个重要参数。平均精度值均值是体现网络模型检测效果的重要指标,见公式(3),其中c为数据集类别数量。
AP 是对P-R(Precision-Recall) 曲线的精度值求均值,见公式(4),其中Psmooth( )r代表进行了平滑操作过后的P-R曲线。
2 结果与分析
使用ResNet50 网络模型对番茄病虫害数据集进行训练和验证,图3展示了ResNet50网络模型在训练500 个epoch 过程中的平均精度值mAP 曲线和loss 曲线变化的过程。从曲线图中可以看出,ResNet50网络模型在训练的过程中,平均精度均值mAP和loss上升和下降都很快,最后都趋于平缓。
图3 ResNet模型的mAP 和loss曲线
在表1 展示了ResNet 网络模型在训练过程中的一些评价指标。从表1可以看出,ResNet 网络模型对于11种不同类别的番茄病虫害的识别准确率达到了94.54%,而且模型大小和计算规模只有11.114M 和4.109G FLOPs。
表1 ResNet模型评价指标
只通过ResNet网络模型的训练曲线,并不能够具象化地体现该网络模型对于11种不同番茄病虫害图像特征的提取效果,因为训练的准确率曲线并不能对ResNet 网络模型所学习到的特征图做出可解释性的判断。
Grad-CAM算法由RR Selvaraju等人提出,该算法可以通过热力图的形式,将训练得到的卷积神经网络模型所学习到的特征图像进行具象化的显示,从而得到可解释的卷积网络模型图像特征图。如图4所示,通过Grad-CAM 算法,展示了ResNet 卷积神经网络模型在训练的过程中,学习到的11种不同类型番茄病虫害图像特征的热力图和原图像的结果对比图。
从图4 中可以看出,RseNet 卷积神经网路模型在训练的过程中,该模型学习到的不同类型的番茄病虫害的图像特征有着较大的区别。从Gard-CAM 算法所得到的特征图可以看出,对于二斑叶螨病、斑点病、番茄病毒病这3 种相似度非常高的病虫害,ResNet50网络模型确实学习到了这3 种番茄病虫害的不同之处,并对这3种病虫害进行了区分。
3 总结与讨论
目前对于番茄病虫害识别的方法主要是以人工识别为主,针对人工识别番茄病虫害所带来的准确度低、成本高、检测慢等问题,本文使用计算机视觉和深度学习技术,提出了使用ResNet卷积神经网络模型完成对常见的11种番茄病虫害的识别和分类。在实验的过程中,主要研究和分析了ResNet网络模型对番茄病虫害的识别和分类的精度问题,并且对ResNet网络模型的平均精度均值mAP、模型大小、参数量和浮点运算数进行了分析。实验结果显示了ResNet 网络模型对于番茄病虫害有着很高的识别准确率,平均精度均值达到了94.54%。
本研究提出了一种使用ResNet 网络模型识别番茄病虫害的新方法,并通过实验对该方法的可行性进行了论证。在今后的研究中,尝试改进ResNet网络模型结构使其能够涵盖更多种类的病虫害识别任务,并将轻量化的ResNet模型移植部署到可移动设备当中,以实现对番茄作物种植园病虫害的实时检测和预警。