改进的Alexnet模型在水稻害虫图像识别中的应用

2021-09-09 05:21肖小梅杨红云易文龙罗建军
科学技术与工程 2021年22期
关键词:池化害虫准确率

肖小梅, 杨红云*, 易文龙, 万 颖, 黄 琼, 罗建军

(1.江西农业大学软件学院, 南昌 330045; 2.江西农业大学计算机与信息工程学院, 南昌 330045)

农业是人类生存的基础,经济社会的不断发展带来了全球的气候和环境问题,病害的发生以及真菌细菌的变异影响着人们的生活。农作物病虫害的发病率越来越高,发生的病害也越来越复杂,因此,研究农作物病虫害的预防,以及病虫害诊断和补救措施显得尤为重要。传统的人工检测病虫害的方法完全依赖于人工的观察经验,这样的方法速度慢、主观性强、准确率低、效率低。因此实现对农作物病虫害的快速准确识别具有重要意义[1]。

随着互联网的不断发展,农业信息化技术在农作物病虫害识别方面都得到了越来越广泛的运用[2-9],为了提高识别准确率,传统的机器学习方法主要是通过获取目标的形状,纹理,颜色等特征[10-11],然后再利用支持向量机、人工神经网络对目标进行分类[12-13]。常用的形状特征有致密度、偏心率、矩形度等,常用的颜色特征有颜色方差,峰值,偏度,熵等,常用的纹理特征主要有相关性、对比度、惯性、能量等。但是不同的病虫害在不同阶段可能表现出相似的特征,这些复杂的因素导致传统机器学习方法适普性较差。

相对于传统的识别方法,卷积神经网络作为深度学习的算法之一,具有更加强大的特征学习能力以及特征表达能力,在农作物病虫害分类上运用广泛。陈锋等[14]利用机器学习与卷积神经网络结合的办法识别了东北寒地里的5种玉米害虫;程曦等[15]将深度卷积神经网络引入储粮害虫的识别中,识别精度达97.61%,明显优于传统方法。孙鹏等[16]在普通卷积神经网络的基础上,引入了注意力机制,研究出了一种基于注意力机制的卷积神经网络模型用于识别大豆蚜虫,识别准确率相比于传统网络提升了6.53%,龙满生等[17]利用迁移学习方法和卷积神经网络识别油茶病害叶片图像,平均识别准确率达96.53%以上,但是该模型局限太强,仅限于背景单一的油茶病害图像,模型的实用性有待提升。Kawasaki等[18]介绍了一种基于卷积神经网络(convolutional neural networks, CNN)的黄瓜叶病识别系统,准确率达到94.9%。Oppenheim[19]利用卷积神经识别马铃薯疾病,该算法性能良好,成功运用于农作物病害识别,Chen等[20]提出了一种水稻病害识别深度学习结构“DENS-INCEP”,它是将在ImageNet上预先训练好的DenseNet与Inception模块相结合进行迁移学习,通过定义一个新的具有实际分类数量的全连接层softmax层来截断顶层,此外还使用了聚焦损失函数代替原来的交叉熵损失函数,该方法表现出了良好的性能。上述研究均表明卷积神经网络在农作物病虫害识别上具有很好的应用性,但是由于农作物病害虫背景复杂,如果提高识别算法的识别准确率和鲁棒性仍然是有待解决的问题。

为了实现对水稻害虫的精确分类,提出一种基于改进的Alexnet卷积神经网络的水稻害虫识别模型:①在Alexnet的基础上,去除原有的局部响应归一化(local response normalization, LRN)层并在每一个卷积层后引入批量归一化(batch normalization, BN)层进行批量归一化,以提高模型的收敛速度;②用全局平均池化代替全连接层,减少网络参数,提高网络的抗过拟合性能;③用PReLU激活函数替换ReLU函数,避免神经元坏死。改进后的模型称为Alexnet_n,并对稻纵卷叶螟、三化螟、稻蝗、稻飞虱4种常见的水稻害虫进行分类,以验证Alexnet_n模型在水稻害虫图像上的分类效果。

1 材料与方法

1.1 图像获取

