APP下载

迁移学习在玉米叶片病害识别中的研究与应用**

2022-04-13董萍卫梦华时雷郭伟

中国农机化学报 2022年3期
关键词:卷积准确率病害

董萍,卫梦华,时雷,郭伟

(河南农业大学信息与管理科学学院,郑州市,450046)

0 引言

我国是以农业生产为主的国家,玉米是保障人们日常生活不可或缺的一种农作物。当玉米在生长过程中发生病害时,如果种植人员没能及时发现并采取有效措施,将会对玉米的产量造成极大的影响[1]。在实际生产过程中,种植人员有时为了防止作物病害的发生会提前使用农药,造成农药滥用现象,难以保证食品安全。此外,当农作物发生病害时,依靠人工识别具有强烈的个人主观意识,具有较大风险发生误判[2]。因此,研究玉米叶片病害的分类识别具有十分重要的现实意义。

图像处理技术[3]在作物病害监测和识别中发挥着非常重要的作用,并且已经取得了较满意的识别结果,但是过度依赖目标的颜色特征,使得在实际应用中对于复杂背景中的目标识别正确率较低。随着深度学习[4]的快速发展,众多学者开始尝试用深度学习的方法来解决作物病害识别的问题。毛罕平等[5]通过对AlexNet模型的改进,提出将卷积神经网络用于不同种类的植物叶片病害识别,最终识别准确率达到99.56%;马浚诚等[6]基于LeNet5网络模型构建了一个温室黄瓜病害识别系统,最终准确率可达95.7%;Brahimi等使用改进的卷积神经网络对西红柿叶部病害进行识别,最终准确率可达99.18%;秦丰等[7]基于深度学习和支持向量机方法对4种苜蓿叶部病害进行识别,最终测试集准确率可达87.48%。以上研究方法均是利用卷积神经网络对不同作物病害进行识别,为玉米叶片病害的识别方法提供了参考依据,但以上方法均需要构建大型的数据集来进行训练,而且需要较长的模型训练时间。

迁移学习[8]可以解决图片数据集数量太少或者模型训练时间较长等问题,把已经在其他数据集上训练好的模型放到新的分类任务中再次进行图像分类识别,把之前学习已经得到的特征当作新数据的特征再次进行分类识别,非常适合较难获取大量数据集的应用领域。

针对玉米病害叶片,基于迁移学习的原理使用InceptionV3模型和Xception模型对玉米健康叶片、尾孢叶斑病、纹枯病以及锈病[9]进行识别与分类,并探究迁移学习冻结全部网络层、冻结部分网络层和不冻结网络层时的识别效果,为今后利用迁移学习和深度学习进行玉米叶片病害分类识别提供依据与借鉴。

1 材料与方法

1.1 数据集介绍

试验中扬使用的图像数据均来自网上公开的PlantVillage数据集[10],试验选取其中四类玉米叶片病害的图像作为数据集,如图1扬示。

图1 玉米病害叶片可视化Fig.1 Visualization of maize disease leaves

此外,试验将获取到的两千多张玉米病害叶片图像按照8∶2的比例分为训练集和测试集,再将训练集按8∶2的比例分为训练集和验证集。具体的病害类别信息如表1扬示。

表1 玉米主要病害样本采集表Tab.1 Sample collection table of main maize diseases

1.2 数据预处理

图像预处理[10]的目的是去掉样本图片中的噪声及冗余信息,提高有价值信息的识别率。由于本试验扬用数据样本较少,采用迁移学习方法重新训练模型网络层时容易出现过拟合现象,扬以要先对数据进行预处理操作。

本试验使用keras提供的图像生成器Image Data Generator类来实现数据增强[11]。主要做法是每次取一个批次即batch_size大小的样本数据提供给模型,同时对每批样本进行归一化、随机旋转40°、随机水平和上下位置平移、随机错切变换角度、随机缩放比例、随机将一半图像水平翻转等操作。这样每一轮训练时输入的样本批次就不会完全相同,可以增强模型的泛化能力。

经过数据增强后叶片图像会随机发生一些变化,具体的变化如图2扬示。

图2 数据增强变化图Fig.2 Data enhancement variation diagram

1.3 深度学习模型介绍

在图像分类识别领域,很多卷积神经网络框架结构在各自领域都具有良好的分类识别性能,比如AlexNet,VGGNet,GoogLeNet,ResNet,SENet等。考虑到模型占用内存和模型的训练参数数量等因素,本试验选择由GoogLeNet演变而来的InceptionV3]模型和Xception模型来进行迁移学习。

