基于注意力机制非对称残差网络和迁移学习的玉米病害图像识别

2021-06-26 04:05李庆盛于雪莹王首程高继勇王志强
科学技术与工程 2021年15期
关键词:非对称残差准确率

李庆盛, 缪 楠, 张 鑫, 于雪莹, 王首程, 高继勇, 王志强

(山东理工大学计算机科学与技术学院, 淄博 255000)

玉米是中国一种重要的粮食作物,其整个生长周期会受到多种病害的侵袭,严重影响其产量。因此,快速准确地识别玉米病害种类并及时防治对于提高玉米产量至关重要。传统基于图像处理的植物病害识别,目前大多通过SVM[1-3]、BPNN[4]等机器学习方法来实现,但传统机器学习方法需要人工提取图片特征,并且通常基于小样本浅层机器学习模型,信息处理能力不足,对复杂非线性关系的表达力有限,泛化能力较差,无法满足植物病害图片快速、准确识别的需要。

随着深度学习的发展,卷积神经网络(convolutional neural network, CNN) 通过引入局部连接、池化等操作,使得模型可以自动提取数据特征,实现端到端的图像识别。目前,CNN已应用于玉米、黄瓜等作物的病害识别[5-8],但CNN模型随着网络深度的增加会出现梯度消失或梯度爆炸等现象从而导致网络退化,模型准确率降低。因此如何在增加网络深度的同时保证深度模型准确率,成为学者们研究的重点。He等[9]提出深度残差网络(deep residual network,DRN),通过shortcut(捷径链接)将多个浅层网络连接形成深层网络,这样可以增加网络深度,避免网络退化,提高模型的准确率。残差网络提出以来,由于其优异的性能,目前已成为图像识别领域的研究热点。近几年,研究者相继提出多种方法来提高残差网络的性能。杨剑等[10]提出利用金字塔池化改进残差网络进行图像识别,将单层池化改为多层池化,单层特征提取变为多层特征融合,精度提高的同时增加了模型参数量。陈娟等[11]通过直接增加卷积层和通道数来优化残差网络进行虫害图像识别,增强了残差网络特征提取的能力,但其训练时间有所增加。曾伟辉等[12]引入高阶残差和参数共享反馈机制来优化残差网络,增加了模型的特征提取能力和鲁棒性,但该方法内存占用较多、计算资源消耗较大。随着深度学习在图像识别技术上逐渐成熟,仅提高网络的精度已经不能满足工程实践的需求,如何构建一个准确且快速的病害识别网络是当前研究者们面临的问题。非对称卷积的引入被证实可以有效降低深度网络的参数量,加速模型训练。罗朔等[13]利用非对称卷积模块构建目标跟踪算法网络框架,增强了模型特征融合能力,降低了模型参数量。张志佳等[14]设计了一种基于连续非对称卷积结构的手写体数字识别算法,与对称卷积结构相比,其对图片的识别效率更高。另一方面,引入注意力机制可以凸显深度模型对感兴趣区域的特征表达,同时滤除无关信息的干扰、提升模型处理效率[15-17]。王培森等[18]利用注意力机制实现了多通道视觉的细粒度图像分类。Wang等[19]将基于注意力的残差学习引入图像分类领域,解决了前向过程中无法提取注意力的问题,简化了模型结构,加快了模型训练速度。但目前,同时采用非对称卷积结构和注意力机制优化残差网络对植物病害图像进行识别的研究尚鲜见报道。

深度神经网络虽在植物病害的图像识别上有一定的应用,但是目前存在的一个主要问题是缺乏足够的病害图像数据集来训练网络,从而导致深度模型存在表达能力有限和缺乏反馈机制等问题[20]。迁移学习可以将一个或者多个辅助领域任务中学到的有用知识应用到特定应用领域的图像识别任务中。许景辉等[21]采用迁移学习结合卷积神经网络对玉米病害图像进行识别。郑一力等[22]利用迁移学习对AlexNet、Inception-V3网络进行训练,并成功应用于识别多种植物叶片。相关研究表明,迁移学习可以有效地增加深度模型的泛化能力,缩短训练时间[21]。

