1. 引言
苹果叶片病害的种类繁多[1],不同病害的特征差异较小,这给病害的准确识别带来了困难。其次,苹果叶片病害的发生和发展受到环境、气候等多种因素的影响,使得病害的表现形式和程度存在较大的差异。为了解决这些问题,学者们不断探索新的技术和方法[2]。
李辉等[3]提出了一种基于改进SSD的苹果叶片病害检测系统,通过引入注意力机制,改进损失函数,采用轻量级特征融合结构对SSD进行改进,改进后的模型对病害识别的精度提高,mAP达81.95%。李书琴等[4]基于轻量级残差网络提出的植物叶片病害识别方法,在自建苹果叶片病害数据集上获得1.52%的低识别错误率。Li等[5]提出的BTC-YOLOv5s模型(模型大小为15.8 M)能够有效检测自然场景中的4种苹果叶病,平均精度(mAP)为84.3%。曾晏林等[6]提出了一种融合自注意力机制和Transformer模块的目标检测算法——BCE-YOLOv5,实现对自然环境下对苹果叶片病虫害的自动识别与检测。Mostafa等[7]提出了YOLOv4模型,融合了FPN和PAN,大大提高了多尺度特征提取能力,添加了CSP模块,减少了计算量的同时,可以保证准确率,取得了较好的成果。Al-Wesabi等[8]提出了一种用于精准农业的新型人工智能苹果叶病分类(AIE-ALDC)技术。所提出的AIE-ALDC技术涉及基于方向的数据增强和基于高斯滤波的噪声去除过程。
虽然现有的深度学习算法在苹果叶片病害检测中取得了一定的成果,但仍存在一定的局限性,需要进行进一步的改进和完善。在众多深度学习技术中,YOLOv5s以其高效性、轻量级、高准确性等优点,在计算机视觉领域具有莫大的潜力[9]。因此,本研究以YOLOv5s为基础模型进行改进,提高其在苹果叶片病害检测识别中的准确性和效率,为解决苹果叶片病害问题提供有效的解决方案。
2. 材料与方法
2.1. 苹果叶片病害图像数据
2.1.1. 数据来源及数据集构成
本次实验研究数据集来源于飞桨AI Studio深度学习平台的公开数据集,共有8种不同类别的苹果叶片图像,其中包含健康(Health)的苹果叶片图像和患有斑点落叶病、褐斑病、蛙眼叶斑病、灰斑病(Grey spot)、花叶病、锈病、黑星病的苹果叶片图像。苹果叶片病害样例如图1所示。
(a) 健康叶片 (b) 斑点落叶病 (c) 褐斑病 (d) 青蛙眼病
(a) 灰斑病 (b) 花叶病 (c) 锈病 (d) 黑星病
Figure 1.Images of apple leaf disease
图1.苹果叶片病害图像
由于原始数据集存在不同种类的病害图像分布不均、图像质量较低等情况,首先对图像进行了筛选,去除了目标特征模糊以及相似性高的图像,最后保留原数据集图像总计10,780张,其中健康叶片图像1673张,患有斑点落叶病图像1428张,患有褐斑病图像2016张,患有病青蛙眼病图像847张,患有灰斑病图像1113张,患有花叶病图像1204张,患有锈病图像1561张,患有黑星病的苹果叶片图像938张。
2.1.2. 数据预处理
在本次实验中,为了提高模型的泛化能力和准确性,丰富苹果叶片病害数据集的多样性和复杂性,对样本数量进行了有效的扩增。采用的数据增强操作主要有随机旋转、平移、倍增亮度、拉普拉斯噪声和图像翻转等。最终构建了本实验所用的苹果叶片病害数据集,总计20,020张图像。选用LabelImg对图像数据进行标签标注。通过使用LabelImg对处理好的数据集图像进行标注后得到了8种类别标签,分别是健康(Healthy)、链格孢属叶斑病/斑点落叶病(Alternaria boltch)、褐斑病(Brown spot)、蛙眼叶斑病(也叫青蛙眼病) (Frogeye leaf spot)、灰斑病(Grey spot)、花叶病(Mosaic)、锈病(Rust)、黑星病(Scab)。
2.2. 基于改进YOLOv5的方法
2.2.1. YOLOv5
YOLOv5是目前应用较为广泛的一种目标检测的模型[10],它将目标检测转变成了一个回归问题,把整张图作为网络的输入,仅仅经过一个神经网络,就可以得到bounding box的位置及其所属的类别。YOLOv5的结构[11]主要分为输入端、主干网络(Backbone)、颈部网络(Neck)、Prediction四个部分。
2.2.2. SE注意力
SE注意力机制[12](Squeeze-and-Excitation Networks)是一种在通道维度上增加的注意力机制,它最主要的操作是压缩(squeeze)和激励(excitation)。具体计算步骤如下。
首先进行转型,如图2左侧白图,给定一个输入特征图,让其经过
操作得到一个新的特征图。
可以看作一个标准的卷积算子。公式定义如(1)所示:
(1)
其中,
为输入特征图;
为输出特征图;V表示学习到的一组滤波器核;Vc指的是第c个滤波器的参数;
表示一个2D的空间核;
表示卷积操作。
然后进行全局信息嵌入,将特征图进行全局平均池化,生成一个
的向量,这样每个通道让一个数值表示。公式如(2)所示:
(2)
其中,zc为z的第c个元素。
再然后做自适应重新校正,通过两层全连接层完成,通过权重W生成我们我所要的权重信息,其中w是通过学习得到的,用来显示建模需要的特征相关性,公式如(3)所示:
(3)
通过两个全连接层W1、W2对上一步得到的向量z进行处理,得到我们想要的通道权重值s,经过两层全连接层后,s中不同的数值表示不同通道的权重信息,赋予通道不同的权重。
最后进行重新加权,将前面得到的注意力权重加权到每个通道的特征上。生成权重向量s对特征图U进行权重赋值,得到我们想要的特征图
其尺寸大小与特征图U完全一样,SE模块不改变特征图的小大,公式如(4)所示:
(4)
通过生成的特征向量
与特征图
,对应通道相乘,即特征图U中每个通道的
个数值都乘s中对应通道的权值。
Figure 2.SE attention
图2.SE注意力
2.2.3. Res2Net
Res2Net是在ResNet模型基础上提出的一种新的模块,它的核心思想是将ResNet中的卷积分解成多个子模块,每个子模块可以利用更多的特征信息,从而增强了网络的表达能力。与ResNet相比,Res2Net的主要优势在于它能够更好地捕捉不同尺度的特征信息。如图3所示,在ResNet中,每个卷积层都只能捕捉一定范围内的特征,而Res2Net通过将卷积分解成多个子模块,并且将这些子模块连接起来,可以有效地扩展感受野的范围,从而捕捉到更丰富的特征信息。
如图3所示,Res2Net将原来的ResNet中间的卷积换成了一种拆分混合连接结构,如图右侧红色部分,该部分最少是不经过任何操作,直接连接。最多则会经过3个的卷积,获得不同的感受野,这就是感受野比原结构多的原因。而里面的结构是经过卷积之后,又把特征图分成了4个部分。第一部分线路很简单,不做处理,直接传到;第二部分线路,经过卷积之后分为两条线路,一条继续向前传播给,另一条传到,这样第三条线路就获得了第二条线路的信息;第三条线路、第四条线路以此类推。每条线路的通道数为n/s。
Figure 3.Bottleneck block and Res2Net
图3.Bottleneck block与Res2Net
2.2.4. 解耦头
在目标检测的定位和分类任务中,存在空间错位(spatial misalignment)的问题,即两个任务所聚焦和感兴趣的地方不同[13],分类更加关注的是所提取的特征与已经存在的类别中的哪一类最为相近,也就是更关注目标的纹理内容,而定位更加关注GT Box的位置坐标,从而进行边界框参数修正,即更关注目标的边缘信息。因此,若是采取用同一个特征图进行分类和定位,效果会不好,而当采用解耦检测头(Decoupled Head)结构时,会同时综合考虑到分类和定位所关注的内容的不同,采用不同的分支来进行运算,有利于效果的提升。
如图4所示,对于FPN特征的每个级别,首先采用一个1 × 1的conv层,将特征通道减少到256,然后添加两个平行分支,每个分支有两个3 × 3的conv层,分别用于分类和回归任务,并且在回归分支上添加了IOU分支。
2.3. 评价指标
为了评估模型的性能,本次实验使用了精度(P)、召回率(R)和平均精度(mAP)作为判断模型性能的评价指标。以上指标的计算方法如下:
(5)
(6)
(7)
(8)
Figure 4.Difference between Coupled Head and Decoupled Head of YOLOv3~v5
图4.YOLOv3~v5 Coupled Head和Decoupled Head的区别
其中,TP是预测为正类的阳性样本数;FP是预测为正类的负样本数;FN是预测为负类的正样本数;P表示准确率(precision,P),表示预测为正确的正样本数(TP)与模型预测的总样本数(TP + FP)之比;R表示召回率(recall,R),表示预测为正确的正样本数与总标签数(TP + FN)之比;AP是PR曲线下方的区域。mAP是每个类别的平均AP值,即平均精度,mAP值越大表示模型性能越好(本文中的mAP均指平均精度)。n表示对象检测中的类别数。在本文中,n= 3。
2.4. 实验环境和训练参数
2.4.1. 实验环境
实验使用的计算机的GPU是RTX4 090 (24 GB)*1。CPU是12vCPU Intel(R) Xeon (R)Platinum8 352V CPU@2.10 GHz。PyTorch版本为1.11.0,Python版本为3.8,CUDA版本为11.3。
2.4.2. 训练参数
模型训练时选用官方提供的YOLOv5s.pt作为预训练权重进行训练,数据集选用自己筛选、标注并进行增强操作后的葡萄叶片病害数据集,标签格式为TXT格式,输入图像大小为640*640,批量大小为16,迭代次数为600,设置初始学习率为0.01。
3. 实验结果与分析
3.1. 适用于改进YOLOv5的方法
3.1.1. 引入注意力机制对模型的影响
SE注意力通过对通道维度进行自适应的特征重标定,可以使网络更加关注重要的特征,从而提高模型的表达能力和性能。所以本文将其引入到YOLOv5s算法中。图5展示了SE注意力机制在YOLOv5模型的Backbone部分的网络结构设计。
Figure 5.YOLOv5 improved SE structure diagram
图5.YOLOv5s改进SE结构图
通过实验发现,改进后的模型效果优于YOLOv5s原始模型。实验结果如表1所示。
Table1.Effect of SE attention on the model
表1. SE注意力对模型的影响
模型 |
精确率(%) |
召回率(%) |
平均精度(%) |
YOLOv5s |
83.5 |
81.8 |
84.2 |
YOLOv5s-SE |
88.3 |
79.2 |
85.7 |
从表1中可以看出,改进后的网络模型虽然在召回率上下降。但是在精确度、平均精度上有明显的提升,分别提升了4.8%、1.5%。从检测结果来看,引入SE模块后的模型,其检测精度有所提升。
3.1.2. Res2Net对模型的影响
Res2Net能够更好地捕捉不同尺度的特征信息,因此本文中将Res2Net加入YOLOv5的颈部网络中来提升模型检测效果。Neck部分改进对比见图6。
为了验证Neck部分改进的效果,使用Res2Net结构,改进后的算法称为YOLOv5s-Res2Net。将改进后的算法和原来的YOLOv5s算法进行比较,实验结果如表2所示。
Figure 6.Neck part improved Res2Net structure diagram
图6.Neck部分改进Res2Net结构图
Table2.Effect of Res2Net on the model
表2. Res2Net对模型的影响
模型 |
精确率(%) |
召回率(%) |
平均精度(%) |
YOLOv5s |
83.5 |
81.8 |
84.2 |
YOLOv5s-Res2Net |
87.1 |
80.7 |
85.0 |
从表2中可以看出,加入Res2Net模块的新模型在召回率上有所降低,但在精确度和平均精度上都有不同程度的提升。其中,精确度和平均精度分别提升了3.6%和0.8%。从检测结果可知,新模型对病害的定位更加精准。因此,证明了使用Res2Net结构可以提高模型的检测精度。
3.1.3. 解耦头对模型的影响
为了分别提取目标位置和类别信息,并通过不同的网络分支进行学习来提升检测效果,本文为YOLOv5s模型添加了解耦头结构。Head部分改进对比如图7所示。
Figure 7.Improved decoupled head structure diagram
图7.改进解耦头结构图
在YOLOv5s的网络结构中,可以添加一个解耦头的分支。该分支可以使用适当的卷积层和激活函数来提取特定的类别或属性信息,将输出特征图分解为不同的通道。为YOLOv5模型添加解耦头后判断其对模型检测性能的影响,结果如表3所示。
Table3.Effect of the decoupling head on the model
表3. 解耦头对模型的影响
模型 |
精确率(%) |
召回率(%) |
平均精度(%) |
YOLOv5s |
83.5 |
81.8 |
84.2 |
YOLOv5s-Decoupled head |
87.7 |
80.5 |
85.5 |
实验结果表明,对模型添加解耦头结构,对YOLOv5模型的检测性能有所提升。与原模型相比,精确度和平均精度分别提高了4.2%和1.3%。虽然召回率有所下降,但是检测精度有所提升,证明对模型检测性能有所提升。
3.2. 消融实验
由前面的实验结果可知,YOLOv5s添加SE注意力、引入Rest2Net、增添解耦头都使得模型的检测精度提升。因此,进行消融实验,以探索这些方法的融合是否能进一步提升YOLOv5s网络的性能。以原来的YOLOv5s为基准,分别在网络中引入了SE注意力、Res2Net和Decoupled并进行不同组合。实验结果如表4所示。
Table4.Ablation experiments
表4. 消融实验
SE注意力 |
残差分辨率网络 |
解耦头 |
精确率(%) |
召回率(%) |
平均精度(%) |
参数量(M) |
× |
× |
× |
83.5 |
81.8 |
84.2 |
7.03 |
√ |
√ |
× |
87.1 |
80.7 |
85.0 |
7.05 |
× |
× |
√ |
87.7 |
80.5 |
85.5 |
14.3 |
√ |
√ |
× |
86.9 |
78.5 |
83.7 |
6.8 |
√ |
× |
√ |
84.6 |
79.9 |
84.8 |
14.3 |
× |
√ |
√ |
85.8 |
81.1 |
85.4 |
14.1 |
√ |
√ |
√ |
84.8 |
83.3 |
86.0 |
14.1 |
从表结果可知,除SE注意力和Res2Net两种改进方法相互融合时模型检测性能较原模型降低,其他任意组合都对模型检测性能有明显提升。其中,同时使用三种改进方法改进后的模型检测精度最高,与原模型相比,精确率、召回率和平均精度分别提高了1.3%、1.5%和1.8%。由此证明本文对YOLOv5s网络模型的改进有效,模型检测精度提升。
3.3. 模型结果对比实验
为验证改进后的YOLOv5s在苹果叶片病害数据集上的检测效果,本文分别将Faster R-CNN、YOLOv5s、YOLOv7,YOLOv7-Tine、YOLOv8及改进后的YOLOv5s模型在苹果叶片病害数据集上进行训练,实验结果如表5所示。通过表5对比结果可以看出,在相同迭代次数内,改进后YOLOv5s模型在苹果叶片病害数据集上的mAP值最高,比YOLOv5s、YOLOv7、YOLOv7-Tine及YOLOv8四个不同的模型分别高1.8%、0.8%、2.6%和0.7%。
Table5.Detection results of different target detection models on apple leaf disease data set
表5. 不同目标检测模型在苹果叶片病害数据集上检测结果
模型 |
精确率(%) |
召回率(%) |
平均精度(%) |
参数量(M) |
YOLOv5s |
83.5 |
81.8 |
84.2 |
7.03 |
YOLOv5s-SRD |
84.8 |
83.3 |
86.0 |
14.1 |
YOLOv7 |
88.1 |
78.6 |
84.2 |
37.2 |
YOLOv7-Tine |
82.2 |
79.4 |
83.5 |
6.03 |
YOLOv8 |
85.5 |
80.2 |
85.3 |
30.7 |
4. 结束语
本文基于YOLOv5s模型构建了一个改进的病害检测识别模型,用于检测识别健康的苹果叶片和常见的7种苹果叶片病害,实现对病害类型的准确判断,从而提高苹果叶片病害的检测精度。本文所做的主要工作总结为:1) 对苹果叶片病害图像进行刷选,并使用LabelImg标注工具对叶片上的病害进行标注;2) 改进YOLOv5s模型,在YOLOv5s模型的Backbone部分引入SE注意力机制;在Neck部分引入Res2Net;采用解耦检测头结构。构建出了YOLOv5s-SRD模型,该模型准确率、召回率、平均精度分别达到84.8%、83.3%、86.0%,相比原模型分别提高了1.3%、1.5%、1.8%,通过消融实验和对比实验证明改进模型的提升效果显著。下一步的工作是研究如何将改进后的模型方便、快捷地应用到实践中。
基金项目
项目名称:甘肃省科技计划项目(定西地区农村电子商务营销综合能力提升);项目编号:20CX9NA095。
NOTES
*第一作者。
#通讯作者。