APP下载

基于轻量化卷积神经网络的番茄病害图像识别

2022-08-02林建吾陈孝玉龙曹藤宝喻殿智

无线电工程 2022年8期
关键词:准确率卷积番茄

林建吾,张 欣*,陈孝玉龙,陈 洋,曹藤宝,喻殿智

(1.贵州大学 大数据与信息工程学院,贵州 贵阳 550025;2.贵州大学 农学院,贵州 贵阳 550025)

0 引言

农业是我国国民经济建设和发展的基础。番茄是我国最重要的经济农作物之一,因富含人体所需的多种抗氧化物和矿物质而得到人们的青睐。随着社会发展,人们对番茄品质和产量的要求逐年递增,而番茄病害又是导致品质和产量下滑的重要原因,所以对番茄病害的精准识别和正确防治是目前解决此问题的有效手段之一。传统的番茄病害识别往往得益于农民的长期经验,但是番茄病害种类繁多,通过人工观察识别耗时耗力。因此,为了实现智能又精准的农业技术,智能化农作物病害识别的研究迫在眉睫。随着近年卷积神经网络的迅速发展,农作物病害识别取得了初步进展,已逐步成为各高校与研究所的研究热点,并且已广泛地运用到农作物病害图像识别领域。Xiong等[1]设计了一种在保留植物疾病斑点的同时自动去除图像背景信息的自动图像分割算法,并结合MobileNet进行病害识别分类。项小东等[2]在Xception的基础上,提出了一种新的通道扩增模块,在10种不同植物的50类病害图像中达到了91.9%的准确率。高菊玲[3]首先提取病害叶片图像的Gist特征以及VGG16模型提取的深度特征,通过深度典型相关分析(DCCA)发掘传统特征与深度特征的相关性,从而提高识别效果。李立鹏等[4]提出了一种基于ResNet101和迁移学习的野生植物图像识别方法,通过微调5组残差模块,准确率较原模型提升了7个百分点。曾伟辉等[5]提出了一种可以应用于实际环境农作物病害识别的卷积神经网络模型,并取得了较好的效果。方晨晨等[6]提出了一种新型番茄病害图像识别方法,提升了模型准确率的同时减少了模型所占内存。Tm等[7]通过微调卷积神经网络模型LeNet参数来检测和识别番茄叶片的病害。王东方等[8]提出了一种基于迁移学习用于不指定农作物病害的识别模型,并且实际农业生产环境下取得了很好的效果。Zhang等[9]构建了一种改进的卷积神经网络用于玉米病害的识别,平均准确率达98%以上。上述研究都实现了对农作物病害的识别,但仍然存在一些缺陷,比如识别精度还有待提升,算法模型较大导致无法有效地应用于部分硬件设备。

因此,本文提出了一种基于轻量化卷积神经网络的番茄病害图像识别方法,该方法在保证识别高精度的情况下极大地减少了模型所占内存,使其能够最大程度地应用于性能不同的移动终端和硬件平台,为智慧农业科技的开展提供技术与方法。

1 实验材料

1.1 番茄病害数据集

本文的番茄病害数均来自于Plant Village数据集。Plant Village是一个公开数据库,收集了14种健康和病害植物,共计50 000张图片,38种类别标签。其中番茄病害和健康标签累计10种,因数据标签数量分布不均,本文只选取了一种健康图像和4种病害图像类别标签作为数据集,其中番茄健康图像1 591张,番茄细菌斑点病图像2 127张,番茄晚疫病图像1 909张,番茄斑枯病图像1 771张,番茄二斑叶螨病图像1 676张,番茄病害图像样例如图1所示。

(a) 健康

1.2 数据集预处理

为了保证训练集、验证集和测试集完全独立、无重复,同时为了提升模型的泛化能力,防止过拟合,先将选取的番茄病害数据集按8∶1∶1划分为训练集、验证集和测试集,再采用水平翻转、旋转和加椒盐噪声对训练集进行数据扩充,扩充后的图像样例如图2所示。若先扩充整个数据集再进行划分,会导致同一张图片增强后的多张图片分别出现在训练集、验证集和测试集,造成数据的泄露,验证集和测试集的准确率变得虚高,不能有效地表现出模型的真实性能。最后扩充后的数据集总计33 970张图片,且每张图片的像素均为256 pixel×256 pixel。