选取水稻中常见的稻飞虱、稻纵卷叶螟、三化螟、稻蝗4类害虫进行训练识别。由于稻纵卷叶螟对水稻产生危害主要是在幼虫时期,所以本文研究主要识别的是稻纵卷叶螟幼虫,其余3种害虫选取成虫。获取害虫图像的途径有两个:在自然光环境下,利用单反数码相机以及智能手机两种设备进行实地拍摄,以植物叶片,白板等为背景收集江西农业大学实验田的害虫图像;从Google、Naver和FreshEye等搜索引擎上收集害虫图像。部分害虫样本图像如图1所示。样本库中每类害虫样本图像的数量在100~200,其中包括不同角度、姿态和自然环境下的原始图像。

图1 水稻害虫图像

1.2 图像预处理

1.2.1 数据扩充

在深度学习中,卷积神经网络的训练往往需要大量的数据集,否则会出现过拟合、识别精度低等现象。但是现有条件下,对水稻害虫样本的采集比较困难,目前还缺乏大型的水稻虫害图像数据集,因此需要采用一些数据扩充方法来达到增大数据集的目的[21]。现使用平移变换(shift)、尺度变化(scale)、旋转(rotation)、翻转变换(flip)、噪声扰动(noise)以及亮度调节(brightness)等数据扩充方法将原数据集扩充了10倍,扩增后的数据集数量如表1所示。

表1 害虫数据集

1.2.2 图像增强

由于网上下载的水稻害虫图片,清晰度参差不齐。绝大部分图像像素低于原相机的拍摄的图片,且图像细节不够明显,为了解决这一问题,采用了一种基于多尺度的图像的细节提升算法[22],该方法首先使用了3个尺度的高斯模糊,然后和原始图像做减法,由此获得图像细节信息,这些细节是不同程度的。最后,为了达到增强原始图像信息的效果,通过一定的组合的方式把获得的图像细节信息融合到原图中。该方法的增强效果如图2所示。

图2 图像增强对比图

1.3 基于Alexnet的水稻害虫识别模型

2.3.1 经典的Alexnet

Alexnet是由Alex Krizhevsky提出的一个经典的卷积神经网络,最早是用于ImageNet的分类,其网络结构如图3所示。Alexnet包含5层卷积层、3层池化层和3层全连接层[23],卷积层和全连接层需要进行参数训练[24]。其中卷积层是Alexnet的核心,用于提取特征。池化层可以减少特征矩阵的大小,实现特征降维。激活函数帮助Alexnet网络获得非线性特征。全连接层(dense)可以整合卷积层或者池化层中具有类别区分性的局部信息,起到分类作用。Alexnet获得了当年ILSVRC(ImageNet Large Scale Visual Recognition Challenge)比赛的冠军,其的创新之处在于使用非线性非饱和函数ReLU[25]代替了原有的softmax函数,采用LRN局部响应归一化,提高精度,增强了模型的泛化能力。采用最大池化(max pooling)方法代替了原有的平均池化(average pooling),降低模糊化效果。此外,为了提高网络运行速度,Alexnet还采用双GPU(graphics processing unit)的设计模式。

图3 Alexnet经典模型

1.3.2 改进的Alexnet模型

由于水稻害虫外观分类数据集和ImageNet数据集相差较大,将Alexnet直接应用于水稻害虫会导致识别准确率的降低,所以针对水稻害虫外观提出了一种基于改进的Alexnet卷积神经网络的水稻害虫识别模型,去除之前的LRN层,在每一个卷积层之后引入BN层和使用全局平均池化代替全连接层进行网络结构的优化,并用PReLU激活函数替换ReLU函数,进一步提高Alexnet在水稻害虫识别上的性能。改进后的模型结构如图4所示。

图4 Alexnet_n模型

(1)批归一化。学习数据分布是卷积神经网络学习过程的本质,训练数据与测试数据的分布不同,会降低网络的泛化能力。Alexnet原有的LRN局部响应归一化层可以增大局部较大的响应值,而抑制较小的值,从而提高模型泛化能力。而BN层还可以在此基础上,提高模型的收敛速度。BN是由Ioffe & Szegedy提出的一个用于训练神经网络的数据处理技巧。可以通过缓解梯度弥散和加快模型收敛速度来使所训练的模型更加容易和稳定[26]。

去除Alexnet原有的LRN层,在每一个卷积层的激活函数之后,加入了BN层。BN算法的如式(1)所示:

(1)

式(1)中:μ为批处理Xi~Xλ个水稻害虫样本数据的均值。

方差δ为

(2)

计算数据的均值和方差后,再对水稻害虫样本数据进行归一化:

(3)

