基于改进Faster RCNN的茶叶叶部病害识别

2024-01-01 00:00:00姜晟曹亚芃刘梓伊赵帅张振宇王卫星
华中农业大学学报 2024年5期
关键词:叶部病斑尺度

关键词 目标检测; 茶叶叶部病害; FPN 网络; Rank and Sort Loss; 区域建议网络

我国是世界上茶叶种植面积最大的国家,然而,在茶叶生产过程中病害感染问题尤为严重,其中危害叶片的病害居多。这些病害会直接影响茶叶的产量和品质,给茶农带来严重的经济损失。传统检测茶叶病害的技术不仅费时、费力,而且效率低下、费用高昂。因此,研究实现茶叶病害准确高效的分类与识别方法至关重要[1]。

近年来,利用深度学习技术对病害进行智能识别很好地弥补了传统图像处理方法和机器学习技术在病害识别方面的不足[2-3]。深度学习方法分为基于卷积神经网络(convolutional neural networks,CNN)的传统分类网络方法和目标检测方法。CNN可以通过自动提取图像特征从而实现对植物病害的分类识别。Hu 等[4]利用改进后的CIFAR10-quick 模型实现对茶叶健康叶片、叶枯病、芽枯病和圆赤星病的分类识别,平均识别准确率为92.5%。Suresh 等[5]使用3 种不同的卷积神经网络模型对葡萄黑腐病、叶枯病和黑麻疹病进行识别。孙云云等[6]采用经典分类网络模型AlexNet 对茶轮斑病、炭疽病和云纹叶枯病的识别准确率分别达到90%、85% 和90%。李子茂等[7]将SENet 模块融入DenseNet 网络结构中,引入Focal Loss 函数替换原DenseNet 中的损失函数,对茶白星病、轮斑病、茶煤病、圆赤星病和叶枯病的识别准确率达到92.66%。以上均是基于传统分类网络的植物病害识别方法,传统分类网络主要用于对输入图像进行分类,确定图像属于预定义类别中的哪一类,通常仅输出一个类别标签,且不能对目标物体进行定位。

随着基于CNN 的目标检测方法的兴起,传统分类网络方法的不足得以改善。目标检测方法对输入图像中的目标物体既可以分类也可以定位,其输出是一组边界框和相应的类别标签,每个边界框描述了图像中一个检测到的物体的位置,允许在一张图像中检测和定位多个物体,每个物体都有相应的类别标签和边界框。目标检测网络分为2 类:第一类是以YOLO(you only look once)[8-10]系列和SSD(sin⁃gle shot multibox detector)[11]为代表的单阶段检测算法,这类算法通常采用单一的神经网络直接输出图像中目标的类别和位置。Wang 等[12]基于SSD 网络提出DBA SSD 算法,融合了改进后的VGG 网络和通道注意力机制,实现对PlantVillage 数据集中14 种植物叶片的病害识别和程度分类。顾伟等[13]利用改进的SSD 算法对破损棉籽和无损棉籽识别准确率达到96.1%。邸洁等[14]采用Tiny-YOLO 网络实现对苹果叶部病害快速有效的检测。第二类是以RCNN系列(region-based convolutional neural net⁃work)[15-16]为代表的二阶段检测算法。第一阶段是生成图像中可能包含物体的候选区域,第二阶段是生成的候选区域被送入一个分类器进行目标的精确分类。由于有2 个明显的阶段,模型可以专注于不同的任务,使得整个系统更加灵活和可优化,有较为精确的目标定位和分类能力。Zhang 等[17]用深度残差网络作为Faster RCNN 的特征提取网络,采用Kmeans聚类算法对边界框进行聚类,改进后的算法对番茄的健康叶片和4 种病害的识别准确率比原来提高了2.71%。Zhang 等[18]提出了一种结合Mixup 数据增强、ResNet50 特征提取网络和Soft-NMS (nonmaximumsuppression)算法的Faster RCNN 草莓识别方法,对成熟草莓和未成熟草莓的识别精度分别达到95.12% 和88.79%。以上试验中对蔬菜水果和粮食作物的识别定位大多基于实验室背景,对复杂背景下病害的识别定位研究相对较少。复杂的茶园环境,包括杂草、树枝、土壤等干扰物,以及病害的不同规模和病斑的不同尺度等因素,对准确高效检测茶叶病害提出一定挑战。

