本方案概述了一种基于图像的深度学习流程,用于分类水稻叶片病害。该流程结合基于UNet的分割方法与迁移学习模型,以提高分类准确率。该方法支持病害的自动化检测,并包含用户界面以实现实际部署,有助于非专业人员识别水稻作物问题。
研究文章
本方案概述了一种基于图像的深度学习流程,用于分类水稻叶片病害。该流程结合基于UNet的分割方法与迁移学习模型,以提高分类准确率。该方法支持病害的自动化检测,并包含用户界面以实现实际部署,有助于非专业人员识别水稻作物问题。
水稻是一种重要的粮食作物,为全球数十亿人口提供食物保障,水稻 种植对许多国家的经济稳定至关重要,在农业社区中是收入和就业的重要来源,尤其在亚洲地区。尽管水稻种植具有重要意义,但其常受到多种叶部病害的制约,如黄矮病(Tungro)、鞘枯病(SB)、稻负泥虫病(PH)、穗颈瘟(NB)、窄条褐斑病(NBS)、叶鞘腐病(LS)、叶瘟病(LB)、褐斑病(BS)和细菌性条斑病(BLB),这些病害均会显著降低产量和稻米品质。为解决上述问题,本研究提出了一种基于迁移学习的定制化深度学习方法。共评估了六种不同的模型,其中定制的 DenseNet-121 模型表现最佳,准确率达到 0.98,精确率为 0.97,召回率为 0.96。为提升模型性能,采用 UNet 模型进行图像分割,通过构建分割后的图像数据集显著提高了识别准确率。这六种模型在两个数据集上进行了测试:一个包含分割后的图像,另一个包含未分割的图像,两者均源自“水稻叶片病害检测数据集”。此外,开发了一个简洁直观的图形用户界面,使无技术背景的用户也能方便地使用该模型并识别水稻叶部病害。该集成化解决方案凸显了深度学习在提供可靠且可扩展的水稻叶部病害分类方法方面的有效性。
水稻是全球农业的基石,为数十亿人口提供生计,并构成许多国家尤其是亚洲国家的经济支柱,在这些地区,水稻在粮食消费和民生中占据重要比重1。然而,由于多种生物和环境因素的影响,水稻的可持续生产正面临日益严峻的威胁,其中叶片病害是最关键的挑战之一。诸如细菌性条斑病、褐斑病和稻瘟病2,3等病害可显著降低作物产量,损害稻米品质,并给农民带来巨大的经济损失4。
为了解决这些问题,水稻叶片病害的分类已成为植物病理学中的一项重要工具5。对这类病害进行早期且准确的识别,有助于及时采取干预措施,从而减轻病害的传播及其影响。传统上,该任务依赖专家进行肉眼观察,这种方法虽然在小规模场景下有效,但存在主观性强、劳动强度大以及难以在大面积农田中推广应用等局限性。
机器学习(ML)和深度学习(DL)的最新进展已显著改变了植物病害检测与分类的方式。这些技术利用感染叶片的高分辨率图像,实现自动化、可扩展且精确的病害识别。此类自动化提高了检测的一致性,减少了人为误差,并为农民提供实时决策支持6。
近年来,多项研究还探索了提升农业诊断水平的创新方法。例如,RNA水平的研究(如circANK介导的防御抑制作用)为理解水稻 病害开辟了新的生物学途径7,而基于视觉的框架(如用于水稻 行检测的双通路实例分割方法)则展示了深度学习在精准农业中的应用价值8。此外,近期的研究(如TMFF:面向复杂视觉环境中多标签分类的可信多焦点融合模型)进一步强调了混合型且鲁棒的深度学习模型在实际应用中的日益重要性9。
受这些进展的推动,本研究通过结合基于UNet的分割方法与深度迁移学习模型,推进了水稻叶片病害的分类研究。该方法旨在更精确地分离病害区域,并利用高效的预训练网络进行分类。通过克服传统人工方法的局限性,并通过分割增强模型的关注能力,本研究有助于提升分类性能,支持可持续农业实践,并加强粮食安全体系10。
水稻叶片病害分类概述
水稻作为最重要的主粮作物,养活了全球超过50%的人口,同时也是许多发展中国家尤其是亚洲国家的关键经济支柱11。除了在粮食安全方面的重要作用外,水稻种植还深深植根于多个地区的文化和社会实践中,因此其持续生产已成为各国政府和农业利益相关方的优先事项。然而,水稻生产面临诸多挑战,其中叶部病害持续威胁着水稻的产量和品质。诸如细菌性叶枯病、褐斑病和稻瘟病等普遍存在的病害导致了严重的产量损失12,影响了全球水稻 生产,并给严重依赖这一主粮的经济体带来压力。
叶片病害分类是现代农业管理中的关键环节,因为它为及时有效的病害防控措施提供了基础。及时识别病害可使农民控制病害蔓延,高效利用农用化学品,并避免作物遭受严重损害。传统上,这一过程依赖于熟练农业专业人员进行的目视检查。尽管该方法可能有效,但其劳动强度大、耗时长,且高度依赖观察者的专业水平。此外,在大规模农业生产中,人工检查往往变得不切实际,尤其是在感染初期难以识别细微症状的情况下13。
用于叶片病害分类的自动化系统的出现,彻底改变了农业诊断领域14。这些系统利用成像技术与深度学习(DL)的进步,提供了可扩展15、高效16且高度准确的解决方案17。图像处理(IP)结合机器学习(ML)和深度学习模型,能够处理水稻叶片的高分辨率图像以识别病害症状,其准确性和速度通常优于传统方法。通过自动化分类过程,这些系统使农民和农业专业人员能够基于数据做出决策,减少对人工经验的依赖,并最大限度地降低出错风险。
水稻叶片病害分类不仅有助于提高产量并减少损失,还促进了可持续农业的总体目标。通过实现对病害的精准识别18,这些技术有助于优化19农药使用,从而减轻对环境的影响,推动环境友好型20农业实践。此外,将这些系统与移动应用程序和遥感工具相结合,可将其应用扩展至资源有限地区的个体农户,促进农业进步中的包容性与公平性21。
水稻作为全球重要作物,其叶片病害分类方法的稳健性、可靠性和可及性显得尤为重要22。通过应用这些技术,农业领域能够应对最紧迫的挑战之一,确保在需求不断增长和环境制约日益加剧的背景下,水稻生产的韧性与可持续性。
建模技术
用于分类水稻叶片病害的建议方法结合了多种先进技术,以提高准确性和效率:
图像分割:第一步是分割叶片图像,以将叶片区域与背景分离。此步骤通过去除图像中无关的部分23,24,降低计算复杂度,并增强对相关模式的关注,从而提高准确性。
特征提取:从分割后的图像中提取特征,以捕获有关病害症状的关键细节25。这些特征构成了分类模型的基础,使其能够有效区分健康叶片与患病叶片。
迁移学习:迁移学习利用预训练模型中的知识,显著减少了在新数据集上进行大量训练的需求。该方法在保持高准确性和高效性的同时,加速了开发过程26。
端到端分类模型:与仅使用迁移学习进行特征提取的传统方法不同,所提出的方法采用了一种端到端的分类框架。这种整体性方法将特征提取与分类27,28整合为一个无缝的流程,确保最优性能。
评估指标:采用多种评估指标来分析模型的性能29,以提供关于其准确率、精确率、召回率及整体效率的详细信息。这一全面的分析有助于有效确定模型的可靠性与适用性。
研究空白
尽管取得了显著进展,但在叶片病害分类领域仍存在各种挑战和局限性:
人工识别叶片病害严重依赖领域专家,导致结果具有主观性和不一致性。即使具备丰富的领域知识,人工方法中的错误仍可能导致严重的作物损失。
人工方法劳动强度大,且无法全天候运行,因此不适用于大规模或连续监测。
关于叶片病害分类的研究十分广泛,但专门针对水稻叶片病害分类的研究却非常有限。
以往的研究30通常忽略了使用迁移学习对水稻叶片病害进行分类。
现有模型在不同环境条件和疾病变异情况下往往缺乏普适性,限制了其实际应用价值31。
目前研究中使用的数据集通常规模较小且缺乏多样性,这限制了其更广泛的应用32。
通过解决这些不足,本研究旨在通过创新技术与稳健的方法,推动水稻叶片病害分类领域的发展。
本研究的主要贡献
本研究旨在通过构建和评估一种基于深度学习的定制化方法来分类水稻叶片病害,以填补上述空白。主要贡献包括:
利用迁移学习来使用预训练模型的权重,可以在较少的训练周期内实现高精度。
证明较少的训练轮次可降低对高计算能力的需求,从而使计算资源有限的用户也能使用该方法。
开发一个端到端的分类模型,整合分割、特征提取和分类,提供全面的解决方案。
采用数据分割及其他技术,以增强模型在不同数据集间的泛化能力。
开放性挑战
尽管本研究取得了令人鼓舞的成果,但仍存在一些尚未解决的挑战。这些挑战包括需要更大且更多样化的数据集,以提高模型在不同环境条件33和疾病类型34下的鲁棒性35与适应性,整合多模态数据以提升预测准确性,以及将模型部署于田间环境实现实时应用。此外,必须在计算效率与模型性能之间取得平衡,以确保终端用户(特别是在农村和资源匮乏地区)能够便捷地使用该技术。
访问受限。请登录或开始试用以查看此内容。
数据集描述
本研究使用的数据集来自公开的 Kaggle 仓库,名为 Paddy Leaf Diseases Detection Dataset。该数据集包含 18,545 张水稻叶片图像,分为 10 种病害类别和 1 个健康类别。图像分辨率各异,并在不同的光照和环境条件下采集。
图像预处理
所有图像均使用 TensorFlow 的 tf.image.resize() 函数调整为 224 × 224 像素。这种统一性可确保与预训练 CNN 模型的输入要求兼容。像素值通过 Keras ImageDataGenerator 中的 rescale=1./255 参数归一化至 [0,1] 范围。数据增强(仅用于训练):使用 ImageDataGenerator 应用水平和垂直翻转、旋转(±20°)以及缩放(最高 20%)等技术,以提升模型泛化能力。
图像分割
采用UNet模型进行图像分割,以从复杂背景中分离出病害叶片区域。该UNet网络架构基于Keras函数式API构建,包含编码器-解码器层、跳跃连接以及ReLU激活函数。通过逐像素相乘(cv2.bitwise_and)将分割掩膜应用于原始图像,仅保留相关特征。
模型架构与训练
采用以下模型作为骨干分类器:VGG16、ResNet50、InceptionV3、MobileNet、AlexNet 和 DenseNet121。导入在 ImageNet 上预训练的模型时设置 include_top=False。添加了一个自定义分类头,包括一个全局平均池化层、两个分别具有 128 和 64 个神经元的全连接层(ReLU 激活)、一个 Dropout 层(丢弃率 = 0.4),以及一个具有 11 个输出并采用 Softmax 激活的最终全连接层。
实验设置
所有实验均采用以下设置进行:编程环境:Python 3.11.5 配合 TensorFlow 和 Keras,执行平台:Jupyter Notebook,硬件配置:Intel Core i5-6300U 处理器、8 GB 内存、Windows 11 操作系统,批量大小:32,训练轮数:50,优化器:Adam,学习率:0.0001,损失函数:分类交叉熵,激活函数:隐藏层使用 ReLU,最终输出层使用 Softmax。
评估指标
使用 sklearn.metrics 中的 classification_report 计算准确率、精确率、召回率和 F1 分数。利用 confusion_matrix 和 seaborn.heatmap 绘制混淆矩阵。对非分割图像和 UNet 分割图像均进行性能评估,以实现对比分析。
图形用户界面开发
使用 Python 的 Tkinter 库创建了一个简单的图形用户界面。用户可通过该界面上传叶片图像,图像将被输入至训练好的模型中进行处理。屏幕上会显示预测的病害类别及相应的置信度评分。
数据集创建
本研究使用的数据集是来自 Kaggle 公开可用的水稻叶片病害检测数据集36,共包含 18,545 张高分辨率水稻叶片图像,分为 10 种病害类别和 1 个健康类别。这些图像在不同的光照条件和多样的环境设置下采集,使该数据集具有高度代表性,适用于构建鲁棒的深度学习模型。该数据集大小约为 8.33 GB,包含以下类别:黄化矮缩病(Tungro)、鞘腐病(SB)、稻负泥虫病(PH)、穗颈瘟(NB)、窄条褐斑病(NBS)、叶灼病(LS)、叶瘟病(LB)、健康(Healthy)、褐斑病(BS)和细菌性条斑病(BLB)。
为确保可重复性和有效的模型评估,数据集在保持类别分布的前提下被随机划分为训练集(80%)和测试集(20%)。训练集用于模型训练,而测试集则用于在未见过的数据上验证模型性能。评估基于标准的分类指标:准确率(Accuracy)、精确率(Precision)、召回率(Recall)和 F1 分数(F1-score),以全面评估各模型的分类能力。本研究比较了六种深度学习模型:VGG16、ResNet、InceptionV3、MobileNet、AlexNet 和 DenseNet121,其中 DenseNet121 在该任务中表现最佳。
数据分布
使用在数据集上训练的深度学习模型进行疾病分类。该数据集被划分为两个子集:训练集和测试集。训练集用于训练模型,而测试集用于评估模型在先前未见过的数据上的性能。表1提供了十种疾病类别及健康叶片类别的图像分布概要。该表格有助于全面理解每种疾病相关的视觉症状,从而促进分类模型的训练与评估。
这种分布确保了在训练和测试阶段,每种疾病类别都能得到公平的代表性。训练集包含了大部分图像,使模型能够有效学习每一类的独特特征。测试集由较少的图像子集组成,以可靠地评估模型的准确性及其对新出现、未见过数据的泛化能力。
图像在各类别之间均衡且多样化的分布,确保模型有足够的数据学习每种疾病类型所关联的独特模式,同时降低对任何特定类别的过拟合或偏差风险。这种数据划分对于获得稳健且可靠的分类结果至关重要。
数据清洗
在预处理阶段,清理数据对于提高分类模型的准确性和效率至关重要。原始的稻叶图像通常包含土壤、邻近植被或农具等不需要的背景元素,这些元素会引入噪声并降低模型的整体性能。
为解决这一问题,采用UNet37,38模型进行图像分割,该模型是一种著名的卷积神经网络架构,专为语义分割任务设计。UNET模型能够以高精度将叶片区域与背景分离,确保仅保留图像中的相关部分用于后续处理39。分割过程如图1所示。
使用UNet模型进行分割的流程(图2):将数据集中的原始图像输入UNet模型。UNet模型包含一个用于提取分层特征的编码器和一个在分割叶片区域的同时重建图像的解码器。模型输出一幅二值掩膜,其中叶片区域被标记,背景被去除。通过对分割后的图像应用形态学操作,进一步优化结果,以确保边缘平滑并去除任何残留噪声(图3)。
UNet 分割的数学表达:UNet 通过学习从输入图像空间到二值掩膜的映射来实现语义分割,该掩膜突出显示感兴趣区域(ROI),即病害叶片区域,同时抑制无关背景。设:
表示大小为 H*W、具有 C=3 个颜色通道的输入 RGB 图像。
为训练好的 UNet 模型的输出,其中 M 中每个像素的值表示该像素属于病害叶片区域的概率。
最终的二值分割掩膜 
其中 τ [0,1] 为分割阈值(通常设为 0.5)。
然后计算得到分割后的图像
:

其中
表示逐元素相乘运算,应用于所有通道的空间范围。该操作保留感兴趣区域(ROI)中的像素值(此时
),并屏蔽背景像素(此时
)。此分割输出作为输入传递给分类模型(例如 DenseNet121),使其能够专注于与疾病相关的特征,同时忽略噪声较多且无信息量的背景区域,从而提升分类性能与模型的泛化能力。
该预处理步骤可确保后续的特征提取与分类阶段在干净且相关的数据上进行,从而提升水稻叶片病害分类模型的整体性能与可靠性。
迁移学习
迁移学习利用预训练的神经网络来解决新的但相关的问题,无需从头开始构建模型。该方法利用先前任务中获得的知识,实现高效学习40。预训练模型通常在大规模数据集上开发,具备强大的特征提取能力,适用于在特定数据集上进行微调。这种方法可缩短训练时间,避免过拟合,并且即使在计算资源有限的情况下也能实现高精度。
本研究采用迁移学习方法,通过评估多种预训练的深度学习模型来识别水稻叶片病害。实验中探讨的模型架构包括 VGG16、ResNet、InceptionV3、MobileNet、AlexNet 和 DenseNet121。这些模型均最初在大规模数据集(如 ImageNet)上进行训练,本研究利用了其预训练权重。为使模型适应分类任务,进行了以下修改:
模型修改: 在 Keras 中导入模型时,通过使用参数 include_top=False,移除了每个模型原有的全连接(分类)层。这确保了仅保留每个预训练模型的卷积基底(特征提取器)。随后,使用 Flatten() 层将最后一个卷积块的输出展平为一维向量。
全连接层:在展平步骤之后,依次添加了三个全连接(Dense)层。这些层使用 Keras 的 Dense() 函数定义:第一层包含 256 个神经元并采用 ReLU 激活函数,第二层包含 128 个神经元并采用 ReLU 激活函数,第三层包含 64 个神经元并采用 ReLU 激活函数。此外,在层之间还添加了一个 Dropout 层,以减少过拟合。
输出层:在展平步骤之后,依次添加了三个全连接(Dense)层。这些层使用 Keras 的 Dense() 函数定义:第一层包含 256 个神经元并采用 ReLU 激活函数,第二层包含 128 个神经元并采用 ReLU 激活函数,第三层包含 64 个神经元并采用 ReLU 激活函数。此外,在层之间还加入了一个 Dropout 层(丢弃率为 0.4),以减少过拟合。
整个方法的流程和步骤,包括预处理、分割、迁移学习模型的实现以及评估,如图4所示。该图全面概述了本研究中所采用的各个步骤。通过采用迁移学习,成功缩短了训练时间,降低了对高端计算资源的依赖,并在水稻叶片病害分类中实现了显著的性能提升。
用于叶片病害分类的拟议 DenseNet121 模型
在所有测试的模型中,DenseNet121 在水稻叶片病害分类方面表现出最佳性能,取得了显著的准确率。这一先进的深度学习模型以其创新的架构40而著称,能够促进高效的信息流动并增强特征重用。
DenseNet121 的结构:DenseNet121 的特点是层与层之间密集连接,每一层均可访问所有前序层的特征图。该设计优化了信息流动,减少了冗余,并显著提高了模型的整体效率。
该架构包含以下关键组件:
输入层:接收调整为 224 × 224 像素的图像,以进行标准化处理。
初始卷积层:应用 7 × 7 卷积操作,随后进行最大池化,以降低空间维度并提取低层特征。
密集块:该模型包含四个密集块。每个块由多个以密集方式连接的卷积层组成,即每个层均可直接访问该块内所有前序层的输出。
过渡层:位于密集块之间,这些层先执行 1×1 卷积,然后进行平均池化,以降低特征维度,提高计算效率。
全局平均池化(GAP):在全连接层之前减小特征图的空间维度。
全连接层:生成用于分类的输出向量。
用于分类的自定义层:在本研究中,默认的全连接层被替换为一个自定义结构:展平层、三个全连接层(分别包含 256、128 和 64 个神经元,激活函数为 ReLU),以及一个用于二分类的最终 S 型激活层。
DenseNet121 的特征重用能力和紧凑架构在其对水稻叶片病害数据集的优异表现中起到了关键作用。这种高效性,加上其减轻过拟合的能力,使其在训练数据有限的任务中尤为理想。由于具备特征重用和梯度流动的特性,DenseNet121 在准确率和泛化能力方面优于其他模型。尽管 ResNet 和 VGG16 等模型表现良好,但在准确率和计算效率方面,DenseNet121 均优于它们。
在所有模型中,均包含三个全连接(稠密)层,采用 ReLU 激活函数(如公式 1 所示),最终以一个使用 SoftMax 激活函数的稠密层(公式 2)结束,以实现多类分类。这种调整使得每个模型能够有效利用其预训练权重,同时对数据集中的图像进行分类。
ReLU f(x) = max(0, X) (1)

