APP下载

基于注意力机制的小样本啤酒花病虫害识别*

2021-04-09陆雅诺陈炳才

中国农机化学报 2021年3期
关键词:啤酒花注意力准确率

陆雅诺,陈炳才,2

(1.新疆师范大学计算机科学与技术学院,乌鲁木齐市,830054;2.大连理工大学计算机科学与技术学院,辽宁大连,116024)

0 引言

啤酒花作为制作啤酒的重要原材料,在我国的新疆、内蒙等地被广泛的种植。其中,在新疆地区的产地主要分布于天山和阿尔泰山的山间。啤酒花种植结构落后和品种单一等特点导致病虫害迅速漫延,很大程度上影响了啤酒花种植的产量和品质。因此,本文针对于啤酒花病虫害提出智能诊断方法,在提高啤酒花的产量和品质同时达到智慧农业的理念[1]。

随着啤酒花的产量稳定上升,人工治理病虫害的工作变得异常的机械和枯燥[2]。传统的人工分拣工作是通过肉眼去观察啤酒花叶片的特征进行筛选,人工筛选的局限性促使着智能时代的发展,因此人们为了提高产量,根据机器视觉[3]所具有的高效、精确等特点着手于研究植物表面的更深层的特征的提取,利用迁移学习的方法来进行智能诊断与综合防治相结合,从而有效提高啤酒花种植品质。在图像识别领域,Amara等[4]采用深度学习方法实现了自动化的香蕉病害叶片分类,田有文等[5]利用图像处理技术和传统SVM识别方法研究了葡萄叶部病害的识别,实验结果表明传统SVM识别方法比起神经网络识别效果更显著。吴雪等[6]利用数据增强的卷积神经网络火灾识别的方法对火灾进行识别,在小样本使用卷积神经网络中很有意义。Mnih等[7]提出了基于RNN的循环视觉注意模型,将注意力机制运用于MNIST数字图像分类任务中。Wang等[8]提出了基于注意力机制的残差注意力模块引入到图像分类领域简化了模型结构,加快了训练速度。

本研究中,在深度学习的基础上,通过在便于优化的ResNet网络中加入注意力模块来对RGB三个通道加以权重来找到更为重要的特征通道,并进行实验及测试,从而提高小样本下的啤酒花病虫害智能识别的准确度。

1 原理与方法

1.1 ResNet网络

ResNet是由He-Kaiming等人在2015年提出的一个网络模型[9]。目前,ResNet已经在图像分类问题中超越VGG,成为一般计算机视觉领域的基础特征提取网络。ResNet使用了残差单元,这样一方面减少了参数数量,另一方面在网络中增加了直连通道,增加了CNN对特征的学习能力。相比于之前的VGG网络,参数少,层数深和分类识别效果优秀等特点使得它至今为止仍然是比较经典且使用的网络之一。基于SE模块的网络模型残差模块如图1所示。

图1 基于SE模块的ResNet残差学习模块

1.2 注意力机制概述

常见的注意力机制有两种类型,一种是通道注意力,如SE模块[10],一种是空间注意力,如空间变换器网络。通道注意力旨在学习更多的判别性特征,其中SE模块就是一种经典的通道注意力方法,它通过找到通道之间的相互关系从而自适应去改变通道特征响应。相比于传统的神经网络,该模型大大减少了计算量。空间注意力旨在了解更多细节特征,空间变换器网络STN它明确地允许对数据进行空间操作,并允许对数据进行处理,以增强模型的几何不变性,它可以插入到任何现有的卷积架构中,并且只需要进行很少的修改。

注意力机制可以帮助模型为输入X的不同部分赋予不同的权重,提取出更多关键的和更具区分性的信息,使模型具有更高的精度。同时,也不会给模型带来额外的计算和存储。注意力按照关注点大致可以分为软注意力和硬注意力两种。软注意力更注重通道和空间,且软注意力是确定性的。它可以利用模型计算梯度进行正向传播和反向更新来学习模型权重,通过训练可以直接生成权重。硬注意力与软注意力不同的是,它更倾向于随机预测,也就是说,硬注意更关注离散的位置信息,强调模型的动态变化。因此,硬注意力很难采用端到端的训练方法来形成,多是通过强化学习来实现。本文中,我们采用的是软注意力[11]。不通

1.2.1 注意力机制原理及公式

(1)

其中Sa代表每个a通道的权重;这些加权特征映射到训练网络中,可以使分类器更加关注对图像分类结果有帮助的信息,而忽略或弱化不相关的信息。

