APP下载

基于多尺度残差神经网络的葡萄叶片病害识别

2021-05-17李书琴

计算机工程 2021年5期
关键词:褐斑病葡萄准确率

何 欣,李书琴,刘 斌

(西北农林科技大学信息工程学院,陕西杨凌 712100)

0 概述

葡萄在生长过程中受到环境、细菌等影响而产生黑腐病、褐斑病、黄叶病和毛毡病等病害,这些病害多数发生在葡萄树的叶片部位,对葡萄的产量和品质造成不利影响。传统凭借经验和病理知识的人工确诊方式存在周期长且耗费人力的问题,而计算机视觉的发展给农作物病害识别带来了新的研究方向[1⁃2],比如日趋成熟的机器学习[3⁃5]与深度学习[6⁃8]为葡萄叶片病害识别提供了新的解决方案。不同程度的同种葡萄病害在病斑的纹理和颜色等方面具有较强的相似性,导致识别不同程度病害的准确率降低。基于深度学习的卷积神经网络能够避免人为设计提取病害特征的问题,为实现葡萄叶片病害识别的自动化,文献[9]采用多类支持向量机对葡萄叶片病害进行分类,平均识别准确率可达到90%。文献[10]采用UnitedModel 对4 种葡萄叶片病害进行识别,使得识别准确率达到99.17%。文献[11]采用尺度不变特征转换(Scale Invariant Feature Transform,SIFT)特征对叶片序列日期进行匹配得到生长序列图,并通过检测序列图中病斑面积与数量的变化情况诊断叶片病害。但是该方法对叶片姿态要求较为严格,存在一定的局限性。文献[12]使用MobileNet 对6 种葡萄病害进行识别,获得了87.50%的平均识别准确率。文献[13]采用OTSU 算法对葡萄叶片病害区域进行分割,并利用形态学算法改善病害形态,选择Prewitt 算子提取病变区域的完整边缘,使用BP 神经网络进行病害识别。文献[14]提出一种葡萄叶片病害自动分割识别系统,平均分割准确率和分类准确率可分别达到90%和92%。文献[15]采用全局阈值法提取葡萄病害部位,通过支持向量机对葡萄叶片图像进行分类,并在1 135 张葡萄叶片病害测试图像上获得了93.035%的最佳识别准确率。文献[16]提出一种基于图像分析和BPNN 的葡萄叶片病害自动检测方法,使得准确率高达91%。

以上传统的机器学习方法需要人工提取病斑特征,对病害表征相似的病害提取特征能力有限,且不同病害通常需要提取不同的特征,因此此类方法不具有普适性。本文在ResNet[17]网络的基础上,通过引入多卷积组合[18]结构和SENet(Squeeze-and-Excitation Networks)[19]来提高网络特征提取能力,并利用构建的识别模型实现对葡萄叶片病害的准确识别。

1 实验数据

本文研究的葡萄叶片病害图像由以下2 个数据集组成:AI Challenger 中葡萄叶片的数据集和从宁夏志辉源石酒庄葡萄酒庄采集的葡萄叶片毛毡病与健康图像数据集,采集时间为2019 年5 月,在自然光条件下使用小米6X 手机拍摄。8 种葡萄叶片病害样本图像如图1 所示。

图1 8 种葡萄叶片病害样本图像Fig.1 Sample images of eight grape leaf diseases

由于AI Challenger 中黄叶病一般程度的病害叶片数量较少,为平衡各类别病害样本数量,对黄叶病一般程度的病害叶片进行90°、180°和270°的旋转和明亮度的变化操作,使得数据扩充至原始数据的7 倍,扩充后的数据集构成如表1 所示。

表1 实验数据集构成Table 1 Composition of experimental dataset

2 葡萄叶片病害识别

2.1 损失函数

为更好地识别葡萄叶片病害,防止病害图像的非叶片区域影响病害识别而导致识别准确率下降,应先提取葡萄病害图像中的葡萄叶片区域,再对葡萄叶片区域进行病害识别。采用Mask R-CNN[20]对葡萄叶片区域进行提取,并将提取的葡萄叶片输入Multi-Scale ResNet 中进行处理和识别。

损失函数能够反映模型与实际数据的差异,且损失函数越小则表明模型效果越好。采用Mask R-CNN提取葡萄叶片时,每一个感兴趣区域(Region of Interest,RoI)的损失函数L如式(1)所示:

其中,L(class)表示分类损失,L(bbox)表示边框回归损失,L(mask)表示掩膜(mask)损失。

L(class)的计算方法如式(2)所示:

其中,pu表示真实分类u对应的概率。根据数据集中葡萄叶片的种类划分了复杂背景下病害叶片、复杂背景下健康叶片和简单背景下病害叶片这3 种类别。

边框回归的目的是增大输出边框与真实边框之间的IoU(Intersection-over-Union)重叠区域。L(bbox)评估检测框定位的损失函数为:

其中,tu表示真实分类对应的预测平移缩放参数且,v表示真实平移缩放参数且v=(vx,vy,vw,vh)。smoothL1损失函数如下所示:

L(mask)表示平均二值交叉熵损失,对于一个属于第k个类别的RoI,Mask R-CNN 中的mask 分支用于预测k个种类的二值掩膜输出,对于第k类的RoI,第k个二值掩膜输出是RoI 的损失L(mask)。L(mask)仅考虑第k个mask,从而使得网络能够输出每一类的mask,且不存在不同类别mask 之间的竞争,具体如式(5)所示:

其中,k表示叶子种类数目。

2.2 葡萄叶片提取

为更好地提取葡萄叶片,本文利用Mask R-CNN提取葡萄叶片。在提取葡萄叶片之前,由于Mask R-CNN需要统一图像大小作为网络输入,因此选取双线性插值法对输入图像进行处理。双线性内插法示意图如图2 所示,即P点值先在x方向上进行一次线性插值,再在y方向上进行一次线性插值。

图2 双线性内插法示意图Fig.2 Schematic diagram of bilinear interpolation method

综合x和y这2 个方向上的双线性插值如式(6)所示:

其中,f(x,y)表示坐标为(x,y)点的值,Q11表示坐标为(x1,y1)的点,Q12表示坐标为(x1,y2)的点,Q21表示坐标为(x2,y1)的点,Q22表示坐标为(x2,y2)的点。

将图像缩放到统一大小后使用LabelMe[21]标注数据集,标注类别为葡萄叶片和背景区域。标注数据集后将葡萄叶片病害图像输入Mask R-CNN网络中进行检测,选取ResNet101 作为Mask R-CNN 的主干网络,将Microsoft COCO数据集上训练好的Mask R-CNN模型迁移至葡萄叶片病害数据集上进行训练,并对网络模型的参数值进行初始化。Mask R-CNN是由何凯明等人在原始Faster R-CNN[22]基础上增加全卷积网络(Fully Convolutional Networks,FCN)[23]而改进得到的,可以快速准确地进行目标检测和精准语义分割。Mask R-CNN 网络结构如图3 所示,该框架可以用来完成目标检测、目标分类和像素级目标分割,且具有良好的扩展性和易用性。

图3 Mask R-CNN 网络结构Fig.3 Mask R-CNN network structure

Mask R-CNN 的创新点在于采用RoI Align 解决了像素偏差(Misalignment)问题。RoI Align 通过遍历每个候选区域而将其分割成K×K个单元,采用双线性内插法计算每个单元中4 个坐标的位置并进行最大池化。

在输入图像到CNN 网络中获得对应的特征图后,从特征图中获得多个候选RoI,再将这些候选的RoI 发送至RPN 网络进行二值分类和边框回归,从而过滤掉一部分候选RoI,并对剩余的RoI进行RoI Align 操作得到大小固定的特征图。将上述RoI 通过全连接层进行分类,边框回归通过对每一个RoI 进行FCN 操作,从而生成mask。

经过Mask R-CNN 处理后可得到葡萄叶片的mask 图像,对图像的非叶片区域进行零像素填充,即保留葡萄叶片的像素值,其余部分填充零像素。本文提取的葡萄叶片病害图像如图4 所示。根据填充后的图像中叶片区域占比决定对叶片是否进行缩放,当占比值低于50%时,对mask 图像再次使用双线性插值法将叶片区域恢复至原始大小,便于后续识别网络进行有效识别。

图4 本文提取的葡萄叶片病害图像Fig.4 Grape leaf disease image extracted by this paper

2.3 葡萄叶片病害识别模型

图5 残差块结构Fig.5 Structure of residual block

