APP下载

基于K-means聚类和RF算法的葡萄霜霉病检测分级方法

2022-06-21李翠玲李余康谭昊然翟长远

农业机械学报 2022年5期
关键词:霜霉病病斑分级

李翠玲 李余康 谭昊然 王 秀 翟长远

(1.北京市农林科学院智能装备技术研究中心, 北京 100097;2.国家农业智能装备工程技术研究中心, 北京 100097;3.西北农林科技大学机械与电子工程学院, 陕西杨凌 712100)

0 引言

霜霉病是全球葡萄生产中危害程度最大的叶片病害之一,具有分布广、流行性强的特点。传统的葡萄霜霉病检测大多依靠有经验的专家和农户在田间进行识别,这种人工检测方式效率低、耗时长,准确率受到专家和农户的经验影响[1-3]。葡萄霜霉病病害程度不同,其防治措施和施药用量存在差异,果园精准变量施药装备需要根据植株病害等级按需施药[4]。病害信息感知是葡萄果园精准变量施药的前提,关键在于实现果园环境下的葡萄霜霉病等级的精准识别。

目前国内外很多学者将光谱技术应用于植物病害检测领域,常用的光谱检测方法有:近红外光谱技术[5-6]、高光谱成像技术[7]、多光谱成像技术[8]、日光诱导叶绿素荧光技术[9]、多光谱荧光成像技术[10]等,这类方法可以对植物病害进行早期探测,模型精度较高。但是,光谱检测技术需要精密的仪器和昂贵的传感器,同时需要较为苛刻的实验环境,实验成本高、效率低,而且不适合在复杂的农业场景应用。

近年来,基于传统图像处理的植物病害检测技术得到了广泛应用,研究集中于植物病害特征提取,采用分类器对病害进行分类[11-12]。此类方法使用较为容易,不需要较多的人工处理便能取得较好的结果。然而,在田间或果园采集的病害图像不可避免地存在光照不均匀和背景复杂的问题,传统的图像处理方法适用于具有单一背景或者简单背景的植物病害识别,对于复杂自然环境的植物病害识别效果较差。

基于深度学习[13-14]的病害识别已成为研究热点,深度学习可以通过构建较深的网络结构,来学习高维信息特征。文献[15]在识别精度上取得了较好的结果,但是这种方法采用大量标签训练的方式进行学习,对于一些病斑边界模糊的研究对象制作标签较为困难。

葡萄霜霉病的分级标准是根据病斑占叶片的面积比例确定的,需要分别计算出病斑的面积和叶片的面积。基于图像处理的葡萄霜霉病分级中存在以下问题:①果园环境复杂,通常会出现光照不均匀、阴影、图像采集背景复杂等问题,导致难以准确地分割出葡萄叶片。②葡萄霜霉病为真菌类病害,病斑的边界不规则、不清晰,很难对病斑区域进行像素级别标注,无法直接采用监督学习分割霜霉病病斑区域。

综上所述,结合传统图像处理和深度学习的各自优点和特长,本文提出基于K-means聚类和随机森林算法的葡萄霜霉病检测分级方法。首先建立葡萄叶片语义分割模型,以实现葡萄叶片区域像素和其他像素的二分类,在复杂背景中提取葡萄叶片;然后在确定葡萄叶片像素区域的基础上,构建葡萄霜霉病病斑分割算法,实现从葡萄叶片中分离出葡萄霜霉病病斑区域;最后通过获取叶片区域像素和病斑区域像素的面积占比,计算出葡萄叶片的病害等级。以期为葡萄霜霉病精准防治提供模型支持,为其他病害分割、病害等级检测提供思路。

1 材料与分级方法

1.1 葡萄霜霉病特点与分级标准

1.1.1葡萄霜霉病发病特征