1.2.2 注意力机制在模型中的应用

注意力机制可以提高网络对自己感兴趣的区域提取能力,同时也可以提升网络识别精度。本文提出在ResNet经典网络上添加注意力模块,并加以改进模型参数,最终形成适合啤酒花识别分类任务的网络结构A-ResNet50和A-ResNet101,如图2所示。

基于注意力机制的ResNet50和ResNet101(如图2)的核心就是模型内部虚线框框起来的注意力层,全连接层以及Softmax分类层。具有了注意力模块的网络具有更强大的特征提取能力,与此同时,ResNet网络层数深度优势使其分类效果更加显著。

图2 基于注意力机制的啤酒花识别深度残差网络框架结构

1.3 迁移学习

迁移学习[14]通过从相关领域的数据中提取有利信息,解决了跨领域学习问题。更重要的是,通过解决训练数据与数据分布相同或标签有限的情况,迁移学习可以极大地提高学习性能,不能保证网络足以避免数据过度拟合。近年来,迁移学习技术已主要应用于模式识别的各个分支,例如细粒度识别,图像识别和图像分类任务[15]。

2014年,Donahue J等[16]提出使用辅助大型对象数据库训练卷积神经网络,与使用简单线性分类器相比,该卷积神经网络可以自主学习特征以实现足够的泛化能力。因此,本文的主要思想是通过用源数据中训练出的模型来提取图片特征,再将训练好的模型中所有特征提取层的参数冻结,仅替换后面的全连接层,如图3所示。最后,调整输出层的模型以适应啤酒花病虫害识别和分类的任务。在基于参数的传递的基础上,这种传递技术保留了预训练模型出色的特征提取能力,因此与基于传统的复杂多核学习相比,可以提高识别精度和泛化能力。

图3 基于迁移学习的啤酒花分类模型训练过程

2 小样本图像识别

2.1 材料与方法

本研究以五种不同种类的啤酒花病虫害作为研究对象。因为农业领域数据不易获取,且实地拍摄图片噪声较大以及诸多因素有关,因此本研究采用的数据集一部分是从google图像中收集的,一部分是从从社交媒体论坛中的个体种植者收集的,这样不仅可以增加模型训练的泛化性还增加了模型的可靠性。本实验共采集原始图像1 102张,每张图片均是在自然光照条件下通过相机拍摄所得到,且分辨率大小不一,其中霜霉病166张,白粉病106张,健康528张,营养病52张,虫害病250张。这5类图片分别放置不同文件夹中,且标上标签,标签0代表霜霉病,标签1代表白粉病,标签2代表健康,标签3代表营养病,标签4代表虫害病,如图4所示。用于迁移学习使用的是Imagenet数据集里面的植物叶片图集。本试验将收集好的数据集图片尺寸统一裁剪成224像素×224像素的,然后再进行模型的训练。

表1 啤酒花图像数据集分布表

图4 啤酒花病虫害数据集

2.2 图像增强

2.2.1 图像预处理

由于深度残差网络含大量的参数,所以存在过拟合的风险。在小样本的前提下,数据集的训练样本不足成了当前首要解决的问题,最直接的方法就是增加数据训练样本。为了提高网络模型的鲁棒性 并减少过拟合,需采用数据增强策略来扩大训练数据集。图5为数据预处理操作,首先从采集的图像中随机选择80%用于训练,20%用于测试,然后把预训练数据集中的图片进行翻转镜像和旋转变换操作,再增加随机噪声,把训练图像集扩充到4 397幅,作为扩充的训练数据集。最后采用双线性差值法把图像缩放到224像素×224像素。

图5 数据预处理操作

2.2.2 直方图均衡化

为了实现小样本的图像识别工作,本文引入了图像的数据增强,不仅扩充的数据集的样本数量,还改善了图像的视觉效果,使得样本图像的特征更易被提取。常见的数据增强方法包括以下:灰度变换、直方图处理、空间滤波等。在本实验中采用了直方图均衡化的方法。

直方图均衡化是多种空间域处理技术的基础。直方图均衡化操作主要通过增强对比度从而补偿图像在视觉上难以区分灰度级的差别[17],它的优点是可以直观的看出来图像的变化且可以通过其变换函数使其变成一个可逆的过程,做到原始和变换后的直方图相互转换。

对于一幅像素为N×N的图像,假设其灰度级变化范围在[0,L-1]之间,像素值取值范围在{0,1,…,L-1}之间,图像中灰度值r出现的概率即为该图像的直方图[18]。

