APP下载

基于迁移学习的棉花叶部病虫害图像识别

2020-05-19赵立新侯发东吕正超朱慧超丁筱玲

农业工程学报 2020年7期
关键词:准确率卷积棉花

赵立新,侯发东,吕正超,朱慧超,丁筱玲

(1. 山东农业大学机械与电子工程学院,泰安 271018;2. 山东省园艺机械与装备重点实验室,泰安 271018)

0 引 言

棉花是世界上最主要的农作物之一,与民生息息相关。棉花的整个生长周期受到40 多种病虫害的侵袭,严重影响其产量[1]。因此能快速准确的识别出棉花病害的种类并给予及时准确防治对于避免病害进一步扩散进而提高棉花产量至关重要。

随着计算机视觉以及人工智能的发展,特别是海量数据、计算机运算能力和算法等加速了深度学习技术的发展,深度学习技术在图像识别领域开始占据越来越重要的地位。而卷积神经网络(Convolutional Neural Network,CNN)作为深度学习技术的一种具有很强的自学习能力,通过对数据的抽象分析学到大量知识,从而快速准确实现分类,CNN 具有很强的适应能力和泛化能力,相比较全连接的传统神经网络,卷积神经网络采用权值共享的方式减少了参数量,从而极大降低了计算量[2]。传统图像识别方法依赖先验知识,需要对特征手工提取,然后进行分类,而卷积神经网络只需要把图片数据输入到网络,网络通过对卷积核的自学习就能达到分类效果。本研究采用的研究方法即为卷积神经网络。

近年来,智能识别技术逐渐开始用于农业领域。Barbedo[3]提出一种算法结合 HSV 颜色空间(Hue Saturation Value,HSV)的H 通道和Lab 颜色空间(Lab Color Space,Lab)的a 通道以区分植物叶片无症状组织和病害体征。王春雷等[4]提出一种基于遗传算法和阈值滤噪的玉米根茬行图像分割方法,准确分割出玉米根茬行。吴露露等[5]利用传统图像处理方法,对水稻图像进行阈值分割等步骤,对叶片特征进行提取。李文勇等[6]提出一种基于颜色、纹理与形态无关特征结合并利用多类支持向量机分类器的多姿态害虫分类方法。张善文和张传雷[7]采用区域增长分割算法分割病害叶片病斑图像,然后把病斑图像重组为一维向量,利用局部判别映射算法对玉米病害进行识别。毛罕平等[8]提出基于模糊C 均值聚类的作物病害叶片图像分割方法,能较好将病斑部分和正常部分分开,平均误差小于5%。Li 等[9]利用半监督学习算法对蔬菜病害进行预测,取得了支持向量机方法更好的效果。田有文等[10]利用计算机图像处理技术和支持向量机识别方法研究了葡萄叶部病害的识别,试验结果表明支持向量机识别方法比神经网络方法获得了更好的识别效果。张建华等[11]提出一种基于粗糙集和BP 神经网络的棉花病害识别方法,粗糙集减少特征维数,使BP 神经网络训练时间缩短,达到92.72%的平均识别正确率。早期的识别分类方法识别率很低,需要对农作物病害图像进行分割、边缘检测等预处理,然后手工特征提取,最后分类,费时费力,得到的分类准确率却不高。

随着人工智能时代的到来,深度学习技术的发展,特别是卷积神经网络的出现,图像识别技术得到了进一步发展。Kunihiko Fukushima[12]首先把生物神经元识别物体具有旋转不变性应用到卷积神经网络中。至此卷积神经网络技术开始快速发展,应用于手写数字识别[13],准确率达到了99.77%,卷积神经网已经在各个领域得到广泛应用,人脸识别、语音识别和行人检测等[14-17]。卷积神经网络也开始应用在农作物病害识别,赵德安等[18]为适应复杂背景问题,构建了基于YOLO 深度卷积神经网络的机器人采摘苹果定位。Oppenheim 等[19]使用卷积神经网络对马铃薯疾病进行了分类,该算法成功应用于农作物病害的识别,显示了深度学习技术在农业任务中的潜力。黄双萍等[20]提出基于深度卷积神经网络GoogLeNet模型的水稻穗瘟病检测方法,在验证集上最高准确率为92%。傅隆生等[21]提出一种基于LeNet 的卷积神经网络模型以对多簇猕猴桃果实进行图像识别。