葡萄霜霉病是受葡萄生单轴霉侵染所引起,当叶片被感染时,病害部位仅在叶脉区域出现油浸状或角型的淡黄色或红褐色小斑点,后逐渐发展扩大为褐色不规则形或多角形病斑,多个病斑相连变成不规则形大斑,天气潮湿时,病斑背面产生白色霜霉状物,即病菌的孢囊梗和孢子囊,发病严重时病叶会早枯早落[16-17]。葡萄霜霉病发病时通常是嫩叶的背部首先感染病菌,并在背部出现白色的霜状物,然后背部的白色霜状物向叶片的正面侵蚀,正面呈现淡黄色至黄褐色病斑。轻度发病和重度发病的葡萄叶片霜霉病病斑如图1所示。图1a为葡萄霜霉病患病较轻的叶片反面图像,葡萄霜霉病在患病较轻时通常出现几个病菌菌落,同时病菌菌落中间清晰,病菌向未感染区域侵蚀,病斑呈现白色霜状朦胧状态,病斑边界不清晰;图1b为葡萄霜霉病较轻的叶片正面图像,病菌从反面向正面感染,病斑呈现黄色,边界较为不清晰;图1c为葡萄霜霉病患病较重的叶片反面图像,在患病较重时病斑呈现白色霜状边界,边界形状不规则,边界不清晰;图1d为葡萄霜霉病患病较重的叶片正面图像,病斑呈现黄色、黄褐色,边界形状不规则,病斑边界不清晰。

图1 葡萄叶片霜霉病图像Fig.1 Leaf images of grape downy mildew

1.1.2葡萄霜霉病分级标准

根据国家标准GB/T 17980.122—2004,葡萄霜霉病以病斑面积占整个叶片的面积占比区分病害等级,分为6个级别,具体分级标准如表1所示。

表1 葡萄霜霉病的分级标准Tab.1 Grading criteria for grape downy mildew

图2 不同病害等级的葡萄霜霉病图像Fig.2 Images of grape downy mildew with different disease levels

病斑面积占整个叶面积的比值可以用图像中的像素数比值确定,即病斑区域的像素个数与叶片区域像素个数的比值[18]。病斑面积占整个叶面积的百分比s的计算公式为[19-20]

(1)

式中Ad——病斑区域面积

Al——叶片区域面积

p——单位像素面积

Rd——病斑区域Rl——叶片区域

利用像素统计方法计算分割的二值图像中病斑区域和叶片区域的像素个数,进而计算像素数比值,可以得到病斑面积占整个叶面积的百分比s,并根据葡萄霜霉病分级标准得出病害等级。

1.2 数据采集与处理

1.2.1数据采集

考虑到温度、光照会对葡萄霜霉病图像采集产生影响,分别在早晨、正午和傍晚3个时间段于北京市房山区波龙堡酒庄 (116°02′E,39°75′N) 采集图像,葡萄品种为赤霞珠,手持手机垂直叶片拍摄图像,图像分辨率为3 120像素×4 160像素,共采集1 082幅图像。兼顾不同光照条件和不同背景,采集不同病害等级的霜霉病叶片和正常叶片图像,包含叶片正面和反面。葡萄霜霉病等级由相关领域专家确定,包含6个病害等级,具体图像采集情况如表2所示,不同病害等级的霜霉病代表图像如图2所示,叶片与背景边界明显,分界线清晰,病斑边界不规则、不清晰,与葡萄霜霉病病斑的特点相符。

表2 葡萄霜霉病图像数据集Tab.2 Image data set of grape downy mildew 幅

1.2.2数据集制作

图像标注是采用深度学习方法提取葡萄叶片最重要步骤。将采集的图像人工裁剪为3 120像素×3 120像素,图像主要显示葡萄叶片区域。采用Labelme软件对图像进行语义分割标注,使葡萄叶片从图像背景中分离,将背景模糊的葡萄叶片当作背景标注,将葡萄叶柄当作背景标注,得到带有叶片边界点的json格式文件,经过深度学习处理得到葡萄叶片的掩膜图像。图3中红色部分为叶片区域,黑色为背景区域。

图3 原始图像和掩膜图像Fig.3 Raw image and mask image

采用数据扩充方法,克服卷积神经网络(CNN)训练阶段时间过长问题,增加训练样本的数量以及多样性,增加噪声数据,提升模型鲁棒性。随机改变训练样本可以降低模型对某些属性的依赖,从而提高模型的泛化能力。采用Augmentor工具包对图像进行随机旋转、镜像、水平翻转、添加高斯噪声、调整亮度等操作,将数据集扩充到6 000幅。

葡萄叶片分割数据集按照比例6∶2∶2随机划分为训练集、测试集和验证集,训练集、测试集和验证集分别包含3 600、1 200、1 200幅图像,共计6 000幅图像。