目前对于茶园复杂背景下的茶叶叶部病害检测研究较少,且茶叶叶部病害的病斑尺度差异较大。为解决茶园复杂背景下茶叶叶部病害识别较为困难的问题,实现复杂背景下茶叶叶部病害的精准识别,本研究选择结构复杂但精准度较好的Faster RCNN算法作为基础网络,融合FPN 网络、优化损失函数,旨在进一步提高网络对茶叶叶部病害的识别精度,弱化茶园复杂环境对病害识别的干扰,为茶园茶叶叶部病害的快速诊断提供精确信息。

1 材料与方法

1.1 数据采集

本研究所用的茶叶病害图片均采集自广东省农业技术推广中心茶园,拍摄于2021 年10 月至2023 年9 月茶叶病害高发季节。在数据采集过程中,使用Redmi K30 Pro 手机(6 400 万像素),图像以JPG 格式保存。为保证图像样本的多样性与丰富程度,模拟实际茶园复杂环境中可能遇到的各种情况,在不同天气(晴天、阴天和雨后)、不同角度(背阳和向阳等)条件下进行拍摄,拍摄距离为15~25 cm。

采集的病害类别包括白星病、藻斑病、炭疽病和煤烟病。藻斑病和白星病病斑小且密集,炭疽病和煤烟病病斑大且稀疏。各目标所在环境均为茶园自然生态环境,采集到的数据中含有茶树枝干、杂草以及土壤等干扰因子,这些病害数据能够反映茶树病害真实的生存环境,很好地表述了茶树生长环境的多样性和复杂性,适用于复杂背景下茶树病害目标检测任务。采集的茶叶叶部病害样例如图1所示。

1.2 数据集标注与分类

茶园采集的茶病害数据经过茶病害专家的对比确认,人工筛选和裁剪后得到分辨率为3 472 像素×3 472 像素的2 694 张茶病害样本,其中白星病、藻斑病、炭疽病、煤烟病的数量分别是537、684、672 和801张。采用LabelImg 图像标注工具对图像中的病斑进行标注,LabelImg 可直接将人工标注的信息转化为Faster RCNN 模型训练所需要的包含病害类型、位置坐标等信息的xml 文件;选择PASCAL VOC 格式进行类别标注。数据集以8∶1∶1 的比例随机划分为训练集、验证集和测试集。训练集用于训练模型及确定模型权重,验证集用于确定网络结构以及调整模型的超参数,测试集用于评估训练结束后模型的性能。数据集的划分情况如表1 所示。

1.3 Faster RCNN算法

Faster RCNN 算法是在 RCNN 算法和 FastRCNN 算法基础上进行一系列改进得到的二阶段模型,是目标检测算法典型代表之一。

Faster RCNN 算法包含4 个模块:特征提取网络(feature extraction network,FEN)、区域生成网络(re⁃gion proposal network,RPN)、ROI (region of inter⁃est) pooling 和RCNN 模块(region convolutional neu⁃ral network)。输入模型中的图像首先经过特征提取网络得到一系列特征图;然后将特征图传入区域建议网络即RPN 中进行训练,通过分类层和边框回归生成区域建议框,获取目标对象的大致位置;接着将RPN 中生成的区域建议框和特征图池转化成固定长度的数据传入全连接层。最后利用Softmax 分类器计算出具体类别,同时再做1 次边框回归获得检测框最终的精确位置。Faster RCNN 算法整体网络结构如图2 所示。

1.4 Faster RCNN算法优化

1)区域建议框优化。锚框机制是RPN 网络的核心,锚框是一个矩形区域,合适的锚框可以更多地检测出待测目标。在 Faster RCNN 的默认配置中,使用3 个不同的面积尺度(128 像素×128 像素、256 像素×256 像素和512 像素×512 像素)和3 个长宽比组合(1∶1、1∶2 和2∶1)生成9 个锚框。原始面积尺度和长宽比被设计用于PASCAL VOC 数据集中的20 种不同物体的检测,发现并不适合茶叶病斑的检测,因此,本研究针对茶叶病斑的特点优化面积尺度和长宽比。

本研究对象中的藻斑病和白星病病斑直径大多不超过5 mm,且多采集于尺寸较小的铁观音叶片,区域建议框的尺度相对于病斑较大,在检测过程中,小病斑将会无法被检测到。因此,本研究对原始Faster RCNN 区域建议框进行优化,剔除[256,512]这2 个边框尺度,增加[4,8,16,32,64]5 个边框尺度,最终生成如图3 所示的18 个锚框。

