基于卷积神经网络的玉米叶片疾病识别研究

2023-03-30 03:13史亚平汪宗光
农业与技术 2023年6期
关键词:准确率卷积神经网络

史亚平 汪宗光

(黄河科技学院工学部,河南 郑州 450062)

引言

农作物的疾病大多显现在叶片上,对叶片的观察和识别对农作物的增产具有重要作用。玉米是我国主要种植作物之一,在我国农业战略发展中有着不可替代的作用。传统提高玉米产量的方法就是依靠专业人士根据玉米的长势及外部环境进行提前预判,然后做出相应措施进行事先防治。但是这种方法存在一定的要求,要求从业者具有大量的专业知识和丰富的种植经验;要求各个产地都要配置一定数量的技术人员,因此投入人力成本较高。

随着计算机视觉领域的研究与发展,图像处理、图像检测与分类任务在农作物叶片疾病识别领域的实际应用已经成为现实。在国外,Priyadharshini等[1]认为,农作物病害的准确识别是加快农业信息化领域快速发展的必然路径,其基于卷积神经网络(CNN)的架构进行改进了LeNet模型,其在PlantVillage的玉米叶图像数据集上进行了实验,其准确率高到96.2%。Rocha等[2]评估了3种最先进的卷积神经网络架构对玉米叶片病害进行分类的性能,其在实验中应用了一些模型优化方法,如超参数优化方法、数据增强和参数微调策略等,其所实现的模型在玉米叶病分类上的准确率均高达97%。Sibiya等[3]设计实现的CNN模型能够从玉米叶子中识别出3种不同类型的玉米叶疾病,如玉米叶枯病、常见锈病和灰叶斑病。Baldota等[4]针对玉米叶的疾病识别问题探索了迁移学习在DenseNet-121模型上的应用性能,实验表明,基于迁移学习的DenseNet-121模型在具有噪声的数据集上具有良好的表现性能。Singh等[5]探索了用于快速准确检测玉米叶片病害的AlexNet模型性能,其实现的模型在两类玉米疾病的识别过程中取得了99.16%的准确率。在国内,张开兴等[6]基于图像处理技术探索了基于BP的玉米叶疾病问题。刘永波等[7]基于U-Net模型研究了玉米叶疾病的层级划分和病斑区域检测问题,经测试图像分割试验中病斑分割MIoU值达到93.63%,其设计实现的模型运算速度为1s左右,具有较强的应用性。王美娟等[8]提出,多尺度卷积神经网络模型来解决传统模型训练时间冗长,泛化性能不足等问题,其在玉米病害图像数据上的实验结果显示,识别准确率达98.44%,单张图片测试平均仅需0.25s。鲍文霞等[9]研究了识别玉米叶片疾病的新模型:改进卷积神经网络模型。运用卷积堆栈和Inception、ResNet组成特征融合网络,从而使得模型的识别率大大提升,达到了98.73%。李灵芳等[10]研究一种基于SVDResNet50神经网络的农作物叶片病症识别方法,该方法可以克服人工方式的种种问题,提高了农作物叶片的识别效率与识别准确率,具有实际应用性。王超等[11]采用ResNet50模型在Plant Village数据集上进行数据增强后训练,获得最高的分类准确率为92.82%。张建华等[12]自建数据集进行模型构建和开发APP进行玉米叶部病害识别。

1 数据集

1.1 数据集收集

数据集在人工智能、机器学习领域占有重要地位[13],是机器具有“智能”的重要前提条件。目前在玉米叶片疾病研究领域,调研到3种玉米叶数据集。

Wiesner-Hanks等[14]于2015年建立了田间玉米图像数据集,是玉米北方叶枯病的单一数据集。Plant Village数据集是一个公开的植物病虫害数据集,该数据集有收录玉米叶片锈迹病和健康的图片,据统计锈迹病叶片有1192张,健康玉米叶片1162张。陈雷等[15]建立了大田作物病害识别研究图像数据集,该数据集包括我国主要3种农作物的15种病虫害样本,样本数量有17624张。