葡萄霜霉病病斑分割数据集由两部分组成,从采集的1 082幅葡萄霜霉病图像和相关领域专家给出的葡萄霜霉病等级信息组成病害分级评价的数据集;从1 082幅图像中选取100幅包含正反面、代表不同病害等级的图像作为分解图像融合得到训练集,将100幅图像通过K-means算法进行分解,并标注每幅分解图像的葡萄霜霉病病斑类别或者叶片类别。

1.3 葡萄霜霉病检测分级框架

将葡萄霜霉病检测分级分为葡萄叶片提取和病斑分割2个主要过程,如图4所示。首先建立葡萄叶片语义分割模型,实现复杂环境下葡萄叶片提取;然后采用机器学习方法将提取的葡萄叶片分割为叶片区域和病斑区域,计算面积占比得到葡萄霜霉病等级。

图4 葡萄霜霉病检测分级原理框图Fig.4 Schematic of grading detection of grape downy mildew

1.4 葡萄叶片区域提取

考虑到葡萄叶片图像的复杂性,以及提取叶片区域存在耗时长和精度低的问题,采用在Cityscapes数据集中语义分割效果最好的HRNet v2+OCR语义分割算法,对复杂背景下的葡萄叶片图像进行自动分割。

1.4.1HRNet v2网络框架

HRNet[21]是由微软亚洲研究院和中国科学技术大学在2019年提出的神经网络算法,能够全程保持高分辨率的特征图,同时可以得到高级的语义特征,采用多尺度融合策略得到的高分辨率表示不仅信息丰富而且空间精确。为了提高语义分割的精度,目前主流的趋势是先降低分辨率提取高级的语义特征,再采取多样的方法从低分辨率表示恢复到高分辨表示。HRNet通过并行连接高分辨率到低分辨率卷积来保持高分辨率表示,并通过重复跨并行卷积执行多尺度融合来增强高分辨率表示,使得网络在整个过程中都能保持高分辨率的表征。HRNet v2[22]对HRNet进行简单的修改,将网络的4种分辨率输出中的低分辨输出进行双线性上采样,还原到高分辨率输出的尺寸,并将这4种高分辨率输出连接起来作为高分辨率的特征表示。HRNet v2增加了较小的计算消耗,而获得了更强的高分辨率表示能力。

1.4.2并行多分辨率子网

并行多分辨率子网通过并行连接由高分辨率到低分辨率的子网构建而成,每个子网内部采用多条并行卷积序列,邻近的子网间存在降采样层,以将特征图分辨率减半,HRNet网络结构如图5[22]所示。整个模块由Stem、Stage1、Stage2、Stage3和Stage4共5个阶段组成。Stem通过3个连续不同的卷积操作,对原始图像进行特征提取。将产生低分辨率分支的功能以及重复的多尺度融合功能进行了分离,产生低分辨率分支的功能在Stage1、Stage2、Stage3阶段开头,重复的多尺度融合功能在Stage1、Stage2、Stage3阶段的结尾。Stage4首先将3个并行低分辨率子网的输出上采样到高分辨率子网的尺寸,然后通过简单的连接操作连接同样尺寸的4个分支的结果。

1.4.3重复的多尺度融合

HRNet采用不同分辨率特征图像交换单元,使每个子网融合其他分辨率的特征信息。信息交换单元如图6所示[21],上采样时,采用双线性插值,然后采用1×1的卷积进行处理;下采样时,采用步长为2、卷积核为3×3的卷积处理;相同分辨率的层采用直接复制的方式进行处理;3个特征融合的方式采用直接相加。

图6 HRNet信息交换单元Fig.6 HRNet information exchange unit

1.4.4基于物体区域的上下文信息

OCR (Object-contextual representations)[23]是显式地把像素分类问题转换成物体区域分类问题,网络结构如图7所示,与DeepLab v3+的上下文信息不同的是显式地增强了物体信息。OCR的实现分3个部分:①根据主干网络的特征图估测一个简单语义分割结果,即软物体区域,将其作为OCR的输入。②根据软物体区域和最深层网络的像素特征计算得到物体区域,用最深层网络的像素特征和物体区域计算得到物体的像素区域,然后根据每个像素和物体区域特征表示在关系矩阵中的数值把物体区域特征加权求和,得到最后的物体上下文特征。③把物体的上下文特征和最深层网络的像素特征作为上下文增强特征。OCR可计算一组物体区域的特征表达,然后根据物体区域特征表示与像素特征表示之间的相似度将这些物体区域特征表示传播给每个像素。