(a) 原图

2 番茄病害识别模型

2.1 MobileNetV2网络模型

MobileNetV1[10]由Google团队在2017年提出,用于部署在移动终端和硬件平台的轻量化卷积神经网络,在精度略低于其他传统模型的前提下,极大地减少了模型的计算量。Google团队相继在2018年提出了比MobileNetV1识别精度更高、模型占用资源更小的MobileNetV2[11]。

MobileNetV2中使用深度可分离卷积(Depthwise Separable Convlution)代替了标准卷积(Standard Convlution),然后用于残差模块,可以极大地减少模型的大小和计算资源的消耗。标准卷积如图3所示,假设输入特征图的shape为DF×DF×3,通过3个3×3的卷积核进行标准卷积后,得到3个新的特征图,于是该标准卷积的总计算量为3×3×3×3×DF×DF=81DF2。深度可分离卷积由逐深度卷积(Depthwise Convolution)和逐点1×1卷积(Pointwise Convolution)构成,逐深度卷积就是每个卷积核的维度分别对应输入特征图的每个维度进行卷积,得到一组新的输出;逐点1×1卷积则表示通过1×1卷积组合不同深度的卷积输出,得到一组新的输出。深度可分离卷积如图4所示,若输入的特征图shape为DF×DF×3,先通过3个3×3逐深度卷积后,此时的计算量为3×3×3×DF×DF=27DF2,再通过3个逐点1×1卷积,此时深度可分离的总计算量为27DF2+3×3×DF×DF=36DF2。因此,深度可分离卷积相对于标准卷积减少的计算量为(36DF2)/(81DF2)=4/9,极大地减小了模型参数,达到了轻量化的目的。

图3 标准卷积Fig.3 Standard convolution

图4 深度可分离卷积Fig.4 Deep separable convolution

深度可分离卷积组成了MobileNetV2的Bottleneck,Bottleneck网络结构如图5所示。该结构先通过1×1标准卷积进行升维,再由3×3的深度可分离卷积进行特征提取,大大降低了计算量,最后再由1×1标准的卷积进行降维,从而形成倒残差结构。2个标准卷积分别使用线性整流函数ReLU6[12]和Linear函数进行激活,深度可分离卷积使用标准化BN层[13]和线性整流函数ReLU6进行正则化和激活。采用ReLU6代替ReLU是为了避免ReLU造成低维信息特征的大量损失。图5中分别是步距为1和步距为2的Bottleneck网络结构图,当步距为1和输入特征矩阵与输出特征矩阵的shape相同,2个条件都满足时,才有捷径分支(Shortcut)连接。

(a) Stride=1

MobileNetV2主干网络由17个具有倒残差结构的Bottleneck、一个3×3标准卷积和一层平均池化层(Avgpool)构成,网络结构如表1所示,其中t为1×1卷积核升维扩张的倍数,c为输出的深度,n为当前结构的重复次数,s为步距。

表1 MobileNetV2网络结构Tab.1 MobileNetV2 network structure

2.2 Focal Loss损失函数

多数网络采用交叉熵损失函数(Cross Entropy Loss)作为网络训练的损失函数:

CE(pt)=-lg(pt),

(1)

式中,pt为某个类别的类别分数。从式(1)中可以发现,交叉熵损失函数对于每个样本的损失计算都相同。而本文采用了5种类别的番茄病害图像,包含了1种健康类别和4种病害类别,识别简单和困难的样本不平衡,数据集的多样性导致网络识别病害难度加大,交叉熵损失函数对于本文数据的处理并无优势。针对该问题,本文引入Focal Loss[14]代替交叉熵损失函数,目的是解决难易样本的数量不平衡,提升网络的训练速度和精度。Focal Loss是在交叉熵的基础上改进而来,其核心思想是从损失函数中凸显难分类的样本的权重,使模型在训练时更加专注于难分类的样本,表达式为:

FL(pt)=-(1-pt)γlg(pt),

(2)

式中,pt为某个类别的类别分数;γ为聚焦参数;(1-pt)为调制系数,用来调节不同难易样本的权重。Focal Loss原理如图6所示。

图6 Focal Loss原理Fig.6 Principle diagram of Focal Loss

可以发现,当类别的概率逐步增大时,即该类别属于易分类的样本时,该类别的损失也开始逐渐减小,Focal Loss通过调制系数来减小易分类样本的损失权重,增加难分类的损失权重达到平衡样本的目的。图6中还展示了不同聚焦参数的损失曲线,若聚焦参数过大,损失下降过快;聚焦参数过小,损失下降过慢,效果均不理想。所以,本文选择了聚焦参数为1的Focal Loss作为最终的损失函数。在本文中,使用Focal Loss聚焦于难分类的番茄病害图像样本,减少易分类番茄病害样本的权重,从而实现提升识别准确率的目的。

2.3 迁移学习

迁移学习(Transform Learning)[15]是指通过将已经学习过的相关任务中的知识转移到新的任务中来促进学习。图像分类的任务具有相关性,采用迁移学习可以有效地促进网络收敛,提升准确率,防止过拟合,图像分类实现迁移学习的方式主要有以下3种:

① 载入权重后训练所有参数。

② 载入权重后只训练最后几层参数。

③ 载入权重后在原网络基础上再添加一个全连接层,仅训练添加的全连接层。

②和③两种训练方式冻结层数过多,网络训练的效果不理想,所以本文只采用载入权重后训练所有参数来构建番茄病害识别模型。

2.4 基于轻量化卷积神经网络的番茄病害图像识别模型构建

先将Focal Loss引入MobileNetV2,接着在全连接层添加Dropout层减少模型过拟合,最后将MobileNetV2在ImageNet数据集上训练好的权重参数迁移到改进好的模型中完成模型的搭建。构建的番茄病害图像识别网络FTL-MobileNet如图7所示。

图7 FTL-MobileNet网络结构Fig.7 FTL-MobileNet network structure

当权重载入网络模型后,输入的RGB图像的分辨率会被统一缩放为224 pixel×224 pixel,为了提升网络训练效率,需要对像素做归一化处理。处理后的图像首先通过一个标准卷积和线性整流函数ReLU6提取图像特征,接着通过17个Bottleneck提取特征,得到的特征图再一次经过标准卷积和ReLU6提取高维特征,ReLU6同时保证低维特征的不损失。然后,由自适应平均池化得到shape为1×1×1 280的特征图,将其展平(Flaten)后送入全连接神经网络,并在全连接层添加Dropout。Dropout即随机失活部分神经元,使其在反向传播时暂停更新部分参数,增加模型的泛化能力。由Sotfmax进行番茄病害图像的分类,分类好的图像与原标签采用Focal Loss计算并进行反向传播,直到模型的准确率趋近拟合。

3 结果比较与分析

3.1 评估指标

采用分类准确率(Accuracy)、模型所占内存大小和单张图片耗时作为评估指标,分类准确率高、模型所占内存小以及单张图片耗时低在一定程度上代表模型好。其中分类准确率为:

(3)

式中,TP表示正样本被正确地划分为正样本的个数;FP表示负样本被错误地划分为正样本的个数;FN表示正样本被错误地划分为负样本的个数;TN表示负样本被正确地划分为负样本的个数。

3.2 实验环境

实验配置环境如下:Intel(R) Xeon(R) W-2235 CPU @ 3.80 GHz处理器;NVIDIA GeForce GTX 2080Ti显卡;Windows10专业版操作系统;编程语言为Python 3.8.8;深度学习开源框架为PyTorch 1.6.0。

3.3 模型训练