目前利用卷积神经网络研究棉花的有张建华等[22],研究了7 种棉花叶片类型(包括正常叶),采用改进VGG模型利用在ImageNet 数据集上训练得到的预训练模型,微调以适应棉花病虫害数据集,比较了原始图像像素对识别准确率的影响,由于ImageNet 数据集与本研究的植物病虫害数据集相似程度不大,迁移学习的知识不能很好地适应于棉花病害数据集,存在域迁移问题,因此该试验达到的最好的平均准确率为89.51%。本试验以棉花的枯萎病、黄萎病、棉铃疫病、褐斑病、角斑病、棉叶螨为试验对象构造的数据集进行训练,采用相似度较高的PlantVillage 数据集训练得到预训练模型,利用棉花病害数据集微调模型,取得了更好的效果。

1 材料与方法

1.1 试验数据准备与数据集构建

本研究以棉花枯萎病、黄萎病、棉铃疫病、褐斑病、角斑病、棉叶螨这6 种常见病虫害为研究对象。因农业领域数据图片较少不好获取,各种病害发病与生态、气候和棉花品种等诸多因素有关[23],因此试验在山东农业大学试验棉田近年采集的基础上还通过网络渠道获取了部分数据,图片类别由相关专家确认。本试验共采集原始图像1 186 张,其中棉花枯萎病210 张,黄萎病190 张,棉铃疫病183 张,褐斑病196 张,角斑病187 张,棉叶螨220 张。这6 类图片被放在6 个不同的文件夹中,每个文件夹代表一个类别标签。标签0 为枯萎病,标签1为黄萎病,标签2 为棉铃疫病,标签3 为褐斑病,标签4为角斑病,标签5 棉叶螨。本研究还从PlantVillage 大数据集获取了一些图片,用于迁移学习获得预训练模型,玉米灰斑病1 642 张,葡萄叶枯病1 722 张,南瓜白粉病1 736 张,草莓蕉叶病1 774 张,马铃薯晚疫病1 939 张,苹果黑腐病1 987 张,总共6 类10 800 张。采集的原始图像以及PlantVillage 数据集图像的分辨率大小不等,而本模型要求输入固定维度,图像的像素过多,包含过多的冗余信息,本试验将图片的的尺寸统一转换为224×224×3 像素,然后才能输入网络进行训练。图1 为采集的棉花病虫害图像集,图 2 是来自公共数据集PlantVillage 的玉米灰斑病、葡萄叶枯病、南瓜白粉病、草莓蕉叶病、马铃薯晚疫病和苹果黑腐病图片。

图1 棉花病害样本图像 Fig. 1 Sample image of cotton disease

图2 公共数据集PlantVillage 的样本图像 Fig. 2 Sample image of PlantVillage public dataset

棉花病虫害数据集划分为训练数据集、验证集与测试数据集,比例为6∶2∶2,而本研究从公共数据集PlantVillage获得的图片采用8∶2的比例来分割训练数据集和测试数据集。

1.2 模型结构设计

