APP下载

卷积神经网络的多尺度改进及其在玉米病害症状识别中的应用

2021-11-03王美娟尹飞

河南农业大学学报 2021年5期
关键词:灰斑准确率卷积

王美娟, 尹飞,2

(1.河南农业大学信息与管理科学学院,河南 郑州 450046;2.河南粮食作物协同创新中心,河南 郑州 450002)

近年来,玉米病害有逐年加重的趋势,严重影响了玉米的产量和品质。为此,利用农业信息化技术手段,实现快速、高效、智能化玉米病害诊断,降低玉米病害影响,是解决中国粮食安全问题的重要途径之一。近年来,随着计算机技术的不断发展,国内外学者基于机器视觉算法在作物病害图像识别领域进行了相关研究[1-6]。ZHANG等[7]提出一种融合超像素聚类,K-Means聚类分割和分层梯度直方图(PHOG)算法识别黄瓜和苹果的几种常见病害,平均识别率为87%。贾浩[8]研究了玉米叶部病斑的计算机自动识别,从图像的采集、预处理、分割、特征的提取结合BP神经网络针对6种常见玉米叶部病害进行诊断识别,识别率达到92.3%。顾博等[9]以玉米大小斑病和灰斑病叶片为研究数据,利用融合显著信息的Grabcut算法、One-Cut算法和SLIC算法对玉米大小斑病和灰斑病进行病斑目标识别和分割,融合后的算法识别准确率达80%以上。以上研究多是基于图像的颜色、纹理和空间结构进行分析,采用边缘检测、阈值处理、区域生长和决策树分类以及聚类分割等传统图像处理方法,存在适应性差、抗干扰能力弱等问题,很难适用大田自然条件下获取的复杂背景图像,且最终的识别精度有限,难以在实际生产中推广应用。

随着深度学习技术的提出与发展[10],更加凸显了传统图像检测方法的不足之处。深度学习可实现对图像特征自动的分层提取,从而解决了传统图像识别面临的特征提取和分类器选择难的问题。国内外学者的深入研究产生了多种优秀网络模型[11-16],它们具有深层次结构、识别准确率高、泛化能力强,适用于各种场合下的分类。在农业病害图像检测上,AlexNet[10]、VGGNet[11]和ResNet[12]等卷积神经网络模型都取得了较好的效果。2019年,KAMAL等[17]提出2种版本的深度可分卷积(原始MobileNet和改进的MobilNet)对包括玉米病害在内的55个作物病害类别进行训练和测试,与传统VGG相比,改进的MobileNet的参数量仅是VGG参数量的3.67%,是原始MobileNet参数量的16.87%,分类准确率达98.34%。DARWISH等[18]通过对健康和不健康叶片图像进行分类,建立了2种预训练的卷积神经网络VGG16和VGG19的集成模型,采用正交学习粒子群优化(OLPSO)算法,寻找超参数的最优值。采用了指数衰减学习率(EDLR)模式,用于玉米健康、灰斑病、锈病和叶枯病害诊断。该方法的平均识别率为98.2%,高于Inception-V3的96.6%和Xception的96.5%。GANE等[19]用优化的深度卷积神经网络,使用6种数据增强方式对公共数据集Plant Village中的39个不同类别的植物叶片和背景图像进行训练,并与SVM、决策树,逻辑回归、KNN进行对比,该模型对玉米健康叶片、灰斑病、锈病和枯叶病的识别率分别为100%、96%、100%和94%。CHEN等[20]利用在ImageNet上预先训练的VGGNet和Inception模块,后迁移到自己的玉米,水稻病害图像数据训练的特定任务。该算法在公共数据集上的验证精度不低于91.83%,高于其他对比模型。以上研究利用大型公开数据集或小样本数据集作为研究对象,图像背景过于简单,且数据代表性不足,影响模型泛化性。在面对实际大田复杂背景图像时,病害识别精度会大大降低。为提高模型精度,研究人员通常利用卷积层数较深的深度学习网络结构来提取目标特征和训练,增加了网络参数,又导致调参难度和运算量的大幅增加。针对以上问题,本研究在传统VGG-16模型基础上,提出一种改进的、批归一化与全局池化相结合的多尺度卷积神经网络模型,通过多源数据集训练的方式,提高模型的泛化能力,并与传统卷积神经网络模型(VGG-16[11]、ResNet-50[12]、Inception-V3[13]、DenseNet-201[14]和MobilNet-V2[15]模型)进行对比分析,验证改进多尺度卷积网络模型的性能,为玉米叶片病害识别提供技术支撑。