FTL-MobileNet以32 160张番茄病害图像用于训练,905张番茄病害图像用于验证,905张番茄病害图像用于测试,训练集、验证集和测试集分布如表2所示。同时,以MobileNetV2,ResNet50[16],VGG16[17]和GoogLeNet[18]作为对照组实验,对照组采用交叉熵作为损失函数。优化器选用自适应动量优化器(Adam),初始学习率设置为0.000 1。Adam[19]是利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率,优点主要在于经过偏置校正后,每一次迭代学习率都有确定范围,使得参数比较平稳。训练集和验证集Batch size均设置为32,迭代次数设置为30,FTL-MobileNet网络的Dropout设置为0.2,其他模型均为默认参数。训练过程中保存验证集准确率最高时的权重文件,用于测试集预测。

表2 数据集分布表Tab.2 Dataset distribution

3.4 实验结果与分析

FTL-MobileNet,MobileNetV2,ResNet50,VGG16和GoogLeNet分别迭代30轮,不同模型在训练集与验证集上得到准确率和损失的变化曲线如图8所示。从训练集和验证集的准确率变化可以看出,FTL-MobileNet识别准确率最高,其次是GoogLeNet,VGG16和ResNet50,准确率最低的是MobileNetV2。以网络训练的收敛速度来看,FTL-MobileNet在迭代3轮时完全收敛,其余网络模型则在迭代大约19轮时完全收敛。训练集损失5种网络模型都较为稳定,FTL-MobileNet平均损失最低,GoogLeNet在训练集上平均损失最高,在验证集损失变化曲线图中,5种网络模型均有波动,FTL-MobileNet仅有轻微波动,验证损失波动最大的是ResNet50。综上可以得出,本文提出的FTL-MobileNet比MobileNetV2,ResNet50,VGG16和GoogLeNet在训练集与验证集上识别率更高,完全收敛需要的迭代次数更少,且具有较强的鲁棒性,接下来继续在测试集上测试模型性能。

不同网络模型在测试集上识别番茄病害图像的准确率以及模型所占内存大小如表3所示。可以发现,FTL-MobileNet在测试集上的识别准确率可以达到99.87%,在与MobileNetV2模型大小一样的情况下,改进过的网络识别准确率提升了1.25%。与ResNet50,VGG16和GoogLeNet相比,FTL-MobileNet识别准确率有小幅度提升,但模型大小却远远小于ResNet50,VGG16和GoogLeNet,这表明改进后的网络在一定程度上提升了番茄病害图像识别的效果,而且在具备更好的泛化能力的同时还大大降低了模型所占内存。

(a) 训练集准确率随迭代次数的变化曲线

表3 不同模型的性能比较Tab.3 Performance comparison of different models

为了验证FTL-MobileNet在单张图片的耗时上也具有一定优势,通过输入不同尺寸的测试集图片,对模型的时效性进行测试,5种网络模型都对测试集的多张图片进行测试取平均值,不同输入图像分辨率下的单张图片耗时结果如表4所示。可以发现,FTL-MobileNet在输入大小为128 pixel×128 pixel时耗时最低,仅需0.979 s。MobileNetV2在输入大小为224 pixel×224 pixel和448 pixel×448 pixel时耗时最低,但FTL-MobileNet的准确率高于MobileNetV2,所以综合考虑,FTL-MobileNet在番茄病害图像的识别中具有更好的性能优势。

表4 不同输入图像分辨率下的单张图片耗时比较Tab.4 Time-consuming comparison of a single image with different input image resolutions 单位:s

4 结束语

针对番茄病害图像识别的特点,提出了一种轻量化卷积神经网络模型FTL-MobileNet。该模型通过引入Focal Loss损失函数、Dropout和迁移学习对MobileNetV2进行改进,在Plant Villae数据集上与GoogLeNet,VGG16,ResNet50和MobileNetV2进行实验对比。结果表明,FTL-MobileNet具有收敛速度快、识别准确率高、泛化能力强、模型所占空间小和单张图片耗时低等优势,能够满足番茄病害识别模型部署于各种移动设备和嵌入式设备的要求。提出的轻量化模型也有一些不足之处,使用的公共数据集背景过于简单。接下来将针对复杂环境下的番茄病害图像,不断地优化模型的性能,并将其部署于设备中用于田间实际的番茄病害识别。

猜你喜欢

准确率卷积番茄
秋茬番茄“疑难杂症”如何挽救
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
从滤波器理解卷积
HOME家系列