CNN 相比较全连接层(Fully-Connected Layer,F)的神经网络新出现了卷积层(Convolution Layer,C)、激励层(Relu Layer,R)、池化层(Pooling Layer,P),CNN的层一般连接顺序是“Convolution-Relu-Pooling”,池化层有时会被省略,本试验采用最大池化。总体结构包括输入层、卷积层、池化层、全连接层和输出层,其中除输出层其他层的激活函数都是线性整流单元(Rectified Linear Units,ReLU)即relu 函数,输出Softmax 层实现分类。图3 为仿照AlexNet 模型设计的CNN 网络结构。由于经典的AlexNet 模型用于识别1 000 种分类,本试验是6 分类问题,故采用Softmax 分类层有6 个神经元,卷积核是4 维的其中表示卷积核尺寸, n4表示卷积核个数,S 为步长(Stride),全连接n则表示该层神经元个数。由于本试验中,输入图片数据的尺寸为224×224×3,图片输入网络,第1 个卷积层记为C1,其过滤器尺寸是11×11 像素,S 为4,过滤器个数为64,即(11×11×3×64/4);第1 个池化层记为P1,其大小为3×3像素,步长为2 即(3×3/2);第2 个卷积层记为C2,其卷积核尺寸为5×5 像素,S 为1,即(5×5×64×256/1),为避免卷积提取特征图越来越小采用padding,即像素填充(补0 策略),在该层输入像素矩阵周围补2 个0,过滤器个数256;第2 个最大池化层记为P2,其尺寸2×2, S 为2 即(3×3/2);第3、4、5 个卷积层记为C3、C4、C5,它们的尺寸都是3×3,过滤器个数为256,即都为(3×3×256×256/1);接着是第3 个池化层记为P3,尺寸是3×3,S 为2;然后是2 个全连接层记为F6 和F7,神经元个数依次是4 096、1 000;Softmax 分类层6 个神经元。

图3 模型结构图 Fig. 3 Model structure diagram

1.3 试验环境

试验在山东农业大学高性能计算平台上进行,平台操作系统redhat6.9,提交tensorflow-gpu 作业脚本,其中指定队列名称为图形处理器(Graphics Processing Unit,GPU),指定一个节点来进行该任务,加载软件环境有gcc、cuda9.0 和python3.6.6。CPU 核心数32,内存128 GB,GPU 为NVIDIA Tesla k80。模型通过TensorFlow 框架调用keras 库搭建。

1.4 基于迁移学习的试验方法

深度学习模型可以划分为训练和预测2 个阶段,训练分为2 种策略,一种是在搭建的模型上从头开始训练,另一种是通过预训练模型进行训练,即迁移学习(Transfer Learning,TL)。迁移学习减少了构建深度学习模型所需的训练数据、计算力,能很好解决小数据集容易在复杂网络结构上的过拟合问题[24-25]。首先对PlantVillage 大数据集来获得预训练模型,然后用棉花病虫害数据集基于预训练模型进行迁移学习。

1.4.1 数据预处理

对试验图片预处理包括对图片尺寸重定义、对样本每个批次(使用训练集中的一部分样本对模型权重进行一次反向传播的参数更新,这部分样本称为一批次,即batch)进行归一化处理、图片去均值化等。本试验把图片重定义为224×224×3,减少了像素值,去除了大量冗余信息,从而减少计算量。

对图片进行去均值化是为了对图像进行标准化,可以移除图像的平均亮度值,具体操作为:对于给定的进行了尺寸重定义后的图像,每个样本的各像素值上减去整个训练样本的像素值平均值。在很多情况下对图像的亮度不敏感,而更多地关注其内容,在本试验中图片分类任务中,图像的整体亮度并不影响图像中存在什么物体,这时对每个数据点移除像素的均值是有意义的。

对CNN 而言对数据归一化是梯度下降所需要的,数据归一化后也能防止梯度爆炸,以便加速网络收敛,进一步缩减特征图数目[26],现有的梯度下降的一些超参数是在归一化之后的输入数据范围内搜索到的,试验参考了经典AlexNet 结构的一些超参数,只有数值计算的范围一致,才能达到相同的效果,本试验采用批量归一化方法,需对批次中的每个样本图像进行归一化处理。对一个样本的处理方法如式(1)和式(2)所示

式中ix 表示该样本第i 个像素点的值;n 为该样本像素点总数;µ表示均值;σ 表示方差。归一化方式如式(3)所示

1.4.2 识别模型中的优化算法

1.2 节设计的网络结构包括2 个全连接层,网络结构的参数数量很大,相对比较小的数据集而言该网络结构较复杂容易出现过拟合问题,因此加入L2 正则化和Dropout 优化算法以避免过拟合。L2 正则化是由代价函数与正则化项相加来实现的。原始代价函数0J 由式(4)表示

式中w 表示权重;b 表示偏置;m 表示样本数量;L 表示损失函数;表示神经元的实际输出值, y(i)表示神经元的期望输出值。

L2 正则化后的代价函数J 由式(5)和式(6)表示