1 材料与方法

1.1 改进的多尺度卷积神经网络

VGGNet网络作为经典的卷积神经网络,整个网络使用了同样大小的卷积核尺寸(3×3)和最大池化(2×2),卷积核小,特征提取效果较好。VGGNet网络的拓展性能较突出,结构较简洁,迁移性能好,迁移到其他数据集的时候泛化性较好。但VGGNet模型中3个全连接层导致内存占用量巨大、耗费更多的计算资源且收敛速度慢。采用批量处理的方式进行训练时,每训练一个批次数据就会更新一次参数,每个隐层的参数变化使后一层的输入发生变化,从而每一批(batch)训练数据的分布也随之改变,致使网络在每次迭代中都需要拟合不同的数据分布,增大了训练的复杂度以及过拟合的风险。

而GoogLeNet提出了一种全新的深度CNN结构—Inception,使用了卷积池化并行结构,节约计算时间的同时减少了模型参数。但研究证明,GoogLeNet模型对类别相似的目标图像识别准确率较低,随着模型网络深度的加深,不断使用池化操作使训练实现降维和加快收敛,导致了部分浅层特征丢失,使得没有充分挖掘到“同形异构”目标任务特征信息的多样性和可区分性,进而导致特征相似的目标出现误判[21]。

为解决传统VGGNet模型参数量多、内存耗费量大,而且收敛速度慢、易造成过拟合和GoogLeNet易丢失部分浅层特征影响识别率等问题,本研究提出一种改进的多尺度卷积神经网络模型,保留传统VGG16网络模型对于浅层特征的识别作用。在此基础上添加了一个Inception模块,减少参数量,提高模型的非线性表达能力和训练能力。模型结构如图1所示。

图1 多尺度卷积神经网络结构 Fig.1 Multi-scale convolutional neural network structure diagram

模型优化措施如下:

1、添加Inception模块

模型前几个卷积层提取图像的浅层信息,例如叶片的轮廓和颜色,层数越靠后,提取的图像特征越抽象,越能体现类与类之间的细微差异性[22]。图2给出了原始图片以及VGG-16网络底层和高层卷积下生成的特征图。

图2 VGG-16模型输出的部分特征图Fig.2 Partial feature map of VGG-16 model output

随着网络层数的加深模型提取图像的特征更加细致,因此保留VGG-16模型conv_1到pool_3层,用于提取目标图像的浅层特征,后添加一个Inception模块。

(1)使用多种卷积核做多尺度特征提取,更高效的提取目标图像特征,提高类与类之间的识别准确率。

(2)借鉴VGGNet网络用2个小卷积核(3×3)替换大卷积核(5×5),既获得相同的视野,又具有更少的参数,间接增加网络深度,可更好学习到图像深层特征。

(3)使用1×1的卷积核实现降维操作,以此来减小网络的参数量,保证网络在每一层中学习到“稀疏”或不“稀疏”的特征,增加了网络的宽度的同时增加了网络尺度适应性[23]。

输入图像并行执行多个卷积运算和池化操作,用于提取从先前层输入的图像多尺度特征,将所有层输出结果堆叠成目标图像的整体特征图。横向的卷积核排列设计,使得多个不同大小的卷积核能够得到图像当中不同尺度的信息,这样融合了不同尺度的卷积以及池化,一个模块一层可以得到多个尺度信息,下一阶段也可同时从不同尺度中提取特征,可进行多维度特征融合,拓宽了计算力,避免了模型太深导致训练梯度弥散的问题,特征提取效果更好。