针对玉米病害图像识别问题,提出将非对称卷积结构和注意力机制引入残差神经网络,建立了一种快速、高效的植物病害识别模型ACA-Resnet (asymmetric convolution attention resnet)。为解决模型训练数据集不足的问题,在训练过程中引入迁移学习机制,利用ImagetNet数据集对ACA-Resnet进行预训练,然后微调全连接层以适应玉米病害数据集,从而提高了模型对病害图片的识别能力。

1 材料与方法

1.1 数据集

1.1.1 实验数据集

实验数据来自Kaggle公共数据集,采用3种病害以及健康叶片图像作为实验数据集,病害种类包括玉米锈病、枯叶病、灰斑病,共2 900张病害图片。实验数据集中的图像实例如图1所示。

图1 病害叶片图像Fig.1 Image of disease leaf

1.1.2 图像预处理

首先从实验数据集图像中随机选择80%用于训练,20%用于测试。然后使用keras内置的ImageDataGenerator对训练集图像进行横向,纵向,随机旋转,随机收缩等操作,将训练集扩充至6 000张。

1.2 研究理论

1.2.1 非对称残差网络

残差网络能够很好地解决网络退化问题,能保证在加深网络的同时准确率也不会降低,在精度和收敛等方面都具有良好的特性。残差网络是通过shortcut将多个达到饱和的浅层网络连接到一起,这样既增加网络深度也可以提高模型性能,使得模型可以提取更多特征。残差网络的目标函数H分为两部分,定义为

H(x)=F(x)+x

(1)

式(1)中:x为网络输入;F为残差网络中的残差函数。

下层误差变大时,残差函数中的F(x)会自动向0逼近。

残差网络中每一个残差块的输出为

y=F(x,W1,W2,…,Wi,…,Wn)+x

(2)

式(2)中:Wi为残差块中第i个卷积层的权重。

训练过程中会出现输入输出维度不匹配现象,此时要给不匹配的输入做一个线性变换,公式为

y=F(x,W1,W2,…,Wi,…,Wn)+Wsx

(3)

式(3)中:Ws为线性变换。

虽然残差网络使网络深度以及网络退化问题得到解决,但是残差网络的参数量过于庞大,严重影响模型的运算速度,为减小参数量,利用非对称卷积优化残差网络。在Inception-v3[23]网络中,将常规的d×d的卷积核分解为d×1和1×d的卷积核,卷积操作时参数量由d2缩小为2d,可以减少大量实验参数且准确率也仅是轻微降低。非对称卷积结构如图2所示,保留第一层3×3卷积核,将第二层3×3卷积核分解为1×3和3×1的非对称卷积核,这种卷积核结构在减少参数量的同时可以有效地提取数据的特征。

图2 非对称卷积结构Fig.2 Asymmetric convolution structure

1.2.2 注意力机制理论

注意力机制可以使神经网络在提取特征时只关注图片的某一部分重要特征,忽略不重要特征,减少运算过程的参数量。注意力机制残差网络[24]由多层收缩残差单元(residual shrinkage block)堆叠而成。每个block分为两部分:掩膜分支(mask branch)和主干分支(trunk branch)。实验使用Resent作为主干分支进行特征处理。掩膜分支采用SENet[25],是一种较新的注意力机制下的深度学习方法。

注意力机制结构如图3所示,可以得到一组阈值,这组阈值可以作用在每个特征通道上。注意力机制实现过程如下:

(1)求出输入的所有特征图绝对值。

(2)经过Global Average Pooling和平均,获得一个特征,记为A。

(3)在另一条支路,把Global Average Pooling之后的特征图输入到一个小型的全连接网络中,网络以sigmoid作为最后一层,将输出归一化到0~1,获得系数α。

(4)最终的阈值可以表示为αA。

通过这种方式,不同的样本就有了不同的阈值。

C×W×3为特征图的长×宽×通道数图3 注意力机制结构图Fig.3 Structure of attention mechanism

1.2.3 迁移学习

迁移学习是指利用特定的数据集来预训练网络,让网络具备一定的学习能力,然后再让预训练的网络模型重新学习目标集特征。这样可以减少训练步骤,缩短训练时间,降低过拟合程度。迁移学习流程图如图4所示,迁移学习的过程如下。

