APP下载

一种基于改进卷积神经网络的玉米病害高效识别模型

2023-09-15王营瑛高海涛

安徽科技学院学报 2023年4期
关键词:集上卷积准确率

王营瑛, 郑 铖, 董 伟, 高海涛*

(1.安徽科技学院 电气与电子工程学院,安徽 蚌埠 233030;2.安徽省农业科学院,安徽 合肥 230001)

病害的精准识别是科学防治的前提,是有效提高作物产量的基础。目前在农作物病害检测中主要利用传统机器学习方法和深度学习方法。传统机器学习技术检测农作物病害种类通常分为图像预处理、图像分割、特征提取和分类等4个阶段[1]。在特征提取中存在需要人为设定特征模式、特征抽取不稳定、受环境影响较大等问题。深度学习技术通过提取作物表面的病害特征信息构建病害识别网络,避免了特征提取耗时费力的问题,并提高了作物病害的识别精度[2-3]。

近年来,深度学习在计算机视觉等领域表现出了良好的性能,利用该技术对复杂背景下的病害图像进行检测识别已成为现实。卷积神经网络[4-7](Convolutional neural network,CNN)能够不依赖图像的特定特征,从输入图像中自动提取相关特征,在图像识别领域已经得到了广泛应用[8-10]。如贾鹤鸣等[11]在VGG-16网络中引入深度可分离卷积和全局平均池化方法,改进后的模型在植物叶片病害数据集中的识别精度达到99.427%。孙俊等[12]将批归一化与全局池化相结合对AlexNet经典卷积神经网络识别模型进行改进,在PlantVillage植物病害数据集上的最终平均测试识别准确率达到99.56%。黄林生等[13]在残差网络(ResNet18)中引入Inception模块,加入注意力机制SE-Net,在病害数据集上获得了95.62%的平均识别准确率。许景辉等[14]在VGG-16模型上利用迁移学习并设计了全新的全连接层模块,构建的玉米病害图像识别模型的平均识别准确率达到95.33%。陈善雄等[15]利用最大稳定极值区域和卷积神经网络相结合的方法,实现了荞麦病害区域与非病害区域的分离,识别准确率达到97.54%。

不同类型的病害在生长初期外观差异较小,且病害之间可能发生重叠,加上光照强度变化、噪声和背景干扰等,影响病害识别的准确率。为解决病害分类粗糙、识别准确率低的问题,本研究针对玉米的6种典型病害,构建一种基于改进卷积神经网络的病害识别模型,探究影响该模型性能的因素,并将改进后模型的病害识别效果与典型网络模型进行对比,验证该模型的正确性和高效性。

1 材料与方法

1.1 数据来源

试验数据来源于安徽省农业科学院,采用相机设备在玉米田间人工拍摄。为确保数据的真实性,进行多角度拍摄,图像背景含有秸秆、土壤、杂草等复杂条件。6种玉米病害症状如图1所示。

图1 玉米病害样本Fig.1 Corn disease samples注:A为大斑病;B为纹枯病;C为褐斑病;D为弯孢霉叶斑病;E为小斑病;F为锈病。

1.2 数据预处理

1.2.1 样本归一化 本研究将数据集中图像调整为同一尺寸256×256像素,所有图像均为jpg格式,同时为了减小计算量,对每个通道像素进行归一化处理,以防止模型训练中出现梯度爆炸问题,加速模型收敛。

1.2.2 丰富数据集 通过对样本进行数据增强技术,一是增加病害图像样本的数量,二是尽量模拟实际田间拍摄环境中不同光线和拍照角度,增加样本特征的多样性,提升数据的品质。本研究数据集采用6种数据增强方式:随机旋转、水平平移、垂直平移、随机裁剪、随机缩放、随机水平翻转。最终经过数据增强后的数据集为10 785张,原始图像及进行数据增强后的图像如表1所示。

表1 玉米病虫害数据集统计

1.3 试验方法

卷积神经网络由具有可学习的权重和偏置常量的神经元组成,是深度学习的代表算法之一[16]。CNN主要由输入层、卷积层、激活函数、池化层、全连接层和输出层构成,通过不同的卷积核对图像卷积提取特征,借助Softmax分类,实现端到端的目标检测输出[17]。本研究构建的卷积神经网络模型有较高的准确率,可实现对玉米病害的精准识别,但由于样本较小,在训练过程中模型在测试集上的表现不够稳定,因此对该网络模型进行改进和优化。