ResNet 通常被广泛用于病害和虫害的识别[24-26],它通过增加网络的深度有效提升神经网络的特征提取性能,并采用残差学习的思想在一定程度上解决了信息传递时信息丢失、损耗和梯度消失与爆炸等网络退化问题。残差网络中通过直接添加输入信息到输出来保证原始信息的完整性。典型的残差块结构如图5所示。病斑较大且较为密集,多数高于56 像素×66 像素,毛毡病的病斑区域较小且通常较为稀疏,多数低于19 像素×12 像素。由于固定尺度的卷积核在感知不同大小的病斑时效果不佳,因此本文将原始ResNet中conv1 的7×7×64 卷积改为多卷积组合结构,并采用数量依次为48、24 和24 的7×7、5×5 和3×3 不同尺度进行特征提取,利用1×1 卷积降低通道数,将ResNet18 的conv1 设置成不同尺寸的卷积核组合的形式,以改善网络底层对不同特征的响应。多卷积组合结构如图6 所示,加入多卷积后的ResNet18 与原始ResNet18 网络结构对比如表2 所示。

葡萄叶片病害在不同时期具有不同的表征,比如黑痘病和褐斑病一般程度的葡萄叶片病斑较小且较为稀疏,多数低于26 像素×28 像素,而严重程度的

图6 多卷积组合结构Fig.6 Multi-convolution combination structure

表2 原始ResNet18 和改进ResNet18 结构对比Table 2 Structure comparison between original ResNet18 and improved ResNet18

文献[19]从特征通道间的关系出发,提出SE(Squeeze-and-Excitation)模块。SE 模块先对卷积得到的特征图进行挤压(Squeeze),即将每个二维特征通道变为一个实数从而得到通道级的全局特征,再对全局特征进行激励(Excitation)以学习各个通道间的关系,从而得到不同通道的权重,并与原始特征图相乘得到最终特征图。SE 模块是在通道维度上加上注意力机制,该注意力机制可使得模型更加关注信息量最大的通道特征且抑制不重要的通道特征,即学习通道之间的相关性从而对不同通道进行权重分配,以帮助网络学习重要特征。基于SE 模块注意力机制,可将SE 模块与现有的网络结构进行融合[27]。

通过在ResNet18结构中加入SE模块,构成的新结构如图7所示。网络中引入2个全连接层,用于限制模型复杂度、辅助增加模型的泛化能力,并在求和之前对残差部分进行特征重定向。SE模块使得神经网络根据重要度提高对网络有用的特征并抑制用处较小的特征。

图7 加入SENet 后的ResNet 结构Fig.7 ResNet structure after adding SENet

3 实验结果与分析

3.1 实验环境与评价指标

实验环境配置如表3 所示,Mask R-CNN 的主干网络选用ResNet101,先训练20 epoch 的head layers,再训练40 epoch 的all layers。Multi-Scale ResNet 模型选用Momentum 优化器,且分别训练100 epoch、70 epoch 与90 epoch 时,学习率初始值分别选取为0.01、0.001 和0.000 1,动量值均为0.9,batch 设置为64,选用识别准确率作为评价指标。

表3 实验环境配置Table 3 Experimental environment configuration

3.2 识别准确率对比

为验证Multi-Scale ResNet 的有效性,实验对SVM、Inception-ResNet、ResNeXt-50 和文献[10]中的UnitedModel 这4 种方法的识别准确率进行对比分析,结果如表4 所示。其中,SVM 方法的主要过程是先使用Mask R-CNN 提取葡萄叶片,再提取各病斑的HSV 颜色特征和HOG 纹理特征,并输入SVM中获取结果。从表4 可以看出,SVM 对葡萄叶片病害的识别准确率较低,这是因为它在识别过程中需要人工设计特征进行特征提取,而颜色和纹理特征比较有限,同种病害的一般程度和严重程度在颜色和纹理特征方面较为相似,黑痘病与褐斑病在葡萄叶片的病斑表象比较相似,毛毡病病斑颜色与叶片正常部位相似,因此不能较好的识别,且对于不同的病害需要提取不同的特征,不具有广泛的适用性。Inception-ResNet 和ResNeXt-50 的平均识别准确率分别为87.00%和87.68%,这2 种模型对褐斑病严重程度和黑痘病一般程度的识别准确率较低。Inception-ResNet 通过使用1×n的卷积核和n×1 的卷积核代替n×n卷积,使用多个3×3 卷积代替5×5 卷积和7×7 卷积,因此对于不同程度的病害的识别准确率较低。UnitedModel 的平均识别准确率为87.94%。本文的Multi-Scale ResNet 的平均识别准确率可达90.83%,相对于ResNeXt 网络(层数为50)网络参数减少了11.72×106。

表4 不同方法的识别准确率对比Table 4 Comparison of recognition accuracy of different methods %

3.3 模型拟合能力比较

为确定ResNet的层数,实验对ResNet18、ResNet50和ResNet101 这3 种结构的拟合能力进行对比,结果如表5 所示。

表5 3 种结构的拟合能力对比Table 5 Comparison of fitting ability of three structures