2、批归一化处理(BN)

传统神经网络训练中,仅对输入层数据进行归一化处理,而忽略了中间层处理,随着深度的不断加深和数据量的不断扩大,导致训练效率受到影响。为解决此问题,本文对包括模型中间层在内的数据进行归一化批量处理,使每一层神经网络的输入保持相同的分布。其计算过程如下:

输入:对每一个输入(mini-batch)的样本x1-xm进行批量处理,B代表输入的一批数据,m代表每批数据的个数。

输出:规范化后的网络响应{yi=BNλ,β(xi)}。

(1)

(2)

用(1)和(2)式求得的均值和方差对数据进行标准化处理。其中,ε是为了避免除数为0时使用的微小正整数。

(3)

为防止归一化后xi会被限制在正态分布,影响网络的表达能力,引入2个新的参数:γ和β。输出y通过γ与β的线性变换得到新的值

(4)

对于每个激活函数都进行以上循环,计算均值与方差求出BN层输出。在反向传播时利用γ与β求得梯度从而改变训练权值(变量)。通过不断迭代直到训练结束,得到γ与β,以及记录的均值方差。在预测的正向传播时,使用训练时最后得到的γ与β,以及均值与方差的无偏估计。

BN利用优化改变方差大小和均值位置,使得新的分布更切合数据的真实分布,保证模型的非线性表达能力,加快训练速度,提高模型的训练能力[24]。

3、全局池化层替换全连接

传统的VGG-16网络参数量大导致模型的收敛速度较慢,对模型训练的硬件要求较高。VGG-16包含3个全连接层,第一个全连接层的参数大约有1.02×108个,几乎占整个网络参数量的75%,这将大大增加模型训练时间,浪费更多的计算资源。在真实大田环境中拍摄的复杂背景图像包含大量噪声,容易导致过度拟合问题。全局池化以特征图为单位进行均值化,形成一个特征点,在最后卷积层一个特征图输出一个分类值,得到结果后用softmax进行分类[23-24]。本文用全局池化替代VGG-16卷积层后的全连接层,大大减少了模型的参数量,每个样本数据与特征图之间的联系更加直观,因此被转化为分类概率更加容易。通过增强特征映射和类别之间的对应关系,汇总了空间信息,从而对输入的空间平移具有更强的鲁棒性;在全局平均池中没有优化参数,不需要调整参数,避免了过拟合问题,更具鲁棒性。

1.2 数据采集与预处理

1.2.1 数据采集 利用改进多尺度卷积神经网络模型对玉米病害进行识别研究,所使用玉米叶片病害图像数据来源为2部分。一部分为公共数据集Plant Village[25]。其中,健康玉米图像1 162张,玉米灰斑病513张、叶枯病985张和锈病1 192张;另一部分为大田病害图片,采集于河南农业大学毛庄试验农场(2018—2019年7—9月),图像采集设备为佳能EOS 50D,图片包含玉米健康、玉米灰斑病、叶枯病和锈病各800张,分辨率为6 000×4 000,格式为JPG。试验所用部分图像数据如图3所示。

1.2.2 数据预处理与数据增强 Plant Village数据库中的玉米病害图像为不同拍摄角度的单一背景图像,且病害样本数量分布不均衡(健康叶片图像1 162张,而灰斑病图像只有513张),对神经网络分类器训练具有显著不利影响。为此,本研究通过增加大田试验采集图像来扩充数据集。利用GrabCut[26]算法对大田图像进行背景分割去除,python PIL模块对原始图像进行数据增强(裁剪,旋转),并调整图像分辨率与Plant Village数据库图像一致,增强后图像数据如图4所示。

