基于改进YOLOv3的玉米病害识别方法
2024-12-31张继成黄向党
摘要:为提高玉米作物病害叶片识别模型的准确性,提出改进YOLOv3的玉米病害识别方法。首先,为获得更深的玉米疾病特征,通过更改浅特征图比例和添加第四个检测层,分别修改YOLOv3网络体系结构为YOLOv3-M1和YOLOv3-M2。然后,采用改进的K-means算法进行聚类,获得的锚框倾向于数据集的真实边界框。最后,为每个类别添加一个平衡因子,并对不同类别中样本的难度进行加权来修改损失函数,使得模型能够找到边界盒预测与类别预测之间的最佳点,使算法获得最佳检测效果。结果表明,改进的YOLOv3-M1和YOLOv3-M2模型在测试集上的准确率分别高达95.63%和97.59%,相比YOLOv3模型,识别准确率分别提高4.15%和6.28%,识别准确率在玉米数据集上得到大幅度提高。
关键词:玉米;深度学习;病害识别;YOLOv3模型;损失函数
中图分类号:S24; TP391.4
文献标识码:A
文章编号:20955553 (2024) 070269 07
Maize disease identification method based on improved YOLOv3
Zhang Jicheng1, Huang Xiangdang2
(1. Jingzhou University, Jingzhou, 434020, China; 2. School of Computer Science and Technology,
Hainan University, Haikou, 570228, China)
Abstract:
In order to improve the accuracy of maize disease leaf recognition model, an improved YOLOv3 maize disease recognition method was proposed. First of all, in order to obtain deeper maize disease characteristics, the YOLOv3 network architecture was modified to YOLOv3-M1 and YOLOv3-M2 by changing the proportion of shallow feature map and adding a fourth detection layer. Then, the improved K-means algorithm was used for clustering, and the obtained anchor frame tended to be the true boundary frame of the data set. Finally, a balance factor was added for each category, and the difficulty of samples in different categories was weighted to modify the loss function, so that the model could find the best point between the boundary box prediction and the category prediction, so that the algorithm could obtain the best detection effect. The test results show that the accuracy of the improved YOLOv3-M1 and YOLOv3-M2 models in the test set is as high as 95.63% and 97.59%, respectively. Compared with the YOLOv3 model, the recognition accuracy is increased by 4.15% and 6.28%, respectively, and the recognition accuracy is greatly improved in the corn data set.
Keywords:
maize; deep learning; disease recognition; YOLOv3 model; loss function
0 引言
玉米的产量和品质受玉米病害影响较大,常见病害主要有纹枯病、叶斑和锈病[1]。玉米病害通常依靠农林专家进行田间现场识别,该方法存在主观性强、耗时、容易发生误判等缺点[2],无法满足大规模种植的需要。由于识别能力低,病害传播迅速,植株往往会错过最佳控制期。因此,能够准确、快速地识别玉米叶片病害至关重要。机器学习技术已成功地从植物叶片图像中识别和分类多种玉米病害,识别效果良好,但提取特征困难、适应性差。近年来,深度学习方法广泛用于图像识别,和传统的检测方法相比,基于深度卷积网络(CNN)的病害检测方法特征提取操作简单,能够自动提取图像特征,对图像的缩放、位移和失真具有良好的适应性。只要获得大量的作物病害图像数据集,CNN可以用来训练模型的预测结果,不仅可以节省时间和人力,还可以进行实时判断,此方法大大减少了由疾病造成的巨大损失。目前基于深度学习的植物病虫害的研究涉及不同的蔬菜、水果和粮食作物等[35]。
Chen等[6]现场收集了8 616张含有各种番茄病的图像,通过小波变换对图像进行去噪和增强,采用双通道残差注意网络模型对图像进行识别,准确率约为89%。Zhang等[7]提出一种改进的Faster R-CNN方法来检测健康番茄叶片和四种病害,改进后的作物叶片病害检测方法比原来的方法提高2.71%。Zhong等[8]提出基于DenseNet-121CNN的回归、多标签分类和焦点损失函数三种方法来识别苹果叶病害,提出的方法在测试集上的准确率分别达到了93.51%、93.31%和93.71%。Waheed等[9]提出一种用于玉米叶部病害识别和分类的优化密集卷积神经网络结构,提出的优化DenseNet模型达到了98.06%的准确率,并且具有较少的参数和计算时间。王国伟等[10]提出利用卷积神经网络对玉米病害进行识别,平均识别率达96%,平均计算时间为0.15 s。许景辉等[11]采用迁移学习的方法对玉米病害图像的平均识别准确率为95.33%。樊湘鹏等[12]提出改进卷积神经网络的玉米病害识别方法,优化后的CNN模型平均识别精度为97.10%。董萍等[13]采用迁移学习的方法对玉米叶片病害进行识别研究,有效提高了识别效率。
本文通过更改浅特征图比例、在现有三个检测层中添加第四个检测层,分别修改YOLOv3网络体系结构,采用改进YOLOv3来检测玉米病害,为农业的智能化发展提供理论基础。
1 数据材料
1.1 玉米图像数据集
玉米图像数据集试验中所使用的图像数据均来自PlantVillage数据集[14],包含3种病害图像和玉米健康图像,如图1所示。统一修改图片尺寸为256像素×256像素。
1.2 数据增强
试验中将获取到的3 852张玉米病害叶片图像划分两类:训练集和测试集,同时确保它们的比例为8∶2。考虑到试验中图像样本相对较少,为防止出现过拟合现象,增强模型的泛化能力,采用随机旋转变换、随机水平和上下位置平移、随机缩放比例、随机改变对比度和亮度等数据增强方法进行数据扩充。增强后的玉米图像数据集分布如表1所示。
2 改进YOLOv3网络检测模型
2.1 改进YOLOv3损失函数
IoU是原始图像中预测与标记边界框之间的重合度,IoU值通常用作对象检测中的评估指数,用于确定一组预测中的真阳性和假阳性。但是,大多数检测框架不会将此值组合以优化损失函数。传统的IoU作为损失函数无法优化两个对象不重叠的情况,同时无法准确反映两个对象之间的重合程度。在玉米病害的检测中,回归盒的准确性直接决定了检测的成功率。通过引入GIoU[15]解决了IoU的缺点,IoU值范围为[0,1],而GIoU具有对称区间和[-1,1]的值范围,只有当两个对象完全重叠时,才会出现值1,当两者不相交并且距离很远时,取-1的最小值。因此,GIoU是一个很好的距离测量指标,与IoU不同,GIoU能够很好地表示重叠区域和非重叠区域的重合度。如式(1)、式(2)所示,GIoU损失可以取代大多数对象检测算法中的包围盒回归的损失函数。
IoU=(a∩b)(a∪b)
(1)
GIoU=IoU-c(a∩b)c
(2)
式中:
a——预测框的区域;
b——真实框的区域;
c——围绕a和b的最小周长矩形。
为完成对象检测的边界框预测和类别预测的两个子任务,原始YOLOv3网络的损失函数包括坐标预测、置信度预测和类别预测,其损失函数如式(3)所示。
Loss=Losscoord+Lossobj+Lossclass
(3)
式中:
Losscoord——坐标预测损失;
Lossobj——置信度预测损失;
Lossclass——类别预测损失。
坐标预测损失计算如式(4)所示。
Losscoord=
λcoord∑S2i=0∑Bj=0Iobjij(xi-x^i)2+(yi-y^i)2+
λcoord∑S2i=0∑Bj=0Iobjij[(wi-w^i)2+
(hi-h^i)2]
(4)
式中:
λcoord——损失权重,取值为5;
S2——输入图像的网格数;
B——预测的每个网格中先验框数量;
Iobjij——
网格i预测边界框j且检测到一个对象时,值为1,反之为0;
xi、yi、wi、hi——
预测框目标的中心点坐标、宽、高;
x^i、y^i、w^i、h^i——
真实目标的中心点坐标、宽、高。
目标物体置信度的误差损失采用交叉熵来进行计算,此外,不管网格是否有负责某个目标物体,都会计算置信度误差,但是输入的图像中大部分的空间不包含目标物体,只有少部分空间包含了目标物体,因此需要添加权重对不包含目标物体的置信度损失进行约束。目标物体的置信度预测损失计算如式(5)所示。
Lossobj=
∑S2i=0∑Bj=0Iobjij(Ci-C^i)2+λnoobj∑S2i=0∑Bj=0Inoobjij(Ci-C^i)2
(5)
式中:
Inoobjij——
i个网格的第j先验框不存在对象;
λnoobj——损失权重;
Cji、C^ji——
目标预测置信度和真实置信度。
目标物体的类别预测损失计算如式(6)所示。
Lossclass=∑S2i=0Iobjij∑C∈class[pi(C)-p^i(C)]2
(6)
式中:
C——被检测对象的类别;
pi(C)、p^i(C)——
C类的预测概率和实际概率。
坐标预测和置信度预测的损失函数是为了确保边界框回归的准确性。在锚定边界框的自适应维度聚类之后,边界框回归的准确性得到了相应的提高。另一个子任务,类别预测的准确性变得更加重要。
识别玉米病害的准确性是不同的,因为病害的多样性和早期物体的小尺寸,当它们聚集和重叠时,会有多种形态。因此,与疾病不同,学习病害的特征是复杂的,并且很容易错过小型物体的检测,同时,不同类别的病害具有不同的病变大小。为缩小它们之间的差距,本文为每个类别添加一个平衡因子,并对不同类别中样本的难度进行加权。类别预测的修改损失函数如式(7)所示。
Loss′class=
∑S2i=0IobjijαC∈class∑C∈class[pi(C)-p^i(C)]2
(7)
式中:
αC∈class——平衡因子。
通过调整平衡因子模型能够找到边界盒预测与类别预测之间的最佳点,使算法获得最佳检测效果。改进后的损失函数如式(8)所示。
Loss′=
λcoord∑S2i=0∑Bj=0Iobjij(1-GIoU)+
∑S2i=0∑Bj=0Iobjij(Ci-C^1)2+
λnoobj∑S2i=0∑Bj=0Inoobjij(Ci-C^i)2+
∑S2i=0IobjijαC∈class∑C∈class[pi(C)-p^i(C)]2
(8)
2.2 改进YOLOv3模型结构
YOLOv3[16]是各种应用领域中使用最强大的对象检测算法之一,与YOLOv1和YOLOv2相比,显著提高了对象检测精度、对象包围盒定位和检测速度。YOLOv3的网络结构被建模为具有一个主干CNN和三个称为YOLO层的对象检测头的单一回归问题,这三个检测头将输入图像分成大小为S×S的三个不同网格,每个网格单元负责检测中心位于该网格单元上的对象。
YOLOv3使用的Darknet-53特征提取网络降低了网络的训练难度,并使用不同的尺度特征图(13×13、26×26、52×52)进行目标预测,从而加强了目标语义信息与位置信息之间的联系,表现出更好地性能。然而,在与大规模特征图上采样后连接小尺度特征图的操作不能使微小目标预测特征图获得更深层次的语义信息。因此,在玉米病害图像检测的实际应用中,由于图像中的病害特征密集,经常出现漏检和误检的现象。YOLOv3使用数据集对模型进行训练和评估,数据集包含自然图像,其对象大多大于玉米病害图像。YOLOv3的原始模型在不修改网络架构和超参数优化的情况下,在检测诸如玉米病害图像等小物体方面实现了低性能。
为有效提高YOLOv3在玉米病害图像检测的能力,本文改进YOLOv3中不同尺度的预测框,结合特征金字塔和特征重组的思想,改进的模型可以从图像信息中获得玉米病害的更多细粒度特征。通过修改原始的YOLOv3网络体系结构以获得两种不同的体系结构,称之为YOLOv3-M1和YOLOv3-M2,结构如图2、图3所示。
YOLOv3-M1的网络结构如图2所示,在YOLOv3-M1中,将浅特征图比例更改为104×104,与原始YOLOv3模型相比,提高了玉米病害图像的检测,具有比病害图像大小更大的接受场。修改后的YOLO3-M1具有尺寸为13×13,26×26和104×104的检测层特征图,修改后的多尺度特征图以最小的计算成本提取更稳健的玉米病害检测特征。
在YOLOv3-M2中,本文在原始YOLOv3模型的现有三个检测层中添加了第四个检测层。使用YOLOv3中下采样输出特征图8倍的上采样操作与4倍下采样特征图串联,此操作将其中一个输出特征映射扩展为104×104。此外,一系列1×1和3×3卷积用于减少通道数量并将总计算量最小化到一定程度,还改善了神经网络的非线性特征和表达能力,使预测特征图能够获得更丰富的上下文语义信息,从而提高了检测玉米病害的灵敏度。改进的YOLOv3-M2的网络结构如图3所示,有四个检测特征图,尺寸为13×13,26×26,52×52和104×104。为新添加的检测层添加了三个额外的锚箱尺寸,添加层提高了YOLOv3用于小物体检测的性能,因为较深特征与较浅特征的短连接增强了检测层的细粒度特征鉴别能力。
2.3 改进K-means的先验框生成算法
在YOLOv3中,采用Anchor(锚点框)机制高效地预测不同尺度与宽高比的物体边界框,因此选择Anchor值至关重要,合适的Anchor值可以实现更快速、准确的定位,同时减少损失值与计算量,提高目标检测的速度与精度。对于YOLOv3算法,采用原始的K-means聚类方法来获取Anchor值,通过将统计先验经验添加到模型中,在试验期间和不确定性中需要多次试验。
本文沿用YOLOv3中的Anchor思想,按照每个特征点需要聚类3个不同比例的Anchor框的原则,在改进的YOLOv3-M1和YOLOv3-M2中分别聚类9个和12个不同尺度的Anchor。K-means算法选择初始聚类中心具有随机性,改进的K-means++算法认为点离当前簇中心越远,被选择为簇中心的概率越高,这有效地降低了由初始簇点的选择引起的分类错误并提高了检测速度。具体的计算过程如下:(1)要测试的每个玉米病害图像的尺寸作为分析样本,设Y1,Y2,…,Yk为k个聚类中心。(2)第一个聚类中心Y1通过随机选择一个样本产生。(3)计算每个样本xi与最近聚类中心IoU之间的距离d(xi,Yk),下一个聚类中心由轮盘赌方法根据式(9)算出的概率大小选出。(4)重复最后一步,直到所选聚类中心的数量为k。(5)计算每个样本到k个聚类中心的距离,分给具有最小IoU距离的聚类。(6)将聚类点修改为聚类中IoU距离的中位数,并重复最后一步,直到聚类点不再更改,然后确定的k个聚类点就是待检测玉米病害尺寸的代表值。
P=d(xi,Yk)2∑d(xi,Yk)2
(9)
3 试验结果与分析
3.1 试验配置和参数设置
试验运行环境为Windows 10操作系统,采用python3.7语言编程实现网络的训练和测试,TensorFlow深度学习框架。硬件平台配置为Intel i7-8700,显卡NVIDIA GeForce GTX 1070Ti。试验参数设置如表2所示。
本文采用的评价指标为平均精度均值mAP、召回率R、准确率P、F1值,计算如式(10)~式(13)所示。
P=TPTP+FP
(10)
R=TPTP+FN
(11)
F1=2PRP+R
(12)
mAP=∑Mk=1PRM
(13)
式中:
TP——正确划分为正例的个数;
FP——错误划分为正例的个数;
FN——错误划分为负例的个数;
M——检测样本类别数量。
3.2 结果分析
图4为训练集和测试集下不同YOLOv3模型的平均精度均值mAP的变化趋势。
从图4可以看出,3种模型在训练集和测试集下精度均值mAP存在震荡和波动,在迭代40次左右逐渐趋于稳定,整体呈现出上升趋势。本文提出的改进YOLOv3模型YOLOv3-M1和YOLOv3-M2在训练集和测试集下精度均值mAP都要优于YOLOv3模型,同时改进的YOLOv3-M2模型的mAP要优于YOLOv3-M1模型。
使用YOLOv3、改进的YOLOv3-M1和YOLOv3-M2三种模型分别对同一个玉米病害叶片数据集进行分类识别任务,三种模型在训练集和测试集下的准确率如图5所示。可以看出,不论是训练集还是测试集,改进的YOLOv3-M1和YOLOv3-M2模型的准确率都优于YOLOv3模型,整体上来看,YOLOv3-M2模型的识别准确率高于YOLOv3-M1模型,识别效果良好。三种模型随着迭代次数的增加,识别准确率存在震荡波动,尤其在测试集下,其波动较大。改进的两种模型的识别准确率随着迭代次数的增加最后逐渐趋于100%。
三种模型对玉米病叶片数据集的识别准确率如表3所示。
三种模型在测试集上的识别准确率略低于在训练集上的识别准确率,改进的YOLOv3-M1和YOLOv3-M2模型在训练集上的准确率分别高达96.26%和98.43%,相比YOLOv3模型,识别准确率分别提高4.23%和6.58%,改进的YOLOv3-M2模型识别准确率比YOLOv3-M1模型提高2.25%。改进的YOLOv3-M1和YOLOv3-M2模型在测试集上的准确率分别高达95.63%和97.59%,相比YOLOv3模型,识别准确率分别提高4.15%和6.28%,可以看出,改进的两种模型对玉米病叶识别效果良好,识别准确率在玉米数据集上得到大幅度提高。
由于不同玉米病害类别的图像纹理特征不同,因此每种病害的识别准确率也不同。图6为三种模型对测试集玉米图像预测的混淆矩阵,由图中可以得出不同模型对玉米纹枯病、尾孢叶斑病、锈病以及健康叶片的识别准确率如表4所示。
从表4可以看出,和YOLOv3模型相比,改进的YOLOv3-M1和YOLOv3-M2模型在玉米纹枯病、尾孢叶斑病、锈病以及健康叶片的识别准确率都大幅度提高,在玉米纹枯病和玉米尾孢叶斑病的识别准确性相对较低,这是由于两种疾病的叶子具有相似的纹理和病变,容易导致识别中的误判。但在玉米锈病叶片具有较高的精度,因为锈病的叶子比其他疾病的叶子具有更大的颜色和病变差异,并且特征是显而易见的。其中YOLOv3-M2模型对健康玉米和玉米锈病的识别准确率达到100%。各模型对玉米病害的识别结果如图7所示。
三种模型在召回率、F1值、每张推理时间的性能指标如表5所示,和YOLOv3模型相比,改进的YOLOv3-M1和YOLOv3-M2模型在单张图片推理时间耗时较短的情况下,测试集召回率和F1值都提高不少,其中召回率分别提高5.29%和7.21%,F1值分别提高4.62%和6.43%。改进的YOLOv3-M2模型在每张图片推理时间降到48 ms。
4 结论
为改善玉米病害分类识别效果,本文通过改进原始的YOLOv3网络体系结构构建两种玉米病害识别模型YOLOv3-M1和YOLOv3-M2,分别对玉米纹枯病、尾孢叶斑病、锈病以及健康叶片进行识别和分类。
1)" 采用K-means++聚类算法获得用于玉米病害识别模型训练的先验框,通过改进YOLOv3损失函数能够找到边界盒预测与类别预测之间的最佳点,使算法获得最佳检测效果。
2)" YOLOv3-M1和YOLOv3-M2模型在训练集和测试集下精度均值mAP都要优于YOLOv3模型,同时改进的YOLOv3-M2模型的mAP要优于YOLOv3-M1模型。
3)" 不论是训练集还是测试集,改进的YOLOv3-M2和YOLOv3-M1对玉米病害的识别准确率都优于YOLOv3模型。其中改进的YOLOv3-M1和YOLOv3-M2模型在测试集上的准确率分别高达95.63%和97.59%,相比YOLOv3模型,识别准确率分别提高4.15%和6.28%,识别准确率在玉米数据集上得到大幅度提高。
4)" 在测试集的召回率、F1值方面,改进的YOLOv3-M2和YOLOv3-M1也取得较优的性能,其中在测试集召回率分别提高5.29%和7.21%。改进的两种模型的每张推理时间进一步缩短,其中改进的YOLOv3-M2模型在每张图片推理时间降到48 ms。
参 考 文 献
[1]Zhang X, Qiao Y, Meng F, et al. Identification of maize leaf diseases using improved deep convolutional neural networks [J]. IEEE Access, 2018, 6: 30370-30377.
[2]Bai, Xiaodong, Cao, et al. Rice heading stage automatic observation by multi-classifier cascade based rice spike detection method [J]. Agricultural amp; Forest Meteorology, 2018, 259: 260-270.
[3]Pattnaik G, Shrivastava V K, Parvathi K. Transfer learning-based framework for classification of pest in tomato plants [J]. Applied Artificial Intelligence, 2020, 34(13): 981-993.
[4]Xiong Y, Liang L, Wang L, et al. Identification of cash crop diseases using automatic image segmentation algorithm and deep learning with expanded dataset [J]. Computers and Electronics in Agriculture, 2020, 177: 105712.
[5]Sujatha R, Chatterjee J M, Jhanjhi N Z, et al. Performance of deep learning vs machine learning in plant leaf disease detection [J]. Microprocessors and Microsystems, 2021, 80: 103615.
[6]Chen X, Zhou G, Chen A, et al. Identification of tomato leaf diseases based on combination of ABCK-BWTR and B-ARNet [J]. Computers and Electronics in Agriculture, 2020, 178: 105730.
[7]Zhang Y, Song C, Zhang D. Deep learning-based object detection improvement for tomato disease [J]. IEEE Access, 2020, 8: 56607-56614.
[8]Zhong Y, Zhao M. Research on deep learning in apple leaf disease recognition [J]. Computers and Electronics in Agriculture, 2020, 168: 105146.
[9]Waheed A, Goyal M, Gupta D, et al. An optimized dense convolutional neural network model for disease recognition and classification in corn leaf [J]. Computers and Electronics in Agriculture, 2020, 175: 105456.
[10]王国伟, 刘嘉欣. 基于卷积神经网络的玉米病害识别方法研究[J]. 中国农机化学报, 2021, 42(2): 139-145.
Wang Guowei, Liu Jiaxin. Research on corn disease recognition method based on convolutional neural network [J]. Journal of Chinese Agricultural Mechanization, 2021, 42(2): 139-145.
[11]许景辉, 邵明烨, 王一琛, 等. 基于迁移学习的卷积神经网络玉米病害图像识别[J]. 农业机械学报, 2020, 51(2): 230-236, 253.
Xu Jinghui, Shao Mingye, Wang Yichen, et al. Recognition of corn leaf spot and rust based on transfer learning with convolutional neural network [J]. Transactions of the Chinese Society for Agricultural Machinery, 2020, 51(2): 230-236, 253.
[12]樊湘鹏, 周建平, 许燕, 等. 基于改进卷积神经网络的复杂背景下玉米病害识别[J]. 农业机械学报, 2021, 52(3): 210-217.
Fan Xiangpeng, Zhou Jianping, Xu Yan, et al. Corn disease recognition under complicated background based on improved convolutional neural network [J]. Transactions of the Chinese Society for Agricultural Machinery, 2021, 52(3): 210-217.
[13]董萍, 卫梦华, 时雷, 等. 迁移学习在玉米叶片病害识别中的研究与应用[J]. 中国农机化学报, 2022, 43(3): 146-152.
Dong Ping, Wei Menghua, Shi Lei, et al. Research and application of transfer learning in identification of maize leaf diseases [J]. Journal of Chinese Agricultural Mechanization, 2022, 43(3): 146-152.
[14]张开兴, 吕高龙, 贾浩, 等. 基于图像处理和BP神经网络的玉米叶部病害识别[J]. 中国农机化学报, 2019, 40(8): 122-126.
Zhang Kaixing, Lü Gaolong, Jia Hao, et al. Identification of corn leaf disease based on image processing and BP neural network [J]. Journal of Chinese Agricultural Mechanization, 2019, 40(8): 122-126.
[15]Rezatofighi H, Tsoi N, Gwak J Y, et al. Generalized intersection over union: A metric and a loss for bounding box regression [C]. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2019: 658-666.
[16]Redmon J, Farhadi A. YOLOv3: An incremental improvement [J]. Arxiv Preprint Arxiv: 1804.02767, 2018.