基于多尺度双路注意力胶囊网络在水稻害虫识别中的应用
2022-09-30赵保平张述嘉
刘 裕,赵保平,张述嘉,林 洁
(1. 西京学院信息工程学院,西安 710123;2.宝鸡市农业科学研究院,陕西 宝鸡 721000)
【研究意义】田间害虫识别是害虫防治的重要步骤,对提高作物产量与农户收入有着重要作用。【前人研究进展】目前已有较多基于模式识别与数字图像技术的害虫识别方法[1]。胡永强等[2]提出了一种基于多特征融合与稀疏表示的害虫识别方法,该方法提取害虫的颜色、形状、纹理等特征并构造成特征矩阵,再求解特征矩阵的最优稀疏系数实现害虫识别。Wang等[3]提出了一种基于数字图像技术与模式识别的害虫识别方法,该方法首先对害虫图像进行预处理以获得纯色背景图像,再提取害虫的躯干形状、重心等特征并构造成特征向量,最后结合支持向量机和人工神经网络进行害虫识别。Xie等[4]提出了一种基于多核学习与多任务表示的害虫识别方法,该方法采用稀疏编码直方图表示害虫图像,能更好地量化形状、纹理等特征。张永玲等[5]提出了一种基于多特征融合和稀疏表示的害虫识别方法,该方法首先提取害虫的HSV、HOG、Gaobor等特征并构造成过完备字典,再利用过完备字典对害虫图像进行稀疏表示,最后求稀疏解进行害虫识别。肖德琴等[6]提出了一种基于多算法结合的害虫识别方法,该方法通过结合特征提取、干扰目标去除、背景去除、自动计数算法实现害虫识别。上述方法的识别性能特别依赖于人工提取特征的效果,但害虫在不同时期具有不同的形态,且害虫的分布位置与姿势变化多样,导致上述方法的泛化能力不能满足作物害虫识别的要求。近年来,随着深度学习的快速发展,涌现了较多基于卷积神经网络(Convolutional Neural Network, CNN)的害虫识别方法[7]。Cheng等[8]提出了一种基于改进AlexNet的害虫识别方法,该方法在AlexNet的基础上增加卷积层和残差连接机制,取得了较好的识别效果。梁万杰等[9]提出了一种基于10层CNN的水稻二化螟识别方法,该方法利用正负样本对网络进行交叉验证,有效提高了识别性能。董伟等[10]提出了一种基于区域提议网络(Region Proposal Network, RPN)和CNN的蔬菜害虫识别方法,该方法利用RPN获取蔬菜害虫的位置区域,再输入到CNN进行害虫识别。张博等[11]提出了一种基于空间金字塔池化与多尺度深度卷积网络的害虫识别方法,该方法利用空间金字塔池化模块提取害虫的多尺度特征,并结合卷积与上采样以实现反卷积,取得了较好的识别效果。魏杨等[12]提出了一种基于RPN与快速区域神经网络的害虫识别方法,该方法利用RPN获取害虫的位置区域,再利用快速区域神经网络进行害虫识别。Nanni等[13]提出了一种基于显著性分析与CNN的害虫识别方法,该方法利用三种显著性方法对图像进行预处理,突出显示图像中最重要的像素,有效提高了训练速度。陈娟等[14]提出了一种改进残差网络的害虫图像识别方法,该方法首先采用数字图像处理技术对害虫图像进行预处理,再利用残差网络进行害虫识别。孔建磊等[15]提出了一种基于多流概率融合网络的害虫识别模型,该模型首先利用多流深度网络提取特征,再利用高斯概率融合层对特征整合优化,取得了较高识别准确率。邵泽中等[16]开发了一个面向移动端的农业害虫识别系统,该系统采用DenseNet121对66种常见害虫进行识别。孙鹏等[17]提出了一种基于注意力机制与CNN的大豆害虫识别方法,该方法引入注意力机制以更好地提取害虫特征,极大提高了识别准确率。【本研究切入点】为了解决CNN易丢失特征之间关系等问题,Hinton等[18]提出了胶囊结构,并与Sabour等[19]提出了胶囊网络,该网络使用向量胶囊取代标量神经元,较CNN有更好的平移不变性。CapsNet在胶囊层之间使用动态路由算法代替池化层,能更好地提取特征信息。Shao等[20]提出了一种双胶囊生成对抗网络,在生成对抗网络中引入2个CapsNet作为鉴别器,并将边缘损失与原始对抗性损失相结合,能对复杂目标进行更好的特征描述。Gao等[21]提出了一种多尺度胶囊网络,该网络利用多尺度胶囊模块提取特征之间的空间关系,并设计了自适应融合卷积模块用于更好地提取小目标特征,取得了较好的识别效果。水稻害虫图像背景复杂且害虫分布位置不均、害虫姿态与尺度变化多样为水稻害虫准确识别带来了一定挑战。【拟解决的关键问题】针对水稻害虫识别难题,本研究结合注意力机制[22]与CapsNet的优势,提出一种多尺度双路注意力胶囊网络,并应用于水稻害虫识别。
1 材料与方法
1.1 图像筛选与预处理
数据集IP102 (https://github.com/xpwu95/IP102)[23]共有75 222幅图像,包括102种害虫,选取其中14种水稻害虫,每种害虫选取300幅共4200幅图像组成实验数据集(图1)。其中70%图像选为训练集,用于网络权重参数的学习;20%图像选为验证集,用于优化网络参数;剩余10%图像选为测试集,用于对所提出方法进行验证。为了验证所提方法的鲁棒性,均选用光照强烈、背景复杂等不同情况下的图像且实验数据集中同种害虫均包含不同虫态。为了提高识别精度,利用Photoshop将图像统一调整为239×239像素。
图1 数据集中部分图像Fig.1 Examples of the dataset
1.2 试验方法
1.2.1 胶囊网络(CapsNet) CapsNet由编码模块和解码模块组成,CapsNet结构如图2所示。编码模块由卷积层(Conv)、主胶囊层(Primary Caps)和数字胶囊层(Digital Caps)组成。其中卷积层由256个9×9且步长为2的卷积核组成,输出20×20×256维的特征图;主胶囊层共有32组卷积核,每组由8个9×9且步长为2的卷积核组成,该层对卷积层的输出进行卷积计算,输出1152个8维胶囊;数字胶囊层对主胶囊层的输出进行路由计算,输出16×10维特征向量。解码模块由3个全连接层组成,该模块接收数字胶囊层的输出,重构出原始图像。
图2 胶囊网络结构Fig.2 Structure of capsule network
CapsNet使用动态路由算法代替池化层,对输入特征进行分类,等同于特征选择过程[24]。动态路由算法的中心思想为所有子胶囊对父胶囊的参数进行预测,当所有子胶囊预测结果一致时,父胶囊被激活并输出特征向量。
(1)对输入向量进行加权求和并压缩:
(1)
(2)对路由参数cij进行更新:
(2)
式中,bij为子胶囊层中第i类胶囊连接到sj的概率。
CapsNet的损失函数采用边缘损失函数:
(3)
式中,m+与m-为类别预测值,λ为平衡系数,Tk为数据类别标签,CNum为数据集的类别数,k为类别序号,vk为数字胶囊层输出的特征向量。
1.2.2 多尺度双路注意力胶囊网络(MDACapsNet) 如图3所示, MDACapsNet由编码模块、重构模块与分类模块组成。其中编码模块用于提取图像特征;重构模块用于对编码模块的输出特征进行采样,输出重构图像;分类模块输出分类结果。编码模块由卷积层1(Conv1)、多尺度双路注意力模块、卷积层2(Conv2)、主胶囊层(Primary Caps)、次胶囊层(Secondary Caps)组成。其中主胶囊层对卷积层2的输出特征图用32个步长为2的5×5卷积核进行8次卷积计算,实现卷积层与胶囊层的转换。重构模块由卷积层3(Conv3)、反卷积层(Deconv)、卷积层4(Conv4)组成。其中卷积层3用于实现胶囊层与卷积层的转化,反卷积层对卷积层3的输出进行上采样,再通过卷积层4下采样后输出重构图像。
图3 多尺度双路注意力胶囊网络结构Fig.3 Structure of the Capsule Multi-scale Dual-path Attention Capsule Network
分类模块由数字胶囊层组成。在整体的MDACapsNet中,卷积层3与自注意力层的卷积核步长均为1,其他层的卷积核步长均为2。MDACapsNet的相关参数如表1所示。
表1 多尺度双路注意力胶囊网络的相关参数
卷积核大小固定使感受野大小受限,无法获得全局信息。为了能获取更丰富的上下文信息,在自注意力模块[25]与通道空间注意力模块[26]的基础上,设计了一种多尺度双路注意力模块(Multi-scale Dual-path Attention Block,MDAB)并应用在MDACapsNet初端。MDAB由双路径组成,上路径由通道注意力模块(Channel Attention Blcok,CAB)和空间注意力模块(Spatial Attention Block,SAB)组成,下路径为多尺度自注意力模块(Multi-scale Self-attention Block,MSB)。
自注意力模块可以有效获取对害虫分类至关重要的全局信息,但与常规卷积操作比较,自注意力模块存在计算量大等缺点。MDBA在自注意力模块中使用金字塔池化[27]以减少特征图的维度并提取多尺度信息,能够大量减少计算量。MDBA通过取输入特征图中不同尺度特征的加权值以表示某局部位置特征,实现特征之间的全局依赖并提取丰富的多尺度上下文信息。
(1)对输入数据进行卷积计算并进行金字塔池化操作:
f(x)=wθx,g(x)=ρ(wφx),h(x)=ρ(wgx)
(4)
式中,wθ、wφ、wg为卷积核权重矩阵,ρ为金字塔池化操作,x为输入数据。
(2)对f(x)和g(x)进行全局相似度计算:
(5)
式中,xp为输入数据上索引为p的特征值,N为输入特征的总个数,c(p,q)为xp和xq的相似度值,G(xp)为xp的全局相似度值。
(3)对所有全局相似度值进行掩模计算:
(6)
式中,yp为xp的掩模特征值,Wz为权重系数,z为输出特征图。
Mc(F)=σ{FNL[AvgPool(F)]+FNL[MaxPool(F)]}
(7)
式中,σ为Sigmoid激活函数,F为输入特征。
Ms(F)=σ{Mean[AvgPool(F)+MaxPool(F)]}
(8)
式中,σ为Sigmoid激活函数,F为输入特征,Mean为平均值计算。SAB输出的空间位置特征图与SAB的输入数据进行相乘,得到注意力特征数据。再与MSB的输出特征图相加,再经过Sigmoid函数进行归一化后与输入数据相乘,得到多尺度双路注意力特征图。
CapsNet中,动态路由算法相当于胶囊之间进行全连接映射,计算量会随着输入图像尺度地提升而大幅增加。因此MDACapsNet使用局部共享动态路由算法[28]代替动态路由算法。局部共享动态路由算法规定子胶囊只能通过预设定的路径路由到父胶囊,且同一类型胶囊设有共享转移矩阵,能在确保性能的前提下,大幅减少网络计算量。局部共享动态路由算法计算流程如下:
(9)
(10)
(11)
在神经网络训练过程中,当神经元输入特征值小于零时,ReLU激活函数的输出为零,导致神经元的一阶导数也为零,神经元处于失活状态。MDACapsNet使用Swish激活函数[29],其与ReLu激活函数不同,当输入特征值小于零时,Swish将输出其缩小值,能有效解决神经元失活问题。Swish激活函数计算公式如下:
(12)
为提高识别准确率与加速网络训练,MDACapsNet在边缘损失函数基础上增加重构图像损失项。增加重构图像损失项后的边缘重构损失函数如下:
Loss=αMLoss+βRLoss
(13)
式中,α与β为重构系数,MLoss为边缘损失函数,RLoss为均方根误差函数,其计算如下:
(14)
式中,pr(x)为第r张经下采样后得到的28×28像素图像,Rr(x)为重构模块输出的第r张重构图像,CNum为数据集类别数。
为了解决网络训练时间过长造成的过拟合问题,MDACapsNet使用二阶段训练方法。二阶段训练方法先通过较少的训练数据获得预训练网络参数,再进行全部数据的网络训练。二阶段训练方法描述如下。第一步:对网络参数进行随机初始化;第二步:在水稻害虫图像数据集中随机选取500幅图像,然后对网络进行预训练并获得预训练参数;第三步:网络载入预训练参数,然后对网络进行全部数据的正式训练。
为了评估MDACapsNet对害虫图像的识别效果,引入识别准确率、召回率作为评价指标,衡量真实标签与识别结果之间的差异。识别准确率为被正确分类的样本占总样本的比例,召回率为被正确分类的正类占总正类的比例。识别准确率Accuracy、召回率Recall计算如下:
(15)
(16)
式中,TP为实例是正类,且被识别为正类的样本;TN为实例为负类,且被识别为负类的样本;FN为实例是正类,但被识别为负类的样本;FP为实例为负类,但被识别为正类的样本。
1.2.3 硬件环境及参数设定 硬件环境为Intel Xeon E5-2643v3 @3.40GHz CPU;GTX2080Ti 11GB GPU;64 GB内存。实验软件环境为Python 3.7;CUDA Toolkit10.0;CUDNN V7.6.5;Windows10 64bit操作系统;Pytorch深度学习框架。在实验中将训练集以批次的方式送入网络进行训练,对所有训练集图像完成一次训练为一次迭代。综合考虑硬件环境与训练时间,将批次大小设置为32,最大迭代次数设置为500。在实验中为了避免学习率过大导致网络过拟合,MDACapsNet采用衰减学习率进行网络训练,学习率初始化为0.001,随着迭代次数的增加,学习率依次减小原来的0.05倍。对网络参数进行初始化,生成均值为0,方差为1,符合正态分布的权重参数。多尺度注意力模块的降采样率设置为{1,3,6,8},损失函数中α与β分别设置为0.9与0.1。
2 结果与分析
2.1 实验训练过程分析
为了验证MDACapsNet的有效性,在构建的水稻害虫图像数据集上进行实验,并与CapsNet、MDACapsNet(28×28像素)、VGG16[30]和ResNet[31]进行比较。由图4-a可知,CapsNet经过450次迭代时,其Loss值降到0.1881且Loss曲线已接近收敛,表明网络的训练效果较差。使用28×28像素图像输入MDACapsNet进行训练并完成500次迭代后,其Loss值降到0.115,与CapsNet的训练过程比较,表明提出的方法能有效优化网络。MDACapsNet经过340次迭代时,其Loss曲线接近收敛且完成500次迭代后,Loss值降到0.0006,与28×28像素图像输入MDACapsNet的训练过程相比,表明239×239像素图像输入能有效提高网络的训练效果。由图4-b可知,MDACapsNet在训练过程中收敛速度比VGG16与ResNet更快,且在相同的迭代次数下,MDACapsNet的Loss值更低,表明MDACapsNet具有更强的识别能力。
图4 不同方法的训练损失Fig.4 Training loss of different methods
为了更准确地掌握网络训练状态,对卷积层1和多尺度双路注意力模块(Multi-scale Dual-path Attention Block,MDAB)的输出特征图与重构图像进行可视化如图5所示。由图5-b可知,网络经过迭代训练后,卷积层1只能提取目标区域的部分纹理特征,无法充分获取目标区域的特征信息。由图5-c可知,MDAB已较完整地提取了害虫的轮廓特征。图5的特征图可视化结果表明在MDACapsNet中引入MDAB,能极大提高网络的特征提取能力。
图5 特征图与重构图像可视化Fig.5 Visualization of feature maps and reconstructed image
MDACapsNet重构模块输出的重构图像如图5-d所示,网络能否有效地提取特征直接体现在重构图像质量的优劣上。重构模块已较完整地重构出原始图像,表明MDACapsNet能有效地提取害虫图像的特征。
2.2 不同方法的识别效果比较
由表2可知,MDACapsNet取得最高识别准确率与召回率,分别为95.31%、94.89%。MDACapsNet的识别准确率比MDACapsNet28(28×28像素图像输入)、VGG16、ResNet、CapsNet分别提高了14.82%、5.47%、2.83%、19.83%。CapsNet与MDACapsNet(28×28像素输入)的输入图像尺度较小,输入网络的信息较少,导致网络无法有效识别。VGG16与ResNet的卷积核尺度固定,无法获得全局信息,所以这2种识别方法的识别准确率和召回率均低于MDACapsNet。根据上述分析能判断MDACapsNet具有较好的识别效果,能够满足对水稻害虫识别的高精度要求。
表2 不同方法的识别效果
田间环境复杂多变,且水稻害虫处于不同生长阶段时,其形态差异较大。为更进一步验证所提出方法的鲁棒性,分别使用不同方法对不同情况下水稻害虫图像进行识别,其中不同情况包括光照复杂、成虫期、小虫图像、成长期、幼虫期。筛选后鲁棒性验证数据集共计350幅图像,部分图像如图6所示。
图6 不同情况下的水稻害虫图像Fig.6 Images of rice pest in different conditions
由表3可知,在鲁棒性对比实验中,MDACapsNet28与CapsNet在所有情况下均取得较差识别效果。当处于成虫期与成长期情况下,VGG16与ResNet均取得了较好效果,当小虫图像与光照复杂情况时,识别准确率均有较大幅度下降。MDACapsNet在所有情况下均取得较好识别结果,识别准确率最大值与最小值之差仅为8.57%,表明MDACapsNet具有较强鲁棒性。
表3 不同情况下的识别方法性能对比
综合来看,基于MDACapsNet的水稻害虫识别方法在少量数据的训练后,识别准确率达到95.31%,且在复杂情况下仍能取得较好识别效果,网络识别准确率与网络训练收敛能力均优于其他方法。主要原因是引入了多尺度双路注意力模块与动态路由算法。在特征提取阶段,多尺度双路注意力模块能提取害虫多尺度信息,能有效降低害虫尺度变化对识别准确率的影响,且注意力机制能有效抑制复杂背景对特征提取的影响,再利用动态路由算法提高胶囊间的计算效率,使得网络能接受大分辨率图像,极大提高网络识别准确率。根据上述分析可知,MDACapsNet的识别能力能满足复杂情况下对水稻害虫识别的高精度要求。
3 讨 论
准确检测水稻害虫是水稻害虫防治的前提。针对卷积神经网络(Convolutional Neural Network, CNN)对复杂背景下水稻害虫识别准确率低等问题,笔者提出一种多尺度双路注意力胶囊网络(Multi-scale Dual-path Attention Capsule Network, MDACapsNet)用于水稻害虫识别。MDACapsNet通过在胶囊层之间使用局部共享动态路由算法代替动态路由算法进行参数的更新,极大降低网络计算量;然后在网络初端引入多尺度双路注意力模块以实现特征之间的全局依赖并提供多尺度信息,提高网络的特征描述与提取能力;最后在损失函数中增加重构图像损失项,加速网络训练并提高识别准确率。在MDACapsNet的训练过程中,采用衰减学习率与二阶段训练方法以解决网络的过拟合问题。在复杂背景下水稻害虫图像数据集上进行实验,并与CapsNet、VGG16、ResNet进行比较。结果表明,MDACapsNet在识别评价指标上均优于其他被比较的方法,且在害虫图像背景复杂与害虫尺度、姿态多变条件下,MDACapsNet也能有效识别。在未来工作中,需扩展数据集以进一步提高网络的鲁棒性;需对同种水稻害虫的周期进行细致地分类,由此采取更有针对性的害虫防治措施。
4 结 论
本研究针对田间水稻害虫识别难点,提出一种基于多尺度双路注意力胶囊网络的水稻害虫识别方法。在水稻害虫数据集上进行实验,本方法识别准确率达到95.31%,且在多种复杂情况仍取得较高识别准确率,可应用于田间水稻害虫自动检测系统。