式中λ 是一个超参数,即正则化参数;l 表示全连接层层数;k 表示每层的神经元个数;表示该层第j 表示神经元权值的平方。权值更新过程由式(7)所示

由式(7)看出,只对权值w 进行了衰减,没有偏置b 进行衰减,因为参数b 的数量相对于w 而言太少了,对整个网络的影响很小,一般不对b 进行衰减。L2 正则化降低了网络模型的复杂度,因此在一定程度上改善了模型的过拟合问题。2012 年由Ashiquzzaman 等[27]提出Dropout 优化算法的基本原理,即在前向传播中随机失活一些神经元,为每层设置一个概率数用以控制每层有多少神经元应该被保留。如0.6 意味着该层神经元有60%被保留,其余的40%神经元失活不再发挥作用,概率为1.0则全部保留。值得注意的是,在反向传播时必须失活和前向传播相同的神经元。

根据上述说明试验在模型的全连接层F6 和全连接层F7 后都加了L2 正则化和Dropout 优化算法以避免过拟合,分类层则只使用L2 正则化。

1.4.3 超参数的设计

为了使网络训练更好,本试验的超参数根据参考文献和在本研究数据集上进行的一系列试验对超参数进行了统一化。一般来说按照首先对学习率,每个batch 中训练样本的数量(batch size),然后是其他参数的调参顺序进行调参。对于学习率采用指数标尺选取0.001、0.01、0.1 和1 几组学习率做试验,最终学习率设置为0.001 最为合适。学习率是一个很重要的超参数,它表示模型权重更新的速度,学习率设置太大代价函数波动太大,训练结果不精确,太小则网络收敛很慢,训练时间会很长。每次试验运行50 epochs,1 次epochs 即一个完整的数据集通过了神经网络一次且返回一次,在每个epochs 中所有训练集图片都被输入到网络一次,习惯上选择batch size 为2 的次幂可以加快二进制的计算,试验选择batch size 为16、32、64、128 和256 分别做了比较发现batch size太小收敛太慢,太大则也容易使其泛化能力变差,最终batch size设置为128。模型训练中使用了Adam优化算法,该算法应用在非凸优化问题中有计算高效、所需内存少、适应于非稳态目标以及适合解决大规模数据和参数优化问题等诸多优势,Adam 优化算法超参数采用框架默认参数[28]。经过交叉验证,隐含节点Dropout 率等于0.5,L2正则化参数设置为0.000 5 的时候效果最好。

1.4.4 迁移学习训练机制

首先使用PlantVillage 数据集加载进构建的网络中,来获得预训练模型并保存模型,然后把原始棉花病虫害数据集加载进网络,微调以适应原始棉花病虫害数据集,具体方法是:在保存的模型基础上,采用冻结预训练模型参数的方式,冻结该层即该层参数不参与训练,则分别冻结①卷积层C1、C2、C3、C4、C5②卷积层C1、C2、C3、C4、C5 和全连接层F6,③卷积层C1、C2、C3、C4、C5 和全连接层F6、F7。图4 为迁移学习训练机制,图中除全连接层F6、F7 和卷积层C1、C2、C3、C4、C5外其他层没有可训练参数,图中未画出。

图4 迁移学习训练机制 Fig. 4 Transfer learning training mechanism

1.5 基于数据增强的迁移学习试验方法

针对试验搜集的原始图片数据集小而仿照AleNet 的网络结构复杂容易产生过拟合问题,采用数据增强技术扩充数据集,数据增强让有限的数据产生更多的数据,增加样本的数量以及多样性,提升模型鲁棒性,随机改变样本可以降低对某些属性的依赖,从而提高模型的泛化能力[29-30]。

数据增强分为2 类:离线增强和在线增强。离线增强即直接对原始数据集进行处理,新数据数目会变成原始数据的n 倍(n 为增强因子),此方法适用于数据集较小的情况;在线增强即获batch 数据之后,然后对这个batch 的数据进行增强,如旋转、平移、翻折等变化,此方法更适应于较大数据集,许多机器学习框架支持在线数据增强,并且可以使用GPU 优化计算。

