基于改进Faster R-CNN的苹果叶部病害识别方法

2022-02-26 03:00王云露吴杰芳兰鹏李凤迪葛成恺孙丰刚
林业工程学报 2022年1期
关键词:病斑阈值病害

王云露,吴杰芳,兰鹏,李凤迪,葛成恺,孙丰刚*

(1. 山东农业大学信息科学与工程学院,泰安 271018; 2. 泰山学院数学与统计学院, 泰安 271000)

我国的苹果产业规模不断扩大的同时,苹果病害的发生也日益频繁。常见的病害有花叶病、雪松锈病、黑星病、落叶病、霉心病、灰斑病等。能否及时准确地对这些病害进行识别和防治事关苹果的产出和质量,是广大果农关心的热点问题之一,也是影响我国苹果产业发展的重要因素之一。

苹果病害的发生往往表现在根茎、果实以及叶片区域,其中叶部病害发生次数较多,且特征明显,数据容易采集和处理,成为判断苹果病害类型的重要依据之一。传统的病害识别方法主要依据果农和专家经验、相关资料来对病害进行诊断,但这些传统方法在可靠性、时效性和灵活性等方面有所欠缺,已渐渐不适应快速准确地诊断苹果病害的要求。计算机视觉技术对植物的形态结构、 颜色纹理等信息进行成像,从中提取感兴趣的性状,实现多维和多参数数据可视化,为人们提供了新的研究方向,机器学习开始进入农业工作者的视野中。这些机器学习的方法往往借助特定的病斑区域分割、特征提取方法对病害图像的颜色、形状、纹理等特征进行选择,再通过特定的分类器如支持向量机、归一化指数函数 (Softmax)等对其进行分类,以达到识别病害的目的[1-3]。这种手工提取特征的做法虽然能在一定程度上识别特定病害图像,但对相关领域知识的依赖性强,需要针对性地设计图像分割和特征提取方法,灵活性和泛用性较低,且前期复杂的图像预处理工作使得人力和时间成本较高,难以得到进一步推广和应用。

基于深度学习的图像分析方法对成像传感器得到的植物图像进行处理分析,建立多训练样本,从数据中“学习”,获取有效信息,构建最优模型与算法进行分类、识别、预测成为新的趋势[4-6],它能避免图像识别前期复杂的特征提取、选择和设计工作,得到了广泛的应用。王国伟等[7]对LeNet模型进行改进,对5种类型的玉米病害进行识别,准确率达到96%。鲍文霞等[8]利用选择性核和平均池化层改造VGG16网络,对苹果叶部病斑的识别率达到94.70%。赵立新等[9]通过迁移学习和改进的Alex模型对棉花叶部病虫害进行识别,其准确率达到了97.16%。张善文等[10]使用全局池化层来改进深度卷积神经网络,并通过添加规则项来改进Softmax分类器,对5种苹果病害分类的准确率达到95%以上。陆仲达等[11]使用双分支网络结构来减少病斑相似度高产生的精度误差,对苹果病害识别的准确率达到97.662%。Zhang等[12]对Faster R-CNN算法进行改进,以残差神经网络作为骨干特征提取网络(backbone),使用k-means聚类算法对RPN生成的初始anchor进行优化,对番茄病害识别的精准度较原模型提升了2.71%。Liu等[13]在AlexNet上采用级联机制,对4种苹果病害的识别率达到97.62%。随着农业工作者不断的钻研与实践,深度学习在病害识别方面逐渐走向成熟。

本研究通过深度学习技术,在不特意采摘叶片的条件下实现对苹果病害叶片的无损测量识别。在实际研究中,苹果叶片病害数据中的病斑尺寸和图像背景给识别的准确率带来一定的影响。一方面,有的病斑在叶片上所占比例较小,采用传统卷积神经网络对病害图像整体进行特征提取会得到许多不必要特征,使得网络对病斑特征不敏感,在选用多任务目标检测对病斑进行训练后,对小目标病斑的检测效果依旧不佳;另一方面,部分数据集中的病斑有较多的复杂背景,在识别过程中会造成许多干扰,影响模型检测的精确度。为此,笔者在目标检测算法Faster R-CNN(faster regions with CNN features)的基础上对其进行改进,得到了一种改进的Faster R-CNN算法。改进策略如下:采用ResNet50对不同特征通道进行权重分配,使网络更为关注对提升模型检测性能更有效的特征;通过加入特征金字塔网络融合不同层次的特征,使提取到特征的语义信息更强,改善对小目标的识别性能;最后使用级联机制将二阶段Faster R-CNN改为Cascade R-CNN(级联R-CNN网络),在不同交并比(intersection over union, IOU)阈值下对正负样本进行采样以产生高质量的预测框,从而使模型分类和回归更为准确。