(2)

式中:N×N——图像中像素的总数,本文选用224像素×224像素;

na——图像中灰度值为ra的像素点个数。

在图像处理中,变换函数的计算公式

(3)

直方图均衡化方法可以对高对比度的图像进行降低对比度,使得其图像特征更加容易被提取。通过图6可以看出直方图均衡化的效果。

(a)处理前

3 试验与结果分析

本研究设计不同数据集比例试验对比,图像数据扩充对模型的影响和注意力机制对模型的影响三组实验。

3.1 试验环境

试验环境参数见表2。

表2 试验环境

3.2 模型准备与超参数设置

首先搭建好ResNet网络,载入下载好的ResNet50和ResNet101的模型权重文件,将特征提取层冻结住,去除掉原始ResNet网络的全局平均池化层和FC层,在基本的模型中嵌入了通道注意力模块层,使得特征获得不同的权重,然后添加新的全局平均池化层和FC层以便于后续模型的训练。作为本次迁移学习的预训练模型,当然训练之前需要设置一些参数,例如学习率设置为0.01~0.001 5之间,经实验之后选取0.001作为最终的学习率。学习率作为一个非常重要的超参数,它表示模型权重更新的速率,设置过大即代价函数波动太大,实验结果不够准确;设置过小则网络模型收敛效果不理想,导致训练时间增加。另外一个超参数Drop_out一般设置为随机失活30%~50%的神经元,经过交叉验证之后,选取50%的失活率模型收敛效果最好。softmax分类个数设置为5,满足本研究五种病虫害种类的识别分类任务。为了更加方便地查看模型训练过程,训练过程中,每隔10个epoch设立一个检查点,对验证集中数据进行验证,输出验证准确率,最后保存精度最高的模型。

3.3 损失函数

在神经网络中损失函数有很多,例如:0~1 Loss,Cross Entropy Loss,Hinge Loss,Softmax cross entropy Loss等。在不同情况下使用不同的损失函数可以使得模型学习到更多的特征,若损失函数很小,表明机器学习模型与数据真实分布很接近,则模型性能良好;若损失函数很大,表明机器学习模型与数据真实分布差别较大,则模型性能不佳。本文中我们选取Softmax Loss损失函数。

(4)

式中:k——类别个数;

s——正确类别对应的Softmax输入;

S——正确类别对应的Softmax输出。

(5)

Softmax Loss的曲线如图7所示。

图7 Softmax Loss曲线图

当s≪0时,Softmax近似可以看为线性函数;当s≫0时,Softmax则趋向于零。Softmax受异常点的干扰较小,故本文使用Softmax Loss损失函数。

3.4 试验评价准则

本文的试验评价准则是采用的计算机视觉领域公认的average_acc评价指标评价模型分类的结果和常用于统计学中评估一致性的Kappa系数方法,average_acc定义公式

(6)

式中:nb——样本类别总数,本文中取5;

a——类别标签,本文中标签0代表霜霉病,标签1代表白粉病,标签2代表健康,标签3代表营养病,标签4代表虫害病;

na——类别为a的样本总数;

naa——类别a正确预测为第a类的样本总数。

Kappa系数常被应用于解译遥感精度和评价两个空间图的相似程度[19]。本研究采用Kappa系数验证病虫害图像识别的精度,其定义公式

(7)

(8)

pn——SUM(第i类真实样本数×第i类预测出来的样本数)/样本总数平方;

d1,d2,…,dn——每一类的真实样本个数;

f1,f2,…,fnb——预测出来的每一类的样本个数;

C——样本总数。

3.5 不同数据集比例实验对比

影响模型过拟合的不仅仅是样本的数据量,而对于一个全新的数据集,不同比例的训练测试集也会对模型训练效果产生极大的影响。所以将数据集的样本划分为三种比例:80%-20%(80%的样本用于训练)、70%-30%(70%的样本用于训练)、60%-40%(60%的样本用于训练)(表3)。从理论上来说应尽可能多的设置样本比例,这样实验偏差对结果的影响就会越小,可以选择一个更为精确的训练测试集的比例用于训练,鉴于实验条件有限,只选了这三个具有代表性的比例。

表3 不同数据集比例试验结果

可以看出8∶2的识别率比起其他比例,这也通过实验说明了当样本数据集一定时,训练集的样本越多,模型就更能获取其特征。在后续试验中,为了保证模型具有优秀的识别能力,故采用训练集测试集比例为8∶2。