1.3.1 学习率优化设计 为提高模型训练过程中的泛化能力,本研究采用自适应学习率算法(Adam)来动态调整模型训练时的学习率,调整方式如式1所示:

(1)

αt+1=αt×κ,0<κ<1

(2)

1.3.2 提升网络泛化能力设计 为有效抑制过拟合的发生,在网络的全连接层模块添加了Dropout层。通过在每次训练过程中随机将部分神经元的权重置为0,使被抑制的神经元暂时不参与网络的前向传播,但保留其权值,来有效抑制过拟合的发生,进而提高模型的泛化能力[18]。模型中正则化参数设置为0.3,即丢弃30%的神经元。Dropout策略的计算方法如式(3)~(6)所示:

(3)

(4)

(5)

(6)

1.3.3 加快网络收敛速度优化设计 在模型的第2个全连接层模块加入BN层,利用式(7)~(8)强制将神经网络各层的任何神经元输入值的分布拉回标准正态分布,加快网络收敛速度,改善梯度弥散[19]。

(7)

(8)

(9)

yi=γixi+βi

(10)

(11)

βi=E[xi]

(12)

1.3.4 防止过拟合优化设计 利用早停法对网络优化,在模型训练过程中计算模型在验证集上的表现,当模型在验证集上的表现开始出现下降的时候,停止训练,避免继续训练导致的过拟合问题。利用L2正则化使网络的权值变小,简化网络,减少网络误差。优化函数J(w,b)+λR(w),其中,J(w,b)为损失函数,λ表示模型复杂损失在总损失中的比例,R(w)为惩罚项,由式(13)计算得到,wj为第j个神经元的权值,l为全连接层的数量。

(13)

1.3.5 提高网络非线性表达能力 在网络的卷积层和全连接层模块添加式(14)所示的ReLU激活函数,增加神经网络各层之间的非线性关系。通过使一部分神经元的输出为0,增加网络的稀疏性,减少参数的相互依存关系,克服梯度消失,加快训练速度。

(14)

1.3.6 全连接层模块重构 为提高模型在测试集上的准确率,提升模型的泛化能力,并克服模型在有限样本训练过程中出现过拟合问题,结合模型应用对象,本研究设计了一个新的全连接层模块,由Flatten层,激活函数,全连接层1、2、3等组成,其模块构成如图2所示。Flatten层用于将网络前级模块中最后一个池化层输出的多维特征矩阵进行一维化,由5×5×64矩阵转为1×1 600的向量。全连接层对前级输出的病害特征进行加权和运算,整合卷积层和池化层中具有类别区分性的局部信息,把学习到的分布式特征映射到样本标记空间。进一步利用ReLU激活函数,增加神经网络各层之间的非线性关系。在激活函数后添加Dropout机制,随机将部分隐藏层节点的权值进行归零,减少模型参数量。添加的BN层用于对网络中的数据进行归一化处理,降低不同样本的差异性,加快模型的训练速度。第1个全连接层包含512个神经元,第2个全连接层含有128个神经元。全连接层3输出的结果被送入softmax逻辑回归模型进行类别判断[20],各类别的概率分布由式(15)计算得出:

图2 改进后的全连接层模块Fig.2 Improved full connection module

(15)

其中,Pi为各类别分类的概率;yi为全连接层的输出;c是数据集类别总数。

1.3.7 玉米病害分类识别模型 本研究构建的基于改进卷积神经网络的玉米病害识别模型总体结构如图3所示。该模型构建了4个卷积层(Conv1、Conv2、Conv3、Conv4)、4个最大池化层和3个全连接层,在每个卷积层后都设有ReLU激活函数,对卷积层输出的特征图进行非线性激活。模型要求输入256×256的标准图像,利用32个5×5的卷积核对该输入图像进行特征信息提取,获取252×252×32的特征图。采用3×3最大池化下采样操作降低该特征图的数据维度,降维后的特征图的尺寸为84×84×32,将其送入32个5×5 的卷积核和3×3最大池化层进行运算,获取尺寸为26×26×32的特征图。然后用32个3×3的卷积核进行卷积运算,得到图像更深层次的特征图,进一步经过用2×2最大池化下采样得到12×12×32的池化层。最后通过64个3×3的卷积核和2×2的最大池化运算得到5×5×64的特征输出。将输出的特征信息经过Flatten层过渡,通过3层全连接降维平铺,根据特征向量进行权重计算,采用softmax分类器输出属于6个类别的概率,实现玉米病害的6种分类。