图4 迁移学习流程图Fig.4 Transfer learning flow chart

(1)将玉米病害原始数据集划分为训练集和测试集。

(2)用ImageNet数据集对模型进行迁移学习,保留训练后的权重。

(3)将训练集的图片通过平移、旋转等操作进行数据扩充后再进行归一化操作,测试集的图片只进行归一化操作。

(4)将扩充后的训练集输入到迁移学习过的网络模型中,此时模型冻结全部的卷积层,只用扩充后的数据集训练模型的全连接层。

(5)训练结束后,激活模型的卷积层,将测试集数据输入到网络模型中即可进行病害分类。

1.3 训练网络

1.3.1 实验环境

在Windows10,64位操作系统上进行实验,通过使用Python调用keras深度学习库来实现神经网络的构建、训练和测试。服务器配置了16 GB ram AMD Ryzen 5 3600 6核处理器和16 GB ram Nvidia GeForce GTX 1660 Ti GPU。

1.3.2 ACA-Resnet网络模型及训练过程

首先搭建ACA-Resnet模型,初始学习率和epoch设置为0.01和10,网络使用Relu函数作为激励层以达到减少运算量和数据维度的目的。然后利用ImageNet数据集对ACA-Resnet模型进行迁移学习,保留迁移学习后的网络参数。将玉米病害数据集划分为训练集和测试集,训练集在输入网络之前,先通过数据增强手段进行扩充。把扩充后的数据集输入预训练过的模型中,此时冻结模型的卷积层只训练全连接层。训练结束后,将模型的卷积层激活,将测试集输入网络,由多个残差块处理后将提取出的特征数据输出。最后将输出的数据经平均池化层和全连接层后,分类器即可输出分类结果。实验模型如图5所示,模型共包含64层(图中未全画出),由Conv层,Batchnorm(BN)层,Relu层,非对称收缩残差单元(asymmetric residual shrinkage block), 卷积块单元(convolution block),身份块单元(identity block),全局池化层(global average pooling)以及全连接层构成。图5中残差单元代表asymmetric residual shrinkage block结构,convolution block和identity block均采用ResNet50中的原始残差块结构。

图5 残差块及残差网络结构图Fig.5 Residual block and residual network structure diagram

2 实验与结果分析

2.1 残差块结构优化

传统残差块结构一般由Conv层,Batchnorm层和Relu层自由组合构成。但是残差单元不同的构造方式对于精度,网络收敛和训练速度都有影响。实验构建了四种残差块结构[26]如图6所示。

图6 四种残差块结构Fig.6 Four residual block structures

(1)(Batchnorm+Relu+Conv)×2。

(2)Batchnorm+Covn+Batchnorm+Relu+Conv。

(3)(Batchnorm+Relu+Conv)×2 +Batchnorm。

(4)Batchnorm+Conv+Batchnorm+Relu+Conv+

Batchnorm。

实验不使用数据增强以及迁移学习,只采用不同的残差块进行全新学习。每个实验均进行5次,取5次实验准确率的平均值作为各病害的识别准确率。不同残差块结构的模型准确率如表1所示,不同残差块结构对不同病害的识别能力有所差异,无法对所有病害的识别准确率均达到最优,因此只选取平均准确率最高的残差块结构,由表可知残差块1的平均准确率为82.75%高于其他残差块结构。

表1 不同残差块结构模型的准确率Table 1 Accuracy of different residual block structure models

2.2 残差网络超参数的优化

在残差网络学习的过程中,超参数的选择也可能对实验结果造成影响。实验采用单一因素法,对学习率、训练周期epoch两个超参数进行优化,选取不同的超参数进行对比实验,实验结果如图7所示,通过不同超参数所得实验结果可知,学习率选取0.001,epoch为15时,分类效果最好。

2.3 数据增强对模型的影响

数据增强对实验结果的影响如表2所示,未经过数据增强的Resnet50和ACA-Resnet平均准确率为82.75%和84.5%,优化后的网络准确率提高了1.75%。经过数据增强的Resnet50和ACA-Resnet平均准确率为87.25%和92.5%,优化后的模型准确率提高了5.25%。经过数据增强的模型平均准确率均有所提高,说明数据增强可以有效提高模型性能。

