基于TACNN的玉露香梨叶虫害识别
2021-05-14赵志焱胡志伟宇海萍
赵志焱,杨 华,胡志伟,宇海萍
山西农业大学 信息科学与工程学院,山西 晋中030801
玉露香梨作为中熟梨的“新秀”,在华北和西北种植面积超过了80 万亩,种植面积有不断扩张的趋势。玉露香梨在生长过程中,容易受到虫害的侵入且虫害种类繁多,严重时直接影响果实的质量和产量,同时会引起周围不同品种受害。梨叶虫害的识别多数是通过人眼辨别或网上专家的诊断,容易产生误判[1],费时费力,识别结果不尽人意。因此玉露香梨叶虫害识别模型的研究为辅助玉露香虫害防治决策提供了帮助。
近年来许多学者采用机器学习的方法进行虫害自动识别[2],其中卷积神经网络(Convolution Neural Network,CNN)因比传统学习方法更具有特征表达能力而被广泛应用到果蔬作物虫害识别中。国内外学者通过不断优化CNN 模型的参数和结构对不同果蔬病害进行识别。Amara 等[3]利用LeNet 模型对早期的香蕉叶病害进行识别,该模型对光线及背景有严格要求,普适性不够。文献[4]通过引进GoogLeNet Inception结构并改进AlexNet模型的卷积层、池化层、提升了模型收敛速度,提高了对苹果病害的识别准确率。文献[5-6]借助迁移学习方法将AlexNet 模型在ImageNet 图像数据集上学习得到的知识迁移到油茶和玉米病害识别模型中,实现了对病害的有效识别,由于采用动态数据扩充方式,可在一定程度上避免模型过度拟合。Fuentes 等[7]通过将实验模型的每个元架构与VGG 网络和剩余网络结合,成功地识别9种番茄虫害和病害,提出了用于局部、全局类注释和数据增强方法,减少训练期间的误报次数。Zhang 等[8]在CNN 的基础上改进GoogLeNet 和Cifar10 模型,通过优化参数和结构实现了对9 种玉米病害图像的准确识别。Cruz 等[9]通过对比6 种CNN 架构,采用ResNet-50模型是用于葡萄病害准确性和培训成本的最佳方案。赵兵等[10]提出了全卷积网络(FCN)的葡萄病害叶片图像的自动分割算法,并应用于葡萄病害叶片,该模型是将CNN的3个连接层换成3个卷积层,改进后的模型能够较精确地分割自然条件下拍摄的葡萄病害叶片图像。文献[11]第一次将CNN 应用于对马铃薯块茎的识别,实现了对疾病块茎和非疾病块茎的区分,以及4 类病害的识别。Ha等[12]运用无人机对大田萝卜进行拍摄,并通过CNN算法对被感染区域进行实时识别。杨晋丹等[13]通过改变CNN 网络深度和卷积核大小,经实验表明CNN-9 模型能够较好地识别草莓叶部白粉病害,此模型对拍摄环境要求较低,普适性较好。综上所述,采用CNN 对果蔬病害识别时往往采用不同的模型,其中Alexnet 模型对苹果病害有着较高的识别率,通过改进Alexnet 模型对玉露香梨叶虫害识别是切实可行的;另一方面,在山西玉露香梨栽植面积达到几十万亩,但对玉露香梨叶虫害自动识别研究还没有充分展开,因此进行玉露香梨叶虫害自动识别的研究势在必行且有着重大意义。
本文创新性地以玉露香梨叶为研究对象,研究有关玉露香梨叶虫害识别的问题,由此提出基于TACNN玉露香梨叶虫害识别模型的方法,对玉露香常见的三种虫害进行训练测试。为了减少Alexnet模型在实验中出现空间语意信息丢失、过拟合现象发生,经两次改变Alexnet 全连接层神经元节点得到了Mid-Alexnet 和TACNN 两个模型,并对Alexnet、Mid-Alexnet、TACNN三组模型采取不同批次进行训练,通过三组模型对比实验数据可知,TACNN模型与其他两个模型相比,TACNN在玉露香梨叶虫害识别问题上有较强的识别能力,类别平均识别准确率最佳且达到81.18%,能够实现在自然环境下对玉露香梨叶虫害进行自动识别。
1 材料和方法
1.1 实验环境
硬件环境:Inte®XEON®E5-2603v2@1.80 GHz 8 GB内存。
系统环境:anaconda下的jupder。
软件环境:Python、TensorFlow等。
玉露香梨叶虫害识别模型是在深度学习框架TensorFlow环境下进行训练的,在TensorFlow框架下依赖的软件有Karas、numpy、pycharm等。
1.2 玉露香病害图像获取及数据处理
(1)本文使用的数据来自于山西农业大学玉露香梨实验田,采集时间集中在2019年5月至7月。考虑到户外环境的干扰,把室外采摘的虫害叶片放置在室内(温度25 ℃)环境(自然光+日光灯)下进行图像拍摄整理。拍摄设备为索尼数码相机,型号为DSC-WX30,智能自动对焦,图像分辨率为4 608像素×3 456像素。在距离叶片25~35 cm处,与叶片垂直90 ℃或倾斜角为20 ℃~50 ℃的情况下完成照片拍摄。采集虫害种类为梨树常见虫害,共选取1 013张玉露香梨叶虫害图像,其中金龟子虫害图像410张,梨木虱虫害图像303张,梨瘿蚊虫害图像300张。随机抽取803张图像用于模型训练,剩余的202张图像分别用于模型验证和模型测试。病害图像如图1所示。
图1 梨叶虫害图像
(2)由于拍摄图像的尺寸不同,为了加快模型的运算效率和运算速度,在训练和测试模型之前,对超出尺寸的区域进行裁剪压缩,对尺寸不足的部分进行填补,处理后图像分辨率为224像素×224像素大小。
1.3 实验方法
1.3.1 卷积神经网络
由图1 梨叶虫害图像可以看出叶片虫害部位形状大小不一,颜色纹理各种各样,被害部位分布各异,运用传统的特征提取方法带有局限性且效果不佳,因此运用自动提取特征的CNN更直接有效。
CNN 由若干卷积层、池化层、全连接层、输出层组成,如图2所示。
图2 卷积网络示意图
(1)卷积层
卷积层是卷积神经网络最重要的一层,是卷积核的计算过程。卷积核通过每次移动相同步长,将图像像素和卷积核的对应权重相乘,最后将所有乘积和偏置值相加得到输出,其运算过程是线性变换。
(2)池化层
对输入的图像进行压缩,一方面使特征图变小,简化网络计算复杂度;另一方面进行特征压缩,提取主要特征。
(3)全连接层
全连接层在CNN 的尾部,两层神经元都有权重相互连接,起到了将学习的“分布式特征表现”映射样本标记空间的作用[14],如图3所示。
图3 全连接层示意图
(4)SoftMax分类器
在CNN中,最后一层经常使用softMax分类器进行多类别分类任务,softMax 分类器是logistic 回归模型在多分类问题上的推广,其实质是将分类问题转化为概率问题。
1.3.2 Alexnet模型
Alexnet 作为CNN 的经典模型,在算法上有很大的提升,该模型引入了整流线性单元作为激活函数,应用dropout随机性地忽略一些神经元来达到防止网络过拟合,同时该模型还使用了两个GPU 来加速神经网络的训练,因此相比其他模型Alexnet 在图像分类和目标检测等方面任务表现出色。Alexnet 为8 层深度网络,有6 000万个参数量,包含了5个卷积操作层和3个全连接操作层,特别是第五层卷积层与全连接层进行了信息交互,该模型结构如图4所示。
模型第一个为卷积层,输入224×224×3尺度大小的图像,卷积核数量为96,卷积核大小为11×11×3、步长为4个像素。第二个卷积层需要将第一个卷积层的输出作为输入,且利用256 个大小为5×5×48 的核对其进行滤波,边缘扩充为2,步长为1,第三、第四和第五个卷积层彼此相连。第三个卷积层有384 个大小为3×3×256 的核,第四个卷积层拥有384个大小为3×3×192的核,第五个卷积层拥有256个大小为3×3×192的核。全连接层为第六、第七、第八层,原全连接层每一层的神经元参数为4 096,其中最后一层全连接层是一个有1 000个输出的分类器。
通过对Alexnet 模型的结构分析可以看出:仅全连接层参数就占整个网络参数的80%左右,如何减少全连接层冗余现象的发生,是本次实验优化模型结构的关键。因此本次实验将对模型的全连接层部分作出改进。
图4 Alexnet卷积神经网络示意图
1.3.3 模型改进设计
为了实现对玉露香梨叶虫害识别,本次实验将对Alexnet 模型的全连接层进行改进,实现对模型结构的高效设计。(1)保留原有全连接层数,两层或两层以上的Fully connected layer能有效地解决非线性问题;(2)减少全连接层神经元数目。在模型中全连接层将前面经过多次卷积后高度抽象化的特征进行整合、归一化,将各特征值与权重的乘积求和,而Alexnet 的全连接层神经元节点数目为4 096,权重值个数占整个网络参数相当大的比例,由此输出加权目标数值也是相当大的,特别是与最后一个卷积层相连的全连接层。Alexnet在三分类场景中结构存在冗余,神经元个数过大时可能会出现空间语意信息丢失、过拟合现象发生、收敛速度减慢等问题[15-16]。由此可见改进Alexnet 全连接层神经元节点可以保证网络结构紧凑,降低计算中的消耗,提高模型分类准确率与运算速度。
优化后的模型仍由卷积层和全连接层组成,为了达到模型优化的目的在保证原有全连接层个数的前提下,从全连接层神经元节点着手对L6、L7、L8三层进行改进如图5 所示,分别得到Mid-Alexnet、TACNN 两个不同的模型。
图5 Alexnet模型全连接层示意图
Mid-Alexnet、TACNN模型具体改进部分是在Alexnet模型的基础上改变了第六、七层全连接层及第八层全连接层中的分类器个数,即改变了原有m、n、o的数值。其中Mid-Alexnet 模型是将Alexnet 全连接层L6、L7 原有的4 096 个神经元节点个数减少3 072 个,使改进的Mid-Alexnet 全连接层m为1 024、n值为1 024、分类器o为3。而TACNN模型全连接层m、n的值分别为512,分类器o为3。
总的来说,模型改进由Alexnet到Mid-Alexnet再到TACNN 是将全连接层神经元节点逐渐减少,用于后期模型实验对比并筛选出表现最优的模型。全连接层节点数量的减少,有利于构建轻量级网络模型,后期能够将其迁移至移动端设备进行实时虫害识别。
1.4 实验参数说明
本次实验中将数据集分为训练集、验证集以及测试集三部分,其中训练集大小为803,验证集大小为101,测试集大小为101。为避免内存溢出,采取批训练方式对Alexnet、Mid-Alexnet、TACNN 模型在训练集和验证集上设置三组对比实验,三组实验中每个批次分别训练16、32、64 张图片,即train batch 设置为16、32、64,验证集批大小与训练集批大小同步。遍历一次全部训练集数据称为一轮迭代,即一轮迭代会遍历所有训练集数据,而并不仅仅是一个批次数据。本文将迭代轮数设置为100轮,每轮迭代完成后在测试集上计算模型评价指标值。
实验采用keras中损失函数categorical crossentropy作为代价函数,其定义如式(1):
其中,n为样本数量,m为分类数,该函数为多输出的损失函数。
为解决反向传播过程中梯度消失和爆炸问题,引入Batch Normalization 批规范化,对网络隐藏层输入进行标准化,引入dropout 机制[17],以0.4 的概率抑制神经元节点参与反向传播过程。为提高调参效率,采用自适应矩阵估计算法(Adaptive Moment Estimation,Adam)优化模型,初始学习率设置为0.000 1。为保存最优模型参数,引入keras中的Model Checkpoint机制,每轮迭代完成之后,通过观察训练集准确率是否发生提升决定是否保存当前模型。
图6 同输入图像数量不同模型的准确率变化图
2 结果与分析
2.1 模型稳定性
为了观察训练过程中不同模型的稳定性情况,图6、图7 展示了各模型在20 轮迭代过程中验证集上准确率与损失函数变化情况。
图6展现了3种模型在输入图像数量相等时对比不同模型准确率指标值。Alexnet 模型与其他模型相比,整体识别变化幅度最为明显,识别准确率随着输入图像个数逐渐减少表现出反增趋势,且相比其他两个模型整体识别准确率最高;当输入图像个数为64时,三类模型均在第15轮迭代后,折线变化趋于平缓,说明模型对叶片虫害特征提取进入平稳阶段;对比输入图像个数分别为32、16 时,在第15 轮迭代后都展现出小幅度增长,其中Mid-Alexnet 模型逐渐攀升趋势表现最为明显;但从整体变化趋势对比发现,TACNN模型表现最为稳定。
图7 同输入图像数量不同模型损失函数变化图
图7 展现了三类模型在输入图像数量相同不同模型损失函数的变化情况。Alexnet、Mid-Alexnet 模型随着每次输入图像个数的递减,损失指标发生下降,且两模型损失值逐渐趋于一致;通过输入图像数量变化对比发现,TACNN模型相对其他两个模型变化幅度较小,有较高稳定性,通过对比三个折线图发现Alexnet、Mid-Alexnet两个模型从迭代开始到第5次迭代区间内,损失值变化幅度较大,表明两模型在前期识别错误风险较高,而导致模型识别稳定性不高。
综合图6、图7 模型训练过程中准确率与损失函数折线变化对比可得:在模型训练过程中,改变模型全连接层神经元数值和输入图像数量的大小会直接影响模型识别准确率、模型识别风险及模型识别性能的稳定性;TACNN 模型相比其他模型表现最为稳定,但模型出现识别准确率提升而损失函数不减反增现象,原因是模型将大量共性特征进行有效迁移,而不能很好地获取特定图像特征,因此该模型过拟合问题还有待解决。
2.2 识别准确率
表1 反应了不同种类的虫害在不同模型中的识别准确率,其中最后一列为该模型对三种虫害的类别平均准确率。
通过表格对比发现:
(1)当Alexnet、Mid-Alexnet、TACNN三组模型批大小分别为64、32、16 时,对比观察三组模型对玉露香梨叶的三种虫害的识别准确率会随着批值变小,识别准确率出现递增趋势,其中Alexnet 模型对梨瘿蚊的识别准确率表现显著,Alexnet-16 的识别准确率为93.10%,相比Alexnet-64识别准确率提升了34.84个百分点。
(2)其中TACNN-16对三种类别虫害识别上均能取得较好的识别率,对金龟子虫害识别表现最好,识别准确率达到87.5%,在对其他两种虫害识别上也能得到有竞争力的准确率。
(3)从对比类别平均准确率可以看出:模型TACNN-16的类别平均准确率表现最优比其他模型的平均准确率高出3.96~18.81个百分点。
表1 各模型不同输入图像数值识别准确率%
2.3 模型预测
混淆矩阵是机器学习中总结分类模型预测结果的分析,以矩阵形式将数据集中的记录按照真实的类别与分类模型预测的类别判断两个标准进行汇总。图8 展示了Alexnet-16、Mid-Alexnet-16、TACNN-16 三种模型在测试集上的混淆矩阵,其中矩阵的行表示真实值,每一行的数据总数表示该类别的实例的数目;矩阵的列表示预测值,其总数表示预测为该类别的数目,对角线位置的值表示预测正确的结果总和。
图8 三种测试集混淆矩阵
通过图8 对比分析得:TACNN-16 对金龟子虫害识别表现最佳;Mid-Alexnet、Alexnet模型分别在梨木虱虫害和梨瘿蚊虫害识别上有优势;三种模型通过改进后识别准确率得到较大提升,其中TACNN-16 表现良好,其识别准确率能够达到81.18%。说明TACNN-16 模型可为玉露香梨叶虫害识别提供参考。
3 结束语
本研究在Alexnet 基础上,经两次优化全连接层并用3 标签softMax 分类层替换原有Alexnet 网络中的softMax 分类器,得到Mid-Alexnet、TACNN 模型。对玉露香梨叶常见的金龟子、梨木虱、梨瘿蚊三种虫害进行识别训练实验,得到以下结论:
(1)TACNN-16 模型具有较好的分类性能,类别平均准确率为81.18%,相比其他模型准确率提高3.96~18.81个百分点,可为玉露香虫害防治决策提供帮助。
(2)模型中全连接层节点数量的减少有利于构建轻量级网络模型,进而有利于将其迁移至移动端设备进行实时病害识别。
(3)本文Alexnet 模型识别准确率研究是将实地采集的3 类梨叶病害共计1 013 张图像进行训练测试,今后将会不断扩充玉露香梨叶虫害图像的种类,不断完善训练样本集,特别是对不同拍摄角度,不同虫害程度,以及一片叶子多种虫害等情况叶子的收集和完善,进一步提高模型对梨叶虫害的识别性能。
(4)本次实验Alexnet 模型对玉露香品种的梨叶虫害有较好的分类功能,经实践检验该模型对其他品种的梨叶虫害有一定分类效果。本次模型以梨为研究对象做前期实验,今后将在TACNN 模型结构基础上对其他中熟果蔬病虫害分类进行深入研究。