三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

基于机器学习方法的番茄叶片病虫害识别研究(源码+万字报告+讲解)(支持资料参考_相关定制)

基于机器学习方法的番茄叶片病虫害识别研究(源码+万字报告+讲解)(支持资料参考_相关定制)

1引言

2绪论

2.1选题依据及研究意义

2.2研究现状

3理论方法

3.1颜色直方图特征

3.2局部二值模式(Local Binary Patterns,LBP

3.3支持向量机(Support Vector Machine,SVM)

3.4 K近邻(KNN)

3.4残差神经网络(Residual Neural Network,ResNet)

3.5 VGG16

4基于KNN、SVM分类识别番茄病虫害叶片

4.1实验数据

4.2模型实现

4.3结果分析

5基于ResNet34、VGG16分类识别番茄病虫害叶片

5.1模型实现

5.2结果分析

6总结

参考文献

致谢

基于机器学习方法的番茄叶片病虫害识别研究

1引言

随着全球人口的不断增长以及粮食安全问题的日益突出,农业生产面临着前所未有的挑战。番茄作为一种重要的经济作物之一,其产量和质量受到各种病虫害的威胁,这对番茄产业的可持续发展产生了严重影响。传统的病虫害监测和识别方法通常依赖于人工目视或显微镜下观察叶片的病害症状,这种方法不仅费时费力,而且容易受主观因素和人为误判的影响。

近年来,随着机器学习和计算机视觉技术的迅速发展,基于图像识别的病虫害监测和识别方法受到了广泛关注。机器学习技术能够从大量的图像数据中学习并提取特征,然后通过模型训练和分类,实现对病虫害图像的自动识别和分类,提供了一种快速准确的病害监测手段。

本文旨在研究基于机器学习的番茄叶片病虫害识别方法,通过收集和整理番茄叶片图像数据,构建适用于病虫害识别的传统机器学习和深度学习模型,比较其模型效果,为机器学习模型在该领域的应用提供模型选择上的参考。

2绪论

2.1选题依据及研究意义

在农业领域,番茄作为一种重要的农产品,对人类的生活和经济发展具有不可忽视的作用。番茄是三大世界性贸易蔬菜之一,在全球蔬菜贸易中占有重要地位。随着番茄需求量的不断上升,世界番茄生产总量及种植规模不断扩大。然而,番茄叶片病虫害给番茄的产量和质量带来了严重的威胁。传统的病虫害检测方法主要依赖于人工观察和显微镜检查,这些方法存在一些明显的不足。首先,这些方法需要大量的人力和时间,且容易受到主观因素的影响。其次,这些手动方法在大面积农田中的实施成本较高,且往往无法及时响应病虫害的爆发。

随着计算机视觉和机器学习技术的不断发展,特别是深度学习的兴起,图像识别领域取得了显著的进展。这些技术在医疗、交通、安防等领域得到了广泛应用。在农业领域,应用这些先进技术来解决病虫害问题具有巨大的潜力。通过自动化图像识别,可以快速实现对番茄叶片病虫害的高效监测和精准识别,减少病虫害造成的损失。

2.2研究现状

传统的农业病虫害识别主要是种植户依赖于自己的通过目视识别或者将受害作物样本送实验室检测,这种方式存在容易受主观经验影响、效率低下等缺陷。随着传统机器学习方法的发展趋向成熟和近几年机器学习中深度学习的兴起,将机器学习和深度学习方法应用于植物病虫害识别方面的研究越来越多。

基于传统机器学习算法的应用。余秀丽等[1]采用支持向量机的创新策略,针对小麦叶部的不同病害,如白粉病、条锈病和叶锈病,通过精细的纹理形状特征挖掘,实现了高效且精确的识别。另一方面,牛冲等[2]侧重于草莓叶片的健康状况,他们运用支持向量机模型对灰度直方图特征进行深度剖析,成功区分出无病症和蛇眼病,其准确率超过90%;针对植物病害的智能诊断,李冠林等(2012)[3]结合了K-means聚类和支持向量机,构建了一套高效的分类框架,应用于小麦叶锈病和条锈病的区分,平均识别率达到了卓越的98.34%;许良凤等[4]人则开发了一种多分类器集成技术,他们运用自适应权重策略,成功地鉴别出了玉米的七大主要病害,包括红叶病、圆斑病等。

近年来,深度学习技术在农业病害检测领域崭露头角。2018年张善文等[5]借助LeNet,对经过预处理的1200份黄瓜病害图片进行精准分类,取得了显著的识别精度;孙俊等[6]进一步提升了AlexNet的性能,通过批归一化与全局池化策略,对14种作物的26类病害进行识别;刘阗宇等[7]利用Faster-RCNN技术,不仅对葡萄叶片病害进行识别,还能精确定位病害区域,展示了其强大的实用性;彭文等[8]利用VGG16模型对稻田杂草进行精准分类,达到了90%的高准确率;黄双萍等[9]提出GoogLeNet为基础的水稻穗瘟病检测方法,通过随机梯度下降优化模型,获得了92.0%的识别精度。最后;熊俊涛等[10]通过MasR-CNN深度学习算法,解析了大豆缺素叶片的图像特征,并结合VGG16模型,实现了对叶片缺素类型的精确识别。

基于传统机器学习算法的应用。余秀丽等[1]采用支持向量机的创新策略,针对小麦叶部的不同病害,如白粉病、条锈病和叶锈病,通过精细的纹理形状特征挖掘,实现了高效且精确的识别。另一方面,牛冲等[2]侧重于草莓叶片的健康状况,他们运用支持向量机模型对灰度直方图特征进行深度剖析,成功区分出无病症和蛇眼病,其准确率超过90%;针对植物病害的智能诊断,李冠林等(2012)[3]结合了K-means聚类和支持向量机,构建了一套高效的分类框架,应用于小麦叶锈病和条锈病的区分,平均识别率达到了卓越的98.34%;许良凤等[4]人则开发了一种多分类器集成技术,他们运用自适应权重策略,成功地鉴别出了玉米的七大主要病害,包括红叶病、圆斑病等。

近年来,深度学习技术在农业病害检测领域崭露头角。2018年张善文等[5]借助LeNet,对经过预处理的1200份黄瓜病害图片进行精准分类,取得了显著的识别精度;孙俊等[6]进一步提升了AlexNet的性能,通过批归一化与全局池化策略,对14种作物的26类病害进行识别;刘阗宇等[7]利用Faster-RCNN技术,不仅对葡萄叶片病害进行识别,还能精确定位病害区域,展示了其强大的实用性;彭文等[8]利用VGG16模型对稻田杂草进行精准分类,达到了90%的高准确率;黄双萍等[9]提出GoogLeNet为基础的水稻穗瘟病检测方法,通过随机梯度下降优化模型,获得了92.0%的识别精度。最后;熊俊涛等[10]通过MasR-CNN深度学习算法,解析了大豆缺素叶片的图像特征,并结合VGG16模型,实现了对叶片缺素类型的精确识别。

3理论方法

3.1颜色直方图特征

颜色直方图特征通常用于描述图像的颜色分布情况。直方图是一种统计图表,用于展示数据分布的频率。在图像处理中,直方图可以用来表示图像中每个颜色的分布情况,从而提取图像的颜色特征。

图像的颜色直方图特征通常包括以下几个方面:

颜色空间:通常使用 RGB(红绿蓝)、HSV(色调、饱和度、亮度)或者 LAB(亮度、绿色-红色、蓝色-黄色)等颜色空间来表示图像的颜色信息。

通道数:对于彩色图像,通常会分别计算每个颜色通道(红色、绿色、蓝色)的直方图特征;对于灰度图像,只有一个通道,直接计算灰度直方图。

分箱数:将颜色值范围划分为若干个小区间(也称为分箱或者 bin),统计每个区间内的像素数量。

归一化:将直方图进行归一化处理,以消除图像大小和亮度的影响,从而更好地描述图像的颜色分布。

基于图像直方图特征,可以计算各种统计信息,如均值、方差、中值等,或者直接使用直方图的形状作为特征。这些特征通常用于图像分类、检索、分割等任务中。

3.2局部二值模式(Local Binary Patterns,LBP

一种流行的纹理特性分析手段是局部二值模式(Local Binary Patterns, LBP),聚焦于揭示图像局部区域的纹理特性。LBP的独特之处在于通过量化每个像素点与其周围环境像素的亮度差异来刻画纹理特性。具体来说,对图像中的每一个像素,我们会执行一项精细的比较,即判断其邻居的灰度值是否不低于中心像素的值。如果满足这个条件,本文就赋予该像素一个1;反之,为0。这种操作的结果就是将每个像素转化为一个二进制代码,这就是所谓的局部二值模式。LBP特征的获取过程通常包含以下核心步骤:

将图像转换为灰度图:首先,将输入的彩色图像转换为灰度图像。LBP通常用于灰度图像,因为它更能捕捉纹理信息而不受颜色的影响。

定义邻域:挑选一个像素点作为核心,并为其设定一个邻近区域,这个区域可以是基于核心像素的圆形或是正方形布局。

比较像素值:针对核心像素以及其周边邻域内的像素,检测邻域内每个像素的亮度级别与核心像素亮度级别的差异。如果邻域像素的亮度不小于核心像素的亮度,则在LBP编码中赋予该位置的像素值为1;反之,若亮度较低,则记为0。

生成LBP图像:按照上述规则,逐一对原图像的每个像素执行比较过程,产生相应的LBP编码,由此形成一张与原始图像尺寸一致的LBP映像。LBP映像中的每个像素点均蕴含了对应位置处的局部纹理特性。

计算LBP直方图:统计LBP图像中每个LBP模式的出现频率,得到一个LBP直方图。通常,直方图的每个bin对应一个LBP模式。

特征描述:可以直接使用LBP直方图作为图像的特征表示。也可以进一步对直方图进行归一化、降维或其他处理,以获得更具区分度的特征。

3.3支持向量机(Support Vector MachineSVM

Vapnik的开创性工作引领了机器学习领域的一项关键技术支持向量机(SVM)[11],其在处理分类和预测任务中表现出卓越性能。SVM的核心策略在于寻求一个最有效的决策边界,这个边界能够精确地分割各类样本,同时保证与最近边缘样本间的最大间隔。在理想线性可区分的环境中,追求的是一个能完美划分训练样本

的超平面,即那个使得支持向量与之保持最大间距的最优分隔界面。利用二次优化方法,可以精确计算出适应这种场景的最佳分类函数表达式:

(1)

其中,

为符号函数,

是Lagrange乘子,

为分类的阈值。

在线性不可分的情况下,通过核函数把样本映射到高维特征空间,使得样本在高位空间更容易分割。这是对应的最优分类函数变为:

(2)

其中

为核函数。常见核函数:

线性核函数:线性核函数是最简单的核函数之一,它不进行任何特征映射,直接使用输入数据的内积作为相似度度量。

多项式核函数:

(3)

其中

是核函数的参数。多项式核函数将输入数据映射到更高维的特征空间,并通过多项式函数来计算相似度。

高斯径向基核函数:

(4)

在统计学习中,一种关键方法是核函数,尤其是

以高斯形态呈现的高斯径向基函数,被称为RBF核。这种核函数巧妙地将原始数据映射至无限维度的特征域,通过高斯分布的特性来衡量数据点间的相似性:

Sigmoid核函数

(5)

其中

是核函数的参数。Sigmoid核函数将输入数据映射到更高维的特征空间,并通过Sigmoid函数来计算相似度。

3.4 K近邻(KNN)

K最近邻(K-Nearest Neighbors, KNN)算法是一种基础但实用的非参数学习策略,适用于解决分类和预测任务。K运作机制相当直观:当遇到未知样本时,算法会测量其与训练集所有样本的距离,然后挑选出最接近的K个近邻,这些近邻就构成了决策的基础。在分类任务中,通过近邻的类别多数表决来确定未知样本的归属;而在回归中,则对邻居的输出值执行平均或者加权平均,以此生成预测值。

KNN的实践应用广泛,常用的距离度量方法有欧氏距离、城市街区距离(曼哈顿距离)以及更为通用的闵氏距离等。其中,欧氏距离以其简洁明了的计算公式,即两点间直线距离的平方,成为了首选的距离衡量方式。:

(6)

3.4残差神经网络(Residual Neural Network,ResNet)

在深度学习领域的里程碑中,由微软研究团队Kaiming He等[12]学者在2015年提出的创新成果—Residual Neural Networks(简称ResNet)引起了广泛关注。其初衷是为了克服深度神经网络中棘手的梯度衰减和梯度膨胀难题,从而推动网络深度的提升,显著增强模型的表现力。

ResNet的核心策略在于引入了革命性的残差模块(residual components),它让网络有能力去学习输入与预期输出之间的相对变化,而非单一的映射路径。这种设计策略巧妙地缓解了梯度消失的困境,使得构建超深网络成为可能。

ResNet的核心构建单元是残差块(residual blocks),其内部嵌套着一连串的残差单元(residual units)。这些单元巧妙地融合了跳跃连接(skip connections),使得数据可以直接绕过若干层,然后与输出无缝衔接,这一机制极大地增强了网络的学习效率。

ResNet的基本结构包括:

输入层:承载原始输入资料,如图像数据。

卷积层:通过一连串的滤波操作来辨识模式。

残差块:包含多个短路组件,每个组件具备跳跃链接,确保输入数据能畅通无阻地传递至输出端。

全局平均池化层:运用全局平均池化技术缩小特征图的空间尺寸。

全连接层:服务于最终的分类或回归目标。

3.5 VGG16

VGG(Visual Geometry Group)是由牛津大学的 Visual Geometry Group[13]在2014年提出的一种经典的深度卷积神经网络模型。VGG的提出旨在通过增加网络深度和复杂度来提高图像分类的性能。

VGG的核心思想是通过堆叠多个卷积层和池化层来逐渐提取图像的特征,并通过全连接层将这些特征转换为最终的分类结果。与其他深度网络模型相比,VGG的特点在于其网络结构的简洁清晰和层次分明。

VGG16是VGG模型系列中的一个具体实现,在图像识别任务中表现出色。

VGG16的基本结构包括:

输入层:接受原始输入图像数据。

卷积层:VGG16构造巧妙,其架构中嵌套了一连串独特的卷积单元。这些单元的核心是使用了3x3的滤波器,但通过智能的填充策略,确保每次卷积后特征映射的尺寸得以保持,从而聚焦于精细的局部特征挖掘。

池化层:在每个卷积模块之后,VGG16引入了高效的空间减缩技术为最大池化。这种操作不仅压缩了特征图的尺寸,而且通过选择性地保留关键特征,增强了模型的计算效率。

全连接层:网络的高层部分,VGG16配置了全连接层,它们扮演着从局部特征向全局理解的关键角色。这些层汇聚并整合了来自先前卷积层的丰富信息,形成对图像整体理解的决策基础。

分类输出:最终,全连接层的输出经过softmax函数的处理,转化为一个类别概率分布。这个分布反映了网络对输入图像分类的完整信心,标志着VGG16对图像识别任务的精确预测。

4基于KNN、SVM分类识别番茄病虫害叶片

传统机器学习模型K近邻(KNN)、支持向量机(SVM)、决策树、朴素贝叶斯、和逻辑回归等都各自有自己的特点和应用领域。

决策树作为一种直观易懂的分类模型,通常表现出良好的解释性和可解释性,但在处理高维度数据和复杂决策边界时存在性能限制。朴素贝叶斯模型适用于处理大规模数据和文本分类等问题,但在面对特征之间较强相关性时可能表现不佳。逻辑回归作为一种简单易于实现的线性模型,对于线性可分问题能够取得不错的效果,但在处理非线性关系时表现有限。

相比之下,KNN和SVM在图片分类任务中展现出显著的优势。KNN算法利用数据点之间的距离进行分类,能够有效处理不规则的数据分布和复杂的决策边界,因此在图像分类中具有较好的适应性。而SVM则通过寻找最大间隔超平面来划分不同类别的数据,具有较好的泛化能力和对高维度数据的处理能力,在处理非线性分类问题时也表现出色。

结合几种传统机器学习模型的特点和本文研究数据情况,本文选取KNN和SVM模型进行研究。

4.1实验数据

本文实验数据来自Mendeley Data网站的公开数据集Plant Village[14]中的番茄叶片病虫害图片部分,包含9类受虫害叶片和健康叶片共10类,各类别图片样本量分布情况见图1。

见图1可知,各类别图片数量由最少早疫病、叶霉病、番茄花叶病的1000张到最多番茄黄叶卷曲病毒的5357张,各类别样本量分布不均。

由于样本量较大的类别可能会在分类模型中占据主导地位,导致分类模型更倾向于预测这些类别,而忽略样本量较少的类别,导致分类结果不准确。因此对于早疫病、叶霉病、番茄花叶病采取旋转、调整亮度和对比度等操作,分别增加800张样本,使其样本量都增加到1800张。对于番茄黄叶卷曲病则采取随机抽取2200张,将样本量减少到2200张。增广前后各类别样本量分布情况见图2。

图 2 增广前后各类别样本量分布图

本文采取4:1的比例,随机抽取各类的80%作为训练集,剩下的20%作为测试集。划分后各类别样本量分布如表1所示。

表 1 各类别样本量分布

类型

训练集

(增广)

测试集

(增广)

总样本量

(增广)

总样本量

(未增广)

疮痂病

1702

425

2127

2127

早疫病

1440

360

1800

1000

健康

1273

318

1591

1591

晚疫病

1528

381

1909

1909

叶霉病

1440

360

1800

1000

斑枯病

1417

354

1771

1771

红蜘蛛损伤

1341

335

1676

1676

靶斑病

1124

280

1404

1404

番茄花叶病

1440

360

1800

1000

番茄黄叶卷曲病

1761

440

2201

5357

4.2模型实现

传统机器学习模型KNN和SVM以数据特征作为模型的输入,因此首先需要人工提取特征。本文采用HSV直方图特征和LBP特征两种体征提取方式。

提取HSV直方图特征。首先

读取图像,其次其转换为HSV颜色空间,然后分别计算色调(H)、饱和度(S)、亮度(V)通道的直方图特征,最后将三通道特征拼接作为支持向量机的输入特征。图3为某一样本及其三通道直方图。

提取LBP特征。本文采取scikit-image库的local_binary_pattern()函数计算LBP特征,设定领域像素数量为8,领域半径为1,使用default方法,不对LBP直方图进行其它处理,将计算所得LBP直方图直接作为特征输入。

模型参数的选择很大程度上影响模型的训练效果。本文选择径向基核函数作为SVM的核函数,使用5折交叉验证法选取SVM的惩罚参数

,最终设定

。使用5则交叉验证法选取KNN的K值为5。基于此相同的参数设定,分别用HSV特征和LBP特征作为输入训练模型。

4.3结果分析

将以上训练所得模型应用于测试集。

使用LBP特征作为输入,构建的SVM模型在训练阶段展现出显著的优势,其整体正确率达到了42%,而测试集上的表现也相对稳健,为43%。相比之下,KNN模型在相同的LBP特征下,训练集的准确率为41%,测试集为42%,显示出稍逊一筹。

基于转向HSV颜色空间的特征提取策略,将之应用于SVM模型。这种选择带来了显著提升,训练集上的总体准确度飙升至96%,测试集同样保持在96%的高水平。然而,KNN模型在HSV特征下的表现则略有差距,训练集的准确率为87%,测试集上升到90%。这些模型在不同特征提取方法下的性能差异详细见表2,清晰地展示了特征选择对模型预测精度的关键影响。

表 2 KNN、SVM模型基于两种特征提取方式对各类的预测精确率

训练集

(LBP)

测试集

(LBP)

训练集

(HSV)

测试集

(HSV)

← 返回列表