基于改进YOLOv5s模型的玉米叶片病害识别
2023-11-07凌慕菲杨冬风
凌慕菲,杨冬风
黑龙江八一农垦大学,黑龙江大庆 163711
随着我国农业领域的快速发展,玉米已成为我国种植面积最大的作物,为我国粮食增产做出了巨大贡献。然而,随着玉米产量的逐年增长,玉米病害也随之加重,其中,玉米叶片病害是影响玉米生产的主要原因之一[1],主要的玉米叶片病害有灰斑病、叶锈病、叶斑病等。玉米叶锈病在侵染时,叶片突起黄褐色或红褐色斑点,散生或呈椭圆形;玉米叶斑病和灰斑病在侵染时,叶片中央枯白至黄褐色,呈椭圆形。传统的植物病害识别是依靠肉眼进行观察来判断病害种类的,不仅效率和精准度低,而且浪费人力和物力,导致生产效率降低。
近年来,随着人工智能在农业领域的快速发展,目标检测在农作物的识别、计数、分类等领域得到了广泛运用,国内外研究也取得了较多的成果。李冠林等[2]提出了一种基于支持向量机(SVM)和多特征参数的小麦条锈病和叶锈病图像分类识别方法,对小麦病害进行识别,平均识别率达到98.34%。
孙俊等[3]通过改进传统的AlexNet模型,提出一种批归一化与全局池化相结合的卷积神经网络识别模型,对26类植物病害叶片进行识别,取得了比原始AlexNet模型更好的结果。
张建华等[4]提出了基于改进VGG-16卷积神经网络的病害识别模型,识别了5种棉花病害。Zhou等[5]在定向码匹配的方法与支持向量机(SVM)相结合的基础上,识别了甜菜病害。
目前,很多植物病害识别模型都面临着训练时间较长、模型参数庞大等问题,导致其普及性和实时性较差,具有一定的局限性[6]。而YOLOv5s[7]神经网络模型有更高的检测速度、准确性和迁移性,并且模型体积较小,占用更少的储存空间,可以在不同的硬件上运行。因此,为了实现对玉米叶片病害的精准检测,在轻量级网络模型YOLOv5s的基础上进行改进。首先,通过图像预处理方法进行数据增强,满足叶片病害识别的准确性和高效性。再将YOLOv5s的主干网络中的Bottleneck CSP模块模块替换为CBAM(Convolutional Block Attention Module)注意力模块,提高改进后模型的准确率。
1 改进YOLOv5算法
1.1 YOLOv5算法原理
YOLOv5是一种快速高效的目标检测算法,该算法利用深度学习技术实现了端到端的目标检测,在计算资源有限的情况下能够获得出色的表现。YOLOv5共有YOLOv5x、YOLOv5l、YO LOv5m和YOLOv5s 4种网络模型,其中,YOLOv5s是该系列中深度和宽度最小的模型,对应着参数量、计算量最小,且速度最快的网络。YOLOv5s网络主要由Input、Backbone、Neck、Head 4个部分组成。该算法使用CSPDarknet53作为主干网络,通过采用Bottleneck残差块和SPP模块等技术,可以有效地提高模型的特征提取能力。其中,主干网络Backbone部分主要由conv模块、C3模块(即BottleneckCSP)、SPP组成,其作用是提取图像特征并传递至下一模块。颈部网络Neck再对图像特征进行一定比例的融合,并将其特征传递给预测层。最后预测头Head将颈部融合得到的图像特征进行预测输出。
YOLOv5s采用了一种基于初始先验框(Anchor)的检测方式,在输入图像时,通过预先定义的Anchor尺寸进行目标检测。相比于传统的滑动窗口方法,该方法能够在不同尺度的特征图上同时进行目标检测,提升检测模型的预测精度。
1.2 CBAM注意力机制
CBAM[8]由通道注意力机制(Channel Attention Module,CAM)和空间注意力机制(Spartial Attention Module,SAM)组成,各部分的主要功能如下:
(1)Channel Attention(CA):CA模块根据全局空间信息对输入特征图的各个通道进行加权。它主要包括2个全局平均池化层(Global Average Pooling,GAP)和全局最大池化层(Global Max Pooling,GMP),用于计算空间域的全局信息。接着使用1个共享的MLP(多层感知器)对GAP和GMP的输出特征进行非线性变换,最后通过逐元素相加(element-wise addition)和sigmoid激活函数得出通道注意力权重。
(2)Spatial Attention(SA):SA模块通过对输入特征图的各个空间位置进行加权,以捕获空间依赖性。首先,对输入特征图进行通道方向的全局平均池化和全局最大池化。然后,将两者沿通道方向进行连接。接着使用1个卷积层(通常是1×1的卷积核)对连接后的特征图进行卷积,最后通过sigmoid激活函数得到空间注意力权重。
由于CBAM模块具有较好的通用性,因此将其应用于YOLOv5s的C3模块不仅可以提高网络性能,还可以为其他类似的卷积网络架构带来启示。
1.3 改进YOLOv5s算法
在原始的YOLOv5s算法中,其检测头模块采用了多层级特征融合的方法,此方法虽然能够将特征信息充分结合,但在连续卷积的过程会产生许多无用的冗余信息,从而淹没部分目标,导致检测准确率下降。为了提高玉米叶片病害识别的准确率,在YOLOv5s骨干网络Backbone引入优化的CBAM(Convolutional Block Attention Module)注意力机制,将YOLOv5s主干网络部分中的C3模块替换为CBAMC3模块,不仅可以加强通道之间信息的融合,还可以减小模型参数、精减网络模型的结构、提高模型计算效率,捕获更丰富的通道和空间特征信息。改进后的网络结构图见图1。
图1 改进后YOLOv5s网络结构图
2 实验方法与结果分析
2.1 数据集预处理
数据集选用Plant Village发布的公开玉米病害数据集,数据集中包括玉米叶片灰斑病、叶锈病、叶斑病和玉米健康4类图像数据。实验选用500张玉米叶片病害作为数据集,其中,灰斑病、叶锈病、叶斑病和玉米健康各125张,用于玉米叶片病害的训练与测试。实验先通过Labelimg标注软件对3种玉米病害叶片和健康叶片进行手动标注,并以VOC的格式保存。由于训练数据集较小,为了提高模型对玉米叶片的识别效果,通过对数据图像进行随机翻转、调节亮度、增加噪声等方法进行数据增强。扩充后的数据集大小为2 000张,扩充至原始数据的4倍。扩充后的数据集如表1所示。其中,训练集和测试集比例按9:1随机划分。
表1 数据集概述
2.2 实验环境及配置
实验运行环境与配置见表2。模型共训练50轮次,初始学习率设为0.01批尺寸(batch size)设置为8。
表2 实验环境
2.3 模型评估指标
研究结果采用精准率(Precision)、召回率(Recall),以及目标检测算法中衡量算法效果的指标全类平均准确率(Mean Average Precision,mAP)作为评价指标。其中,Precision、Recall的计算公式分别如下:
在上述式中,TP为样本被预测为正样本,且分类正确的样本个数;FP为样本被预测为正样本,而分类错误的样本个数;FN为被预测为负样本,而分类错误的样本个数;mAP是所有类别在模型上的平均识别精度。
2.4 实验结果分析
为了验证CBAM注意力机制的有效性,在原网络的基础上,将添加CBAM注意力机后的模型与原始的YOLOv5s模型进行对比。2种模型在Plant Village数据集、epoch为50、batch-size为8的条件下,得到不同玉米叶片病害类别的准确率对比结果(图2)。横轴为训练轮次,纵坐标为精准度(mAP)。由图1可以看出,在epoch50次后波动幅度不大。原始的YOLOv5s模型mAP稳定在93.5%。模型在加入CBAMC3注意力机制之后mAP达到95.6%,比传统的YOLOv5s网络模型的准确率提高了2.1个百分点,正确类别预测的数量比例明显提升[9-16]。
图2 原始YOLOv5s模型与改进后模型结果对比
3 结束语
本论文针对在玉米叶片病害识别过程中浪费人力、肉眼难以区分、检测情景复杂等问题,设计了一种基于改进YOLOv5s网络的玉米叶片病害识别模型(YOLOv5_CBAMC3)。在YOLOv5s目标检测模型的基础上,引入CBAM注意力机制,完成了对玉米叶片灰斑病、叶锈病、叶斑病3种病害和健康叶片的识别。实验结果表明:改进后的网络检测模型对玉米叶片病害识别精度有较高提升,平均精度达到95.6%,较原始网络模型的准确率提升了2.1个百分点。该方法能够降低人力物力的成本、提高对病害识别的效率和准确率,有一定的实用性,能够促进农业技术的进一步发展。