张 宁,吴华瑞,韩 笑,缪祎晟
(1.北京农学院 计算机与信息工程学院,北京 102206; 2.国家农业信息化工程技术研究中心,北京 100097; 3.北京农业信息技术研究中心,北京 100097; 4.农业农村部农业信息技术重点实验室,北京 100097)
番茄种植面积近7亿m2,是我国的重要经济作物之一。受各种环境因素影响,番茄病害发生频频,严重影响番茄产量和质量。而物联网拥有大量传感器,能够捕捉农作物状态[1],透明化番茄生产过程。结合计算机视觉技术处理采集信息,可以实现番茄病害的自动化诊断,对提高农业信息采集效率和科学决策水平具有十分重要的意义[2]。
研究人员采用不同算法对作物病害图像的纹理、颜色与形状等差异特征进行处理分析[3]。Srivastava等[4]采用统计阈值法对葡萄病害叶片进行图像分割,并根据颜色差异,判断是否感染霜霉病。王守志等[5]通过提取病斑的纹理与颜色特征,采用Mercer正定核,在高维特征空间进行k-means聚类,对玉米4种病害进行分类,最终的正确率达到82.5%。以上的传统方法需要人工设计特征,耗费人力物力,且识别作物种类单一,效果不佳。随着机器视觉技术和神经网络算法的发展,研究人员开始将先进的计算机视觉技术同无线传感器网络相结合引入作物病害识别。殷建军等[6]为了实时获取智能温室农作物生长信息,设计了一种低成本、高分辨率的无线图像传感器节点,基于所设计的节点提出WiFi+4G的大棚监测系统,但视频延时高,难以实时监测种植环境信息。从发展趋势来看,随着5G通信网络[7]的构建和完善,其低延时、大容量和无线覆盖的优势会越来越具有吸引力,能够解决目前农业温室场景下图像采集传输困难的问题。
深度学习是人工智能的代表性分支,其已在目标检测、图像分类与语义分割等各个领域得到了广泛的应用。与传统的图像分类方法相比,深度学习模型省略了复杂的图像预处理和特征提取操作,采用端到端结构简化了分类过程[8]。通过训练大量作物病害图像数据集,既可实时判断作物病害,又节省了大量时间与劳动力。张帅[9]构建了一个八层的卷积神经网络植物叶片识别方案,通过自主学习叶片特征减少人工干预,并与SIFT算子和多分类器识别系统进行对比,证明了CNN+SVM和CNN+Softmax的方法对叶片识别分类具有较高精确度。黄双萍等[10]利用inception结构的多尺度卷积核能提取不同尺度病斑特征并可以级联融合的优势,以高光谱水稻病害图像作为实验样本,在验证集上测得92.0%的高准确率。郭小清等[11]针对番茄病害相似、难以识别问题,提出一种基于AlexNet的多感受野识别模型,该模型对番茄叶部病害早中晚期的平均识别准确率达到92.7%。吴华瑞[12]针对网络梯度退化导致识别性能下降问题,提出一种基于深度残差网络的神经网络模型,利用贝叶斯算法确定网络中的超参数,在模型中添加残差单元,最终模型对番茄4种病害识别准确率达到95%以上。值得注意的是,注意力机制以其轻量高效的特性在各大计算机视觉任务上都有优秀的表现[13-15],因此,也被引入到图像分类任务中来[16-17]。胡志伟等[18]针对番茄病害细粒度识别问题,提出融合注意力机制和残差网络的卷积神经网络ARNet,在番茄叶部早晚期病害数据集上平均识别准确率为88.2%。
针对设施蔬菜物联网采集设备多样,传感器端图像分辨率低且复杂多变的问题,本文提出一种多尺度特征改进的AT-InceptionV3卷积神经网络,通过引入融合通道注意力和空间注意力的CBMA(convolutional block attention module)[19]注意力卷积模块提高番茄叶部病害的表征能力,并在ImageNet[20]数据上进行迁移学习[21],优化小样本数据域导致的过拟合问题。实验表明,该方法既能提高番茄病害的识别准确性,同时也适用于不同分辨率下的病害图像分类。
本文采用的数据为Plant Village中的番茄叶表图像,将细菌性斑疹病、晚疫病、叶霉病和黄曲病等番茄常见病害叶片图像作为研究对象。每种病害数据由800张256×256(像素)的RGB图像构成,且数据集中早期、中期、晚期图片比例约为1∶1∶1。为防止网络过拟合,采用Open CV对原始数据集进行增加亮度、降低亮度、图片水平翻转3种数据增强操作,扩充后的每类病害数据达3 200张。病害图像增强效果如图1所示。
图1 番茄病害叶片数据增强示例
1.2.1 主干网络InceptionV3模型
从AlexNet神经网络开始,深度学习模型通过增加网络深度和宽度提高模型精度。但网络深度的增加也带来了过拟合、梯度爆炸、梯度消失等问题,InceptionV3从另一个角度,利用并行多尺度卷积核优化卷积尺寸和卷积方式来提高模型性能。InceptionV3输入为299×299的三通道图像,共包含47层,主干由5个卷积层和3种inception卷积模块不断堆叠构成,经过全连接层输出1 000种分类。Inception模块是一种表达能力强、计算量小的局部网络结构,模块选取3×3、5×5、7×7多种卷积核级联来识别不同大小的感受野,不同尺度卷积核会观察到不同的特征,有助于多种尺寸病害病斑的特征提取,并将不同尺寸的特征进行融合,丰富每层所提取的图像特征。在此基础上,采用非对称卷积(asymmetric convolutions)方式,将1×7的卷积和7×1的卷积进行串联来替代7×7卷积,节省了71.43%的参数计算量。InceptionV3通过增加多种尺寸卷积的方法融合提取特征,提高了提取病害特征的丰富程度。由于其网络较深,在训练时需要大量数据才能达到好的效果,而在目前农业智能温室场景下,仍存在训练样本较少和病害病斑相似所导致的分类模型判别力不足等问题。
1.2.2 迁移学习
实际生产过程中,番茄病害发生条件难以预测,同时番茄病害表现复杂,病斑大小多样,不同病斑在不同时期颜色差异较大,使得番茄病害数据采集困难且不易标注,难以形成丰富的番茄病害样本库。小数据量样本在InceptionV3网络直接训练容易导致过拟合和训练精度较低的问题。因此,本文采用基于参数的迁移学习方法重训InceptionV3网络。利用图像特征丰富的ImageNet数据集训练模型,并将训练参数迁移到番茄叶片病害数据集上进行再次训练,提升番茄病害分类精度。基于迁移学习的番茄病害图像分类模型训练过程如图2所示,导出ImageNet图像训练的InceptionV3模型文件,固定模型参数,仅更改模型的最后一层—全连接层,重新增加全连接层和softmax,然后对改进的部分进行训练。全连接层采用梯度下降算法作为参数优化器,设置平均交叉熵作为损失函数如下:
(1)
式1中:N表示样本总数;M表示类别个数;yi为指示变量(0或1),如果类别为i,则为1,否则为0;pi表示观测样本是i的概率;Li表示类别为i的损失值。
1.2.3 注意力机制
番茄病害病斑症状在不同时期的大小、颜色和形状均具有不同差异,且病害信息分布相对局部。病害识别期望模型能够关注病害的分布位置与病斑表现。因此,本文通过引入混合通道域和空间域的CBAM模块来捕获番茄病害图像中丰富的语境信息,学习每个特征通道和每个特征空间的重要程度,细粒度表征番茄病害图像中的病害特性,降低无关信息的权重,从而提升番茄病害的识别准确率。CBAM模块结构如图3所示。将CBAM模块嵌入到Inception特征提取模块后,CBAM模块会沿着输入中间特征图的通道和空间2个维度方向推断注意力特征图,使得图像中的重点内容和重点位置得到关注,将注意力图乘以输入的中间特征图进行自适应特征细化,即更新已经学到的特征。
图2 AT-InceptionV3模型与重训图
图3 CBAM注意力模块
CBAM模块可由下式表示:
F1=MC(F)⊗F;
(2)
F2=MS(F1)⊗F1;
(3)
Mc(F)=σ{MLP[AvgPool(F)]+MLP[MaxPool(F)]};
(4)
Ms(F)=σ{f7×7[AvgPool(F1);MaxPool(F1)]}。
(5)
式中:F表示输入的特征图,F1表示通道注意力模块的输出特征图;F2表示空间注意力模块的输出特征图,⊗表示element-wise点乘(即同位元素对应相乘)操作;MC(F)为在通道注意力上进行的操作;MS(F)为在空间注意力上进行的操作;AvgPool表示全局平均池化;MaxPool表示全局最大池化;MLP为多层感知器;σ为Sigmoid激活操作;f7×7表示进行7×7的卷积。
CBAM模块包括2个阶段:1,将输入的F进行全局平均池化和全局最大池化,各自再通过多层感知器,将所得结果进行加和,经过sigmoid激活得到MC(F)。令MC(F)和F进行点乘操作,生成最终的通道注意力特征图F1;2,将基于通道注意力所得的F1进行全局平均池化和全局最大池化,再进行concat融合操作。使卷积降维为1个通道,利用sigmoid激活得到MS(F)。将MS(F)和F1进行点乘操作,生成最终的空间注意力特征图F2,即CBAM模块输出。
1.2.4 多尺度和注意力AT-InceptionV3神经网络模型
本文通过引入注意力机制,提出了多尺度注意力神经网络AT-InceptionV3,用于番茄叶部病害的细粒度识别。改进后模型分为3部分,分别是Inception特征提取块、注意力特征提取块和全连接分类块,模型结构如图2所示。InceptioV3特征提取块中包含普通卷积层和多次叠加的Inception块;注意力特征提取块采用通道注意力和空间注意力混合的CBAM模块构成;最后一层采用全连接和Softmax对提取到的病害特征图像进行分类,并输出5类番茄叶片标签的平均识别准确率。模型参数设置如表1所示。
表1 AT-InceptionV3网络结构
番茄病害数据集以8∶1∶1的比例分为训练集、验证集和测试集。实验在Windows10操作系统和处理器为CPU的环境下进行,Python的版本为3.6,Tensorflow 1.14.0的版本为1.14.0。利用TensorFlow深度学习开源框架搭建网络模型,采用Image Net预训练权重,梯度下降函数作为参数优化器,平均交叉熵为损失函数。新的全连接层初始化分布采用均值为0、方差为0.001的截断正态分布,学习率为0.01,一次训练所选取的样本数为100,训练次数为5 000次。
本文模型在数据集上实验得到的五分类混淆矩阵和每类病害的识别率如图4、表2所示。模型总体分类精度值(OA)为98.00%,卡帕(Kappa)系数为0.975,判断准确且识别率较高,大部分分类测试数据集中在混淆矩阵对角线处,番茄健康叶片、番茄晚疫病、番茄叶霉病和番茄黄曲病4类叶片识别准确率在98.75%以上;而番茄细菌性斑疹病在测试集上识别准确率最低,为93.75%,最容易被误判为其他病害。观察混淆矩阵发现,细菌性斑疹病易被识别为健康叶片,结合数据集对比可知,细菌性斑疹病初期病害与健康叶片相差较小,所以易被分类错误。
表2 不同方案在每类病害图像的识别率
0,番茄细菌性斑疹病;1,番茄健康叶;2,番茄晚疫病;3,番茄叶霉病;4,番茄黄曲病。
分别抽取测试集中5类番茄病害叶片初期和晚期图像各1张,重构模型的测试分类结果和置信度大小如表3所示。所有病害叶片的预测标签均正确,且4类病害晚期叶片置信度大于病害初期置信度,高于0.97。健康叶片取得的置信度较低,结合番茄数据集和混淆矩阵发现,病害初期的叶片与健康叶片之间差异较小,导致病害错误分类为健康叶片,降低了置信度。在4类病害中,番茄晚疫病的初期叶片得分最低,为0.62,导致这一现象的原因是病害初期番茄晚疫病与其他病害的差异较小,较难区分。
表3 番茄病害图像在AT-InceptionV3模型上的预测标签与置信度
续表3 Continued Table 3
2.3.1 消融实验
为了充分验证本文方法的有效性,采用消融实验来验证注意力机制、迁移学习的有效性,对比实验分别为InceptionV3从零训练、InceptionV3迁移学习、AT-InceptionV3迁移学习。改进模型与对照组模型的实验设置与结果如表4所示。在实验过程中,主干网络均选取InceptionV3神经网络模型,采用相同的数据集和实验环境,仅更改每次实验需要对比的部分,通过比较在验证集上的平均准确率、损失值、运行时间,以及每种病害的准确率和召回率来对比不同方案的性能。不同方案对番茄病害数据集的训练过程如图5所示。
图5 不同模型在番茄病害数据集上的训练过程
根据分类准确率可知,本研究方法的分类准确率相较于其他方法所呈现的分类效果有明显提升。对比训练过程中的准确率和损失值变化,可明显看出,增加迁移学习后模型能够迅速收敛,达到较高的准确率。当网络增加CBAM注意力模块时,分类准确率相较于原始InceptionV3提高了0.7%(表4)。因此,CBAM混合注意力机制有效增强了病害特征的判别性,提升番茄病害图像的分类精度。以上实验表明,对于小数据域番茄叶部病害数据集,AT-InceptionV3迁移学习方法能够提高病害分类准确率。
表4 实验设置与结果对比
2.3.2 图像精度损失实验
物联网边缘端图像采集设备类型多样,导致采集数据具有不同分辨率,同时为保证图像传输的实时性,部分设备需降低分辨率来减少数据传输量。因此,本文设置4组对照组,像素值分别为256×256、240×240、224×224与128×128。利用不同像素数据集进行AT-InceptionV3模型训练,在测试集上实验所得分类精度结果如表5所示。结果表明,番茄病害图像精度有些许损失的情况下,本文模型的识别精度依然在98%以上,对病害类型的判断影响不大。降低分辨率导致图像中有歧义的病害病斑被消除,使得分类精度提升。
表5 不同分辨率图像实验结果
选取番茄细菌性斑疹病被错误分类的病害叶片,对其降低分辨率,选取的病害图片如表6所示。模型对分辨率为256的病害叶片分类均错误。表6左侧叶片被错误识别为番茄黄曲病,分辨率降低至128时,预测正确。分辨率为256×256、240×240、224×224时,叶片皱缩现象明显,病害分类错误。分辨率降低至128×128,叶片皱缩趋于平缓,细菌性斑疹病病斑更为明显,病害分类正确。表6右侧叶片被错误识别为番茄晚疫病,分辨率降低至240及以下时,病害分类正确。叶边缘部分为易被错误识别的部分,与晚疫病症状表现相似,当分辨率降低,边缘部分症状表现减小,使得歧义相对减小,模型预测标签准确。番茄病害叶表图片分辨率降低,使得叶片病害部分歧义减小,实验表明,由于分辨率的降低导致病害歧义减小,所以预测准确率升高。
表6 不同分辨率的番茄细菌性斑疹病图像在AT-InceptionV3模型上的预测标签与置信度
通过分析智能温室环境下番茄病害检测的研究现状,本文针对小数据域病害检测下病害判别性不足等问题,提出了融合多尺度卷积和注意力CBAM模块的迁移学习方案。在Plant Village公开番茄病害数据集上实验,分类准确率达到98.4%。与传统方法相比,改进的模型具有更高的效率和更好的泛化性,为农业信息化环境下番茄温室智能网络病害图像分析处理提供了一定参考。本文数据集中的番茄病害图像背景简单且症状明显,降低分辨率精度对病害识别影响不大;但病害初期发病时,病斑较小,图像精度降低可能会对分类结果影响较大。在今后的工作中,应该增加病害发病初期的图像和温室内的环境信息来增强番茄病害诊断任务的普适性。