图7 OCR网络结构Fig.7 OCR network structure

1.5 葡萄霜霉病病斑分割

根据霜霉病发病特点,病斑区域标注非常困难,需要消耗大量的资源,病斑较难直接采取标签标记的方式进行训练学习。而采用传统图像处理或无监督学习的方式提取病斑,需要从大量的数据中寻找一些便于提取的数据特征,要求研究人员具有一定的开发经验,实现难度较大。同时又由于不同葡萄叶片的亮度不同、光照不均匀以及不同病害等级的病斑的特征有差异,采用人工寻找数据特征将会非常困难。本研究设计了先通过无监督学习将图像分解为若干子区域图像,每个子区域图像内颜色特征一致,然后对分割开的若干子区域图像进行有监督训练,将分割开的部分重新合并得到病斑区域和叶片区域,间接地采用有监督学习提取病斑,实现自动提取病斑特征。设计了一种基于K-means和随机森林算法的病斑分割算法,如图8所示。采用K-means算法将叶片图像分解成若干部分,然后采用随机森林算法将若干子区域图像进行合并得到病斑区域和叶片区域。对葡萄霜霉病病斑提取分为葡萄叶片图像分解和葡萄叶片碎片图像合并2个过程。

图8 葡萄霜霉病病斑分割Fig.8 Segmentation of grape downy mildew spots

1.5.1葡萄叶片图像分解

颜色特征是区分葡萄霜霉病病斑和正常叶片区域最直接的特征。在田间采集的图像光照强度不同,葡萄叶片图像分解需要克服光照强度不均匀的干扰。RGB颜色特征极容易受到光照条件影响[24-25],Lab色彩空间的a分量代表从绿色到红色,HSV色彩空间的S分量代表饱和度,YCrCb色彩空间的Cr分量和Cb分量代表色度,此4个色彩特征受光照影响较小。综合考虑到光照强度的影响和霜霉病病斑的颜色特点,选取HSV色彩空间的S分量、YCrCb色彩空间的Cr与Cb分量和Lab色彩空间的a分量作为葡萄叶片图像分解的特征向量。

K-means聚类算法是一种最常见的迭代求解的聚类分析算法,是在最小误差函数的基础上将原始的数据划分为预定的类数K。本研究设计了一种基于K-means的葡萄图像分解算法,具体实现过程如图9所示。

图9 基于K-means的葡萄图像分解算法流程图Fig.9 Flowchart of grape image decomposition algorithm based on K-means

获取去除背景的葡萄叶片图像后,将图像进行色彩空间变换,将RGB色彩空间的图像转换为HSV、Lab和YCrCb色彩空间,分别提取S分量、a分量、Cr分量、Cb分量,然后利用通道融合的方式将图像融合成为多通道图像。聚类中心的数量等于子区域图像的数量,子区域图像的数量不少于2个,子区域图像的数量越多,图像分解得越细致,子区域图像内部的纹理和颜色特征的相似度也越高,但是子区域图像的数量会带来较大的计算开销,本研究选取聚类中心数量为10。随机选取10个像素点作为K-means算法的聚类中心,然后计算每个像素点xi距离聚类直线的欧氏距离,根据距离将每个像素点分配到距离聚类中心最近的簇中。针对每个簇的类别aj,重新计算它的聚类中心,观察聚类中心是否改变,如果改变则需要重复进行计算每个像素点与聚类中心的距离并重新进行分簇,直至聚类中心不发生改变为止。根据聚类结果将去除背景的葡萄叶片图像分解成10个图像,每幅图像内的颜色特征十分接近,可以将病斑区域和叶片区域分割开。

1.5.2葡萄叶片碎片图像合并