式(3)中:m为大于0的常量。

yi=βiXi+αi

(4)

(2)全局平均池化。经典的Alexnet是在卷积层后采用全连接层进行特征向量化的,最后再softmax分类。但是全连接层参数过多,容易造成过拟合,严重依赖dropout进行规则化[27]。为了解决这个问题,采用全局平均池化来代替全连接层[28]。与传统的全连接层不同,对每个特征图一整张图片进行全局均值池化,这样每张特征图都可以得到一个输出,如图5所示。采用全局平均池化,可以大大减小网络参数,避免过拟合,值得注意的是,每张特征图相当于一个输出特征,然后这个特征就表示了我们输出类的特征。相比于全连接层,全局平均池化的优势表现在:①通过加强特征图与类别的一致性实现了简化卷积网络结构的目的;②无需参数优化,有效得避免了过拟合现象;③整合了空间信息,对输入的空间变换更具有稳定性。

图5 全局平均池化

(3)激活函数PReLU。经典的Alexnet使用的激活函数是ReLU,代替了CNN中的sigmiod并且解决了sigmoid引起的梯度弥散问题。此外,在学习速度上面ReLU也比sigmiod表现得更好。ReLU的表达式为

(5)

式(5)中:x为上层的输入。

ReLU函数是单向激活的,当神经元的值小于零时,神经元不输出,当神经元的值大于0时,神经元的输出与输入呈线性关系[29]。ReLU可以降低网络的复杂性,降低过拟合的概率。也可以减少训练时间,避免梯度的消失。但是ReLU有一个缺点,可能会导致神经元坏死。为了解决上述问题,采用PReLU激活函数,它是ReLU函数的改进。PReLU的表达式为

(6)

PReLU在ReLU的基础上增加了一个参数修正a,a是一个大于0的常数,有效地避免了神经元坏死。它不仅减少了训练时间函数,而且避免了像ReLU那样的过拟合。

1.3 实验平台

训练与测试均是在keras框架下完成的。进行实验的计算机物理环境配置是:CPU是Intel(R) Xeon(R) Silver 4112@ 2.6 GHZ 2.59 GHZ;16 GB内存;GPU是NVIDIAQuadro P4000,8 GB显存。软件环境:CUDATookit 9.0,CUDNN7.1;keras 2.1.2;windows 10 64 bit操作系统。

2 结果与分析

在水稻害虫数据集上验证改进后的Alexnet在水稻虫害方面的识别效果,并与已有的方法进行比较。

图6是传统Alexnet迭代了200次之后的损失(loss)曲线和准确率(accuracy)曲线图。由图6可知,Alexnet的loss曲线和accuracy曲线训练曲线在迭代了50次之后开始收敛,但是曲线出现局部突变现象,说明结果不稳定,测试损失(validation loss)曲线以及测试准确率(validation accuracy)曲线收敛之后开始出现偏离现象,说明出现了一定的过拟合现象。

图6 Alexnet的识别效果

图7是Alexnet_n迭代了200次之后的loss曲线和accuracy曲线图。由图7(a)可知,Alexnet_n模型在迭代了30次左右训练损失(train loss)和测试损失(validation loss)都开始收敛,二者的值相差很小,且趋近于0,说明该模型达到了拟合状态,并未出现过拟合或者欠拟合现象。Alexnet_n模型的accuracy曲线如图7(b)所示,从图7可以看出,在迭代了30次以后训练准确率(train accuracy)曲线和测试准确率(validation accuracy)都开始收敛,二者的值相差很小,稳定在1附近。说明改进后的模型在水稻害虫数据集上有较高的识别率和较好的鲁棒性,优于原有模型。

图7 Alexnet_n的识别效果

对两种模型运用不同的激活函数结果进行对比。由表2可知,改进激活函数可以提高模型的准确率。

表2 激活函数对比

为了更好地评价Alexnet_n模型在水稻害虫识别上表现出的性能,本实验还采用了召回率(recall)、精确率(precision)、F1值等常用的几个指标来对结果进行评价[30],其各指标的计算方式为

(7)

(8)

(9)

式中:TP为真正例,表示样本实际为正样本,检测为正样本的个数;FP为假正例,表示样本实际为负样本,但检测为正样本的个数; FN为假负例,表示样本实际为负样本,检测为正样本的个数。结果如表3所示,由表3可知,Alexnet_n模型在4种水稻害虫识别上的都有不错的表现,精确率、召回率、F1都维持在较高水平。