本研究采用离线增强的方式(图5),对图片执行色彩调整、随机裁剪、旋转、加噪的操作,得到新的训练集图片为原来训练集的6 倍。然后把得到的新数据集按6∶2∶2 的比例划分为训练集、验证集和测试集。用新得到的数据集代替1.4 节的原始数据集重新按1.4.1 节至1.4.3 节的试验步骤进行基于数据增强试验部分。

图5 数据增强操作 Fig. 5 Data enhancement operations

1.5.1 基于数据增强的迁移学习训练机制

把通过数据增强的新数据集加载进网络,通过微调迁移学习的方式以适应我们的数据集,具体做法:在保存模型的基础上,分别冻结①卷积层C1、C2、C3、C4、C5,②卷积层C1、C2、C3、C4、C5 和全连接层F6。

2 试验结果与分析

2.1 基于迁移学习的训练结果及分析

表1 展示了迁移学习不同训练机制下,对于原始数据集进行训练,得到的训练集、验证集、测试集的准确率,可以看出在3 种不同的训练机制下所得到的验证准确率与测试准确率相符,但是3 种训练机制下,训练集准确率都大于验证准确率,表明出现了过拟合,对于①②2 种情况应着重解决过拟合问题;同时看到方式③情况下,在训练集、验证集、以及测试集下的错误率是12.00%、13.35%和14.62%。既存在欠拟合也存在过拟合,正常情况下,植物保护专家能达到1%以内的识别错误率。对于训练集的12%的误差相对于专家的1%误差来说,说明神经网络学习不够,对训练集的拟合度不够,存在欠拟合现象。有约11%的可避免误差,而训练集误差和测试集误差相错2.62%,此时应该着重解决欠拟合问题。

由以上分析可知,由于原始数据集小,而构造的网络结构比较复杂,故发生了过拟合现象,更深的模型,意味着更好的非线性表达能力,可以学习到更复杂的变换,从而可以拟合更加复杂的特征,但是也容易在小数据集上发生过拟合,在训练集上表现很好,但是却在测试集上泛化性较差。对于①②的训练方式,由于PlantVillage 数据集图片大多是室内固定背景下拍摄,而棉花病虫害数据集背景比较复杂,需要更深的模型来适应数据集,即需要更多的可训练层,方式①比方式②可训练层多故能学习到更多的关于棉花病虫害数据集的知识,所以方式①泛化能力更强些。对于方式③,只有一个分类层可训练,可训练网络的深度与广度都不足以适应棉花病虫害数据集,发生了欠拟合现象。

表1 基于迁移学习不同训练机制的结果 Table 1 Results of different training mechanisms based on transfer learning

2.2 基于数据增强的迁移学习训练结果及分析

表2 是基于数据增强的试验结果,由结果可知,2 组训练验证集和测试集的结果相符。在只有迁移学习的试验结果基础上对数据增强试验做了改进后,去掉了方式③,使可训练层数增多,以解决欠拟合问题,方式①和方式②的验证集准确率和测试集准确率都比在较小数据集上进行迁移学习的准确率大幅提高,降低了可避免误差,使得在验证集和测试集的准确率相比较只有迁移学习的方式提高了4%,有效缓解了过拟合。

表2 基于数据增强的迁移学习不同训练机制的结果 Table 2 Results of different training mechanisms based on data-enhanced transfer learning

2.3 识别模型对比试验

为进一步验证模型的识别效果,相同试验条件下试验对比了支持向量机(Support Vector Machine,SVM)和BP(Back Propagation,BP)神经网络的传统方法以及VGG-19、GoogLeNet Inception v2 深度卷积神经网络标准模型对棉花6 种病虫害的识别效果。

对于传统方法首先对棉花病虫害数据集图片进行了预处理,采用提取HSV 颜色直方图特征、RGB 颜色矩阵特征、GLCM 灰度共生矩阵纹理特征、HOG 特征几种方式分别对每种病虫害图片进行了人工特征提取,然后分别利用支持向量机和BP 神经网络作分类器,实现棉花病虫害的识别分类。