1 材料与方法

1.1 数据集获取与图像标注

本次研究选取苹果的斑点落叶病、黑星病、灰斑病、雪松锈病、花叶病共计5个病害类别的图像作为研究对象,其中黑星病、灰斑病数据来自PlantVillage数据集,为256×256像素;斑点落叶病、雪松锈病、花叶病数据使用STK-AL00相机(分辨率为3 000×4 000,像素为12 MP)于不同时间段在苹果园区采集,带有复杂背景,并调整为416×416像素。为减少冗余图像,避免低质量图像对检测模型的影响,对图像进行人工筛选,最终得到4 100张苹果叶片病害图像。通过LabelImg图像处理工具来对苹果病害图像进行人工标注,将标注框位置和其对应类别信息写入到xml文件中,之后以训练集∶测试集=8∶2的比例划分数据,形成VOC格式的数据集。

1.2 图像增广

为提高训练模型的鲁棒性,增强其泛化能力,避免过拟合现象,使用图像增广技术对苹果叶片病害数据集进行扩充。对训练集的3 280张原始病害图像进行旋转(90°,180° 和270°)、随机亮度增强、随机色度增强、随机对比度增强等操作。为更好地提取图像特征,对图像进行锐化处理。对原始图像处理后得到的扩充图像示例见图1。扩充前后的训练集图像数量变化如表1所示,增广后共得到26 240张苹果病害图像。

表1 训练集数量变化Table 1 Changes in the number of training set

图1 图像增强结果Fig. 1 Image enhancement results

1.3 苹果叶片病害检测模型

1.3.1 改进的Faster R-CNN目标检测框架

Faster R-CNN是一种经典的二阶段目标检测算法,由骨干特征提取网络(backbone)、区域建议网络(RPN)和检测子网络(Fast R-CNN)三部分组成[14]。骨干特征提取网络利用卷积层提取特征图,分别输入到区域建议网络和检测子网络中。本次研究采用拆分注意力网络(split-attention networks, ResNest)作为特征提取网络,通过Split-Attention模块将特征映射分成更细粒度的子组,每个组的特征表示通过其分割表示的加权组合来确定[15]。该结构使得网络对有效特征的关注性更高,从而改善网络中学习到的特征表示。同时,采用特征金字塔网络 (feature pyramid networks,FPN)[16]对不同尺度特征的进行融合,增强网络提取特征的鲁棒性。

区域建议网络通过Softmax分类和边界框回归选择建议框并对正负样本进行采样,使用Softmax计算样本与真实框的分类损失,使用Smooth_l1计算边界框回归损失。在Fast R-CNN部分,区域建议网络产生的建议框按比例映射到特征图中,经过RoI pooling层固定到特定尺寸,通过Softmax分类和边界框回归得到最终的感兴趣区域(region of interest,RoI)。加入级联机制对该部分进行改进,将感兴趣区域在不同IOU阈值(0.5, 0.6, 0.7)下进行多阶段的筛选,以提高最终得到的感兴趣区域的质量。该部分产生的分类损失与回归损失与区域建议网络中的损失构成一个总损失,指导模型的训练(reginal proposal network,RPN)。改进后的Faster R-CNN如图2所示。

图2 改进Faster R-CNN结构图Fig. 2 Improved Faster R-CNN structure diagram

1.3.2 特征金字塔网络

原始Faster R-CNN中使用的高层特征语义性较强,但细节信息有所丢失,对小目标识别性能较差。本次实验使用的数据集有较多的小目标病斑,仅采用单尺度特征进行预测难以满足对叶片病斑精确检测的要求。通过添加FPN来进行不同尺度特征的融合,以增强特征鲁棒性,提高模型的检测精度。FPN由三部分组成,自下而上的结构,自顶向下的结构以及横向连接。自下而上的结构在本研究中即ResNest正常的前向传播过程,ResNest在每个阶段的最后一层特征为基层特征图{C2, C3, C4, C5}。在自顶向下的过程中,网络对高层特征进行最近邻上采样来得到与低层特征相同分辨率的特征,之后使用横向连接将上采样得到的特征与基层特征{C2, C3, C4, C5}相加,最终生成FPN特征图{P2, P3, P4, P5, P6}。其结构如图3所示。在Fast R-CNN部分需要根据金字塔级别分配不同规模的感兴趣区域,其映射公式为:

(1)

式中:224代表预训练数据图像的大小;h和w表示建议框的高和宽;k0设为 4;k表示特征金字塔网络中的Pk层。

图3 FPN结构图Fig. 3 Structure diagram of FPN

1.3.3 级联机制