从表5 可以看出,ResNet101 的平均识别准确率最高可达88.80%,ResNet50 比ResNet18 的平均识别准确率低,这是因为ResNet50 对褐斑病和黑痘病一般程度的识别准确率虽然较高,但是对其他程度的病害的识别准确率均有所下降,最终导致识别准确率下降。ResNet18 在平均识别准确率比ResNet101 低0.84 个百分点的情况下,网络参数减少了31.33×106个,且所需存储空间也减少了119.54 MB,考虑到之后模型移植到移动端,因此本文选用ResNet18 作为葡萄叶片病害识别的基础网络。

3.4 特征提取能力对比

为确定多卷积核组合时不同卷积核个数对模型的影响,针对(7×7,64),这4 种卷积核个数的模型,实验对其识别准确率进行对比分析,结果如表6所示。从表6可以看出,的多卷积组合取得了89.08%的平均识别准确率,对于褐斑病、黑痘病和黄叶病一般程度的识别准确率分别为86.36%、65.71%和95.56%,相比原始(7×7,64)卷积核在褐斑病、黑痘病和黄叶病一般程度分别提高了9.09、8.57和2.23个百分点,这3种病害的一般程度均呈现出病斑较小且较为稀疏的特征,且原始卷积核较大,因此不能较好感知一般程度的病害。多种卷积核组合的方式通过不同的卷积核使得ResNet18 感知不同的特征,因此能够较好感知不同大小的病斑,提高网络的特征提取能力。综合数据集中各种病害的表征,多种卷积核个数分别为24、24和48的组合取得了较好的实验结果,比其他3 种网络分别提高了1.12、2.24 和1.12 个百分点。

3.5 多卷积与SENet 的影响对比

为增强实验结果的准确性并验证改进点对模型的影响,针对多种卷积核组合和SE 模块这2 个改进点,将改进点与ResNet18模型分别组合为以下4组模型:1)原始ResNet18;2)ResNet18+多卷积;3)ResNet18+SENet;4)ResNet18+SENet+多卷积。实验对上述4 种模型的识别准确率和平均识别准确率进行对比,结果如表7所示。

表7 多卷积与SENet 对识别准确率的影响Table 7 Effect of multi-scale and SENet on recognition accuracy %

从表7 可以看出,加入多卷积的ResNet18 对褐斑病严重程度的识别准确率相比ResNet18 下降了10 个百分点,这是因为褐斑病严重程度的葡萄叶片中呈现出连续的大片病斑区域,多卷积核中对于大卷积核的个数设置的比原始卷积少,因此识别准确率下降。加入SE 模块的ResNet18 在褐斑病一般程度、黑痘病一般程度上平均识别准确率相比原始ResNet 分别提升了6.82 和6.29 个百分点,但是对黑痘病严重程度和黄叶病一般程度的识别准确率均下降了2.22 个百分点,这是因为SENet 注意力机制能够自动获取各特征通道的重要性,使得网络学习到更加重要的特征,从而在网络学习特征时更加均衡,这种均衡导致对褐斑病一般程度和黑痘病一般程度的识别准确率提升,而对于褐斑病和黑痘病严重程度的识别准确率有所下降。同时加入SE 模块和多卷积结构在平均识别准确率上达到了90.83%,相比原始ResNet18 提高了2.87 个百分点,弥补了单独加入SE 模块和多卷积结构的不足,解决了仅加入多卷积核组合或仅加入SE 模块造成部分病害识别准确率下降的问题。

4 结束语

为提高对不同程度葡萄叶片病害的识别准确率,本文提出一种基于Multi-Scale ResNet 的葡萄叶片病害识别方法。该方法使用Mask R-CNN 提取葡萄叶片,以减少复杂背景区域的影响,并把提取的病害图像输入改进的ResNet18网络中,通过将ResNet18 的conv1 层改为多卷积核组合的方式改变网络对不同特征的响应,同时在ResNet18 中加入SENet 模块以提高网络特征提取能力。实验结果表明,本文方法相比传统SVM 方法的适用性更强,且平均识别准确率达到90.83%。下一步将结合低照度增强算法研究不同照度对病害识别准确率的影响,以进一步提高模型的鲁棒性。

猜你喜欢

褐斑病葡萄准确率
苹果园褐斑病防治正当时
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
葡萄熟了
高温多雨 注意防治苹果褐斑病
当葡萄成熟时
楚雄州桑树褐斑病发生规律研究
苹果褐斑病的发生与综合防治
高速公路车牌识别标识站准确率验证法