APP下载

基于深度学习与高光谱成像的蓝莓果蝇虫害无损检测

2023-03-07田有文姜凤利

农业机械学报 2023年1期
关键词:果蝇虫害蓝莓

田有文 吴 伟 林 磊 姜凤利 张 芳

(1.沈阳农业大学信息与电气工程学院, 沈阳 110866;2.农业农村部园艺作物农业装备重点实验室, 沈阳 110866)

0 引言

蓝莓生长过程中容易受到果蝇虫害侵染[1-3],果蝇会在蓝莓果实中产卵,幼虫将蓝莓果肉作为养分,蓝莓颜色较深,且果蝇产卵虫眼较小,人类肉眼难以分辨蓝莓遭受虫害情况,而人工分类费时费力、效率低、准确性差,因此实现蓝莓虫害自动、快速、准确的无损检测十分重要。

近年来,高光谱成像作为一种新兴的无损检测技术,集成了光谱信息和成像技术,具有较高的光谱和空间分辨率,已被证明是一种有效的水果质量和安全检测技术[4]。利用高光谱成像技术检测水果虫害的研究已有报道[5-8]。通过高光谱成像获得的综合信息有助于从不同方面研究水果品质,其主要的挑战是处理大量数据并有效地学习有用信息。其中最关键是引入各种机器学习方法来识别水果虫害,从而取得良好的性能。除了传统的机器学习方法外,深度学习模型已被引入高光谱数据分析[9-14]。AGARWAL等[9]获得了约2 000幅高光谱图像,通过卷积神经网络(Convolutional neural networks,CNN)和胶囊网络两种深度学习模型,对谷仓中谷蠹和变形虫的全身及其碎片图像进行图像处理,获得90%以上的识别准确率。HAN等[10]采集黄曲霉毒素污染前后73个花生样品的146幅高光谱图像,提出一种像素光谱的图像重构方法。通过CNN方法与不同的识别模型进行比较,发现深度学习识别模型优于传统的识别模型。SONIA等[11]采集马铃薯泥上死的和活的产孢梭菌孢子高光谱图像,采用深度神经网络(CNN)和随机森林模型(RF)对不同孢子菌株数量进行检测,结果表明CNN模型总体准确率达90%~94%。GAO等[12]对早熟和成熟草莓的高光谱图像提取前3个主成分空间特征图像,采用预训练的AlexNet卷积神经网络对样品草莓成熟度进行实时分类,测试数据集准确率达98.6%。费婧怡[13]提出了基于A-ResNet元学习模型的大豆食心虫虫害高光谱检测方法,并进行了改进,模型准确率达94.57%±0.19%。冯喆等[14]分别采用一维神经网络1DCNN和二维卷积神经网络2DCNN,建立山核桃内源性异物的检测模型,2DCNN模型性能较好,训练集和测试集分类准确率分别提高至100%和98.5%。

本文针对蓝莓受果蝇虫害侵染后存在人工分拣效率低、准确度差等问题,采用高光谱成像技术采集蓝莓果蝇虫害高光谱图像并进行降维获取图像数据集,然后构建VGG16、InceptionV3与ResNet50 3种深度学习模型对蓝莓果蝇虫害进行数据处理与无损检测,并提出对深度学习模型结构、损失函数和激活函数加以改进的方法。采用Grad-CAM进行可解释性分析,以证明改进模型识别蓝莓果蝇虫害的准确性。

1 材料与方法

1.1 样本制备

本文所用蓝莓样本是在2021年6—7月期间采摘于沈阳农业大学小浆果实践教学与科研基地,有杜克与蓝丰2个品种。采摘后置入5℃冰柜中去除田间热,4 h后取出蓝莓,选取大小与质量相似、果实外表匀称、无明显损伤或病虫害的健康果实进行试验。试验样本质量在1.5~2.5 g之间,直径为10~15 mm。选取200个杜克品种与200个蓝丰品种共计400个蓝莓样本,混合后进行分组试验。将样本分为8组,每组50个样本,随机选取6组样本进行虫害试验,其余2组作为健康样本进行培养。将每组蓝莓样本放置于培养器皿中并编号记录。

为了保证果蝇生存环境,在培养器皿一侧打出若干个孔洞,采用透气的纱布将孔洞部分盖住,这样在保证空气流通的同时,能够减少细菌和灰尘等杂质进入培养皿,也能防止果蝇逃出培养器皿。随后在6组培养皿中各放入15只成熟期果蝇进行培养。将培养器皿置于25℃±3℃、相对湿度为30%的恒温培养箱中培育,每2 d采集一次高光谱图像,待到果蝇在蓝莓中产卵,果蝇幼虫通过虫洞钻出蓝莓,即可知该样本已遭受虫害,筛选对应蓝莓的高光谱图像作为果蝇虫害图像。