对比深度卷积神经网络经典模型的试验结果,虽然VGG-19 采用16 层卷积层,3 个全连接层,整个网络采用相对本试验模型较小的卷积核尺寸(3×3),和最大池化尺寸(2×2),小的滤波器组合一定程度上保证了感受野的同时,提取了细粒度特征,一定程度上可以拟合更加复杂的特征,但是VGG-19 模型的参数量接近于AlexNet 模型的3 倍,且大部分参数集中在第一个全连接层,耗费了大量的计算资源,也占用了更多的内存(140 M),对于本试验环境负载过大,最终造成模型收敛很慢,过拟合现象严重。GoogLeNet Inception v2 深度卷积神经模型同本试验模型一样采用了5 个卷积层并加入了Incepetion 模块,使模型轻量化,Inception 结构的主要思路是用密集成分来近似最优的局部稀疏结构。相比VGG-19 模型采用3×3的滤波器组合得到准确率稍微逊色。

试验结果表明不论是在单个病虫害识别准确率方面还是在平均准确率本研究的基于迁移学习并辅以数据增强技术的方法都优于支持向量机和BP 神经网络的方法。本研究改进的AlexNet 模型较深度卷积模型VGG-19,GoogLeNet Inception v2 资源占有率低,能更快收敛,且平均识别准确率也较高。表3 为各模型对比结果。

表3 试验模型对比结果 Table 3 Comparison results of model test

3 结 论

本研究在仿照AlexNet 模型结构的基础上,改进了全连接层结构,并用6 分类SoftMax 分类层取代了原来AlexNet 模型的1 000 分类层,对棉花的枯萎病、黄萎病、棉铃疫病、褐斑病、角斑病、棉叶螨这6 种病虫害进行研究,先利用在PlantVillage 大数据集上训练学习得到预训练模型,用棉花病虫害数据集通过3 种训练机制方式进行迁移学习,然后采用数据增强扩充数据集然后采用2种训练机制进行迁移学习,得到以下结论:

1)AlexNet 模型是对ImageNet 数据集进行的1 000分类问题,针对本研究的棉花病虫害小数据集,采用PlantVillage 大数据集训练得到的预训练模型,PlantVillage 大数据集与试验棉花病虫害数据集图像的纹理,形状等特征相似程度更大,即源领域与目标领域拟合度更高,PlantVillage 数据集数据集比ImageNet 数据集等其他数据集更适合本试验的棉花病虫害数据集,源领域数据集与目标领域数据量10 倍差距也得到了很好的迁移效果。

2)使用不同的迁移学习训练机制,分别比较了原始棉花病虫害数据集和数据扩充后的病虫害数据集的试验结果,进而适当变更迁移学习训练机制以应对欠拟合和过拟合问题,取得了良好的效果。数据集划分为训练集,验证集,测试集使试验更加严谨,验证集扮演的就是一个辅助模型增加泛化能力的作用,而测试集仅仅用于最后评估模型的性能,两者结合能很好观察试验的效果,以解决欠拟合或过拟合问题。

3)基于迁移学习的识别模型训练的试验结果表明,采用迁移学习的方式一定程度上能解决小数据集在复杂模型上产生的过拟合问题。在相似领域学习的基础上开展研究,节约了训练时间,能让模型训练更快,同时可以看到针对复杂背景的小数据集,相对预留更多的可训练层,可得到更高的识别率,只训练分类层即产生了欠拟合也有过拟合问题。

4)基于数据增强的迁移学习识别模型的试验结果表明,适当增大了可训练层数,有效避免了欠拟合问题,同时对于小数据集产生的过拟合问题,使用数据增强技术能在一定程度上缓解过拟合问题。

5)识别模型的对比试验表明,本研究改进的AlexNet模型与VGG-19 和GoogLeNet Inception v2 深度卷积模型比较能对棉花病虫害达到较好的识别率,相比较传统的支持向量机和BP 神经网络无论是单个病害还是平均识别准确率都大幅提高。相比较深度卷积神经网路模型VGG-19 和GoogLeNe Inception v2,本改进模型能更快收敛,一定程度上缓解过拟合问题,且平均准确率较好。

猜你喜欢

准确率卷积棉花
棉花是花吗?
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
棉花
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法