注:1~2号为PlantVillage数据集玉米健康叶片图像;3~4号为大田采集玉米健康叶片图像;5~6号为PlantVillage数据集玉米灰斑病叶片图像;7~8号为大田采集玉米灰斑病叶片图像;9~10号为PlantVillage数据集玉米叶枯病叶片图像;11~12号为大田采集玉米叶枯病叶片图像;13~14号为PlantVillage数据集玉米锈病叶片图像;15~16号为大田采集玉米锈病叶片图像。

经过数据增强与分割,将玉米病害图像数据扩充为均衡样本共16 000张(每类4 000张),随机选取80%(12 800张)作为训练数据,10%(1 600张)作验证集,10%(1 600张)作单一背景下的测试集①。另外,选取1 600张未做背景分割的复杂背景大田图片做测试集②,评估模型的泛化能力。数据样本数量分布如表1所示。

2 试验环境与参数优化

2.1 试验环境

本研究所用PC机器安装Windows10,64位系统,搭载Intel(R)Core(TM)i7-8750HCPU@ 2.20 GHz 4核处理器,内存16 GB。采用python3.7与Keras框架进行训练。

2.2 试验参数优化

本研究使用4种单一背景下的玉米图像,包括健康玉米,玉米灰斑病、普通锈病和叶枯病各4 000张,随机选取80%的图像数据采用批量训练方式对改进的多尺度卷积模型进行训练,剩余20%作为验证集。卷积神经网络需要通过多次迭代训练和验证来发现最优的参数。采用随机梯度下降法(SGD)[27],交叉熵损失函数作为代价函数。小批量可以用来计算损失函数的梯度,更新网络的权值。批量数据是训练数据集的子集,减少了计算成本,提高了模型的效率。模型随机选取一个样本作为输入,输出该样本预测的分类与实际图片的类别并计算交叉熵[28-29],加入正则化项组成总损失,反向传播对模型中的权重参数求偏导计算损失函数的梯度,再乘以学习率更新每一层的参数。为加快模型的学习速度,解决反向传播过程中梯度消失和爆炸的问题,引入批规一化(BN),对网络隐藏层输入进行标准化。选取学习率为0.1、0.01、0.001、0.000 1,Dropout为0.1、0.2、0.3、0.4、0.5、0.6,batch size为16、32、64、128分别对改进模型进行训练,经过验证最终选取最优超参数如表2所示。

注:图1~5号分别为原始大田健康玉米叶片、裁剪后经过分割的健康玉米叶片、旋转90度旋、转180度和旋转270度的图像;6~10号别为原始大田灰斑病玉米叶片、裁剪后经过分割的灰斑病玉米叶片、旋转90度旋转180度和旋转270度的玉米灰斑病叶片;11~15号分别为原始大田叶枯病玉米叶片、裁剪后经过分割的玉米叶枯病叶片、旋转90度旋转180度和旋转270度的玉米叶枯病叶片;16~20号分别为原始大田锈病玉米叶片、裁剪后经过分割的玉米锈病叶片、旋转90度旋转180度和旋转270度的玉米锈病叶片。

表1 玉米病害样本图像数量Table 1 Number of maize disease image samples

表2 改进的多尺度卷积神经网络模型的参数Table 2 Parameters of the improved multi-scale convolutional neural network model

3 试验结果与分析

3.1 模型准确率对比评估

利用4种玉米病害图像训练集对改进后模型进行训练,其中“损失值”表示在训练过程中每次迭代交叉熵的平均值。“准确率”表示模型正确识别的样本数与总样本数之比[30]。损失函数如下式:

(5)

由图5中的损失曲线可以看出,模型在迭代20次以后曲线基本趋于平缓,损失值降低的速率开始趋缓,同时,学习率衰减进入了缓慢调整过程[31]。由于采用随机梯度下降法,随机样本不会每次都是最优选择,因此模型在训练迭代20次以后损失值稳定在0.002 0~0.001 5之间,测试集的识别准确率在98.89%~99.31%。迭代60次后模型识别准确率几乎保持稳定。

图5 改进多尺度卷积网络模型的训练损失值和准确率 Fig.5 The training loss and accuracy of the improved multi-scale convolutional network model