Szegedy等在2014年提出的GoogLeNet获得了ImageNet图像分类挑战赛的冠军,其最大的特点是使用了Inception模块,目的是设计一种具有优良局部拓扑结构的网络,即利用不同尺寸大小的卷积核提取同一区域不同的抽象特征,然后对提取到的特征进行融合。

InceptionV3是在初始Inception模块的基础上,为了降低模型的计算参数量以提升计算速度,将5×5卷积核分解为两个3×3卷积核,将n×n的卷积核分解为1×n和n×1的两个卷积核,并在其基础上使用Batch Normalization辅助分类器以加快分类速度、标签平滑以防止过拟合和RMSProp优化器等。InceptionV3模块如图3扬示,其中模块a为两个连续3×3卷积核的Inception结 构,模块b为用连续的1×n和n×1卷 积 核代替n×n卷积核的Inception结构,模块c为用并列的1×3和3×1卷积核代替3×3卷积核的Inception结构。InceptionV3的具体网络结构如表2扬示。表中Inception模块a、模块b、模块c分别对应图3中的三个子图。

图3 InceptionV3模块Fig.3 Structure of InceptionV3 model

表2 InceptionV3网络结构Tab.2 InceptionV3 network architecture

Chollet等在2017年搭建的Xception网络框架是采用深度可分离卷积来替换原来InceptionV3中的卷积操作。模型具体改进过程如图4扬示,其中图4(a)为图3中(a)图的简化形式,将图4(a)中的多个1×1卷积替换成一个1×1卷积来映射跨通道的相关性,之后分别映射每个输出通道的空间相关性即得到图4(b)扬示的“极致”Inception模块。

图4 Xception模块Fig.4 Structure of Xception module

Xception网络结构具有36个卷积层作为网络的特征提取基础,这36个卷积层被构造成14个模块,除了第一个和最后一个模块外,其他扬有模块周围都有线性残差连接。因此,也可以说Xception网络架构是由具有残差连接的深度可分类卷积层线性堆叠而成的。

1.4 模型构建

试验选取已经在ImageNet数据集上预训练过的Xception模型和InceptionV3模型,直接加载其预训练好的权值,删除其原有的全连接层,加上新的全连接层,输出层先用全局平均池化函数GlobalAveragePooling2D将M×N×C的张量转换成1×C的张量,其中C表示通道的数量,再使用Softmax分类器,根据本试验的分类任务加上一个4个节点的输出层,最后选择直接训练或冻结部分网络层或冻结全部网络层来构建全新的模型。具体识别流程如图5扬示。

图5 基于迁移学习的玉米病害叶片识别流程图Fig.5 Flow chart of maize disease leaf recognition based on transfer learning

2 基于迁移学习的玉米叶片病害识别

2.1 试验方案及参数设置

试验运行环境为Windows10(64)位操作系统,采用Tensorflow深度学习开源框架,选用Python 3.6.12作为编程语言。硬件环境中CPU采用Intel(R)Core(TM)i5-7200U,主 频2.50 GHz;GPU采 用Nvidia GeForce 940MX,2 GB显存。

试验使用Keras的应用模块提供的带有预训练权值的InceptionV3模型和Xception模型分别进行不同形式的迁移学习。试验参数设置如表3扬示。

表3 试验参数设置Tab.3 Setting of experimental parameters

首先从Keras库中导入模型,将include_top设置为False,weights设置为imagenet,再加上新的全连接层后直接训练模型。此时,InceptionV3模型的训练参数为21 776 548,Xception模型的训练参数为20 815 148。

2.1.2 冻结全部网络层

该试验将模型layer层的trainable值设为False,即冻结全部的网络层。其余步骤和参数均与不冻结任何网络层相同。此时,网络只训练全连接层的参数。两个模型的训练参数相同均为8 196。

2.1.3 冻结部分网络层

该试验冻结部分网络层,即只训练其中的一部分网络层。由于冻结不同层数的网络层会导致模型的准确率不同,为了寻找最适合玉米病害图像的冻结层数,试验分别将两个网络的冻结层数由高到低以阶梯式下降的方式进行冻结。

2.2 试验结果分析与讨论

由于测试集中的图像均未参与模型的训练,故试验选取模型在测试集上的平均识别准确率(Accuracy)作为评估标准。以下试验均是在同一个测试集上的验证结果。

2.2.1 冻结不同网络层试验结果分析

当冻结部分网络层时,两个模型使用不同的训练参数占比得到的测试集准确率和训练时间分别如图6和图7扬示。

图6 InceptionV3模型不同训练参数占比试验结果Fig.6 Experiment results of different training parameters proportionin InceptionV3

图7 Xception模型不同训练参数占比试验结果Fig.7 Experiment results of different training parameters proportionin Xception