本文采用Plant Village数据集中的玉米叶片,同时采用数据爬虫技术利用requests库以“健康玉米叶”“患锈迹病玉米叶”为关键词进行检索百度图像,检索的玉米叶片疾病分类数据集,其为三通道的RGB彩色图像,其数据展示如图1所示。

图1 数据集三通道的RGB彩色图像展示

对抓取的数据集进行统计,其中健康的玉米叶927个,患有锈迹病的玉米叶953个,融合Plant Village数据集中病变叶片1192张,健康玉米叶片1162张,共得到2145张锈迹病,健康玉米叶片2089张。

为了能够进行合理的实验,采用数据增强的方法对原始数据进行扩充,扩充后的正样本健康玉米叶2089×2个、负样本绣疾病玉米叶2145×2个。在进行模型训练和测试阶段,将数据集分为训练集和测试集,其中训练集占80%,测试集占20%。

1.2 数据增强方法

图像处理领域的数据增强主要就是通过对原始样本进行裁剪、翻转、扭曲、高斯噪声等操作对原始图像进行变换,从而提高模型的泛化性能。具体来说采用Keras中的ImageDataGenerator函数对参数设置实现随机对图片执行水平翻转操作和高斯噪声等方法实现数据的扩充。

随机对图片执行水平翻转操作,其实现结果如图2所示。

图片翻转操作不涉及改变图像的内容,使用高斯噪声、颜色增强等方法可以改变图像内容,加上高斯噪声会扭曲图像的高频特征,如图3所示,通过学习和训练,可以提高模型的泛化能力。

高斯噪声实现效果如图3所示。

图3 高斯噪声实现效果图

2 卷积神经网络及相关技术

2.1 卷积神经网络

卷积神经网络模型是由Lecun等[16]于1989年提出,该结构在图像处理领域取得了巨大的成功。卷积神经网络主要有多个卷积层、池化层堆叠和全连接层等部分组成,其结构如图4所示。

图4 卷积神经网络结构图

2.2 神经网络的调节方法

2.2.1 Dropout层

Dropout[17]方法简单的说就是随机丢弃隐藏层中的神经元。当网络较为复杂时,采用Dropout方法可以在前向和后向传递过程中不再考虑这些被丢弃的神经元,从而通过减小隐层单元之间的依赖关系来使网络减小模型的过拟合问题。Dropout的形象化表示如图5所示。

图5 Dropout的形象化表示

2.2.2 Adam优化算法

2015年,Jimmy在其论文《Adam:A Method for Stochastic Optimization》[18]中提出了Adam优化算法,Adam的广泛应用是因为使用了一阶矩来估计梯度,并且为了减少优化误差还用到加权平均的手段,这样在训练过程中即可以保证收敛,充分学习训练样本的特征。

2.2.3 Batch Normalization方法

批处理(Batch Normalization,BN)[19]是Inception、ResNet50等深度网络模型常用的操作,通常是在将数据传递到输入层之前对输入数据进行规范化,其目的是为了使每一层神经网络的输入保持相同分布,即把每层神经网络输入值的分布强行拉回到均值为0方差为1的标准正态分布,以确保训练的模型具有泛化性。

3 模型设计实现与实验对比

3.1 模型设计与实现

3.1.1 传统Inception模型

在传统的Inception中,其堆叠结构借鉴了VGGnet的模型结果,由多个小的卷积组成Inception Module模块,该模块的结构如图6所示。

图6 Inception Module模块结构图

其中5×5、3×3和1×1代表了卷积核的大小,在平行结构中采用不同大小的卷积核可以降低整个模型的计算量,可以提取复杂的空间特征的同时能够保留尽可能多的特征,将这3个平行的特征图张量进行拼接变可以输入到下一层神经网络中去。将该Inception Module模块的输出输入到一个5×5的平均池化层中,设计完成的传统Inception结构如图7所示。

图7 传统Inception结构

3.1.2 改进的Inception模型