2)融合FPN 网络。在传统的卷积神经网络中,通常通过堆叠多个卷积层来提取图像特征。然而,在物体检测任务中,不同尺度的目标可能需要不同层次的特征进行检测。本研究中藻斑病和白星病的病斑非常小,而炭疽病和煤烟病病斑相对较大(大多超过叶片的1/4),多尺度问题明显。Lin 等[19]提出特征金字塔网络(feature pyramid networks,FPN),FPN 允许网络在不同尺度上同时利用语义信息,使得检测器更好地识别不同尺度的物体。陈柯屹等[20]提出改进型Faster RCNN 算法,将特征金字塔网络和导向锚框定位(guided anchoring,GA)机制相融合,实现对田间棉花顶芽的识别,解决了棉花顶芽因其小体积特性所带来识别困难问题。

特征金字塔结构简图如图4 所示,由自下而上、自上而下和中间横向连接的3 条线路组成。自下而上部分由一个主干网络构成,产生一系列具有不同尺度和分辨率的特征图。高层特征图语义信息丰富、分辨率低、含小目标的信息少,低层特征图语义信息比较少、分辨率高、含小目标的信息多[21]。自上而下部分从高层特征图开始,上面的特征图通过采用简单的最近邻插值的方法进行2 倍上采样,和下面同样经过2 倍上采样的特征图进行特征融合逐层向下传递,生成一系列可以在不同层级上检测不同尺寸物体的特征金字塔。预测是在每个融合后的特征层上单独进行的,保证了小目标的特征与信息,使网络检测效果大大提升。

为了提高 Faster RCNN 对藻斑病和白星病2 种小病斑的检测精度以及解决病斑的多尺度问题,本研究在特征提取网络ResNet50 的基础上,融合FPN网络结构(图5),将ResNet50 中高低层的特征结构图进行叠加融合,得到融合后P2~P6 这5 个特征图。5 个特征图通过在每个空间位置使用多个预定义的锚框,形成一组候选框,对每个锚框,在回归层中预测框的坐标,在分类层中预测框中是否包含目标。这些候选框随后会被送入到R-CNN 中进行目标的准确分类和定位,实现对图像中的病害病斑的检测识别。

3)损失函数优化。茶叶病害数据集中,白星病数据量相对其他3 种病害较为有限,导致数据分布呈现不平衡情况,进而影响模型的检测性能。为了解决这一问题,本研究对损失函数部分进行优化改进,引入了Oksuz 等[22]提出的 Rank amp; Sort (RS) Loss,以减少类别不平衡性,简化模型训练的复杂性,提高网络模型性能。

Faster RCNN 算法的损失主要包含RPN 和FastRCNN 2 个部分。由于在多任务训练中,损失部分的超参数和任务数量成正比,因此模型训练过程中损失部分会产生较多的超参数,需要不断调整参数来获得较好的模型性能。采用RS Loss 后,由于其内置免调优任务平衡系数,替代原有损失函数后无需进行任何超参数调优,可以有效减少调参过程中时间和资源的浪费。

RS Loss 由Ranking 和Sorting 2 部分组成。Ranking 阶段通过分类得分将正负样本区分开,确保所有正样本均排在负样本之上;Sorting 阶段则基于预测框和真实框之间的交并比,将正样本进行排序分类,使得在训练时不同正样本具有不同的优先级。这种方法的好处有:通过在训练期间对正样本进行优先级排序,RS Loss 训练的检测器不需要额外的辅助信号;由于RS Loss 基于排序的性质,这一特性使得其在训练过程中可以有效处理不平衡的数据,无需加入样本均衡策略。

1.5 试验环境与参数设置

本试验所使用的硬件配置为8 GB RAM、Intel(R)Core(TM)i7-5500U 和2 块NVIDIA GeForceGTX 3090 Ti GPU 的台式计算机;采用基于CUDA10.1 和CUDNN 8.0.5 的PyTorch1.10.0 深度学习框架,代码运行环境为Python3.7;采用Adam 优化算法,基础学习率、衰减系数、动量、权值衰减、批量大小参数的设置分别为0.01、0.02、0.9、0.000 1、16。

1.6 模型评估方法

本研究使用单个类别识别的精确度(precision,P)、召回率(recall,R)、平均精度(average precision,PA)、平均精度均值(mean average precision,PmA)、检测速度和模型大小作为网络模型性能的评价指标,计算公式如式(1)~(4)所示。

式(1)~(4)中,TP 是表示正确分类的正样本数量,FN表示被错误的标记为负样本的正样本数量,FP表示被错误的标记为正样本的负样本数量;PA 是以召回率为横坐标、精确率为纵坐标绘制P-R 曲线,曲线与坐标轴围成的面积;i 为类别编号,i 的取值为1~4;n 为检测类别数(n=4)。

2 结果与分析