3.6 图像数据扩充与注意力机制对模型的影响

针对于本文中的小样本数据集,我们采用了经过数据扩充和未数据扩充的原始图集进行试验比较其准确率和损失率。由图8可以看出,相比于未数据扩充的原始数据集,经过数据扩充的数据集在在经过相同epoch的训练迭代之后,平均准确率为85.78%,而未数据扩充的平均准确率为83%,实验表明,经过数据扩充的实验准确率有所提升,达到了将近3个百分点。数据扩充不仅提升了模型的鲁棒性,也提高了模型识别的准确率。

就本文而言,由于迁移学习使得模型已经在ImageNet数据集上训练得到了很好的特征提取能力,这必然的削弱了数据集在本次训练中的作用。但是经过数据扩充的较为数据扩充的测试准确提升了3个百分点,其中的原因可能是原训练集样本中只包含了1 000 张图片,并且分布不均匀。数据扩充给神经网络模型的训练提供了图集基础,所以说保证一定量的训练数据集还是很重要的。

分别对3种预训练模型进行迁移学习,测试准确率曲线如图8所示,可以看出A-ResNet101网络的收敛速度要慢于A-ResNet50,AlexNet最慢,但是最后的准确率却是优于A-ResNet50的,通过观察图9可知,在50个epoch之后,准确率趋于平稳不变,但是仍然存在测试准确率的上下波动情况,在曲线上我们可以看到很多个山突,这也就是局部最优解,基于训练集的数据所计算的梯度值可能使得每一次参数的变换都朝着局部最优解靠拢,而局部最优解相较于全局最优解差的很多,因此导致曲线上下波动;其次,学习率过大或者过小都会影响训练模型的效率,学习率过低,loss曲线即出现线性缓慢下降趋势;学习率过高,loss曲线即出现水平不变趋势。从图中可以看出,A-ResNet50模型的loss曲线呈现先降后缓慢下降再趋于平稳状态,这符合了一个优秀模型的loss曲线分布。

(a)未数据扩充acc曲线

(a)A-Resnet101 loss曲线

利用不同的深度的ResNet和AlexNet分别做基于注意力机制的迁移学习,病虫害识别模型识别的效果如表4所示,不加Attention模块的ResNet50模型和AlexNet由于参数量少,在每轮训练时间上有着很快的速度,基于我们的实验评价准则,准确率和Kappa指数不高,所以这并不是一个处理小样本啤酒花病虫害数据集的好的模型。剩下的两个模型都添加了注意力模块,在准确率上验证集和测试集均有着较高的精度,A-ResNet50模型为96.21%和93.27%,A-ResNet101模型为95.89%和93.11%,损失率分别为0.215 1和0.338 4,且Kappa指数达到了0.902 8和0.899 6,达到了分类一致性的最佳程度。在每轮训练的时间上,由于ResNet101模型的深度更深,使得参数多于ResNet50,故训练的时间也是要长于A-ResNet50模型的。结果表明,在综合考虑准确率,Kappa指数和模型训练时间下,A-ResNet50模型是要优于对照实验中的其他模型的,表明该方法可以有效且高精度的完成啤酒花病虫害分类识别工作。

表4 基于ResNet50、ResNet101+Attention和AlexNet的病虫害识别模型识别结果

4 结论

在本文中,小样本数据集问题成为了深度学习提高模型性能的难题,针对于小样本啤酒花病虫害识别问题,提出了基于注意力机制的小样本学习方法为解决啤酒花病虫害识别的问题提供了一种途径。首先使用迁移学习的方法来对图像特征进行提取,经过注意力模块使得特征有了其相应的权重,再通过直方图均衡化进行数据增强操作来执行分类工作。通过多组对比实验可以表明,本文提出的方法在啤酒花病虫害识别上有着良好的分类效果,其中A-ResNet50和A-ResNet101模型在测试集上的准确率达到了93.27%和93.11%,Kappa指数达到了0.902 7和0.899 6,其识别准确率和Kappa指数均优于传统方法,实现了啤酒花病虫害智能识别的要求。这对以后的针对于小样本问题卷积神经网络的使用具有重要意义。

猜你喜欢

啤酒花注意力准确率
走进精酿啤酒的世界,为生活干杯
让注意力“飞”回来
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
征服世界的啤酒花
高速公路车牌识别标识站准确率验证法
征服世界的啤酒花
酒花种植现状
“扬眼”APP:让注意力“变现”