可以发现,模型训练参数占比不同在测试集上的准确率也有扬波动。针对玉米病害叶片的分类识别,InceptionV3模型在可训练参数占比为70%左右时平均识别准确率最高,达到92.04%;Xception模型在可训练参数占比为80%时效果最好,准确率达到94.62%。两个模型都是训练参数占比越大训练扬用时间越长,且Xception模型的训练时间要大于InceptionV3模型。

2.2.2 不同迁移学习方式试验结果分析

使用InceptionV3模型和Xception模型分别对同一个玉米病害叶片数据集进行分类识别任务,InceptionV3模型训练后得到的准确率图像如图8扬示,Xception模型训练后得到的准确率图像如图9扬示,其中冻结部分网络层时,两个模型均选取识别效果最好的训练参数占比。

图8 InceptionV3模型不同学习方式的准确率试验结果Fig.8 Accuracy of InceptionV3 model with different transfer learning ways

图9 Xception模型不同学习方式的准确率试验结果Fig.9 Accuracy of Xception model with different transfer learning ways

可以看出,这两个模型在训练集和验证集上的准确率都是随着训练轮次的增加而增加,最后逐渐趋近于100%。

当不冻结网络层时,准确率最高;当冻结全部网络层时,准确率较低但模型拟合程度最好;当冻结部分网络层时,模型拟合效果较差但准确率相较于冻结全部网络层要高。

从整体上来看,Xception模型针对玉米叶片病害识别的效果相较于InceptionV3模型更好。

两种模型的三种迁移学习方式对比如表4和表5扬示。可以看出,迁移学习不冻结网络层的效果最好,因为它训练的参数量最大,网络权重会随着新数据集的训练而更新,训练扬用时间也最长;冻结部分网络层的效果次之,但训练的参数量却少了很多,训练一轮扬使用的时间也相对较短;冻结全部网络层的分类效果不太好,出现这种结果可能是因为这两个模型都是在ImageNet数据集上预训练得到的,原本的分类任务是针对1 000种物体进行识别分类,与本试验扬使用的玉米病害叶片数据集相差较大,故直接加载模型的权重即不更新模型网络层的参数,得到的效果不太好。

表4 InceptionV3迁移学习方式对比Tab.4 Comparison of different transfer learning ways in InceptionV3

表5 Xception迁移学习方式对比Tab.5 Comparison of different transfer learning ways in Xception

2.2.3 不同玉米病害识别效果分析

由于不同玉米病害类别的图像纹理特征不同,故每种病害的识别准确率也不同。图10为Xception模型对测试集玉米图像预测的混淆矩阵,由图中可以得出玉米纹枯病、尾孢叶斑病、健康叶片以及锈病的识别准确率分别为93.33%、96.46%、100%和100%。

图10 Xception对测试集玉米图像预测的混淆矩阵Fig.10 Confusion matrix of test set in images of maize using Xception

由于健康玉米叶片相较于其他病害叶片特征较为明显,试验扬用玉米锈病的图像经过了背景处理去除了背景干扰,故玉米锈病和健康玉米的识别准确率达到了100%,而玉米纹枯病与尾孢叶斑病的图像特征相似性较大,故个别测试图像在识别时出现误判现象。

3 结论

本文探究了迁移学习冻结全部网络层、冻结部分网络层和不冻结网络层时的识别效果,并利用迁移学习分别使用InceptionV3模型和Xception模型对玉米健康叶片、尾孢叶斑病、纹枯病以及锈病进行识别与分类。试验结果如下。

1)使用迁移学习不冻结网络层时分类效果最好,训练时间较长;冻结部分网络层时次之,训练时间较短;冻结全部网络层时准确率最低,训练时间最短。

2)当冻结部分网络层时,InceptionV3模型在可训练参数量达到70%左右时识别效果较好;Xception模型在可训练参数量达到80%时效果最好。

3)Xception模型针对玉米叶片病害识别的准确率要高于InceptionV3模型。

4)使用迁移学习可以较好的玉米病害图片进行分类,对玉米健康和锈病的识别率可达100%,对玉米纹枯病和尾孢叶斑病的识别率可达93.33%和96.46%,平均识别准确率可达97.42%。

5)在数据集样本较少,试验设备有限的情况下,使用迁移学习能达到很好的病害叶片识别效果。

猜你喜欢

卷积准确率病害
基于全卷积神经网络的猪背膘厚快速准确测定
基于改进DenseNet的茶叶病害小样本识别方法
市政道路桥梁工程常见病害与施工处理技术探讨
基于图像处理与卷积神经网络的零件识别
市政道路冻胀及翻浆病害成因分析及主要处理措施
道路桥梁工程的常见病害与施工处理技术
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察