表3 水稻害虫数据集测试指标

为了进一步验证改进后的Alexnet模型的有效性,将本文研究的方法与传统卷积神经网络做对比,结果如表4所示。由表4可知,改进后的模型相对于原有模型具有更高的准确率,平均准确率高达98.92%,均高于LeNet5、VGG13和VGG16等传统模型,相比于原有模型提升了1.96%。平均损失值为0.03,均低于LeNet5、VGG13和VGG16等传统模型,相比于原有模型降低了0.1。此外,改进后的模型针对4种害虫的识别精确率、召回率、F1均高于LeNet、VGG13和VGG16等传统模型,与原有模型相比,改进后的模型在三化螟、稻飞虱、稻蝗3种害虫的识别效果均优于原有模型,稻纵卷叶螟幼虫的识别效果较原有模型稍差但不明显。

表4 不同方法在水稻害虫数据集上的对比

3 讨论

此前已有不少研究者将卷积神经网络运用于水稻害虫识别体系的建立中。刘德营等[31]使用改进的自制昆虫图像采集装置采集自然环境下的白背飞虱图像,将卷积神经网络用于白背飞虱的识别,识别准确率可达94.14%,但是该模型识别的害虫种类单一,实用性有待提升。佘颢等[32]提出了一种基于SSD(single shot multibox detector)网络模型的水稻害虫识别方法,提高了害虫识别的准确率速度以及检测精度,但是该方法只适用于大目标的检测,对小目标的检测效果并不理想。梁万杰等[33]针对水稻虫害识别问题,提出了一种基于卷积神经网络的二化螟害虫识别方法,识别精度达到89.14%,满足基本要求,但仍有提升空间。钱蓉等[34]提出了基于VGG16的水稻害虫识别模型,识别平均准确率达90.7%,但是VGG16网络存在模型参数过多不易训练等特点。

本文研究中选取了稻纵卷叶螟、三化螟、稻蝗、稻飞虱4种常见的水稻害虫为研究对象,解决了模型识别种类单一的问题,在数据处理阶段,还对害虫图像进行尺度变化等预处理,使得模型对小目标具有鲁棒性。在模型选取阶段,选取了模型较小的Alexnet进行改进,在Alexnet的基础上通过去除LRN层,添加BN层来加速网络的收敛,提高网络的泛化能力,并用全局平均池化代替全连接层来优化网络结构,减少参数量,此外还将激活函数ReLU替换成PReLU,避免了神经元坏死。相对于钱蓉等[34]采用的模型,改进后的模型结构简单,便于训练。改进后的模型平均识别准确率可达98.92%,均高于前人的研究成果[31-34]。实验结果表明改进后的网络模型对水稻害虫图像具有较好的识别效果和较好的鲁棒性,有希望应用于水稻生长过程中的信息监测和自动化栽培中,也为农作物害虫的识别与分类提供了新的思路和方法。

值得注意的是,在本文研究中仅对水稻常见的4类害虫进行识别,但是农作物的害虫远远超过4类,因此在未来的研究中,增加害虫类别,提高模型建立的样本总量,以改进网络性能是需要研究的问题之一。

4 结论

提出了一种基于改进的Alexnet模型用于识别水稻害虫,经过实验得到以下结论。

(1)针对经典卷积神经网络Alexnet在水稻害虫分类过程中存在的参数过多,计算量大并且容易过拟合现象,提出了在对数据集进行数量扩增和细节增强的同时,在卷积层后面添加批量归一化,用全局平均池化代替全连接层,用PReLU激活函数代替ReLU激活函数的方法来改进Alexnet,优化后的网络比原网络提高了1.96%,并且降低了损失函数的值。

(2)结果表明改进后的模型在水稻害虫分类上表现出了较好的性能,平均准确率达到98%以上,优于Alexnet、LeNet5、VGG16、VGG13等经典卷积神经网络。损失函数的值为0.03,低于其他模型,说明对比于其他模型,Alexnet_n在更适用于水稻害虫的识别。

猜你喜欢
池化害虫准确率
基于高斯函数的池化算法
卷积神经网络中的自适应加权池化
害虫的克星——七星瓢虫
蜗牛一觉能睡多久?
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
冬季果树常见蛀干害虫的防治
基于卷积神经网络和池化算法的表情识别研究