其中 xi 表示 SoftMax 函数的输入,已针对水稻叶片病害的十种类别分类进行了调整。每个模型独特的架构结合这一定制的输出层,实现了有效的特征提取和准确的图像分类。
图5展示了DenseNet121的架构布局,呈现了信息在其密集块、过渡层以及为本研究定制的分类层中的无缝流动。该示意图阐明了DenseNet121如何处理图像输入并生成预测输出。
访问受限。请登录或开始试用以查看此内容。
本研究中进行的实验采用 Python 3.11.5 版本和 Jupyter Notebook 在 Windows 11 操作系统上构建模型。所使用的主要深度学习框架为 TensorFlow 和 Keras 库。本研究使用的硬件设备为配备 Intel i5-6300U 处理器(主频 2.50 GHz)和 8 核 CPU 的 HP 台式计算机。
数据集被分为两个主要子集:80%用于训练,20%用于测试。总共分配了15,023张图像用于训练,3,522张图像用于测试。该方法确保模型能够使用未见过的数据进行评估,符合标准的深度学习验证实践。
本研究探索了多种预训练模型,包括 VGG16、ResNet、InceptionV3、MobileNet、AlexNet 和 DenseNet121。为评估这些模型在水稻叶片病害分类中的有效性,记录了 5...
访问受限。请登录或开始试用以查看此内容。
本研究提出了一种基于深度学习的框架,用于对水稻叶片病害进行自动分类,该框架同时适用于经过分割和未经分割的数据集。该方法将基于UNet的图像分割与迁移学习模型相结合,证明了图像分割可显著增强特征提取能力和分类准确率。在评估的六种模型中,定制化的DenseNet-121表现最佳,准确率达到0.98,精确率为0.97,召回率为0.96。
该研究通过提供一种可扩展且实用的解决方案,用于水稻叶片疾病的早期和准确检测,推动了科学领域的发展。这不仅对提高作物产量和减少经济损失具有重要意义,还有助于促进人工智能驱动的诊断系统在农业中的应用。
尽管结果显著,但仍存在某些局限性。该数据集虽然相对较大,但来源于单一的开源渠道,可能无法充分涵盖真实世界环境条件的多样性,例如不同的气候、土壤状况或混合感染情况。此外,模型是在经过筛选的图像上进行训练和测试的,其在田间实际应用中的鲁棒性仍有待验证。
研究该假设的其他方法包括使用高光谱成像、物联网(IoT)传感器数据,或基因组与表型信息的多模态融合。这...
访问受限。请登录或开始试用以查看此内容。
作者无任何利益冲突需要披露。
作者感谢Penugonda Seetha Rama Krishna在论文的概念化、方法学设计和撰写过程中所做的贡献,并衷心感谢S. Nagarajan在整个研究过程中提供的监督与指导。
访问受限。请登录或开始试用以查看此内容。
| 姓名 | 公司 | 目录编号 | 评论 |
|---|---|---|---|
| 惠普个人电脑 | HP | Intel Core i5-6300U 处理器 @ 2.5 GHz,8 GB 内存 | |
| Jupyter Notebook | 开源 | 用于代码执行 | |
| Kaggle 数据集:水稻叶片病害检测 | Kaggle | https://www.kaggle.com/datasets/loki4514/rice-leaf-diseases-detection | |
| Keras | 开源 | 与 TensorFlow 集成 | |
| Python | Python 软件基金会 | 3.11.5 | |
| TensorFlow | 2.x | ||
| Windows 操作系统 | Microsoft | Windows 11 |
访问受限。请登录或开始试用以查看此内容。
申请许可以重复使用本 JoVE 文章的文本或图表
申请许可