1.2 数据采集

本文所用光谱成像系统包括[15]:1个金属暗箱(120 cm×50 cm×140 cm)、1个成像光谱仪(ImSpector V10E型,Spectral Imaging Ltd.,芬兰)、1台高性能CCD相机(IGV-B1410M型, IMPERX incorporated,美国)、1个可控位移平台(IRCP0076-1型,中国)、2个卤素灯(150W,3900 Illuminatior,Illumination Technologies Inc.,美国)、1个DELL工作站(Vostro 5560D-1528型)。成像光谱仪光谱范围为400~1 000 nm,光谱分辨率1.27 nm。CCD相机配有一个相机镜头(IGV-B1410型,分辨率1 392像素×1 040像素)。

采用高光谱成像系统采集健康蓝莓和受果蝇侵染的蓝莓高光谱图像。首先成像仪预热30 min,保证试验过程中成像仪正常运转。将CCD相机镜头与蓝莓样本之间距离设为30~32 cm并进行镜头调焦。然后设置位移控制平台的最佳横移速度,采用硬币进行反复测试后认为横移速度在1.2 mm/s时成像效果最佳。最后进行黑白板校正。因为试验所用高光谱成像系统中卤素灯位置固定,无法跟随位移平台移动,会导致光源照射强度发生变化;其次电流波动也会对光谱数据产生干扰。因此需要对采集的高光谱图像R0进行校正操作,以减小外部环境带来的干扰,黑白板校正计算式为[16]

(1)

式中Rx——校正后高光谱图像

Rw——扫描标准白板得到的图像

Rd——盖上镜头采集到的黑色图像

采用蓝莓样本进行高光谱图像采集,按照虫害样本图像与健康样本图像进行分类保存,其中虫害样本图像300幅,健康样本图像100幅,共计400幅蓝莓样本高光谱图像。

1.3 蓝莓高光谱图像降维

采集到的蓝莓高光谱图像是一个数据立方体[17],含有大量的冗余信息[18]。本文采用PCA算法[19]对蓝莓数据集进行降维操作。在试验过程中,保留每幅高光谱图像99.9%的特征,每幅高光谱图像获得PC1、PC2、…、PC7前7个主成分图像,基本能够反映出图像中蓝莓样本的形状、纹理、亮度、颜色和边缘等信息,结果如图1所示。

图1 PCA方法降维结果Fig.1 Dimensionality reduction result of PCA method

由图1可知,PC1图像显示的虫害特异性不明显,PC4以后的主成分图像相对于前几个主成分图像含有明显噪声,PC2和PC3图像显示的虫害特异性比较明显,故本试验将优先选取PC2与PC3数据集进行后续试验。并在此基础上,将PC2与PC3图像进行拼接,组成PC23数据集。

1.4 图像增强

由于数据集所含图像数据较少,每个数据集所含图像数量不足1 000,而后续试验中深度学习算法需要大量的图像进行模型训练,为防止模型产生过拟合,故采用数据增强技术[20],对各类图像增加水平、垂直翻转、模糊、高亮、低亮、镜像、随机添加噪声等操作(图2),使各数据集容量扩增为原始容量的18倍,将每类图像样本由原来的1 200幅增加到21 600幅。因数据增强前后图像大小存在差异,使用Matlab自编函数将其统一调整至224像素×224像素,图像增强结果如图2所示。进行图像增强之后各数据集PC2、PC3、PC23所含图像数量为7 200幅。

图2 图像增强结果Fig.2 Result of image enhancement

1.5 深度学习模型与评价指标

卷积神经网络模型(Convolutional neural network,CNN)在图像分类应用方面比较突出[21],主要由输入层、卷积层、池化层、激活函数、全连接层、损失函数和输出层等部分组成。图像输入之后,经过多层卷积层和池化层对图像进行特征提取,最后经过全连接层由输出层输出结果。常用卷积神经网络模型有VGGNet、InceptionV3、ResNet50等[22-25]。

采用VGG16、InceptionV3和ResNet50 3种卷积神经网络模型进行果蝇虫害蓝莓深度学习试验,探究在虫害蓝莓无损检测试验中准确率最高、损失率最低的深度学习模型,并对模型进行改进,进一步提高模型检测准确率。

深度学习模型评价指标为准确率和损失函数值。