2.4 迁移学习对实验结果的影响

迁移学习对实验结果的影响如表3所示,Resnet50和ACA-Resnet全新学习的平均准确率为87.25%和92.5%,优化后的网络准确率提高了5.25%。Resnet50和ACA-Resnet迁移学习的平均准确率为94.25%和97.25%,优化后的网络准确率提高了3%。 经过迁移学习的模型准确率较只进行数据增强的模型准确率有明显提高。结果表明,迁移学习可以有效地提高模型的准确率。

2.5 ACA-Resnet与其他深度学习网络实验对比

为解决深度残差网络参数量过大的问题,实验采用注意力机制以及非对称卷积的方法来减小参数量,优化模型性能。ACA-Resnet与Resnet50总参数量大小对比如表4所示,由表可知,ACA-Resnet总参数量相比于Resnet50减小了3 938 336并且每个epoch的训练时间缩短了13 s。结果表明,注意力机制和非对称卷积可有效地减小实验参数,加快训练速度。

同时实验将ACA-Resnet与传统深度学习网络模型和AC-Resnet、A-Resnet(注意力机制残差网络)进行对比实验,不同深度学习模型采用相同的实验超参数。为加快模型收敛速度,所有网络模型均进行数据增强和迁移学习操作。

实验结果分别建立了VGG-16、Inception-V3、Resnet50、A-Resnet、AC-Resnet、ACA-Resnet模型的分类混淆矩阵如图8所示, ACA-Resnet对四种病害正确分类的样本均多于其他五种模型。

进一步对4种模型的准确率(Accuracy)、精确率(Precision)、召回率(Recall)和F1-Score参数进行对比分析,其公式为

(4)

(5)

(6)

(7)

式中:ncorrect为测试集中预测正确的样本数量;ntotal为测试集总样本数量;TP为真实的正样本数量;FP为真实的负样本数量;FN为虚假的负样本数量。

不同深度学习模型的性能对比如表5所示,ACA-Resnet的准确率、精确率、召回率、F1-Score参数分别为97.25%、98%、97.3%、0.97,整体性能优于其他5个模型,证明ACA-Resnet与其他五个模型相比泛化能力和稳定性均有所提高。同时AC-Resnet与Resnet50相比,准确率下降了3.13%,说明非对称卷积优化在减小参数量的同时会使模型性能轻微降低,A-Resnet较Resnet50整体性能有所提升,表明注意力机制可以改善模型的表达能力,提高识别准确率,弥补非对称卷积带来的弊端。综上,证明了注意力机制结合非对称卷积优化残差网络的可行性。

表6为相关参考文献中使用的网络模型及其准确率,ACA-Resnet模型的准确率均高于文献所用方法,进一步证明ACA-Resnet模型的性能较好。

表6 其他深度学习模型的性能Table 6 Performance of other deep learning models

3 结论

针对传统残差网络在玉米病害识别问题上参数量冗余,训练速度长,准确率低等问题设计了一种新的图像识别模型ACA-Resnet,并通过实验分析得到如下结论。

(1)非对称卷积的引入可有效降低参数量,加快训练速度,与Resnet50相比参数量降低了约17%而且训练速度也有所提升,但该优化方法会使模型准确率小幅降低。

(2)注意力机制可以有效提高模型的准确率,因此注意力机制与非对称卷积相结合优化残差网络可以提高模型的整体性能。

(3)与全新学习相比,迁移学习提高了模型的整体性能,经过迁移学习的模型对每一种病害的识别准确率均有较大提升。

本文实验所用样本均为背景干净的图片,在实际环境下,病害图片中往往具有复杂的背景干扰,如何利用ACA-Resnet对复杂背景下的玉米病害叶片进行识别分类是接下来的研究方向。

猜你喜欢
非对称残差准确率
后发技术非对称赶超策略及其情境依赖机制研究
基于残差-注意力和LSTM的心律失常心拍分类方法研究
基于双向GRU与残差拟合的车辆跟驰建模
非对称腹板束设计方法在地铁大跨变宽变高连续梁中的应用
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
基于残差学习的自适应无人机目标跟踪算法
基于深度卷积的残差三生网络研究与应用