图3 基于改进的卷积神经网络病害识别网络模型Fig.3 Disease identification network model based on improved convolution neural network

1.3.8 模型评价指标 为便于分析本研究所设计网络模型的综合性能,选用代表性较好的准确率和算法运行效率两个评价指标来进行评价,其中,准确率的计算可以由式(16)计算得出:

(16)

其中,TP表示被正确分类为正样本的数量;TN表示被正确分类为负样本的数量;FP表示被错误划分为正样本的数量;FN表示被错误划分为负样本的数量。此外,模型训练过程中的损失值也是判断模型性能的另一个指标。损失函数的数值下降越快,则说明模型收敛得越快;损失函数的数值越小,则说明模型的鲁棒性越强,性能越优越。

2 结果与分析

2.1 试验环境

试验在Windows10(64位)操作系统,处理器型号为Intel(R) Core(TM) i5-10400F CPU@2.90 GHz,计算机内存为16 GB的电脑运行环境下,基于python 3.6.2、Tensorflow-GPU 1.14+Keras 2.2.4深度学习框架环境下完成的。

2.2 试验设计

将玉米病害原始数据集和数据增强后的数据集分别按照8∶2的比例划分成训练集和测试集。训练集作为该模型的输入数据,测试集用于评估最终模型的性能。综合考虑试验设备以及模型训练效果,初始学习率设置为0.000 1,设置batch-size大小为32,即每批次参与训练与测试的图像均为32张。将改进前后的网络模型在构建的玉米病害训练集和测试集上进行训练分析;探究不同学习率(0.001、0.000 1、0.000 01)、不同批大小(8、16、32)以及数据增强对该模型性能的影响;并将改进后的模型在相同试验条件下与LeNet、AlexNet和GoogLeNet等3种模型进行对比训练,共计5组试验。

2.3 试验结果与分析

2.3.1 改进前后模型性能对比 在相同训练参数设置条件下,将划分好的玉米病害训练集和测试集在未优化模型上和改进优化后的模型上分别进行试验,比较改进前后模型在数据集上的识别准确率、损失值的变化趋势以及对应的运行时间。由图4可得出,优化模型在训练过程中的训练准确率逐渐上升,损失值也在不断下降,没有出现过拟合的现象,模型训练效果较好。未优化模型在训练到第36和49个轮次时训练准确率和损失值均发生了较大的震荡。优化后的模型的训练准确率与测试准确率分别达到了99.99%和98.27%,训练损失值与测试损失值分别为0.016 7和0.061 6,单幅图像平均识别时间为0.091 s。相比未优化模型,优化后的模型在测试集上的识别准确率提高了1.25%,单幅图像平均耗时缩短了0.007 7 s,且识别准确率和损失值曲线也更加平稳。

图4 模型改进前后的测试准确率和损失率曲线Fig.4 Test accuracy and loss rate curve before and after model improvement

2.3.2 学习率对模型性能的影响 该模型初始学习率设置为0.000 1,为验证不同学习率对该模型识别精度的影响,不改变其他参数,将学习率分别设置为0.001和0.000 01在改进后的模型上继续训练和测试,测试准确率和损失值的变化趋势如图5所示。当学习率设置为0.001时,该模型的识别准确率有明显的下降,且测试损失值在迭代24次时有回升现象,波动较大;当学习率设置为0.000 01时,识别精度发生较大的下降,测试准确率为95.69%,较初始学习率模型准确率下降了4.3%,损失率提升到0.168 3。综上,当学习率设置为0.000 1训练时,该模型对病害有更佳的识别效果。

图5 不同学习率下的测试准确率和损失率曲线Fig.5 Test accuracy and loss curves of different learning rates