2.1 不同特征提取网络和不同区域建议框尺度下目标检测性能比较

采用不同特征提取网络VGG-16、MobileNetV2和ResNet50 对病害进行目标检测识别,由表2 可知,同一区域建议框尺寸[128,256,512]下,以VGG-16为特征提取网络的Faster RCNN 算法中PmA最低,检测速度最慢,并且具有最大的模型尺寸;以ResNet50为特征提取网络的Faster RCNN 算法中PmA 为70.19%,比VGG-16 和MobileNetV2 分别提高7.49、2.47 百分点,但对小病斑为代表的白星病和藻斑病识别精度较低,分别为41.40% 和51.25%(表3),推测原因可能是区域建议框尺度较大,不适合茶叶病害中小病斑的检测识别,同时藻斑病和白星病的病斑图像经过模型训练过程中卷积和池化操作之后,语义信息匮乏,导致小病斑无法被检测识别。因此,对区域建议框进行优化,优化后的尺寸为[4,8,16,32,64,128]。边框尺度优化后,每种病害的检测精度均有所提升,藻斑病和白星病PA值提升较为明显。以ResNet50 为特征提取网络的Faster RCNN 算法中,藻斑病和白星病PA 值分别提高了3.77、6.74 百分点(表3),PmA提高了3.4 百分点,但检测速度和模型大小基本无变化(表2)。以上结果表明,修改后的边框尺度比原始边框尺度更契合病斑尺度,定位更加准确,可提高模型精度,但提高的精度有限。

由于ResNet50 的目标检测识别性能比VGG-16和MobileNetV2 更好,所以在特征提取网络为ResNet50 的基础上结合FPN 网络。由表2、表3 可知,藻斑病和白星病的PA值提升非常明显,分别提高26.12、25.24 百分点,PmA提高12.09 百分点。FPN 通过将深层卷积层的高级特征和浅层卷积层的低级特征进行融合,在每个融合后的特征层上单独预测,大大丰富所提取的特征信息,很好地解决了病斑多尺度问题且提高了识别精度。在融入FPN 网络的基础上,引入RS Loss,PmA 提高2.27 百分点,检测速度提升了13.7%。RS Loss 损失函数中基于排名的性质可以减小数据类别不平衡给网络训练带来的影响,提高网络模型的鲁棒性和识别精度。以上结果表明,区域建议框尺寸的改进、FPN 网络和RSLoss 对茶叶叶部病害识别的性能提升具有重要作用。

2.2 改进前后Faster RCNN 对茶病害检测效果对比

为验证提出的改进方法对藻斑病、白星病、炭疽病和煤烟病实际检测的有效性,本研究将改进后的Faster RCNN 算法与Faster RCNN(VGG-16)算法基于相同测试集评估识别效果。由图6 可知,藻斑病样本中含有较多小病斑,Faster RCNN 模型漏检了3处病斑,其中包括稍微模糊的病斑和目标很小的病斑,同时有一处病斑生成的预测框与真实病害区域产生严重偏差。改进后的Faster RCNN,因改进了锚框以适合小尺寸病斑的检测,同时结合了FPN 网络,有效地检测出这些小目标。

白星病样本中含有雨后残留在叶片上的水珠,水珠在两叶片阴影处,与白星病边缘病斑颜色相近,且水珠轮廓与病斑轮廓相似,对模型检测造成影响而发生了误检现象。而改进Faster RCNN 算法抑制了水珠对该病害的影响,实现对白星病的精准检测。

对于炭疽病和煤烟病,因大量枯枝落叶土壤等复杂背景影响,Faster RCNN 模型对病斑识别定位不太准确,生成的预测框与真实病害区域存在一定偏差,改进Faster RCNN 算法则生成更接近这2 种病斑的矩形预测框。Faster RCNN 和改进Faster RCNN算法对每种茶叶病害检测效果对比结果说明区域建议框尺寸改进、FPN 网络和RS Loss 共同作用下的有效性。

2.3 不同算法对茶叶病害识别有效性检测

为验证提出的改进方法在茶园复杂背景下对茶叶病害识别的有效性,本研究将改进后的FasterRCNN 算法与Faster RCNN(VGG16)、RetinaNet、SSD512 和YOLOv5 算法进行对比。由表4 可知,改进Faster RCNN 算法模型PmA 为88.06%,较FasterRCNN、RetinaNet、SSD512、YOLOv5 模型分别提高25.36、15.27、3.5 和0.18 百分点;改进Faster RCNN模型以19.1 帧/s 的检测速度优于Faster RCNN、Ret⁃inaNet、SSD512 这3 种模型;改进Faster RCNN 算法模型大小为116.0 MB,较Faster RCNN 模型减少77.7%。以上结果表明,改进后的Faster RCNN 算法是一个有效的茶叶病害检测算法,能够实现复杂背景下茶叶病害的实时性检测。