纹理在图像中以某种局部排列模式反复出现,排列规则不依赖于颜色或者光照,可以反映图像同质现象的特点,是一种有效的图像特征。灰度共生矩阵能反映图像灰度关于方向、相邻间隔、变化幅度的综合信息,它是分析图像的局部模式和它们排列规则的基础。本研究采用基于统计方法的灰度共生矩阵[26]提取图像的目标纹理参数。根据灰度共生矩阵法,分别提取图像的对比度、能量、熵和逆方差。对比度表示度量矩阵的值如何分布和图像中局部变化情况,反映了图像的清晰度和纹理的沟纹深度;能量变换反映了图像灰度分布均匀程度和纹理粗细度;熵表明了图像灰度分布的复杂程度,熵越大,图像越复杂;方差分矩阵又称逆方差,反映了图像纹理局部变化量,若图像纹理的不同区域间较均匀,变化缓慢,逆方差会较大。

选取S分量、a分量、Cr分量和Cb分量作为病斑分割的颜色特征,选取灰度共生矩阵的能量、对比度、熵和逆方差作为纹理特征,选取这个8个特征的均值和方差作为特征向量。

图10 基于随机森林算法的葡萄叶片碎片图像合并算法流程图Fig.10 Flowchart of fragment images merging algorithm of grape leaf based on random forest algorithm

随机森林算法是多棵决策树为基分类器构建集成分类器,它通过提取多个不同的训练集和随机选取节点分类特征来增大分类模型之间的差异,从而提高模型的泛化和预测能力[27]。本文设计了一种基于随机森林算法的葡萄叶片碎片图像合并算法,具体实现过程如图10所示。

从数据中选取可以代表不同病害等级、不同光照条件的葡萄霜霉病图像正反面各50幅作为训练集。将选取的特征向量输入随机森林算法分类器进行训练,设置超参数决策树数量为100,训练完成后保存模型的权值文件。推理时,随机森林算法加载模型的权值文件,输入一个碎片图像的特征向量,即可判断一个碎片图像属于病斑还是叶片正常部分。输入一个完整葡萄叶片图像的分解图像,通过合并病斑区域和叶片区域的分解图像即可将该完整葡萄叶片图像分为病斑区域和叶片区域。

1.5.3像素尺寸变换

因为语义分割算法参数较多,直接输入原始的高分辨率的图像会占用较大的显存,甚至会造成显存溢出无法训练和推理图像,因此本研究采用较低分辨率的图像用于语义分割算法,分辨率为513像素×513像素。而葡萄霜霉病病斑分割算法采用的是传统机器学习和图像处理的方式,较高的分辨率可以让病斑提取效果更显著、细致,葡萄霜霉病病斑分割算法采用原始的高分辨率图像作为处理对象,分辨率为3 120像素×3 120像素。为了使叶片提取结果和葡萄霜霉病病斑分割输入图像相匹配,本文设计一种像素尺寸变换的策略,具体分辨率变换流程如图11所示。

图11 分辨率变换流程图Fig.11 Flowchart of resolution transformation

1.6 模型训练与测试

1.6.1实验平台

葡萄叶片提取采用Pytorch深度学习框架搭建深度学习网络,结合OpenCV和PIL模块开发,Python版本为3.6,Pytorch版本为1.7;葡萄霜霉病病斑提取采用scikit-learn机器学习框架,结合NumPy软件包开发,scikit-learn版本为0.23.2。实验用计算机平台配置CPU为Intel酷睿i9-10900k @3.80 GHz×20,内存为48 GB的DDR4,显卡为英伟达GeForce RTX3090,显存24 GB,CUDA为10 496个,显卡核心频率为1 785 MHz,算力为35.7 TFLOPS。

1.6.2葡萄叶片区域提取网络训练策略

为了验证HRNet v2+OCR网络的有效性,将HRNet v2+OCR网络应用到葡萄叶片提取中,并与其他模型进行比较。本研究对传统的深度学习网络DeepLab v3+、FCN、FastFCN、UNet和UNet++进行训练和测试,比较传统的语义分割网络和HRNet v2+OCR网络在葡萄叶片区域提取性能上的差异。不同参数量的主干网络会对语义分割的精度产生影响,因此本研究还对比了不同参数量的主干网络在不同语义分割算法上对于葡萄叶片分割产生的影响。

在训练过程中采用随机梯度下降法(Stochastic gradient descent, SGD)作为神经网络优化算法,采用交叉熵损失函数作为优化误差函数。批处理大小设置为16,学习率设置为0.01,为了提高SGD算法的收敛速度,提高训练效果,设置动量为0.9,权值衰减为0.000 5,采用ImageNet的预训练权重,迭代次数为100。