2018年,Woo等[20]在论文《CBAM:Convolutional Block Attention Module》中提出卷积注意力机制,CBAM可更为精准的关注特征图中包含的有效信息,并对重要特征张量赋予较大权重。CBAM包含2个顺序子模块,称为通道注意模块和空间注意模块,其按特定顺序进行组合,CBAM应用于深度卷积神经网络中的每个卷积块,以从“输入特征图”中获得利于后续的精准分类的“重要特征图”。本节在传统的Inception Module之后引入CBAM模块,然后使用平均池化操作,将此模型命名为CBAM-Inception,其结构如图8所示。

图8 实现的模型结构图

3.2 实验环境及参数

本次实验基于tensorflow和keras实现,开发环境配置如表1所示。

表1 开发环境表

模型的参数设置情况如表2所示。

表2 模型的参数设置情况表

3.3 实验结果分析

针对玉米叶的疾病识别分类问题,这里将主要对比包含5层卷积池化操作的VGG16模型和基线Inception模型,为了避免模型集体过拟合,这里统一缩小卷积、池化的神经元个数,在经过15次迭代后,模型基本训练完成,其CBAM-Inception模型的训练准确率如图9、损失结果如图10所示、传统的Inception模型准确率如图11所示。

图9 CBAM-Inception准确率图

图10 CBAM-Inception模型损失图

图11 Inception模型准确率趋势图

通过对比发现,CBAM-Inception模型能够快速达到较高的准确率,且其损失函数值很快就趋于稳定,为了更为方便地比较不同模型在该玉米叶疾病数据集上的分类识别性能,将结果展示到表3中。

表3 模型性能结果展示表

实验表明,提出的CBAM-Inception模型在玉米叶片疾病识别准确率达到了96.88%,相比于传统Inception模型,其在玉米叶疾病分类上的准确率提高了6%,提升效果显著。

4 玉米病变问题分类及应用实现

4.1 PyQt5技术

Qt库本身是用C++开发的,使用Python接口进行调用PyQt5可以更快的构建应用程序。在PyQt5中的Qt Designer来创建GUI主界面,将ui转成py文件,在对应的按钮编写代码。

4.2 需求分析

在本次实现的玉米叶疾病自动分类识别GUI中,一共包含2个需求,能够根据一张上传的玉米叶图像完成分类识别工作;针对打包上传的文件下的图像也能实现集中的分类识别工作。基于以上2个功能需求进行代码开发应用实现。

4.3 应用实现

加载保存的训练模型;通过PyQt5构建应用界面,实现上传单个图像和上传整个文件夹下面的图像。界面实现如图12所示。

图12 构建的应用界面

点击Image实现图像的上传,后端进行识别,图13为健康玉米叶识别图、图14为锈迹病玉米叶识别图。

图13 健康叶片识别结果图

5 结论

准确判断农作物的病害是保证农作物高产的重要环节,本文以玉米叶疾病的识别与分类工作为切入点,深入研究Inception模型在该领域的应用与实现。针对现有的玉米叶数据集,研究了数据增强的方法,并以此来扩充数据集大小,以解决训练模型带来的泛化性能差等问题,实验表明,通过旋转、翻折、高斯噪声等数据增强对提升网络训练效果有积极作用。针对传统Inception模型存在的识别准确率低的问题,引入了卷积注意力机制CBAM,在玉米叶数据集中的实验结果显示,改进后的CBAM-Inception模型相比于基线模型及VGG模型都大有提高,其准确为96.88%。基于训练的模型参数、结合PyQt5应用程序开发框架完成了自动识别玉米叶疾病的应用程序,可以实现对玉米叶图像的检测。

猜你喜欢
准确率卷积神经网络
基于3D-Winograd的快速卷积算法设计及FPGA实现
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
神经网络抑制无线通信干扰探究
从滤波器理解卷积
高速公路车牌识别标识站准确率验证法
基于傅里叶域卷积表示的目标跟踪算法
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定
一种基于卷积神经网络的性别识别方法