用相同数据集(表1,图4)对传统卷积神经网络模型VGG-16、ResNet-50、Inception-V3、DenseNet-201和MobilNet-V2进行训练和测试,优化模型参数,各模型识别准确率随迭代次数变化率如图6所示。表3展示了各模型的参数设置,平均识别准确率与速率对比。

图6可看出改进后的多尺度卷积网络模型相较其他几种卷积网络模型的收敛速度更快且模型准确率更高,改进后的模型在迭代20次以后即可达到90%以上的准确率,而其他几种模型在迭代40次后才开始慢慢趋于平缓。改进后的多尺度卷积神经网络的识别准确率最高为99.31%,远远高于改进前的VGG-16模型的平均识别准确率90.98%。改进前VGG-16模型的参数量大,导致训练时间最长,模型训练需要83 h,单张图片测试需0.58 s。ResNet-50和Inception-V3模型所占内存分别为101.1 MB和94.2 MB远小于VGG-16模型的527.7 MB,识别率分别为93.60%和94.23%,单张测试耗时比VGG-16减少了0.16 s和0.19 s。DenseNet-201虽然参数量比ResNet-50和Inception-v3少,但由于通道叠加的原因,需要频繁读取内存,导致识别速度较慢。MobilNet-V2作为轻量级卷积神经网络,相比其他卷积神经网络具有更少的参数和更少的计算量,但识别准确率仅为93.83%。而改进的多尺度卷积网络模型不仅参数量小、大大减少了网络计算量和所占内存,提高了模型的训练和测试速度,单张图像检测耗时仅需0.25 s,同时保证了较高的识别准确率99.31%,其综合性能明显优于改进前的VGG-16和其他卷积神经网络。

3.2 模型泛化能力分析

为验证模型泛化能力,更好应用于复杂背景下的大田玉米病害图像识别,将训练集,测试集以外,未经过背景分割的大田玉米健康、灰斑病、普通锈病和叶枯病叶片图像各400张(图7),对训练好的改进模型进行测试。

为了更加准确评估模型的泛化能力,本研究使用经过背景分割和未经背景分割的大田玉米图像分别对模型进行测试,得出4类玉米图像的分类预测结果的混淆矩阵如图8,并分别计算准确率(Accuracy)、召回率(Recall)和精度(Precision)(表4)。

图6 不同卷积神经网络模型识别准确率 Fig.6 Recognition accuracy of different convolutional network models

表3 各模型参数设置及测试准确率与速率Table 3 Number of parameters of different models and testing accuracy and recognition rates

(6)

(7)

(8)

式中:TP为被模型预测为正例的正样本,TN为被模型预测为负例的负样本,P+N为样本总数,FP为被模型预测为正例的负样本,FN为被模型预测为负例的正样本。

由图8和表4可见,改进后模型在单一背景下玉米病害平均识别准确率达99.31%。健康叶片的识别效果最好,识别准确率为99.88%,召回率为100%,灰斑病、锈病和叶枯病的识别准确率分别为98.94%,99.25%和99.19%。对于400张复杂背景下的玉米图像,改进模型的平均识别准确率为98.44%,成功识别出398张健康叶片、382张灰斑病图像、387张锈病图像和383张叶枯病图像,识别准确率分别为99.62%、97.87%、98.19%和98.06%。由于玉米灰斑病和叶枯病的病害特征有一定程度的相似,模型可能会产生误判。

此外,试验所用公共数据集中有少量图片同时包含锈病和灰斑病或者锈病和叶枯病(如图9),模型在学习图像特征过程中会同时学习到锈病和灰斑病或者叶枯病特征,而试验田采集的复杂背景图片只包含一种病害,因此用复杂背景进行测试时对于病害图像会出现少量误判的情况。

注:1~2号为复杂背景下的健康玉米叶片图像;3~4号为复杂背景下的玉米灰斑病叶片图像;5~6号为复杂背景下的玉米叶枯病叶片图像;7~8号为复杂背景下的玉米锈病叶片图像。