1.6.3葡萄叶片区域提取网络评价指标

采用准确率(Accuracy)和平均交并比(Mean inetersection over union)作为HRNet v2+OCR模型对葡萄叶片区域分割精度的评价指标。

1.6.4葡萄霜霉病病斑分割算法评价指标

采用病害分级准确率(Disease grade accuracy,PDGACC)和病害分级误差(Disease grade error,EDG)作为葡萄霜霉病病斑分割算法的评价指标。

传统的病害检测分级通常采用病害分级准确率来评价算法优劣,但当1级病斑误划分为3级和1级病斑误划分为9级之间存在明显差异,分级误差不适合采用分级准确率来评价算法性能。同时本研究数据集较难划分病斑区域,无法知道病斑的真实面积以及病斑位置,也不适合采用算法划分病斑区域和真实病斑区域的面积交并比作为评价指标。本研究设计了一种基于模糊数学中隶属度的葡萄霜霉病病害分级误差函数,公式为

EDG=4|min(s-x)|

(2)

其中

(3)

式中EDG——葡萄霜霉病病害分级误差

x——依据葡萄霜霉病分级标准的中间变量

n——葡萄霜霉病病害等级

当采用算法得出的葡萄霜霉病病害等级和真实病害等级相等时,EDG为0;当病害等级不一致时,等级相差越大,EDG也越大;当等级误差相同时,面积占比的误差越大,EDG也越大。EDG越大,代表算法与病害真实值等级误差越大,算法表现越差。

2 实验与结果分析

2.1 葡萄叶片提取结果与分析

各语义分割算法的分割精度对比如表3所示,由表3可知,HRNet v2+OCR语义分割算法和W48特征提取网络结合的准确率和平均交并比最大,分别为98.45%、97.23%,较主流网络均有提升。不同的语义分割算法和不同的主干网络结合表现效果也有差异,在同一类主干网络下,主干网络的参数越多,模型的准确率和平均交并比越高。HRNet v2、DeepLab v3+和FastFCN略逊于HRNet v2+OCR算法,FCN、UNet和UNet++表现效果较差。FCN使用反卷积的方式恢复图像分辨率,该方法没有考虑到全局上下文信息,恢复原图像尺寸的过程中特征过于稀疏,对各个像素进行分类,没有考虑到像素之间的关系,缺乏空间统一性,导致其对图像的细节不够敏感,分割图像的边缘不清晰,因此,其分割性能指标较差。UNet和UNet++网络结构较为简单,定位准确性和获取上下文信息不可兼得,图像的分割边缘会有锯齿现象。DeepLab v3+采用编码器-解码器进行多尺度信息融合,通过空间金字塔方式实现不同分辨率下的池化操作,丰富上下文信息,采用膨胀卷积进行特征图抽取;FastFCN采用JPU替代膨胀卷积,而HRNet v2采用并行多分辨率子网方式提取特征,在整个过程中都保存高分辨率,在并行的多分辨率子网之间反复交换信息,进行多尺度融合,高分辨率特征与低分辨率特征之间相互增强。HRNet v2+OCR在HRNet v2的基础上显式增强了物体信息,叶片提取的效果最好。

表3 各语义分割算法分割精度及模型性能比较Tab.3 Comparison of segmentation accuracies and model performances of these semantic segmentation algorithms

图12 葡萄叶片分割结果对比Fig.12 Comparison of grape leaf segmentation results