在目标检测中,需要定义一个IOU阈值来区分正负样本,在Faster R-CNN中通常将这个阈值定义为0.5。然而在模型训练时,假定的IOU阈值可能难以与最优的IOU阈值相匹配,阈值过低则假阳性样本(网络判断为正样本,实际为负样本)占比较高,出现错检;阈值过高则正样本数量降低,加重过拟合,影响模型的检测性能。针对单一IOU阈值难以有效地剔除掉接近该阈值的假阳性样本的问题,本研究采用级联R-CNN网络(cascade regions with CNN features,Cascade R-CNN)[17]的级联架构来对模型进行改进,采用多阶段训练的方式加强对假阳性样本的选择性。设置一个阈值组{0.5, 0.6, 0.7}作为不同阶段检测模型的IOU阈值,从初始分布开始对高IOU阈值下的样本分布进行重采样,通过不断提高阈值来增强模型对假阳性样本的选择性,提高产生的感兴趣区域的质量。其结构如图4所示。图4中FC1、FC2 和FC3 表示全连接层,B1、B2、B3 表示边界框回归参数,C1、C2、C3 为Softmax分类结果。

图4 Cascade R-CNN结构图Fig. 4 Structure diagram of Cascade R-CNN

该过程在每个阶段都会计算正负样本的分类损失Lcls和回归损失Lreg,给不同阶段下得到的分类损失和回归损失赋予一定的权重并进行求和操作,用来表示Fast R-CNN部分总体的分类损失及回归损失,其公式为:

L=l1+0.5l2+0.25l3

(2)

式中:l1、l2、l3分别表示当IOU阈值为0.5, 0.6, 0.7 时的分类损失或边界框回归损失。

2 结果与分析

2.1 实验环境

本研究选择深度学习框架Pytorch进行模型搭建,在Ubuntu18.04 系统下进行实验。计算机处理器为Intel(R) Core(TM)i7-9750H,2.60 GHz,内存16 G,显卡为NVIDIA GeForce RTX 2060,显存6 G。为提高网络的训练速度,使用GPU进行加速,cuda的版本为11.1.0,cudnn版本为8.1.0。

2.2 模型训练

在模型训练过程中,采用随机梯度下降法(stochastic gradient descent,SGD)作为优化器来对神经网络进行优化,加快训练过程,SGD的初始学习率设为0.005,动量参数设为0.9,权值衰减参数设为0.000 5。训练时采用warm up热身策略,先采用较小的学习率进行训练使网络适应数据,之后再恢复到设置的初始学习率。为减少内存占用,加快运算速度,采用混合精度计算损失值。由于采用了数据增强策略,模型可以较快地收敛。训练总共进行30 epochs,共迭代98 400次。通过损失值的变化判断模型是否收敛。模型在迭代至50 000次时,损失值为0.14,之后基本保持稳定,表明模型达到收敛状态。

2.3 模型性能评估指标

模型使用平均精度(AP)、平均精度均值(mAP)作为评估指标来对模型性能进行检验,数值越大则模型在该指标下的性能越高。召回率(R)是反映模型寻找正样本目标能力的指标;精准率(P)体现模型对正样本的分类能力;AP是由精准率和召回率绘制的PR曲线的积分,体现模型的整体分类性能;mAP是所有类别AP的平均值。P、R、AP、mAP的计算公式如下:

(3)

(4)

(5)

(6)

式中:PT表示检测正确的正样本;PF表示检测错误的正样本数量;PFN表示检测错误的负样本;N表示数据集的类别数量。

2.4 模型改进效果对比

在采用2.2节中参数的情况下,对使用ResNest、FPN和级联机制下的Faster R-CNN算法进行对比,以检验改进的有效性。本研究进行实验的Faster R-CNN模型分别为ResNet、ResNet-FPN、ResNest-FPN和 ResNest-FPN-Cascade。

表2 交叉验证实验结果Table 2 Cross validation experimental results

为保证实验结果的稳定性,采用5折交叉验证的方式对改进前后模型的效果进行检验,将训练集中的数据平均分成5份,选其中4份做训练集参与训练,另外1份做测试集检验识别效果。实验共重复5次,每次使用的测试集之间保持互斥。各模型测试后的mAP结果如表2所示,可以看到各模型在不同数据集上的性能虽然有一定差异,但改进后的模型较改进前在相同数据集上的性能提升都较为稳定,其mAP的平均值提升了4.9%。

