基于改进CenterNet算法的番茄叶片病害检测
Tomato leaf disease detection based on improved CenterNet algorithm
通讯作者:
收稿日期: 2024-11-15
| 基金资助: |
|
Received: 2024-11-15
| Fund supported: | 国家自然科学基金资助项目(61863016). |
作者简介 About authors
李亚(1978—),女,副教授,从事计算机应用、计算机控制、大数据技术的研究.orcid.org/0009-0007-6105-5610.E-mail:
为了解决在传统番茄叶片病害检测中出现的误检和漏检现象,提出基于改进CenterNet算法的番茄叶片病害检测模型. 构建融合注意力机制的特征融合模块,增强模型的跨尺度特征融合能力. 在骨干网络中加入多分支卷积模块RFB,扩大感受野,加强对目标特征的提取能力. 在骨干网络中引入金字塔卷积PyConv,通过计算不同尺度的感受野来强化多尺度特征的提取,减少信息损失. 设计剪枝优化策略,减少引入模块给模型参数量和计算量带来的影响. 试验结果显示,改进后模型的准确率、召回率、mAP50和mAP50:95达到96.3%、80.2%、91.4%和78.7%. 利用提出的模型,能够有效地提升番茄叶片病害检测的准确性,模型具有良好的泛化性.
关键词:
A tomato leaf disease detection model based on the improved CenterNet algorithm was proposed in order to address the false detection and missed detection phenomena in traditional tomato leaf disease detection. A feature fusion module that integrated the attention mechanism was constructed in order to enhance the model's cross-scale feature fusion capability. The multi-branch convolutional module RFB was added to the backbone network in order to expand the receptive field and enhance the ability to extract target features. The pyramid convolution PyConv was introduced into the backbone network to enhance the extraction of multi-scale features by calculating receptive fields of different scales and reduce information loss. Pruning optimization strategies were designed in order to reduce the impact of introducing modules on the number of model parameters and computational load. The test results showed that the accuracy rate, recall rate, mAP50 and mAP50:95 of the improved model reached 96.3%, 80.2%, 91.4% and 78.7% respectively. The proposed model can effectively improve the accuracy of tomato leaf disease detection, and the model has good generalization.
Keywords:
本文引用格式
李亚, 蒋晨, 王海瑞, 朱贵富, 胡灿.
LI Ya, JIANG Chen, WANG Hairui, ZHU Guifu, HU Can.
番茄作为重要的蔬菜,被广泛种植于世界各地,中国是番茄种植大国之一. 在番茄的生长过程中常受病害侵袭,及时检测和防范对保护作物健康、提高产量和质量至关重要. 早期的病害检测主要依赖于经验丰富的种植者或专家进行人工判断,这类方法存在识别效率低、易产生视觉疲劳导致判断失误的问题[1]. 随着科技的进步,新的技术手段不断涌现,为病害检测提供了新的可能性. 近年来,随着机器学习和深度学习的发展,在农业领域的应用不断增多. 传统机器学习依赖复杂特征工程和专业知识,耗时且易受限. 深度学习简化了预处理流程,大幅提高了病害识别的准确率与速度,因而被广泛应用于农作物病害检测.
刘佳明等[2]通过在MobileNetV2中嵌入更高效、轻量的瓶颈层模块,对番茄叶片病害进行检测,提高模型的检测速度,降低模型的参数量与计算量. 轻量化瓶颈结构虽然能够减少参数量和计算负担,但可能削弱特征提取能力,影响关键细节的捕获,进而降低整体精度. 李健等[3]利用MobileNetV3模型,引入CA注意力机制和ASGD优化器,借助迁移学习思想对番茄叶片病害进行检测,提高了模型分类的准确率. ASGD优化器需要存储每次更新的参数以便进行平均. 随着训练迭代次数的增加,这可能导致内存的使用量显著增加. 嵇春梅等[4]借助YOLOv8模型,引入GhostNetV2模块和双向加权特征金字塔,构建轻量化番茄病害检测模型,减少模型参数量和计算量,将检测速度提升至155帧/s. 所使用的数据集为自建数据集,且图片数量较少. 模型的性能需要在更大规模的公开数据集上进行进一步的验证. 刘拥民等[5]利用Mixup混合增强算法优化Swin-Transformer模型,对番茄叶片病害进行识别,优化后模型的检测准确率较其他检测模型得到提升. Mixup生成的新样本标签是按照线性组合生成的,这可能导致模型在训练时接触到模糊或不准确的标签,从而使模型在面对类别边界不明显或高度重叠的样本时,容易出现错判,导致检测任务中出现误报或漏报.
综上所述,大多数学者都使用基于锚框的目标检测模型,通过引入注意力机制、轻量化模块和卷积模块等进行改进. 一旦被检测物体的长宽比发生显著变化,基于锚框的网络结构检测效果就会变差[6]. 针对番茄叶片病斑尺寸和形状差异较大带来的检测挑战,本文采用无锚框算法CenterNet,通过优化算法特征融合部分,结合金字塔卷积PyConv计算多尺度感受野,以减少信息丢失. 引入多分支卷积RFB扩大感受野,提升目标特征提取的效果.
1. 数据集
图 1
2. 番茄叶片病害的检测方法
2.1. CenterNet算法的原理
CenterNet是无锚框的目标检测模型,通过直接预测目标的中心点、宽高和类别来简化检测流程,无须预设锚框和非极大值抑制(NMS). CenterNet网络结构由主干网络、上采样解码和预测3部分组成.
主干网络支持Hourglass Network、DLANet和ResNet. 其中ResNet网络中的残差连接有效解决了梯度消失的问题,性能优于计算资源需求较高的Hourglass Network和结构复杂的DLANet. 本研究采用ResNet50. 上采样解码通过3次反卷积将特征图尺寸扩大8倍,生成高分辨率特征图. 预测部分包括热力图预测(判断物体存在及类别)、中心偏置预测(修正中心点位置)和宽高预测,实现对目标的精确定位与检测. CenterNet的结构如图2所示.
图 2
2.2. CenterNet算法的改进
针对番茄叶片病害图像在复杂环境背景下识别效果不佳的问题,设计基于改进CenterNet算法的病害检测方法. 参考特征金字塔网络(FPN)的思想,构建融合注意力机制的特征融合网络,增强了模型跨尺度融合的能力. 在ResNet50主干网络中的残差块间引入多分支卷积(RFB)模块,扩大模型的感受野,增强对目标特征的关注. 将ResNet50网络中的所有卷积替换为金字塔卷积(PyConv),通过计算多尺度感受野,有效提升模型的检测精度. 改进后的网络结构如图3所示.
图 3
2.2.1. 融合注意力机制的特征融合网络
在CenterNet算法中,输入图像通过主干网络提取特征后,直接通过上采样模块进行目标检测. 这种方法虽然简化了模型结构和推理流程,但未能充分利用网络中不同层和不同尺度的特征. 在番茄叶片病害检测任务中,病害表现可能因尺度差异而不同,单一尺度特征的使用可能导致信息损失,从而影响检测性能.
参考特征金字塔网络(FPN)的思想,引入瓶颈注意力模块(BAM),构建特征融合网络(BFPN). 该网络在主干网络中将维度为16×16×
图 4
在通道注意力分支中,每个通道会捕捉到特定的特征响应,从而突出关注点. 对特征图F进行全局平均池化,聚合每个通道特征,生成通道向量,有效地编码全局信息. 利用带隐含层的多层感知器(MLP)推断通道间的注意力关系,有效地学习它们的交互特征. 之后,在MLP输出后添加批量归一化层(BN),调整空间分支输出的尺度. 通道注意力的计算方法如下:
在空间注意力分支中,主要目的是强调或抑制在不同空间位置的特征. 将特征F∈RC×H×W进行降维,将其投影到形状为RC/r×H×W的空间,这一步通过应用1×1卷积整合和压缩跨通道维度的特征映射. 使用与通道分支相同的衰减率r处理降维后的特征图,应用2个3×3膨胀卷积以有效利用上下文信息. 利用1×1卷积将特征简化为R1×H×W的空间注意力图. 在末端通过批量归一化层调整尺度,空间注意力的计算方法如下:
式中:f表示卷积运算,上标为卷积核大小. 从2个注意分支中获取通道注意Mc(F)和空间注意Ms(F)后,将它们组合生成最终的3D注意映射M(F). 计算方法如下:
式中:
2.2.2. RFB模块
在ResNet50主干网络中,通过4层残差块的跳跃连接,有效地改善了信息流动和梯度传递. 在番茄叶片病害检测的任务中,由于病害特征的多样性,固定的感受野限制了对不同尺度特征的捕捉能力,从而影响检测效果. 在第1层与第2层、第2层与第3层以及第3层与第4层的残差块之间引入多分支卷积模块RFB,用于扩大感受野,提升模型对目标特征的提取能力,增强对病害的检测效果. RFB模块的结构如图5所示.
图 5
2.2.3. 金字塔卷积PyConv
在ResNet50主干网络中,残差块通过多层卷积构建深层网络. 尽管残差连接解决了梯度消失的问题,但步幅和池化操作可能导致局部特征丢失. 对于番茄叶片病害这类小目标,细微变化可能因下采样而消失,并且随着卷积层加深,特征图中的细节信息逐渐压缩,最终特征图可能无法完整地保留关键信息. 引入金字塔卷积(PyConv),减少信息损失并增强多尺度特征提取,从而提升检测效果. PyConv的结构如图6所示. 其中,H、W、FM分别为输出特征图的高度、宽度和特征图的通道数.
图 6
式中:Ci,
Co1+Co2
式中:K2为卷积核的空间分布率.
综上所述,PyConv与标准卷积在参数量和计算复杂度上相近. 在主干网络中引入PyConv,可以在保持参数量和计算复杂度的基础上,使网络在特征提取阶段更加关注多尺度信息的提取,避免多层卷积操作可能带来的信息损失,提高模型的检测精度.
2.2.4. 随机非结构化剪枝优化策略
在ResNet50主干网络中,堆叠残差块构建深层网络时引入大量的卷积层. 为了提高检测精度,引入金字塔卷积(PyConv)和多分支卷积模块(RFB),导致卷积层数显著增加,从而大幅提升了参数量和计算量. 采用随机非结构化剪枝方法,对骨干网络中的卷积层进行剪枝,去除冗余权重,以缓解新增模块对模型复杂度的负面影响.
随机非结构化剪枝(random unstructured pruning)是训练后对神经网络权重进行剪枝的技术,通过去除冗余权重来降低模型参数量和计算复杂度. 针对骨干网络中的卷积层实施剪枝,在模型遍历的过程中,根据设定的剪枝比例,随机将权重矩阵中相应比例的权重置零. 被置零的权重不再参与计算,从而减少模型的计算负担. 该方法在保持模型核心性能的同时,显著降低了计算资源消耗,且剪枝操作对各层独立进行,确保了操作的灵活性和可扩展性. 剪枝后,模型通过再训练来恢复剪枝带来的性能损失. 通过继续训练模型,调整权重适应剪枝后的稀疏结构.
3. 实验结果与分析
3.1. 实验环境和评价指标
训练和测试均在同一环境下进行,本实验训练和测试的配置如下:CPU为12vCPUIntel(R)Xeon(R)Platinum8352VCPU@2.10 GHz,显存为24 GB, GPU为RTX4090,软件环境为Windows10,64位,pytorch1.11.0,Cuda11.3版本,python3.8.10版本. 训练参数如下:迭代次数为300,学习率为
采用准确率P、召回率R、mAP和F1分数作为评价指标. mAP为各类别平均精度AP的均值,AP是P-R曲线下的面积,反映模型的检测性能,面积越大,性能越优. 其中,mAP50表示IoU阈值为0.5时的AP均值,mAP50:95表示IoU阈值为0.5~0.95时以0.05为步长的AP均值. F1分数是精确率与召回率的调和平均数,用于评估分类模型的性能.
3.2. 融合注意力机制的特征融合模块消融
表 1 融合注意力机制的特征融合模块消融实验
Tab.1
| 模型 Model | P/% | R/% | mAP50/ % | mAP50:95/% | F1 |
| CenterNet | 95.5 | 61.0 | 82.0 | 69.8 | 0.71 |
| CenterNet+FPN | 96.3 | 67.5 | 82.7 | 69.7 | 0.78 |
| CenterNet+FPN+BAM | 96.9 | 68.6 | 85.0 | 72.1 | 0.79 |
| CenterNet+FPN+SE | 96.1 | 66.4 | 79.2 | 67.5 | 0.66 |
| CenterNet+FPN+CBAM | 97.0 | 58.2 | 81.6 | 69.3 | 0.68 |
| CenterNet+FPN+ELA | 95.3 | 64.3 | 82.3 | 70.2 | 0.75 |
如表1所示,在添加特征融合模块后,模型能够更有效地利用不同层次的信息,检测的准确率和召回率分别提高了0.8%和6.5%. 召回率的提升表明,模型在识别正样本方面的能力显著增强. 在添加SE注意力机制后,所有指标均出现下降. 尽管添加CBAM注意力机制时准确率有所提升,但其他指标下降. 在加入ELA注意力机制后,除了mAP50:95指标外,其余指标均有不同程度的下降. 相比之下,在添加BAM注意力机制后,召回率、mAP50和mAP50:95分别提升了1.1%、2.3%和2.4%,且准确率有所提高. 综上所述,选择BAM注意力机制,使得模型可以更好地关注目标特征,提升网络检测的准确性.
3.3. 消融实验
为了验证提出算法改进的有效性,设计消融实验,实验结果如表2所示. 其中,Np为参数量,FLOPs为每秒浮点运算次数. 可知,通过实验1与实验6的对比表明,改进后的算法在各项指标上较原始模型都得到了提升,且召回率大幅度提升,这一结果表明模型在识别正样本方面的能力显著增强. 在实验2和实验3中,加入了融合注意力机制的特征融合模块,显著增强了模型对低层次和高层次信息的融合能力,提升了模型对跨尺度信息的关注度,进一步提高了检测精度. 在实验3的基础上引入RFB模块,扩大了感受野,使得骨干网络能够更好地关注并提取目标特征,与实验3相比,mAP50、mAP50:95和R分别提升了0.6%、1.1%和1.7%. 通过对比实验5、6可以看出,尽管在进行剪枝操作后模型的准确率略有下降,但模型的参数量和计算量显著减少,R、mAP50、mAP50:95和F1分数等性能指标都有所提升. 虽然剪枝后的计算量高于改进前模型的计算量,但这一剪枝操作在一定程度上解决了由引入模块所导致的计算量增加的问题,从而提高了模型在硬件资源受限场景中的适用性.
表 2 不同改进点组合的消融实验
Tab.2
| 实验编号 | FPN | BAM | RFB | PyConv | 剪枝 | P/% | R/% | mAP50/% | mAP50:95/% | F1 | Np/106 | FLOPs/109 |
| 1 | × | × | × | × | × | 95.5 | 61.0 | 82.0 | 69.8 | 0.71 | 32.67 | 70.22 |
| 2 | √ | × | × | × | × | 96.3 | 67.5 | 82.7 | 69.7 | 0.78 | 32.67 | 70.22 |
| 3 | √ | √ | × | × | × | 96.9 | 68.6 | 85.0 | 72.1 | 0.79 | 33.93 | 70.58 |
| 4 | √ | √ | √ | × | × | 97.0 | 70.3 | 85.6 | 73.2 | 0.81 | 40.83 | 103.08 |
| 5 | √ | √ | √ | √ | × | 96.9 | 76.9 | 89.0 | 76.8 | 0.85 | 40.19 | 102.74 |
| 6 | √ | √ | √ | √ | √ | 96.3 | 80.2 | 91.4 | 78.7 | 0.87 | 30.80 | 84.37 |
如图7所示为消融实验中模型损失函数的下降趋势. 其中,Ni为迭代次数,L为损失值.随着迭代次数的增加,损失函数都趋于收敛,本文算法表现出最低的损失. 每添加一个模块,模型的损失都有所降低,且收敛速度加快,模型性能逐步提升,进一步证明了本文算法改进的合理性.
图 7
3.4. 热力图与可视化结果的对比
在目标检测中,热力图用于展示模型对目标位置及置信度的预测. CenterNet会生成关键点热力图,用于表示目标中心点的位置. 如图8所示为改进前、后模型生成的热力图对比. 可以看出,在早疫病中,原始CenterNet模型错误地检测到了左侧叶片中的病害,热力图上呈现出明显的热力点,但实际上该叶片是健康的. 相较之下,改进后的模型成功识别出该叶片的健康状态,仅在对应区域生成了微弱的热力响应. 在叶霉病的检测中,原始模型错误地将右侧土地上的落叶与杂草识别为病害,并生成了热力点,未能有效地克服自然环境带来的干扰. 改进后的模型克服了这些干扰,准确地生成了热力点.
图 8
图 9
图 9 改进前、后病害检测的可视化对比
Fig.9 Visual comparison of disease detection before and after improvement
3.5. 不同网络模型性能的对比试验
表 3 不同网络模型的性能对比试验
Tab.3
| 模型 | P/ % | R/ % | mAP50/ % | mAP50:95/ % | F1 |
| CenterNet | 95.5 | 61.0 | 82.0 | 69.8 | 0.71 |
| YOLOv5 | 86.2 | 81.2 | 89.8 | 71.2 | 0.83 |
| YOLOv7 | 84.3 | 81.5 | 89.0 | 73.1 | 0.83 |
| YOLOv8 | 85.0 | 79.4 | 88.6 | 74.6 | 0.82 |
| ResNxt | 86.6 | 79.3 | 88.4 | 71.2 | 0.83 |
| RT-DETR | 85.6 | 73.5 | 82.5 | 69.2 | 0.79 |
| 本文算法 | 96.3 | 80.2 | 91.4 | 78.7 | 0.87 |
如表3所示,改进后的算法在准确率上优于其他所有模型. 与YOLO系列模型相比,本文算法在mAP50:95和mAP50指标上显著优于3个YOLO模型. 这表明本文算法在多个IoU阈值下表现出色,能够在较低的IoU阈值时准确检测目标,在较高的IoU阈值时保持精确的目标定位能力. 与非YOLO系列的RT-DETR和ResNxt模型相比,本文算法展示了竞争优势,在mAP50和mAP50:95方面,本文算法的表现都超过了这2种模型,且在F1分数上取得了优势. 这些结果表明,提出算法具备更强的目标识别能力,验证了提出算法改进的合理性与有效性.
3.6. 模型泛化实验
表 4 模型在不同数据集上的检测结果
Tab.4
| 模型 | 数据集 | P/ % | R/ % | mAP50/ % | F1 |
| CenterNet | 草莓病害 | 94.4 | 79.8 | 89.3 | 0.86 |
| CenterNet | CCTSDB交通标志 | 93.7 | 78.2 | 87.9 | 0.85 |
| 本文算法 | 草莓病害 | 95.3 | 87.1 | 91.8 | 0.91 |
| 本文算法 | CCTSDB交通标志 | 94.3 | 86.9 | 90.3 | 0.90 |
从表4可知,提出的算法在草莓病害数据集上的检测效果显著优于CenterNet算法. 在召回率和mAP50方面均有明显提升. 实验结果进一步证明,提出的模型在农作物叶片病害的检测方面具有良好的泛化性. 在面对不同背景的情况下,提出的模型在CCTSDB交通标志数据集上的识别效果优于CenterNet算法,这表明本文模型具备较强的自适应特征能力和一定的通用性,可以适用于其他领域的应用.
4. 结 语
本文针对CenterNet算法在特征融合和多尺度特征提取方面的不足,提出融合注意力机制的特征融合模块. 引入RFB模块,以扩大模型感受野,增强目标特征的表达能力. 利用金字塔卷积操作减少信息损失,有效提升了多尺度特征提取的性能. 为了控制模型复杂度,设计相应的剪枝策略. 改进后的模型在病害检测任务上的准确率达到96.3%,性能优于其他主流模型,且在各项评价指标上均展现出显著优势. 尽管模型的性能优异,但参数量和计算复杂度有待进一步的优化. 未来工作将重点探索轻量化策略,提升模型的实用性和运行效率.
参考文献
基于改进YOLOv7-tiny的番茄叶片病虫害检测方法
[J].
Tomato leaf disease and pest detection method based on improved YOLOv7-tiny
[J].
基于改进MobileNetV2的番茄病害识别研究
[J].
Research on tomato disease recognition based on improved MobileNetV2
[J].
一种优化的Swin Transformer番茄叶片病害识别方法
[J].
An optimized Swin Transformer-based method for tomato leaf disease recognition
[J].
针对CenterNet缺点的安全帽检测算法改进
[J].
Improvement of a hard hat detection algorithm addressing the shortcomings of CenterNet
[J].
Deep learning for tomato diseases: classification and symptoms visualization
[J].
A simple and light-weight attention module for convolutional neural networks
[J].DOI:10.1007/s11263-019-01283-0 [本文引用: 1]
Parkinson's disease detection using modified ResNext deep learning model from brain MRI images
[J].DOI:10.1007/s00500-023-08535-9 [本文引用: 1]
基于改进YOLOv5s的无人机小目标检测算法
[J].
An improved YOLOv5s-based drone small target detection algorithm
[J].
An instance segmentation model for strawberry diseases based on mask R-CNN
[J].DOI:10.3390/s21196565 [本文引用: 1]
/
| 〈 |
|
〉 |