由图7 可知,Faster RCNN 算法对藻斑病和白星病2 种病害的检测效果较差,检测精度分别只有34.56%、42.68%,改进Faster RCNN 算法对藻斑病和白星病的检测精度分别为75.54%、86.84%,较Faster RCNN 算法分别提高40.98、44.16 百分点,提升效果显著。改进Faster RCNN 算法对藻斑病、白星病、炭疽病的识别平均精度均高于FasterRCNN、RetinaNet 和SSD512 这3 种算法,对煤烟病的识别平均精度为99.45%,略低于SSD512 算法的99.81%。改进Faster RCNN 算法对藻斑病、炭疽病、煤烟病的识别平均精度比YOLOv5 算法分别高0.33、0.5 和0.2 百分点。总体来看,改进FasterRCNN 算法更适合完成在复杂背景下对茶叶叶部病害的识别任务。

为了更加清晰地比较出各类算法对病斑的实际检测效果,在测试集中选取4 种病害样本进行评估。由图8 可知,对藻斑病的识别,SSD 和RetinaNet模型都出现了漏检情况,SSD 的漏检情况相对于RetinaNet 更显著。相比之下,YOLOv5 模型和改进后的Faster RCNN 能够有效地检测出小目标,YO⁃LOv5 模型仅漏检掉一个在阳光照射下特征不明显的病斑,改进后的Faster RCNN 对藻斑病的识别置信度大于YOLOv5 模型。对于白星病,SSD 和Reti⁃naNet 模型检测结果与真实病害区域存在一定的偏差。在煤烟病的检测中,SSD 和RetinaNet 模型的检测存在着与白星病类似的问题,即生成的预测框与真实的病害区域之间存在偏差。改进Faster RCNN模型成功避免了定位偏差的问题,确保了对病害的准确定位。

3 讨论

本研究针对茶园复杂环境下茶叶叶部病害的检测识别难题,提出一种基于改进Faster RCNN 算法的茶叶叶部病害识别方法。通过改进区域建议框的边框尺度,将融合FPN 的ResNet50 网络作为特征提取网络,采用Rank amp; Sort( RS) Loss 函数代替 FasterRCNN 中的损失函数,改善小目标漏检问题和病斑的多尺度问题,弱化茶园复杂环境的干扰,提高识别精度。为验证本研究改进方法的有效性,在同一实验平台使用相同数据集进行对比试验。结果显示,改进Faster RCNN 算法的PmA、检测速度和模型大小等指标均优于Faster RCNN 算法。与Faster RCNN相比,改进Faster RCNN 算法对藻斑病、白星病、炭疽病和煤烟病的PA值分别提高40.98、44.16、13.9 和2.43 百分点,模型大小降低了77.7%,检测速度提高了44.7%,模型性能得到有效提升。与SSD 和Reti⁃naNet 算法相比,改进Faster RCNN 模型在识别精度和检测速度上具有一定的优势。

本研究基于改进的Faster RCNN 算法实现了茶园复杂背景下4 种茶叶叶部病害的精准高效识别,对茶园病害的防治具有一定意义。然而,本研究所使用的数据集中茶叶病害的种类相对较少,同时,有一些病害在颜色和特征上相近,甚至可能出现在同一叶片中,呈现出一种复杂的病害组合情况。在后续的研究中,将拓展茶叶病害的种类,深入研究茶叶的复杂多病害问题;将进一步提高模型的泛用性和鲁棒性,设计轻量化以嵌入到不同的移动式设备应用于茶园,为茶叶种植产业的智能化管理提供参考。

猜你喜欢
叶部病斑尺度
面向移动端的苹果叶部病虫害轻量级识别模型
基于YOLOv3的多类烟草叶部病害检测研究
财产的五大尺度和五重应对
改进自适应分水岭方法分割棉花叶部粘连病斑
基于颜色差异性的植物叶片病害图像分割方法
一种桑轮纹病病叶发病程度的评价指数
中国蚕业(2018年4期)2018-12-05 05:45:12
9种药剂防治山核桃干腐病试验研究
推广新型农药噻虫嗪防治甘蔗叶部害虫突破14万公顷
中国糖料(2016年1期)2016-12-01 06:49:03
宇宙的尺度
太空探索(2016年5期)2016-07-12 15:17:55
9