2 试验结果与分析

2.1 试验环境

试验均采用华硕Rog计算机,在Anaconda 3集成环境与Pytorch 1.6.0环境下完成。具体试验环境如表1所示。

表1 试验环境Tab.1 Experimental environment

2.2 数据集筛选

初步选择3个蓝莓样本图像数据集PC2、PC3和PC23,将各数据集按照4∶1的比例分为训练集与测试集。对所有数据集分别采用ResNet50、InceptionV3、VGG16深度学习模型进行试验。采用不同数据集对3个模型分别进行训练与测试,根据各数据集的识别准确率选取效果最佳的数据集进行后续深度学习试验。3个模型的测试集识别准确率如表2所示。

表2 蓝莓果蝇虫害数据集试验识别准确率Tab.2 Experimental performance of blueberry fruit fly pests in three data sets %

由表2可知,在3个模型测试中PC23的数据集准确率均高于PC2与PC3数据集的检测准确率,因此后续试验中将选取PC23数据集作为试验数据集。

2.3 模型对比分析

采用图像增强后的PC23数据集作为试验数据集,将数据集按比例9∶1分为训练集(6 480幅)与测试集(720幅)。

在试验之前,采用集成环境中的Resize函数调整输入图像尺寸,创建每次试验的记录文件。采用VGG16、InceptionV3与ResNet50 3种网络模型进行深度学习试验,损失函数采用交叉熵损失函数,激活函数采用ReLU,记录每次试验准确率与损失率。经多次试验,设置处理批次为16,训练轮次为50,初始学习率为0.001时模型训练效果最佳。各个模型训练集评价指标如图3所示。

图3 3种模型训练集性能对比Fig.3 Performance comparison of three model training sets

由图3可知,VGG16、InceptionV3与ResNet50 3个模型准确率、损失率都在训练到达第30个轮次以后趋于平稳状态,直至第50个轮次并未发生明显剧烈波动,证明模型已收敛至稳定状态。由图3a可知,InceptionV3模型训练收敛最快,ResNet50模型次之,VGG16最慢。由图3b可知,InceptionV3模型收敛速度较慢,VGG16模型收敛速度最快,但最终出现了波动,稳定性不如其他2个模型。总体3个模型都达到了较好的识别效果,ResNet50模型训练用时明显低于VGG16与InceptionV3模型,3个深度学习模型的测试结果如表3所示。

表3 3种深度学习模型试验结果对比Tab.3 Comparison of experimental results of three deep learning models

由表3可知,3个深度学习模型VGG16、InceptionV3与ResNet50在蓝莓果蝇虫害识别方面都取得了较好的效果,准确率都不小于89.84%,其中ResNet50模型在3个模型中性能最好,其准确率达到92.92%。原因为ResNet50模型加深了网络层数,并采用残差结构缓解梯度爆炸与梯度度消失的问题。同时残差块的存在大幅减少了模型参数量,提高了模型计算效率,使其仅用较少的训练时间就获得了较高的识别性能,因此ResNet50模型在蓝莓虫害无损检测方面性能较佳。

2.4 改进ResNet50模型

采用ECA注意力机制、Focal Loss损失函数与Mish激活函数对ResNet50模型进行改进,以期望能够进一步提高果蝇虫害蓝莓的检测性能。

2.4.1ECA注意力机制

对蓝莓果蝇虫害进行识别时,主要依靠卷积层识别蓝莓虫害部位的局部特征。近些年来,注意力通道机制被证明在提高各种卷积神经网络模型局部特征识别性能及整体模型识别精度方面有很高的研究价值。注意力机制从数学原理可解读为加权求和,从人类感知方面可解读为人类对环境的观察中所关注到的最重要的局部信息。在深度学习模型进行训练时,加入注意力机制可以使模型在局部特征的识别过程中对贡献率较大的局部特征加以更高的权重,以提高模型准确率。

为了提高模型性能,多数注意力机制模块设计十分复杂,导致注意力模块含有大量参数,在提高性能的同时也不可避免增加了模型参数量,占用更多计算资源,增加了模型计算时间。本文采用高效注意力通道(Efficient channel attention,ECA)模块[26],通过允许跨通道交互,避免了降维带来的损失,而且ECA注意力模块仅包含少量参数,同时能有效提高模型精度。

ECA模块从输入信息中获取通道维度C后,将图像进行全局平均池化,自适应选择卷积核后进行卷积获取每个特征所含权重,最后将带有权重信息的特征通过激活函数后将激活的权重信息赋值到对应的特征中,作为ECA模块的输出。本文在保持数据集、降维所用方法不变的情况下,将ECA模块添加至ResNet50模型的Bottleneck卷积过程中,构建ECA-ResNet50模型,果蝇虫害蓝莓检测的独立试验结果如图4与表4所示。