图8 复杂背景玉米病害图像预测分类结果 Fig.8 Pridiction and classification results of maize disease images with complex background

表4 改进的多尺度模型在复杂背景下对玉米病害叶片的识别准确率Table 4 Recognition accuracy of the improved multi-scale model of maize disease images with complex background %

注:1~2表示同一张玉米叶片同时包含锈病和叶枯病2种病害;3~4表示同一张玉米叶片同时包含锈病和灰斑病两种病害。

4 结论与讨论

本研究融合了VGG-16模型和Inception结构的特点,保留了传统VGG-16网络模型对于浅层特征的识别作用,在此基础上添加了一个Inception模块, 减少模型参数量,提高模型的非线性表达能力和训练能力,将分批归一化与全局池化相结合,提出了一种改进的多尺度卷积神经网络模型,识别玉米健康叶片和常见病害(灰斑病、锈病和叶枯病)。将大田数据集与公共数据集结合提高模型泛化能力,并与改进前的VGG-16以及ResNet50、Inception-V3、 DenseNet-201和MobilNet-V2 等传统神经网络模型在模型准确率、收敛性和泛化能力等方面进行对比分析,结果表明:

1) 改进多尺度卷积神经网络模型在单一背景下的玉米病害平均识别准确率达99.31%,明显优于改进前VGG-16模型的识别准确率90.89%,传统ResNet-50、Inception-V3、DenseNet-201和MobilNet-V2模型的识别准确率分别为93.60%、94.23%、95.70%和93.83%。

2)改进多尺度卷积神经网络模型在训练测试时间和参数计算量上优势明显,模型参数量减少为改进前VGG-16模型的5%,内存需求从527.7 MB缩小为29.7 MB。改进后的模型在迭代20次以后能够很好收敛,识别准确率稳定在98.40%~99.31%之间,训练时间由VGG-16的83 h减少为14.2 h,单张测试仅需0.25 s。而传统VGG-16模型在训练50次后才达到收敛效果,耗时长,模型完成一次训练需要消耗83 h。MobilNet-V2作为轻量级卷积网络,所占内存最小只有13 MB,模型识别速率高,但识别准确率仅为93.83%,适合在移动设备端运行。此外,ResNet-50、Inception-V3、DenseNet-201神经网络模型收敛速度较慢(45次),且训练时间和单张图片测试时间均大于本研究提出的模型。

3)改进多尺度卷积神经网络模型对复杂背景下玉米病害图像的平均识别准确率为98.44%。400张健康玉米图片被正确识别出398张,2张错误识别为灰斑病图像。对玉米灰斑病、锈病和叶枯病3种病害的识别准确率分别为97.87%、98.19%和98.06%,召回率分别95.50%、96.75%和95.75%。改进模型的泛化能力较强,可应用于复杂大田环境下的玉米病害识别。

卷积神经网络在玉米病害识别,预警和防控中有广泛的应用前景。但现阶段,改进的多尺度卷积神经网络只能实现单个叶片单种病害的识别,而现实中往往单个玉米叶片同时具有多种病害类型不同的症状。因此,在今后研究中,大田图像数据集的丰富是首要任务,便于模型充分提取图像病害症状多尺度、多维度特征,进一步提高模型识别准确率和泛化能力。随着智能手机和5G信号的逐渐普及、高清摄像头和移动设备中的高性能处理器等综合因素, 基于智能手机的自动图像识别的系统应用越来越广泛。实现多种病害识别的同时,开发应用于大田环境下即拍即识别的移动端病害识别系统亦是将来的研究方向。

猜你喜欢

灰斑准确率卷积
U71Mn热轧钢轨闪光焊接灰斑缺陷分析
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
从滤波器理解卷积
GAAS80/580焊机工艺参数设置对U71Mn钢轨焊接质量的影响
钢轨闪光焊灰斑缺陷形成原因及预防方法
高速公路车牌识别标识站准确率验证法
基于傅里叶域卷积表示的目标跟踪算法