根据以上结果能够判断HRNet v2+OCR具有良好的分割效果,对于葡萄叶片的提取最接近真实值,能够满足自然环境下复杂背景的葡萄叶片分割的要求。但由于输入深度学习的图像分辨率较低,同时有一些叶片和背景或病斑和背景较为接近,边界较为模糊,导致叶片区域和背景区域难以分割。但HRNet v2+OCR的分割精度已经可以满足后续葡萄霜霉病病斑提取的条件。图12展示了几种典型葡萄叶片在HRNet v2+OCR-W48、HRNet v2-W48、DeepLab v3+- ResNet101、FCN8s-VGG16、FastFCN- ResNet101、UNet和UNet++ 7个模型上的分割结果,可以看出HRNet v2+OCR-W48、HRNet v2-W48、DeepLab v3+- ResNet101和FastFCN- ResNet101分割边界清晰,而FCN8s-VGG16、UNet和UNet++分割边缘较模糊,分割结果丢失一些细节,背景图像存在分割错误的现象。在葡萄叶片和背景较为清晰的图12d和图12e上HRNet v2+OCR-W48、HRNet v2-W48、DeepLab v3+- ResNet101和FastFCN- ResNet101模型表现都比较好,分割出的叶片和真实叶片都比较接近,HRNet v2-W48和DeepLab v3+- ResNet101会有少量背景误分割为叶片的碎片区域。在叶片存在光照不均的图12a、12b、12c上,HRNet v2+OCR-W48、HRNet v2-W48、DeepLab v3+- ResNet101和FastFCN- ResNet101模型在阴影区域、强光区域均出现不同程度的分割异常,光线变化对葡萄叶片区域分割存在较大干扰,DeepLab v3+- ResNet101模型在图12b存在将亮度较高的叶片区域划分为背景区域。FastFCN- ResNet101的边缘较为光滑,HRNet v2+OCR-W48、HRNet v2-W48和DeepLab v3+- ResNet101分割边缘比较锐利和真实叶片的边缘比较接近。从葡萄叶片分割图可以看出,HRNet v2+OCR-W48对光照不均的叶片有较好的适应性,同时在叶片分割边缘与实际葡萄叶片边缘较为接近,在葡萄叶片分割效果上HRNet v2+OCR-W48模型表现最好。

2.2 葡萄霜霉病分级结果与分析

采用人工分割的葡萄叶片图像作为葡萄霜霉病病斑分割算法的输入,对葡萄霜霉病病斑分割算法进行评估。

混淆矩阵是一种精度评价的标准格式,利用混淆矩阵可以直观地估计模型的分类精度,所有正确的预测都在对角线上,所有错误的预测都不在对角线上。对角线上的图像误差为0,对角线两侧预测误差较小,距离对角线越远误差越大。采用混淆矩阵可以直观显示病斑提取算法的精度以及误差信息。葡萄霜霉病分级混淆矩阵如图13所示,从混淆矩阵可以看出病斑分级结果大多数都分布在对角线和对角线两侧,病斑分割结果较好。葡萄霜霉病分级结果如表4所示,正面叶片、反面叶片和正反面叶片的PDGACC分别为53.55%、76.11%和65.25%,病害等级误差小于等于2级时的PDGACC分别为89.06%、97.86%和93.62%,分级误差分别为0.85、0.38和0.60,成功实现了自然环境复杂背景下葡萄霜霉病分级。葡萄霜霉病分级方法反面表现效果优于正面,和人工观察预期相符,正面病斑边界比反面边界更加模糊,同时反面病斑颜色较为单一,容易辨识。

图13 葡萄霜霉病病斑分级Fig.13 Grading of grape downy mildew spots

表4 葡萄霜霉病分级算法评价结果Tab.4 Evaluation of grape downy mildew grading algorithms

不同病害等级分级差异如表5所示,葡萄霜霉病病斑分割算法对于不同病害等级的葡萄霜霉病表现有差异,在正面和反面的3级和5级都表现较好,3级和5级的正面和反面的病斑都处于发病初期阶段,病斑分界线清晰且病斑和周围叶片对比度较强,因此PDGACC较高;在正面和反面的1级都表现较差,1级的指标为病斑面积占比0~5%,聚类算法会出现将少量叶片区域和病斑区域聚为一类或者随机森林算法将少量叶片区域误分割为病斑区域,会被分级为3级,PDGACC较低;正面5级、7级和9级霜霉病发病进入中后期,叶片颜色变化较大,会引起叶片周围区域发生异常,PDGACC低于反面5级、7级和9级的叶片。

从图14可以看出,当叶片光线均匀或者边界清晰时,算法可以将绝大多数病斑区域提取出来,在病斑边缘处可能出现少量分割误差,分割效果较好。当光线不均匀时,或者出现强光阴影时,算法分割会出现异常,算法对强光和阴影较为敏感。

2.3 葡萄霜霉病分级融合评价

采用语义分割算法联合葡萄霜霉病斑提取算法实现葡萄霜霉病检测分级,语义分割算法采用HRNet v2+OCR-W48算法。因为HRNet v2+OCR-W48输出掩膜图像的尺寸较小,直接通过输出掩膜图像求取ROI图像信息量较小,病斑提取效果较差。本研究采用像素尺寸变换的方式进行处理,使得进行病斑提取的图像分辨率较高,提取信息更多,结果如表6所示。

