APP下载

基于深度学习的小麦条锈病病害等级识别

2023-07-01党梦佳高春凤

华南农业大学学报 2023年4期
关键词:条锈病准确率卷积

郭 伟 ,党梦佳,贾 箫,何 强,高春凤,董 萍

(河南农业大学 信息与管理科学学院,河南 郑州 450000)

小麦条锈病是影响我国小麦产量的重要病害,病害发生严重时可造成小麦减产50%~60%,严重威胁粮食安全。及时发现小麦条锈病的侵染信息,对小麦条锈病的防治、提高小麦产量和品质具有重要意义。传统病害调查方法存在工作量大、工作效率低等弊端,且对调查人员的专业经验要求极高[1-3]。因而,研究成本低、准确度高且易操作的监测小麦条锈病病害等级的方法具有重要意义。

利用无人机[4-5]、卫星[6-7]等遥感平台对小麦条锈病进行区域尺度和地块尺度的监测已经取得了一定的成果。因采集图像成像快、存储方便、易于传输、携带方便、操作简单快捷等优点,移动设备目前已普遍应用于病害识别领域。利用移动设备采集图片进行病害识别需要解决两方面问题:将病害从复杂背景中分割出来;进行病害类型识别。在背景分割方面,需要将目标物从复杂背景中分割出来,或当背景颜色与目标相似不能够有效地消除背景情况时,进行病害与背景的分割。余秀丽等[8]设计了一种基于支持向量机(Support vector machine,SVM)的小麦叶部常见病害识别方法,利用中值滤波法和K均值聚类算法实现图像的去噪及病斑分割,但是该方法对颜色相近病害类型的分割效果大打折扣。许高建等[9]采用基于阈值的最大类间方差算法(Otsu)提取小麦赤霉病病害部分,这种方法需要大量的预处理试验。陆海飞[10]提出了一种融合流行排序和能量方程的显著性检测算法,采用超像素方法将图像分块,但试验所用图片对光线要求过高,当背景颜色与目标相似时,不能够有效地消除背景。研究采用机器学习解决花生叶黑斑病、褐斑病分类,杂草分类,健康土豆和病害土豆分类等问题[11-14],并不能满足本文在复杂背景下的小麦条锈病病害等级识别的检测条件。随着深度学习技术的不断发展,其应用在复杂背景分割与识别领域,并取得许多成果。戴雨舒等[15]利用数码相机获取小麦田赤霉病的RGB 图像,语义分割小麦赤霉病图像,使用Deeplabv3+网络模型检测识别的平均精度达96.92%。陈燕等[16]融合ResNet50 和Unet 网络,实现了对小麦茎秆截面尺寸、髓腔尺寸和维管束面积等微观结构参数的检测。顾博等[17]将SLIC 算法融合到GrabCut 自动分割算法中,可以较好地分割出玉米小斑病、大斑病和灰斑病。孔英会等[18]采用布尔显著性结合GrabCut 分割算法,提出复杂背景下花卉识别与模型剪枝的方法,可以有效减少复杂背景对识别精度的影响。在病害识别方面,许景辉等[19]采用VGG-16 模型识别玉米叶片病害。刘阗宇等[20]采用Faster-RCNN 准确定位图像中葡萄叶片,去除背景因素对病害区域的干扰。龙满生等[21]利用迁移学习方法使用AlexNet 模型很好地实现油茶病害的识别,分类准确率高达96.53%。Artzai 等[22]用手机获取图像数据集,提出了3 种不同的CNN 架构,进行多种田间作物病害识别。Chen 等[23]选取VGGNet进行水稻植株的分类预测。深度学习发展迅速,作为深度学习的代表算法之一,卷积神经网络具有较好的图像分类和识别能力。

综上所述,以往的研究大多集中于作物是否患病以及病害类型的识别,而对作物病害等级的识别鲜有报道,由于病害等级识别属于更精细的图像分类,而小麦条锈病的不同病害等级之间差异小,基于细粒度的图像分类十分困难。本研究通过采集自然复杂背景条件下小麦条锈病不同病害等级图像,利用改进的GrabCut 图像分割方法从复杂背景中分割出小麦叶片,再采用改进的B-Resnet50 识别其病害等级,进而提高条锈病病害等级识别的速度和精度,以期实现精准施药,降低农药喷施量,达到提高小麦条锈病防治水平、增加小麦产量的目的。

1 材料与方法

1.1 研究区