2.3.3 批大小对模型性能的影响 Batch-size表示卷积神经网络在训练过程中,一次训练所选取的样本数。本研究将模型的Batch Size依次设置为8、16、32,在训练集和测试集上分别进行训练。不同Batch-size值的模型在测试集上的训练结果如图6所示。随着迭代轮数的增加,批大小从8、16增加到32时,模型的测试准确率和损失值曲线的收敛速度依次降低。因此,本研究模型最终选择Batch-size为32在数据集上进行训练,以使模型达到最优效果。

图6 不同Batch-sizes下的测试准确率和损失率曲线图Fig.6 Test accuracy and loss value curves of different Batch-sizes

2.3.4 数据集对模型性能的影响 为验证数据集的品质和大小对模型性能的影响,在相同训练参数设置条件下,将原始数据集和扩充后的数据集分别在改进后的模型上进行训练与测试,结果如表2所示。增强后的数据集较原始数据集测试准确率提高了0.31%,单幅图像平均识别时间缩短了0.579 s,而且数据增强后的数据集也一定程度上缓解了模型的过拟合问题。综上,说明数据增强缩短了该模型识别检测的平均耗时,提高了识别准确率,提升了模型的泛化性和鲁棒性能。

表2 不同数据集的模型训练性能

2.4 4种模型性能对比

将本研究改进优化后的模型记为Modle,在相同试验条件下,将Modle模型与LeNet、AlexNet、GoogLeNet等3个模型分别在增强后的训练集和测试集上进行训练,各模型均迭代60次,试验结果如表3和图7所示。

表3 不同网络模型的性能比较

图7 不同模型的准确率和损失率曲线Fig.7 Accuracy and loss value curves of different models

从表3可知,各模型的训练准确率均达到了98%以上,说明深度学习模型应用在农作物病虫害分类上具有优秀的表现。改进后的模型Modle在测试集上的准确率为98.27%,损失值为0.061 6,相比LeNet、AlexNet模型,测试准确率分别提高了15.52%、4.81%,损失值分别减少了0.805 2、0.157 8,相比GoogLeNet模型,测试准确率略低了0.99%,损失值增加了0.040 8,但单幅图像平均识别时间缩短0.284 s。

由图7可看出,纵观各个模型的损失和准确率收敛曲线,模型在测试集上的损失值略高于训练集,在测试集上的准确率略低于训练集。在模型的测试准确率和损失值收敛方面,在第5次迭代左右,本模型已经获得较高的准确率和较低的损失值,曲线较平滑,收敛速度较快。相比之下,GoogLeNet模型在迭代第23次左右模型的测试准确率逐渐达到峰值;AlexNet模型的收敛速度较慢,且在第40~50次迭代,模型的测试准确率和损失值曲线出现较大的振荡;LeNet模型在该测试集上的测试准确率偏低,损失值也偏高。综合比较,在相同的试验条件下,本研究改进后的模型在构建的玉米病害数据集上比LeNet、AlexNet和GoogLeNet模型的分类效果更好。

3 结论

本研究针对玉米的6种典型病害,在卷积神经网络的基础上设计不同尺度的卷积核提取图像特征,优化网络结构,构建了基于改进卷积神经网络的玉米病害识别网络模型,该模型对6种玉米病害的测试准确率达到98.27%。结果表明,添加优化策略改进后的模型更加稳定,加快了网络的收敛速度,提高了模型的识别准确率和识别效率;与其他网络的对比试验结果证明,本研究建立的玉米病害智能识别模型有较好的识别效果,具有实际应用价值,为农作物病害的识别技术提供了新的方法。但目前仅对6种典型的玉米病害进行了识别研究,在训练样本的规模和病害种类方面有一定的局限性,在未来的研究中可以增大病害种类和样本规模,使模型具有更好的推广性和实用性。此外,可以在网络中添加注意力机制增强病害细节的特征提取能力,降低特征信息损失,结合CoAtNet网络、Efficientnet网络等研究新的更实用和精度更高的玉米病害识别网络,提高病害的识别准确率和模型的泛化能力。

猜你喜欢

集上卷积准确率
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
Cookie-Cutter集上的Gibbs测度
链完备偏序集上广义向量均衡问题解映射的保序性
从滤波器理解卷积
高速公路车牌识别标识站准确率验证法
基于傅里叶域卷积表示的目标跟踪算法
复扇形指标集上的分布混沌