为检验模型的最终性能,使用全部训练集对苹果病害识别模型进行3次重复训练,通过划分出的独立测试集测试模型AP,取平均值作为该AP指标下的实验结果,结果如表3所示。加入FPN使得模型在以小病班为主的灰斑病和病斑区域不规则的黑星病、雪松锈病上AP提升较为明显,分别提高了9.2%,4.1%,和9.7%。与ResNet-FPN相比,ResNest-FPN在黑星病、灰斑病、雪松锈病和花叶病上有1.4%,0.4%,1.1%和2.2%的小幅度提升,表明注意力分离机制对提升模型性能有一定积极作用。加入级联机制对模型的识别性能都有明显改善,其总体AP值提升了2.8%,但检测时间提高了2.2%。改进后模型在斑点落叶病、灰斑病和雪松锈病上的AP值分别达到91.5%,87.2%和93.7%,这3类病害图像中病斑的区域轮廓较为明晰,模型能较为有效地识别。而黑星病和花叶病中病斑区域不规则且界限模糊,模型对其识别的AP值仅达到78.3%和80%,尚存在一定改进空间。改进后模型的mAP达到86.2%,较原Faster R-CNN模型提升了8.7%,表明了本研究改进的有效性。

表3 改进前后Faster R-CNN模型的AP值Table 3 AP values of Faster R-CNN model with/without improvement

为直观地表示模型AP,选用3组重复实验中随机一组绘制PR曲线(召回率为横轴,精准率为纵轴的曲线),如图5所示。由图5可见,FPN和级联机制都使得模型的整体性能有较为明显的提升。ResNest-FPN与ResNet-FPN性能差距较小,但当召回率处于较高水平时,ResNest-FPN的精准率较ResNet-FPN有一定程度的提高。

图5 PR (精准率和召回率) 曲线Fig. 5 PR (Precision and Recall) curves

为检验改进模型的实用性,将单张图像下检测到的置信度最高且大于0.9的目标类别作为输出结果,与图像所属真实类别比较,其混淆矩阵如表4所示。其中斑点落叶病、黑星病、灰斑病、雪松锈病、花叶病的数量分别为200, 200, 120, 200和100,引入200张无病害叶片图像以模拟在实际场景中健康叶片的干扰。改进后的模型除对黑星病出现4%的错检外,对其他4种病害都达到了97%以上的准确率。模型在对健康叶片识别时有2%误识别成黑星病,这是由于黑星病大面积病斑较多,标注叶片全身导致叶片特征与病斑特征产生轻微混淆。模型识别的总体准确率达到98.3%,单张图像平均检测时间0.092 s,能较为快速准确地识别苹果叶片病害。

表4 混淆矩阵Table 4 Confusion matrix

模型的实际识别效果如图6所示。由图6可见,改进后的模型既可以对采摘后的病害叶片图像(b,c)进行识别,也可以对果树枝干上的病害叶片图像 (a,d,e) 进行识别, 无需特意采摘叶片,即实现“无损式测量识别”,使模型的应用更符合实际场景。

图6 苹果叶片病害识别效果Fig. 6 Identification effect of apple leaf diseases

3 结 论

针对苹果病害图像中存在的小目标病斑和复杂背景降低识别精确度的问题,对传统Faster R-CNN算法进行改进,提升其对病斑的识别能力。在使用特征提取能力更强的ResNest作为backbone的同时,引入特征金字塔网络FPN,使模型提取到鲁棒性更高、语义信息更强的特征。通过使用Cascade R-CNN中的级联机制来产生高质量的建议框,使改进后的网络模型对病斑目标定位更加准确。实验结果表明,所提改进模型的mAP达到0.862,对病害图像识别的准确率达到98.3%,能较有效地识别5种苹果病害,识别一张图片的平均时间为0.092 s,有一定的实用性。模型较未改进之前的mAP提高了8.7个百分点,表明了本研究所提方法的有效性。

本研究提出的方法可同时诊断采摘后的病害叶片和果树枝干的病害叶片,而无须特意采摘叶片,实现无损式测量识别。此外,由于病害早期的视觉特征并不明显,病斑在整株树上呈现不显著,且受到叶片之间的遮挡等因素影响,该方法在整株苹果树病害的测量识别方面还存在较大的改进空间。本研究方案通过聚焦于叶片病害的识别,在病害早期未造成危害之前及时发现,为其早期干预和治疗提供科学依据。

猜你喜欢
病斑阈值病害
基于改进DenseNet的茶叶病害小样本识别方法
早春养羊需防六大病害
“早春鱼瘟”、黄颡鱼“过春”、病害一线快速精准诊断……实战干货来啦
市政道路桥梁工程常见病害与施工处理技术探讨
改进的软硬阈值法及其在地震数据降噪中的研究
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
改进小波阈值对热泵电机振动信号的去噪研究
套袋对柠檬果实外观品质的影响
Ophiognomonia castaneae协同板栗褐缘叶枯病病原菌致病作用的研究