许昌市地处中原,四季分明,气候温和,且拥有适量降水和充足的光照条件,有利于小麦生长。试验于2021—2022年在许昌的河南农业大学校园西北角农场(34°08'22"N,113°17'58"E)进行,供试小麦的条锈病是自然发病,对于小麦条锈病的等级识别具有一定的普适性。研究区如图1所示。

1.2 数据获取

小麦叶片图像采集于抽穗期进行,在晴朗天气和阴天均进行图像采集,尽可能还原小麦生长的自然环境。图像采集方式为垂直拍摄,拍摄时间09:00—11:30,共拍摄8 658 张图像,原始图像尺寸为3 024×4 032。采集设备为MI8SE 手机1 200 万像素+50 万像素和iPhone11 手机使用后置摄像头1 200 万像素+500 万像素进行拍摄,拍摄出来的照片质量好、色彩饱满。由统计样本分布情况可知,样本主要涵盖健康小麦叶片和5 级不同程度的病害图像,共8 658 张,其中,健康叶片图像累计1 400张,一级病害图像1 546 张,二级病害图像1 426张,三级病害图像1 401 张,四级病害图像1 803张,五级病害图像1 082 张。针对样本集展开编号,并制定相应的标签,通过0~5 的自然数与类别标签健康及病害等级一至五相对应。

1.3 小麦条锈病病害等级划分

识别小麦条锈病病害等级首先需确定小麦条锈病病害等级标准,本文根据国家标准NY/T 1443.1—2007[24],在小麦条锈病抗病育种专家指导下进行分级。不同病害等级症状如下:健康:叶面上不产生任何可见孢子堆;一级病害:叶面无夏孢子堆,出现小型枯死斑;二级病害:叶面出现枯死条点或条斑,夏孢子堆小且数量少;三级病害:夏孢子堆小至中型,数量稀少,夏孢子堆周围叶组织枯死或明显褪绿;四级病害:夏孢子堆较大,数量较多,夏孢子堆周围叶组织有褪绿现象;五级病害:夏孢子堆大而多,周围不褪绿。

1.4 图像预处理

对网络训练而言,统一的小麦条锈病病害图像规格尺寸便于开展卷积运算操作,图像中间区域集中了所有主要信息。所以,需在批量裁剪后再进行分类识别。在已知图像的基础上既要精简数据,也要确保主要病害图像信息不受影响,而后利用压缩或者扩大的处理方式。本文使用Python编写脚本程序对图像进行预处理,为了减少图像无用信息、提高处理速度,在叶片不发生形变的情况下将图像像素统一修改为640 像素×480 像素(宽×高)。

为了防止因训练样本数量过少而导致模型发生过拟合现象,本研究对已有图像进行旋转、平移、缩放、镜像等操作扩充数据集。将田间采集的小麦病害图像构建的数据集按数量比3∶1 划分训练集和测试集。

2 小麦条锈病等级识别方法

2.1 改进的GrabCut 分割算法

GrabCut 算法由英国微软研究院的Carsten Rother 于2004年提出[25],是基于GraphCut 的改进图像分割算法,在迭代过程中使用RGB 颜色空间的高斯混合模型(Gaussian mixture model,GMM),为了通过迭代取得更好的分割结果,必须通过人工框选多次参数学习和迭代来实现良好的图像分割效果。

若将待分割的图像用无向图G≤V,E>来描述,则V(Vertex)为全部顶点集合,E(Edge)为全部边的集合,普通的图包含顶点和边,而GrabCut 图则是在普通图上增加了2 个顶点,标记为“S”和“T”,被称为终端顶点,其余顶点都与这2 个顶点连接构成边集的一部分。每2 个邻域像素之间的连接叫做n-links。而普通顶点和这2 个终端顶点的连接,构成边t-links。GrabCut 中的Cuts 表示nlinks和t-links的集合,当边集被切断时,该图形的顶点被分为2 个不相交的子集,从而使“S”和“T”图形分割开来,所以被命名为“割”。分割后当各边权值之和最小时,该最小割将图的顶点分成2 个不相交的子集S和T,其中s∈S,t∈T和S∪T=V。这2 个子集分别代表图像的前景像素集和背景像素集,这样就实现了完整的图像分割。nlinks和t-links用不同的计算方法生成权值,从而构建能量函数,整个图像的能量可记为区域能量项与边界能量项的和。

式中,α为不透明度,α∈{0,1},0 为背景,1 为前景目标;θ为图像前景与背景的灰度直方图,θ={h(z,α),α=0,1};z为图像灰度值数组,z=(z1,…,zn,…,zN),k为高斯分量数目(一取般k=5),k={k1,…,kn,…,kN},其中kn就是第n个像素对应于哪个高斯分量,kn∈{1,···,k}。E是能量函数,当E取最小值便得到最佳分割;目标的相似程度,称为区域能量U,表示一个像素属于背景标签0 或目标标签1 的概率。将2 个相邻顶点连接构成边,每个边的权值代表相邻像素点之间颜色的差异程度,即边界能量V,用以表示能量函数的光滑项。

GrabCut 这种能量最小化方案适用于具有给定初始矩形的图像,需要人工框选,使用最小切割操作得到最终分割,效率不高,本文提出了YOLOv5s和GrabCut 自动化组合的方式,使用YOLOv5s 算法首先检测叶片位置并进行定位,快速检测出小麦叶片的矩形框来引导GrabCut 输入,实现快速准确的自动化分割。在进行复杂背景的小麦条锈病叶片分割时,根据训练需求对训练集中的每一幅图像进行标记,在YOLOv5s 训练期间需要一些关于图像的信息:包括被检测对象的边界框的中点坐标(x,y)、宽度(w)和高度(h)及其类定义。用Python 脚本在小麦叶片周围绘制一个边界框。边框x、y、w、h是由边框的左上角(x1、y1) 和右下角坐标(x2、y2)来决定的。YOLOv5s 能够迅速地检测和输出小麦叶片表型信息,并将其作为GrabCut 的交互式输入,然后利用GMM 模型不断迭代,直至收敛,最终得到小麦叶片的分割结果。图2为改进GrabCut 的叶片分割算法的流程图。首先输入原始图像;YOLOv5s 检测叶片图像,获取矩形框;提取叶片表型信息,GrabCut 获取叶片矩形框;分别在初始前景和背景区域内创建GMM;定义节点到终端顶点之间边的权值、节点之间边的权值,构建能量函数并求解;通过最大流最小割算法进行最小化分割的迭代,将选取的初始矩形框进行最小割。

图2 改进的GrabCut 流程图Fig.2 Improved GrabCut flow chart

从图3改进的GrabCut 分割结果来看,在包含复杂背景的叶片图像中,本研究改进的分割算法能够很好地将目标小麦叶片从裸地、杂草、无关麦穗和小麦叶片中分割开来。小麦叶片弯曲、倾斜时也能很好地保留目标小麦叶片的边缘信息。所以本研究改进的分割算法实现了复杂大田环境下小麦叶片背景的分割。

图3 部分数据处理前后Fig.3 The partial data before and after processing

2.2 图像分类方法

2.2.1 ResNet50 在计算机视觉中,要想达到较好的网络效果需要加深网络,而网络愈深,所输入特征的“等级”也会随之提高。研究表明如果网络深度持续加深,梯度弥散/爆炸会阻碍模型训练[26-27],影响模型的识别效果,导致网络无法收敛。每层输入归一化,这样能将可收敛的网络深度提升10 倍。网络层数太深会产生退化问题,这是因为网络层数不断增加,使得网络空间越来越复杂,只能获得局部最优解。针对卷积层数越深造成的网络退化问题[28-29],提出了一种基于深度残差网络的方法。

如图4所示,残差结构采用了跨层连接的思想,通过增加快捷连接(Shortcut connections)来实现恒等映射,并加入到卷积输出中,从而完全训练底层网络。如果输入x需要输出H(x),那么常规的网络就是直接从H(x)中学习输入至输出的映射,而使用跨层连接则学习的是F(x)=H(x)-x,也就是通过多个有参网络层对网络输入与输出数据之间的残差进行学习。在所述目标值H(x) 与所述输入值x的差值,被称作残差(Residual)。如果神经网络的学习精度达到相对饱和,那么F(x)足够小时,输出就会近似地变为H(x)=x,这就变成了恒等映射函数H(x)=x,因此,随着网络的深度增加,梯度不会消失,并且在反向传播中总是保持一个大的数值,在训练期间,底层的误差可以通过快捷连接传递到下一层,模型相当于退化为一个浅层网络,便于优化,从而达到更好的分类效果。

图4 残差结构示意图Fig.4 Schematic diagram of residual structure

2.2.2 改进的B-ResNet50 本文设计一种BResNet50 的小麦条锈病病害等级识别算法,以实现6 种病害等级的分类。在小麦叶片病害图像识别中,夏孢子堆数目分布复杂多样,而且不同等级之间的病害特征差异不明显,为了更高效地提取小麦病害叶片更多的细微特征,提高类与类之间的识别准确率,增加Inception 模块进行多尺度特征提取。Inception 模块如图5所示,包含1×1、3×3、5×5 卷积,对神经网络层与层之间的卷积运算进行拓展,增加2 个不同尺寸、大小各异的卷积核获得更多局部特征,使得卷积神经网络在提取特征过程中获得不同的感受野,实现多尺度特征的融合,提高模型的识别性能,更有利于小麦病害叶片不同细微特征的分类。

图5 Inception 模块Fig.5 Inception module

在Intel(R) Core(TM) i7-7700CPU @3.6 GHz、16 GB 内存、NvidiaGeForceGTX1080Ti等试验条件下,使用CUDA 加速,利用PyTorch 构建基础网络,操作系统为Windows10,Python 版本为3.7。在基于改进的B-ResNet50 残差网络模型训练时,设置迭代次数为100,批大小为64,学习率为0.001。

在ResNet50 网络结构中,输入1 张图片,首先通过1 个步长为2、大小为7×7 的卷积核进行特征提取,从分割的图像中发现,对于小麦条锈病不同等级病害叶片来说,病害特征具有相似的视觉形状,需要提取更为精细的细粒度特征,因此需要的感受野也不同,B-ResNet50 残差网络模型在保留了原有网络结构的基础上增加了2 个Inception 模块,如图6所示,尺寸较大的卷积核有利于提取全局特征,尺寸小的卷积核有利于提取局部特征,增加了网络宽度和网络对细粒度图像的适应性,可以适应不同的分类任务,减少计算量的同时增强网络的表达能力。7×7 卷积核的目的就是提取出输入图像更大邻域范围的信息。

图6 改进的B-ResNet50 的模型架构Fig.6 Model architecture of the improved B-ResNet50

3 结果与分析

3.1 B-ResNet50 结果

采用0~5 对应等级小麦条锈病病害图像,利用本文改进的GrabCut 分割算法进行预处理,设置丢弃率为0.1,学习率为0.001,设置批大小为64,每次将64 个样本数据送入模型训练,共训练100 次迭代后,经过本文改进的B-ResNet50 模型,准确率最高可达97.3%。从图7可以看出训练集在接近20 次迭代就达到超过95.0%的准确率。

图7 训练集和测试集准确率的变化Fig.7 Accuracy changes in training set and validation set

为了评估模型在小麦条锈病病害等级识别中的性能,使用查准率(Precision,P)、查全率(Recall,R)、准确率(Accuracy,A)、平衡F1 分数(F1-score)作为模型评价指标。其中,查准率表示预测为正例的集合中真正例的比例;查全率表示预测结果中真正例与实际所有正例的比值;准确率表示预测正确的样本数占总样本数的比例,指标可对模型整体性能进行评估。各评价指标计算公式如下所示:

式中,TP(True positive)表示模型中预测为正样例的数量;TN(True negative)表示模型中预测为负样例的数量;FP(False positive)表示模型误报的数量,即将负样例预测为正样例的数量;FN(False negative)表示模型的漏报数量。

从图8混淆矩阵中可以清晰地看出小麦条锈病每一等级的识别情况,基于当前的样本集合,在三级病害识别过程中容易误判为四级病害,因为这2 级病害的小麦叶片上都有夏孢子堆,位于2 个级别分界限附近的原始样本多,分级的夏孢子堆有没有枯死或明显褪绿在图像上是很难识别的。

图8 改进后模型(B-ResNet50) 混淆矩阵Fig.8 Confusion matrix of the improved model(B-ResNet50)

表1显示模型的性能指标。小麦条锈病的一、五级病害识别准确度较高,而三、四级病害的识别性能稍微逊色,模型的总体准确率为97.3%。

表1 模型评价指标Table 1 Model evaluation indicators

3.2 数据增强对训练的影响

数据增强有利于提高模型泛化能力。当数据样本数较小倾向于过度拟合训练时,增大训练数据集,让数据集表现出尽可能的多样化。在训练过程中添加足够的样本特征,以使得训练的网络模型提高泛化能力、减少过拟合,本文主要通过平移、旋转、镜像等几何变换进行数据增强扩充数据集。原图和数据增强后得到的图像效果如图9所示。

图9 原图像和数据增强后的图像Fig.9 Original image and data augmented images

使用数据增强的方式对训练集进行扩充,与原本的训练样本进行数据均衡,最后与未进行数据均衡的试验结果进行比对,未经过数据增强训练集的准确率为95.95%,测试集的准确率为97.82%;经过数据增强后训练集的准确率为98.43%,测试集准确率为98.81%。不管是训练集还是测试集,准确率都得到了提升。其中,训练集提升了2.48 个百分点,测试集提高了0.99 个百分点。此外,相较于数据均衡后的试验结果,未进行数据均衡处理的训练集与测试集准确率的差值要更大一些。结果表明,通过随机翻转、旋转、平移等数据增强操作,可以提高数据的多样性,从而提高模型的鲁棒性和泛化性能,并改善模型的过拟合。

3.3 不同网络模型对试验结果的影响

为验证所提出的B-ResNet50 残差网络模型的有效性,将此模型与常用的图像分类模型InceptionV3、DenseNet121 以及ResNet50 模型进行对比试验。在构建的小麦条锈病数据集上训练,使得每个模型具有相同的训练条件,直至模型收敛。在各模型训练过程中记录并输出每一次迭代的分类准确率,结果如图10所示,在数据集中,不同模型的精确度随训练轮数的增加而改变,模型不断学习小麦条锈病不同等级的特征,整体都表现出上升趋势,模型分类能力不断增强。其中,Dense-Net121网络对病害细粒度特征的适应性优势未能充分体现,识别准确率不高;InceptionV3 获得了较高的准确率;基于ResNet50 的模型识别效果明显更好,本文提出的基于改进的GrabCut 的B-ResNet50 网络模型的准确率最高,是因为在原ResNet50 模型的基础上增加了Inception 结构模块,原模型提取了边缘轮廓特征,而加入的Inception 结构通过不同尺寸的卷积核,同时对图像完成了细粒度特征提取,使网络模型可以提取更多小麦条锈病不同等级的细粒度特征,从而获取更丰富的特征信息,提升模型分类能力,提高分类准确率。

图10 不同模型在数据集上的准确率比对Fig.10 Accuracy comparison of different models on the data set

由表2可见,InceptionV3 的准确率达到87.8%,训练时间最短;DenseNet121 的准确率为87.6%,训练时间长;ResNet50 的准确率为88.3%,模型训练时间较长。本研究的模型训练时间长但是准确率最高,达到97.3%。此外,B-ResNet50 也优于原ResNet50,准确率提高了9 个百分点,说明在原ResNet50 网络模型中加入Inception 模块可以有效提高模型分类的准确率。

表2 模型准确率与速率对比Table 2 Model accuracy and rate comparison

图11显示了各模型的混淆矩阵,可以看出各模型对某种小麦条锈病病害等级的识别能力。这些模型对二、三级病害的误识率较高,三级病害中ResNet50 网络的误识率最高;而五级病害的误识率最低。在模型的混淆矩阵中,B-ResNet50 具有更好的性能,并且具有较高的识别准确率,可以为小麦条锈病病害等级图像识别提供参考。

图11 DenseNet121、InceptionV3、ResNet50 和B-ResNet50 的混淆矩阵Fig.11 Confusion matrix of DenseNet121、InceptionV3、ResNet50 and B-ResNet50

B-ResNet50 网络模型在小麦条锈病叶片数据集上的识别准确率为97.3%,与InceptionV3(87.8%)、DenseNet121(87.6%)、ResNet50(88.3%)相比,准确率大幅提升。B-ResNet50 比ResNet50 准确率提高了9 个百分点。说明在原ResNet50 模型的基础上增加Inception 结构模块,通过不同尺寸的卷积核,对图像完成了细粒度特征提取,使网络模型可以提取更多小麦条锈病不同等级的细粒度特征,从而获取更丰富的特征信息,提升模型分类能力,提高分类准确率。

4 结论

本文以小麦条锈病病害等级识别为目标,以移动设备拍摄的图像为数据源,利用改进型的GrabCut算法将叶片与复杂背景进行分割,并对模型进行改进以实现对病害等级的准确识别,得出以下研究结果:利用GrabCut 与YOLOv5s 相结合的方法可以对小麦叶片图像实现自动、准确、快速地分割,且对复杂大田背景下的小麦叶片图像取得较好的分割效果;B-ResNet50 对小麦条锈病病害等级分类的平均准确率达到97.3%,表明本方法可实现复杂环境下小麦条锈病病害等级的自动准确识别。

猜你喜欢

条锈病准确率卷积
小麦条锈病田间为害损失的初步分析
基于3D-Winograd的快速卷积算法设计及FPGA实现
陕西安康:农技专家开展小麦条锈病普防工作
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
从滤波器理解卷积
小麦条锈病持续控制的策略
高速公路车牌识别标识站准确率验证法
215份小麦材料抗条锈病基因分子检测初报