表5 不同病害等级的分级结果Tab.5 Grading results of different disease degrees

图14 葡萄霜霉病病斑分割结果Fig.14 Results of grape downy mildew spot segmentation

从表6和表4可以看出,在葡萄霜霉病分级上,进行像素尺寸变换策略的PDGACC略低于直接采用人工分割的PDGACC。从表6可以看出,进行像素尺寸变换的方式较好,正面、反面和正反面的PDGACC分别为52.59%、73.08%和63.32%,病害等级误差小于等于2级时的PDGACC分别为88.67%、96.97%和92.98%;较未进行像素尺寸变换的效果有明显提升,正面、反面和正反面的PDGACC分别提升7.29、22.64、15.35个百分点,病害等级误差小于等于2级时的PDGACC分别提升4.41、8.38、6.48个百分点;像素尺寸变换的方式在反面表现优于正面;像素尺寸变换的方式对PDGACC提升高于病害等级误差小于等于2级时的PDGACC。

表6 葡萄霜霉病病斑分割算法评价结果Tab.6 Evaluation of spot segmentation algorithms of grape downy mildew

采用语义分割并进行像素尺寸变换联合葡萄霜霉病病斑提取算法结果与直接采用人工划分的葡萄叶片ROI图像差别较小,准确度略低于直接采用人工划分的葡萄叶片ROI图像。从图15可以看出,采用语义分割的葡萄叶片边缘较不清晰,导致病斑在叶片边缘区域存在异常划分;当语义分割异常时,病斑分割会产生异常,可能会出现将土壤划分为病斑区域造成葡萄霜霉病分级错误。而未进行像素尺寸变换方式的病斑分割精度较差,这种方式得到的葡萄叶片图像分辨率较低,采用K-means聚类算法将葡萄叶片分解为子区域图像时,分解的子区域图像存在病斑和叶片区分不开的现象;同时由于像素量较少,病斑和叶片边界更加不清晰,造成分级错误。

图15 葡萄霜霉病病斑融合分割结果Fig.15 Results of segmentation fusion of grape downy mildew spots

3 结论

(1)考虑到实际果园环境的复杂性,采用HRNet v2+OCR算法构建了葡萄叶片提取模型,能够较好地分割实际果园环境下的葡萄叶片,比其他常见语义分割网络的识别准确性上都有一定的提高,该模型在W48主干网络基础上的准确率为98.45%,平均交并比为97.23%。

(2)考虑到霜霉病病斑的特点,设计了一种基于K-means和随机森林算法的葡萄霜霉病病斑分割算法,将无法直接标注病斑区域的图像分解为若干子区域图像进行有监督学习,只需要标注少量子区域图像即可以完成病斑提取,正面叶片、反面叶片和正反面叶片的PDGACC分别为53.55%、76.11%和65.25%,病害等级误差小于等于2级时正面叶片、反面叶片和正反面叶片的PDGACC分别为89.06%、97.86%和93.62%,成功实现了自然环境复杂背景下葡萄霜霉病病斑提取。

(3)在融合叶片提取和病斑提取方法过程中,设计一种像素尺寸变换策略,实现将小尺寸图像还原到原始尺寸,让病斑分割算法有更多的信息和更高的分辨率,同时还设计了一种葡萄霜霉病病害分级误差的评价指标。采用HRNet v2+OCR模型联合葡萄霜霉病斑提取算法,同时进行像素尺寸变换策略时葡萄霜霉病分级正面、反面和正反面的PDGACC分别为52.59%、73.08%和63.32%,病害等级误差小于等于2级时的PDGACC分别为88.67%、96.97%和92.98%。

猜你喜欢

霜霉病病斑分级
不用药 两招搞定黄瓜霜霉病
2016年年末净值规模低于5000万元的分级基金
套袋对柠檬果实外观品质的影响
Ophiognomonia castaneae协同板栗褐缘叶枯病病原菌致病作用的研究
葡萄霜霉病抗性与叶片生理生化指标的关系
轻松治愈花斑癣
轻松治癒花斑癣
完形填空分级演练
完形填空分级演练