图4 ECA-ResNet50模型训练准确率与损失率对比Fig.4 ECA-ResNet50 model training accuracy and loss rate

表4 ECA -ResNet50模型与其他3种模型测试集结果对比Tab.4 Comparison of test set results between ECA-ResNet50 model and other three models

由图4可知,ECA-ResNet50的准确率、损失率在训练时较快达到平稳状态。由于各模型最终训练差异在整体图像中显示不明显,因此将最终阶段图像放大显示,可以更清晰地观测各模型试验结果的差异。最终ECA-ResNet50模型训练集的准确率优于VGG16、InceptionV3和ResNet50模型的准确率。由表4可知,将ResNet50模型中添加ECA注意力模块后,损失率有所下降,测试集准确率得到提升,表明ECA注意力模块能够提升模型性能。由于在模型中添加了新的模块,增加了参数量,因此训练耗时也有一定程度增加。

2.4.2损失函数改进

在蓝莓果蝇虫害检测试验过程中,数据集内的部分早期果蝇虫害样本与健康蓝莓样本差异性较小,在分类过程中属于较难分类样本;而与健康蓝莓差异性较大的样本则可归类为较易分类样本。在ResNet50模型默认的交叉熵函数中,对于较易分类样本和较难分类样本的计算权重相同,不利于较难分类样本的计算。当较易分类样本所占比重较大时,对损失率影响过大,使得损失函数对参数的更新无法有效提高较难分类样本的预测能力。因此本文采用在二分类问题中效果较好的Focal Loss损失函数[27],构建Focalloss-ResNet50模型,以降低较易分类样本对Loss的影响,其原理为

FL(pt)=-αt(1-pt)γlgpt

(2)

式中γ为聚焦参数,取值大于等于0,(1-pt)γ是调制系数,通过调制系数可以有效降低较易分类样本权重,提高较难分类样本权重。在二分类问题中,γ通常赋值为2。通过改变参数αt的赋值改变正负样本对总损失率共享权重,αt取值越小,负样本权重越低。

在保持数据集、降维所用方法不变的情况下,将Focal Loss损失函数代替ResNet模型中的交叉熵,试验结果如图5与表5所示。

由图5与表5可知,将ResNet50模型中的交叉熵损失函数改为Focal Loss损失函数后,训练集的准确率、损失率都优于VGG16、InceptionV3和ResNet50模型,测试集准确率得到提升,训练耗时几乎没有变化,表明更换的Focal Loss损失函数效果优于原始的交叉熵损失函数,能够提升模型性能。

图5 Focalloss-ResNet50模型训练集准确率与损失率对比Fig.5 Focalloss-ResNet50 model training accuracy and loss rate

表5 Focalloss-ResNet50模型与其他3种模型测试集结果对比Tab.5 Comparison of test set results between Focalloss-ResNet50 model and other three models

2.4.3激活函数改进

本文深度学习模型采用激活函数ReLU。当输入为负值时会被截断为0,通常情况下认为负值表示引入了背景信息或噪声信息,因此将负值截断既排除了干扰信息也增加了网络稀疏性。但ReLU带来的稀疏性也可能阻碍网络训练过程,负值并不表示必然存在干扰信息,截断为0代表屏蔽该特征,可能会导致模型学习过程中漏掉某些关键特征,在学习率较大的情况下,可能会使大部分神经元进入截断状态,在当次训练中的被截断神经元都将无法再学习。为了解决负值截断问题,本文采用Mish激活函数[28]代替ResNet50模型中的ReLU激活函数进行试验,Mish激活函数为

f(x)=xtanh(softplus(x))=xtanh(ln(1+ex))

(3)

Mish激活函数是一个平滑、连续、自正则、非单调的激活函数。与ReLU激活函数类似,Mish激活函数也存在有下界无上界的特点,但是Mish在负值输入时理论上可接受,虽随着负值越小而越趋近于0,但与ReLU的硬性截断并不相同。允许负值输入使得Mish激活函数拥有更好的梯度流,其平滑性远优于ReLU激活函数,在一定程度上提高对特征的接受能力,提高模型训练效果。

在保持数据集、降维所用方法不变的情况下,将ResNet50模型中的ReLU激活函数替换为Mish激活函数后,构建Mish-ResNet50模型,果蝇虫害蓝莓检测的独立试验结果如图6与表6所示。

