关键词:图像识别;轻量化网络;注意力机制;多级特征融合;病虫害检测
0 引言(Introduction)
我国作为茄子最大的产量国,茄子的年产量占世界茄子年总产量的一半以上[1]。在现代农业生产中,病虫害检测与防治趋向于规模化和智能化[2],及时识别病虫害,实现更高效、更主动的病虫害管理,可以有效提高茄子果实的品质[3]。
近年来,以深度学习作为基础的病虫害目标检测算法取得了显著进步,根据检测阶段的不同,这些算法可以分为两类。一类是以R-CNN(Region-Convolutional Neural Network)[4] 和Faster R-CNN(Faster Region-Convolutional Neural Network)[5]为代表的两阶段(two-stage)检测算法。例如,刘毅君等[6]提出一种基于改进Faster R-CNN算法的马铃薯发芽与表面损伤检测方法,显著提升了检测平均精确率。另一类是以SSD(SingleShot MultiBox Detector)[7]和YOLO(You Only Look Once)系列[8]为代表的单阶段(one-stage)目标检测算法。例如,贾雪莹等[9]提出一种基于改进YOLOv7模型的柑橘表面缺陷检测,在网络头部引入CT(Contextual Transformer)模块,融合静态和动态上下文表征特征,增强了缺陷部分特征表达能力。于春涛等[10]提出一种改进的YOLOv7模型,在网络中添加CARAFE(Content-Aware ReAssembly Feature Extraction)特征上采样算子、SE(Squeeze-and-Excitation)注意力机制模块和WIoU位置损失函数,提高了复杂农田环境下的目标检测性能。
针对茄子病虫害检测方法的研究,目前主要集中在茄子叶片病虫害检测[11]领域,较少考虑在自然环境和多目标情况下,实现计算量小、时延低且检测精度高的病虫害检测。为解决此类问题,本研究基于YOLOv8n模型,对茄子果实病害检测方法进行改进和优化,提出一种计算量小、检测精确度高及检测速度快的茄子果实病虫害检测模型,即HCI-YOLO。
1 材料与方法(Materials and methods)
1.1 数据集
茄子果实病虫害数据的采集来源于公开数据集和网络图片,为了丰富数据的多样性、提高模型的泛化能力以及平衡不同病害特征样本数量,在不同时间段的自然光照下,多角度拍摄目标及多距离拍摄目标;拍摄的图片中不仅包括清晰的茄子果实病虫害特征,也包含其他周围自然环境背景;最后,剔除质量较差和非典型病虫害图像,保留自然环境背景下3种茄子果实病虫害,分别是蛀果虫(Fruit Borer)、瓜蓟马(MelonThrips)、果腐病(Fruit Rot),同时采集了一些健康茄子果实图片。采集图片如图1所示。
一些图片包含多个该类病虫害的目标以及同时存在其他类型的病虫害,满足多目标、多种类的检测需求。通过平衡每个类别在数据集中的占比,防止出现某类别在数据集中代表性不足导致的模型通过持续预测多数类别实现高精度的假象。将1 369张图片作为本研究的数据。每张图片所含样本数量分布以及数据集的样本分布和划分如图2所示。
使用数据增强技术扩增训练集数据量[12],添加90°旋转(包含顺时针、逆时针及上下颠倒旋转)操作,以此增强模型对图片方向变化的不敏感性[13]。同时,对图片进行了提亮、变暗及曝光处理,通过增加图片亮度的可变性,帮助模型更好地适应照明和相机设置的变化[14]。经过这一系列数据增强操作,最终将数据集扩增至3 247张。
1.2 YOLOv8算法
YOLOv8是在YOLOv5的基础上进行优化和改进得到的[15],它可以调整不同的模型深度和模型宽度,能满足各种场景需求。YOLOv8主要包含三大部分。一是特征提取部分(Backbone),整个部分以C2f模块作为基本构成单元,采用了一系列卷积和反卷积层提取特征,同时使用了残差连接和瓶颈结构以减小网络的大小和提高模型的性能[16]。二是特征增强网络部分(Neck),它包括了1个SPPF模块、1个PAA模块和2个PAN模块,可加强网络对不同缩放尺度对象的特征融合能力。三是头部部分(Head),其核心是解耦头(Decoupled-Head),即将原来的1个检测头分解成检测头和分类头两2部分,检测头包含一系列卷积层和反卷积层,用于产生检测结果;分类头则采用全局平均池化对每个特征图进行分类。
相较于上一版本的YOLOv5,YOLOv8大幅提升了模型性能,简化了模型结构,实现了模型轻量化[17]。
2 算法改进(Algorithm improvement)
针对茄子果实病虫害检测中模型参数量大、自然环境下检测精度低及多尺度目标检测等问题,提出一种茄子果实病虫害检测模型HCI-YOLO,实现了更低的计算成本和更精确的模型表现,其网络结构图如图3所示。首先,提出多级特征融合金字塔(HS-FPN)结构,减少了模型参数量,解决了尺度变化时模型识别精度低的问题[18]。其次,采用CA[19]坐标注意力机制获取全局感受野,并编码精确的位置信息,使其在复杂环境干扰下依然能够准确捕获有价值的区域。最后,引入Inner-SIoU损失函数,融合使用Inner-IoU[20]和SIoU;其中,采用SIoU复杂的边界框回归方法解决了网络模型边界框的局限性,提升了模型目标检测任务的精确度,而Inner-IoU可以加速模型回归,提升模型的检测效率。
2.1 HS-FPN网络结构
HS-FPN(High-level Screening-feature Fusion Pyramid Networks)是一种专为白细胞检测而设计的网络结构,主要用于解决白细胞数据集中的多尺度挑战,其网络结构图如图4所示。通过将这一概念融入YOLOv8模型,将其应用于茄子病害数据集,成功地解决了茄子数据集中的多尺度挑战以及参数量问题。HS-FPN的基本原理包括两个关键部分:特征选择模块(Feature Selection Module)和特征融合模块(Feature FusionModule)。特征选择模块首先利用通道注意力(ChannelAttention)和维度匹配(Dimension Match)机制对不同尺度的特征图进行筛选,其次运用全局最大值池化或全局平均池化和权重运算获取特征图通道中的重要信息;特征融合模块通过选择性特征融合(Selective Feature Fusion)机制,以高级特征作为权重,过滤出低尺度特征中的重要信息。通过这两个模块的协同工作,有效地提高了模型的检测精度和鲁棒性。
选择性特征融合(SFF)机制是HS-FPN网络中的一个关键组件,它在特征融合模块中用高级特征作为注意力权重筛选低尺度特征,这种方法高效地融合了高级特征与低尺度特征的信息,进而提升了不同尺度下的模型检测精确度。
2.2 坐标注意力机制
在自然环境中,因为病斑与周围环境的区分度不高,所以准确定位茄子果实病虫害是一项极具挑战性的任务。针对这个问题,引入CA(Coordinate attention)坐标注意力机制,提升了模型的回归性能,其网络框架图如图5所示。CA通过将特征张量沿X 方向和Y 方向进行1D全局平均池化,分别过滤出垂直和水平方向的重要特征,并且保留其精确的位置信息以及长距离的相互关系。这两个方向的特征图转换为对方向和位置敏感度高的注意力图,再作用于输入特征图上,以突显出可能有病害的区域。通道注意力的引入,使得模型能够准确地定位在自然环境中的茄子果实病害位置信息,并且其轻量级和灵活性特点,使它可以轻松地集成到现有的移动网络架构中,几乎不会增加计算量。
2.3Inner-SIoU损失函数
在茄子病虫害目标检测任务中,果实病害特征复杂多变,而传统的边界框回归方法具有一定的局限性。为了克服这一难题,通过引入SIoU损失函数实现了更快的训练速度和更高的预测准确性。SIoU更多地考虑了边界框的几何特性,引入了一种更为复杂的边界框回归方法,打破了以往损失函数的局限性。SIoU损失函数包括角度损失∧(Angle cost)、距离损失△(Distance cost)、形状损失Ω(Shape cost)及IoU 损失(IoUcost)4个部分,具体如公式(3)所示。此外,在SIOU的基础上融合Inner-IOU理念,这一融合策略能够捕捉到以往在固定边框大小时难以回归的精确位置,进一步打破边界框回归的局限性。Inner-IOU 首先计算出具有自身特性且不同于传统IoU的IoUInner,具体如式(4)所示,其次通过公式(5)融合SIoU,计算出最终的损失函数LInner-SIoU。
3 实验与分析(Experiment and analysis)
3.1 实验环境和参数配置
实验使用Windows 10操作系统,具体软硬件配置和参数配置如表1所示。
3.2 评价指标
实验使用精确度(Precision)、召回率(Recall)和平均精度均值(mean Average Precision, mAP)对模型的性能进行评价[21]。精确度衡量了模型在识别为正类的样本中有多少是真正的正类样本,精确度计算如公式(6)所示。召回率衡量了模型在所有真正的正类样本中有多少被正确地识别,召回率计算如公式(7)所示。平均精度均值是目标检测任务中常用的综合评价指标,结合了不同类别的平均精度衡量模型的整体性能。mAP@0.5衡量了模型在预测的边界框与真实边界框之间IoU 大于等于0.5时的平均精度。mAP@0.5~0.95考虑了从IoU 阈值0.5到0.95的范围内的mAP,该范围覆盖了一系列的IoU 阈值,例如0.5、0.55、0.6、…、0.95,每个阈值都对应不同的交并比,从较宽松到较严格。计算mAP@0.5~0.95可以更全面地评估模型对于不同交并比的检测精度。
3.3 消融实验
为验证本文提出的算法中各个改进模块的有效性,以原始的YOLOv8为基线模型,并以精确度、召回率、mAP@0.5、mAP@0.5~0.95、帧率FPS、浮点计算数、参数量、模型大小作为评价指标,通过多个改进模块的不同组合方式进行消融实验,结果如表2和表3所示。
从综合表2和表3中的结果可以看出,单独使用HS-FPN结构改进了YOLOv8的neck部分后,模型参数量和计算量分别降低了36.67百分点和14.81百分点,召回率上升了1.3百分点,mAP@0.5、mAP@0.5~0.95分别降低了1.1百分点和0.4百分点,HS-FPN结构显著地降低了模型的参数量和计算量,并且模型在召回率上升的同时仍然维持了较高的精度,说明HS-FPN结构可以有效地应对多尺度问题。单独使用CA坐标注意力机制改进backbone部分后,模型的召回率提升了5.5百分点,精确度降低了2.4百分点,说明CA坐标注意力机制与位置信息的结合可以准确定位出病害的位置。单独使用Inner-SIoU损失函数改进原CIoU损失函数,其精度与召回率分别提升了1.2百分点和0.7百分点,说明更为复杂的边界框回归方法与辅助边框结合有效地提升了模型的精度。由于CA注意力机制的轻量级和灵活性,在改进HS-FPN结构的基础上添加CA坐标注意力机制,能够使模型在其参数量、浮点计算数和权重文件几乎不变的情况下,性能得到进一步提升,模型的召回率、mAP@0.5和mAP@0.5~0.95分别提高了2.4百分点、1.8百分点和0.1百分点。在此基础上继续添加Inner-SIoU损失函数后,精确度、召回率、mAP@0.5及mAP@0.5~0.95分别提高了2百分点、1.2百分点、0.9百分点和0.7百分点。
综上,研究所改进后的YOLOv8模型相比于基线网络模型,虽然帧率有小幅度降低,但是仍能满足实时检测需求,精确度、召回率、mAP@0.5和mAP@0.5~0.95分别提高了1.5百分点、4.3百分点、2.1百分点和0.9百分点,浮点计算数、参数量和模型大小分别下降了14.8百分点、34.5百分点和33.4百分点,表明本文提出的改进算法的有效性。
对比图6所示的混淆矩阵可以清晰地观察到,相较于基准模型YOLOv8n,HCI-YOLO在茄子果实病害检测任务上展现出了更优越的性能。HCI-YOLO减少了将病害特征识别为背景的情况,显著地提高了改进模型在自然环境下的抗干扰能力与对多尺度遮挡目标的检测能力。
为进一步证明改进的YOLOv8n在自然环境下抗干扰能力和模型精度的提升,用XGrad-CAM 类激活热力图对两个模型进行可视化分析,结果如图7所示。从图7中可看出,改进模型对病害特征预测输出的权重更高,对区分度不高的病害也给予了更多的关注,并且对周围环境关注度更低,最大限度地避免了漏检情况。
3.4 不同算法对比实验分析
将HCI-YOLO与其他算法进行对比分析,具体试验结果如表4所示。
在对比实验中,我们以YOLOv8n作为基线模型,深入分析了多种目标检测算法的性能。与two-stage的目标检测算法Faster-RCNN相比,其具有较多的浮点计算量和参数量,导致生成的模型较大,因此two-stage的目标检测算法不适合实时监测任务对轻量化网络的要求。在YOLO 家族的热门模型中,与YOLOv5n相比,YOLOv8n的精确度、mAP@0.5和召回率分别提升了1.2百分点、2.3百分点和0.1百分点;与YOLO7-tiny相比,YOLOv8n的精确度和mAP@0.5分别提升了2.5百分点和1.2百分点,模型参数量及计算量更低。进一步对比基于MobileNetV3[22]和ShuffleNetV2[23]的改进YOLOv8n网络,其中YOLOv8-MobileNetV3的精度、召回率和mAP@0.5虽然分别提高了0.1百分点、2.6百分点和0.4百分点,略优于YOLOv8n,但是其参数量与模型的计算量更高;YOLOv8-ShuffleNetV2在参数量和模型大小方面有优势,但相比于基线模型YOLOv8n,其精度、召回率和mAP@0.5分别下降了1.1百分点、0.4百分点和3.5百分点。与原始的YOLOv8n相比,本文提出的YOLOv8n模型在保持高精度检测的同时,实现了更小的参数量和模型权重文件。具体来说,HCI-YOLO的参数量及模型权重文件更小,并且精确度等均优于原始YOLOv8n算法。
4 结论(Conclusion)
本文探索了YOLOv8n算法在茄子果实病虫害检测领域的优化路径,并提出了一种改进方案。在YOLOv8n模型的基础上将特征增强部分替换为HSFPN结构,减少了模型参数,提升了网络模型在尺度变化时的检测精度;在主干特征提取网络中加入CA坐标注意力机制,该机制能准确定位出有价值的对象位置,有效地提升了模型性能;引入Inner-SIOU损失函数替代原始YOLOv8n模型的损失函数,有利于模型收敛,提高了模型的检测精度。
改进的YOLOv8算法与目前主流目标检测算法YOLOv5n、YOLOv7-tiny、YOLOv8、Faster-RCNN 相比,平均精度均值mAP@0.5分别提高了4.4百分点、3.3百分点、2.1百分点、4百分点。多种可视化分析结果表明,改进的YOLOv8网络能够为茄子果实病虫害的检测与识别提供新的思路和方法。
研究解决茄子果实病虫害的检测问题,对于提升茄子作物的品质至关重要,相较于传统的人工检测方式,该技术能够在更短的时间内以更高的精度和更低的成本完成检测任务,标志着农业智能化进程的一大进步。未来的研究应聚焦于在更多样化的天气、光照和作物条件下对模型进行训练。此外,随着其他病虫害检测算法的出现,模型的轻量化也成为未来研究的重要方向。