图6 Mish-ResNet50模型训练准确率与损失率对比Fig.6 Mish-ResNet50 model training accuracy and loss rate

表6 Mish-ResNet50模型与其他3种模型测试集结果对比Tab.6 Comparison of test set results between Mish-ResNet50 model and other three models

由图6与表6可知,采用Mish-ResNet50模型对果蝇虫害蓝莓检测,训练集准确率有较大提升、损失率有较大下降,都优于VGG16、InceptionV3和ResNet50模型,测试集准确率从92.92%提升至94.17%,效果较为明显,同时训练耗时略有增加,表明Mish激活函数提升能够提升ResNet50模型在虫害蓝莓检测性能。

2.4.4结果与分析

将ECA注意力模块、Focal Loss损失函数、Mish激活函数引入ResNet50模型后,均有利于准确率与损失率,故将这三者一同引入ResNet50模型中,构建im-ResNet50模型,进行果蝇虫害蓝莓检测训练与测试。得出im-ResNet50模型的训练集损失率降为1.52%,降低1.56个百分点,测试集准确率提高到95.69%,提高2.77个百分点。改进后的网络结构图如图7所示。将训练结果的准确率与损失率与VGG16模型、ResNet50模型、InceptionV3模型进行对比,如图8所示,4个模型的测试集性能指标如表7所示。

图7 im-ResNet50网络结构图Fig.7 Architectures for im-ResNet50

图8 4种模型训练集性能对比Fig.8 Performance comparison of training sets of four model trainings

由图8和表7可知,改进后的im-ResNet50模型准确率最高与损失率最低。但也可以看出,由于引入了ECA模块,替换了损失函数与激活函数,增加了模型的参数量,模型训练用时相较于ResNet50模型略有增加,但仍低于VGG16模型与InceptionV3模型,以少量的计算代价获得了较为明显的识别性能提升。

表7 im-ResNet50模型与其他3种模型测试集结果对比Tab.7 Comparison of test set results between im-ResNet50 model and other three models

2.5 模型可解释性分析

(4)

式中y——概率c——类别标签

Z——特征图分辨率

(5)

采用Grad-CAM将模型识别结果贡献率最高部分可视化,如图9所示。

图9 蓝莓Grad-CAM可视化结果Fig.9 Visualization results of Grad-CAM

由图9可知,颜色越蓝,表示特征所占权重越低;颜色越红,表示特征所占权重越高,对检测分类判别贡献越大。由图9a可看出,im-ResNet模型在识别性能较高的同时,对果蝇虫害部位的识别也比较准确,模型中占有较高权重的局部特征与蓝莓遭受虫害部位相符合,由图9b可看出,蓝莓所在部位皆为深蓝色,即没有虫害特征。通过Grad-CAM热力图可以直观地显示出对模型检测分类最有价值部分,提高了模型可解释性。

3 结论

(1)对蓝莓高光谱图像采用PCA进行降维,从7个主成分数据集中选取最佳数据集为PC2与PC3两个数据集,将其进行拼接得到PC23数据集试验效果更优,选用PC23数据集作为蓝莓果蝇虫害图像试验数据集。对数据集中图像进行90°旋转、180°旋转、模糊、高亮、低亮、镜像和高斯噪声共计 7种增强操作,使各数据集容量扩增为原始容量18倍。

(2)采用VGG16、ResNet50与InceptionV3深度学习模型对蓝莓虫害图像进行识别检测,均取得了较高的识别准确率。其中ResNet50模型效率最高,训练用时明显少于VGG16模型与InceptionV3模型,而且ResNet50模型的准确率最高,达到92.92%,损失率最低,仅有3.08%。

(3)从ECA注意力模块、Focal Loss损失函数与Mish激活函数3方面对ResNet50模型进行改进,构建了改进的im-ResNet50模型,提升了蓝莓虫害识别能力,其相对于ResNet50模型将识别准确率提升2.77个百分点,同时损失率降低1.56个百分点,但由于增加了参数量,训练用时也略有增加。整体而言,im-ResNet50模型以少量的计算代价获得了较为明显的识别性能提升。

猜你喜欢

果蝇虫害蓝莓
果蝇遇到危险时会心跳加速
蓝莓建园技术
2021年大樱桃园果蝇的发生与防控
桃树主要虫害及防治方法
蓝莓姑娘
不用农药也能治虫害
小果蝇助力治疗孤独症
果蝇杂交实验教学的改进策略
浅析白三叶的虫害防治
行道树香橼主要虫害及其防治