计算机系统应用  2023, Vol. 32 Issue (1): 385-391   PDF    
改进MobileNetV2算法的番茄叶片病害种类识别
黄乾峰, 董琴, 韦静     
盐城工学院 信息工程学院, 盐城 224051
摘要:番茄叶片病害种类具有差异较小、肉眼难以辨别的特点. 针对经典卷积神经网络参数多、计算量巨大、模型识别率较低以及预测误差较大等问题, 提出一种改进MobileNetV2网络的病害识别方法. 在适当的网络层加入通道和空间注意力机制增强网络对于病叶片特征的细化能力以及减少无关特征的干扰, 使用Ghost模块替换原模型中部分倒残差块, 保证模型精度的同时减少参数量. 利用LeakyReLU激活函数保留特征图中更多的正负特征信息, 增强模型的鲁棒性. 在公共数据集PlantVillage选取早疫病, 晚疫病, 班枯病, 细菌性溃疡病, 红斑叶螨病, 叶霉病, 细菌性斑点病等10种番茄病叶片作为数据集进行实验. 实验结果表明, 改进MobileNetV2网络分类准确率达到98.57%, 相较于原MobileNetV2, 准确率提高了2.29%, 模型大小减小了22.52%, 优化效果较为显著.
关键词: MobileNetV2    注意力机制    Ghost模块    病害识别    图像分类    深度学习    
Identification of Tomato Leaf Disease Varieties by Improved MobileNetV2 Algorithm
HUANG Qian-Feng, DONG Qin, WEI Jing     
School of Information Engineering, Yancheng Institute of Technology, Yancheng 224051, China
Abstract: The varieties of tomato leaf diseases are of small differences and are hard to distinguish with the naked eye. Given that the classical convolutional neural network is exposed to various problems, such as a large number of parameters, heavy computation burden, a low identification rate of the model, and a large prediction error, this study proposes a disease identification method based on an improved MobileNetV2 network. A channel and a spatial attention mechanism are added to the right network layer to enhance the ability of the network to specify the features of diseased leaves and reduce the interference of irrelevant features. The Ghost module is used to replace some of the inverted residual blocks in the original model to ensure the accuracy of the model and reduce the number of parameters. The LeakyReLU activation function is employed to retain more positive and negative feature information in the feature map and thereby enhance the robustness of the model. Ten tomato leaf diseases, including early blight, late blight, spot blight, bacterial canker, erythema tetranycariasis, leaf mildew, and bacterial spot, are selected from the public dataset PlantVillage to serve as the experimental dataset. The experimental results show that the classification accuracy of the improved MobileNetV2 network reaches 98.57%, which is 2.29% higher than that of the original MobileNetV2, and the model size is reduced by 22.52%, representing a remarkable optimization effect.
Key words: MobileNetV2     attention mechanism     Ghost module     disease identification     image classification     deep learning    

番茄属一年生或多年生草本植物, 原产于南美洲, 是世界上重要的果蔬作物之一[1], 在我国也被广泛种植, 在农业生产中占有重要地位. 番茄在它的生长周期内会遭遇各种各样的病害, 及时有效地解决病害问题可以减少农业损失. 然而传统的识别农作物病害的方法主要依靠农民们在长期工作中积累的经验, 由于病害的症状复杂多变, 往往对专业的知识具有很高的要求[2], 且通过人工识别农作物的病害具有效率低和误差大等问题.

随着人工智能和深度学习的快速发展与应用, 图像分类技术也被应用于农业病害识别中, 目前国内外学者已经有不少相关的研究成果. Hassan等人采用InceptionV3和MobileNetV2等4个模型对14种不同的农作物共计38种病害进行分类识别, 为了评估模型性能, 引入不同的参数, 最终准确率达到了98.42%和97.02%[3]. Turkoglu等人结合了6个最新的卷积神经网络, 根据所得到的性能结果, 分别采用多数投票集成模型和早期融合集成模型的在15种植物病害识别的准确率分别为97.56%和96.83%[4]. 张宁等人提出了一种改进的AT-InceptionV3神经网络番茄叶部病害检测模型, 对5种常见的番茄病害识别准确率达到98.4%[5]. 黄英来等人提出一种改进的深度残差网络模型的玉米病叶片识别算法, 最终对玉米病叶片的识别准确率达到了98.3%[6].

纵观上述这些研究工作, 利用经典卷积神经网络模型对农作物病叶片进行图像分类识别具有参数量多、计算量大、模型大和对设备要求较高等问题, 轻量化卷积神经网络进行分类识别也具有识别精度较低, 预测误差较大等问题. 针对这些问题, 提出一种改进的轻量化卷积神经网络MobileNetV2, 通过融入空间和通道注意力机制(convolutional block attention module, CBAM), 增强网络模型对病叶片特征的细化能力以及减少无关特征的干扰, 将部分卷积模块替换为Ghost模块, 在保证精度的同时减少了参数量, 将深度可分离卷积模块中的ReLU6激活函数替换为LeakyReLU, 保留了图像中更多的正负特征信息. 在公开数据集PlantVillage的番茄病叶片上进行实验, 实验结果表明该方法有效地提高了对番茄病叶片种类的识别准确率, 还降低了参数量和减轻设备的内存负担.

1 相关方法 1.1 MobileNetV2

MobileNetV2[7]继续使用了在MobileNetV1[8]中大放异彩的深度可分离卷积操作. 其所做的创新是用大量倒残差块和线性瓶颈层对图像的特征进行提取, 实验证明, 使用线性层是至关重要的, 可以有效防止非线性破坏特征信息. 倒残差结构是先使用逐点卷积升维, 再用深度卷积, 最后用逐点卷积降维, 这样做的好处是减少参数与计算量并且能更好地提取有用的特征. 除此以外, 在深度卷积步长为1的反向残差块中, 输入和输出的维度相同, 此时的输出为最后一次逐点卷积的结果加上输入的和[9]. 倒残差块的结构如图1所示.

图 1 倒残差块的结构图

1.2 注意力机制

注意力机制的思想来源于人类的视觉注意过程, 对关键区域加入注意力焦点以获取所需的细节信息[10]. 番茄的各类病叶片颜色, 形状, 纹理等方面存在着差异, 病害的分布相对较为集中, 故使用卷积神经网络模型对病害进行分类识别希望的是模型更能关注到病害所处的位置以及表现, 以便于更好地提取到病害的特征. 故对于番茄病叶片的图像进行分类其实属于细粒度图像分类[11]. 本文提出的改进的模型中通过引入混合通道和空间注意力机制模块(CBAM)来更好地获取番茄病叶片的病害特征. 卷积神经网络浅层网络提取的是图像的颜色, 纹理等特征, 深层网络提取的是形状, 语义等特征, 因此在提出的MobileNetV2第一个卷积层和倒残差模块之间, 以及最后一个倒残差模块和平均池化层之间都加入了CBAM模块. CBAM模块会依次利用通道注意模块和空间注意模块, 使每个分支分别在通道轴和空间轴上学习注意的“什么”和“哪里”, 有效地帮助番茄的病害信息在网络中流动[12]. 如图2所示, CBAM模块先经过通道注意模块, 再经过空间注意模块[13], 先将输入的特征图F进行全局平均池化和全局最大池化, 通过多层感知器MLP, 再将所得结果进行求和, 利用Sigmoid激活函数得到Mc(F), 令Mc(F)和特征图F进行逐点相乘得到通道注意力特征图F1, 同理, 再得到空间注意力特征图F2, 也就是最后的CBAM模块的输出结果. 计算公式如式(1)–式(4)所示:

$ F_{1}=M_{c}(F) \otimes F $ (1)
$ F_{2}=M_{s}\left(F{}\right) \otimes F_{1} $ (2)
$ \begin{split} M_{c}(F) &= \left.\sigma\left(M L P(A v g p o o l(F))+M L P\left(M a x p o o l(F)\right)\right)\right) \\ & =\sigma\left(W_{1}\left(W_{0}\left(F_{\text {avg }}^{c}\right)\right)+W_{1}\left(W_{0}\left(F_{\max }^{c}\right)\right)\right) \end{split} $ (3)
$\begin{split} M_{s}(F)&=\sigma\left(f^{7 \times 7}([A v g p o o l(F) ; {Maxpool}(F)])\right) \\ & =\sigma\left(f^{7 \times 7}\left(\left[F_{\text {avg }}^{s} ; F_{\max }^{s}\right]\right)\right) \end{split} $ (4)

其中, σ(·)表示Sigmoid非线性激活函数, MLP表示全连接隐藏层和全连接输出层, Avgpool表示全局平均池化, Maxpool表示全局最大池化, F表示输入的特征图, F1表示通道注意力模块输出的特征图, F2表示空间注意力模块输出的特征图, $\otimes $ 表示逐点相乘, Mc(F)表示在通道注意力上进行的操作, Ms(F)表示在空间注意力上进行的操作, W1W0代表权重矩阵, $F_{{\rm{avg}}}^c$ 表示全局平均池化向量, $F_{{\rm{max}}}^c$ 表示全局最大池化向量, $ {f^{7 \times 7}} $ 代表边长为7的卷积核.

图 2 通道空间注意力机制(CBAM)结构图

1.3 LeakyReLU激活函数

ReLU激活函数可以缓解梯度弥散的现象, 因此被广泛使用[14]. 但是ReLU将 $ x<0 $ 的部分输出就直接置为0, 导致部分神经元出现坏死现象, 并且提取特征的时候把负值特征直接丢弃掉, 故本文的模型中把ReLU激活函数替换为LeakyReLU, LeakyReLU函数在负半轴部分引入一个Leaky值, 这个Leaky值通常为一个较小的常数, 能保证导数一直不为0, 减少静默神经元的出现, 很好解决了ReLU函数所带来的问题, 进一步增强了模型的鲁棒性. LeakyReLU函数的公式如式(5)所示, 式中, $ x_{i} $ 表示第i层的输出, $ y_{{i}} $ 代表经过非线性变换之后的输出,ai是(1, ∞)的固定常数.

$ y_{{i}}=\left\{\begin{array}{ll} x_{i}, & x_{{i}}>0 \\ \dfrac{x_{{i}}}{a_{i}}, & x_{{i}}<0 \end{array}\right. $ (5)
1.4 融入Ghost模块和CBAM的MobileNetV2网络

Han等人为了解决深度神经网络特征图的冗余问题提出了Ghost模块[15], 该模块通过一系列线性操作来生成更多特征映射, 以一种经济有效的方式生成丰富的信息, 既保证了模型的精度, 又减少了模型的参数. 假设生成n通道的特征图, 缩放比例为s, 卷积核尺寸为k, 输入数据的通道数为c, 使用Ghost模块的参数压缩比计算如式(6)所示: 可将网络的参数量压缩成原来的1/s. 改进模型中使用3个Ghost瓶颈层来替换MobileNetV2中原有的第2和第3个倒残差模块. Ghost瓶颈层由两个Ghost模块构成, 第1个模块用作扩展层来增加通道数, 第2个模块减少通道数, 使其与shortcut一致, 然后连接两个Ghost模块的输入和输出, 其中步长为2的Ghost瓶颈层插入了DW卷积, 再一次降低了参数的规模[16]. Ghost瓶颈层的结构如图3所示. 改进MobileNetV2网络结构如图4所示.

图 3 Ghost瓶颈层

图 4 改进之后的MobileNetV2结构

$ \begin{split} \\ r_{c}=\dfrac{n \times c \times k \times k}{\dfrac{n}{s} \times k \times k+(s-1) \times \dfrac{n}{s} \times k \times k} \end{split} $ (6)
2 实验及结果分析 2.1 数据集

本研究数据集采用TensorFlow官方网站的PlantVillage中的番茄病叶片数据集, 选取了共计14 250张番茄病叶片图, 其中早疫病图像1 200张, 晚疫病图像1 500张, 细菌性溃疡病图像1 500张, 班枯病图像1 500张, 红斑叶螨病图像1 500张, 花叶病毒图像1 250张, 轮斑病图像1 500张, 细菌性斑点病图像2 000张, 叶霉病图像1 200张, 健康图像1 100张, 按照6:3:1的比例划分为训练集, 验证集和测试集, 图像大小都为256×256, 输入卷积神经网络的时候缩放为224×224. 部分数据集样本如图5所示.

图 5 番茄病害数据集

2.2 实验超参数设置与评价指标

为了对比加入CBAM模块和Ghost瓶颈层的MobilNetV2模型和原MobileNetV2的效果, 本实验的平台基于Windows操作系统, PyTorch 1.7深度学习框架, GPU为NVIDIA GeForce MX250, CUDA 10.1并行计算架构, cuDNN 7.6.5深度学习库版本. 模型训练的优化器选用Adam, 损失函数选择CrossEntropyLoss函数, 动量参数设置为固定值0.9, 学习率设置为0.000 1, batch-size设为16, 训练轮数为100次.

为了进一步验证本文方法的有效性, 保存模型训练的权重, 利用测试集进行预测实验, 利用混淆矩阵可视化预测的精度结果, 混淆矩阵的行标签和列标签分别表示预测图像的真实类别和预测类别, 对角线的值表示预测正确的标签数量, 行列交叉的数值表示该类别被预测为当前标签的数量, 因此对角线的数值越大代表模型的识别效果更好. 并采用准确率(Accuracy), 精度(Precision)为评价指标, 指标的计算公式如式(7), 式(8)所示.

$ { Accuracy }=\frac{T P+T N}{T P+T N+F P+F N} $ (7)
$ { Precision }=\frac{T P}{T P+F P} $ (8)

其中, TP表示模型预测为正的正样本, TN表示模型预测为负的负样本, FP表示模型预测为负的正样本, FN表示模型预测为正的负样本.

2.3 消融实验及结果分析

为了证明MobileNetV2网络中的各项改进对于提升网络的性能都有贡献, 设计消融实验, 本消融实验主要包括CBAM注意力机制的加入, ReLU激活函数的替换为LeakyReLU以及在原网络结构中引入Ghost模块. 主要以网络模型的大小, 参数量以及测试集的准确率作为评判标准.

为了验证在MobileNetV2网络中加入CBAM注意力机制可以更好地关注番茄病叶片的特征, 提高网络的识别准确率, 设计对比实验, 因此在MobileNetV2第一个卷积层和倒残差模块之间, 以及最后一个倒残差模块和平均池化层之间都加入了CBAM模块. 为了验证引入Ghost模块可以在保证原有网络的识别精度的基础上大大减小模型大小和参数量, 将MobileNetV2中原有的第2和第3个倒残差模块替换为由Ghost模块组成的Ghost瓶颈层. 为了证明LeakyReLU激活函数在提取特征的过程中保留负值信息从而有助于提高网络识别准确率, 故将网络中深度可分离卷积模块的激活函数由原来的ReLU6替换为LeakyReLU.

消融实验的结果如表1所示, 可以看出, 加入CBAM注意力机制以后, 虽然模型大小增加了0.02 MB, 但是最终的识别准确率提高了1.08%, 确实更好地关注到了番茄病叶片的病害特征; 融入Ghost模块之后, 模型参数量减少了22.52%, 准确率提高了0.37%; 最终在MobileNetV2网络中加入CBAM模块, 将部分倒残差模块替换为Ghost瓶颈层, 将原有ReLU激活函数替换为LeakyReLU. 本研究所提的算法相较于原网络模型, 在番茄病叶片数据集上的识别准确率提高了2.29%, 模型的参数量减少了约22.52%, 实现了提高识别精度以及减少网络参数量的目的. 改进前后的模型的损失值和准确率的变化曲线如图6(a)图6(b)所示. 两种模型在训练过程中经过约70个epoch之后逐步达到收敛, 加入CBAM模块和Ghost瓶颈层的MobilNetV2模型最终收敛之后的准确率的确高于原MobileNetV2模型, 损失值更小, 模型收敛的效果更好.

表 1 消融实验结果

图 6 改进MobileNetV2的准确率和损失值变化曲线

图7(a)为原MobileNetV2模型对测试集中10种番茄叶片的预测结果, 图7(b)为改进MobileNetV2模型对于病叶片的预测结果, 对比图7(a)图7(b)可以看出本文改进的模型对这10种病叶片预测的结果更加准确, 误判率更低, 其中由于早疫病和晚疫病病叶片的区别并不大, 导致模型对于这两种病叶片的误判率高于其他几种病叶片, 改进之后的模型对于番茄班枯病, 红斑叶螨病和细菌性溃疡病等7种病叶片的识别正确率更高, 预测结果更稳定.

图 7 改进前后模型预测的混淆矩阵

2.4 与其他模型的对比实验

为了验证改进MobileNetV2模型效果的优异性, 选取近些年来表现较好的轻量化卷积神经网络模型GhostNet、MobileNetV2、SqueezeNet[17]和MobileNetV3[18], 都使用本文中相同的番茄叶片数据集, 相同硬件配置, 超参数设置, 迭代次数, 实验对比的结果如表2所示.

表 2 不同模型的对比

表2的对比实验结果可以看出, 除了SqueezeNet模型以外, MobileNetV2, MobileNetV3, GhostNet的模型均比本文改进之后的MobileNetV2模型大, 参数量均比改进的模型多, 但SqueezeNet对于番茄病叶片数据集的识别准确率较低, 只达到了88.56%, 平均预测精度只有87.35%, 相较于其他模型预测精度较低. 改进的网络最终模型大小只有7.51 MB, 相较于原MobileNetV2模型减少了22.52%, 参数量降低了22.52%, 相较于全部利用Ghost瓶颈层搭建的GhostNet网络, 模型大小减小了37.01%, 参数量降低了37.12%. 由此可见把原MobileNetV2模型中的部分卷积模块改进为Ghost瓶颈层从而减小模型大小和降低参数量, 计算量的可行性. 本文改进的模型对于番茄病叶片数据集的识别准确率达到了98.57%, 相较于原MobileNetV2, MobileNetV3, GhostNet分别提高了2.29%, 0.74%, 2.4%, 达到了模型在保证精度的同时减小模型的参数量以及计算量的目的.

3 结论

针对番茄各种病叶片之间的差异较小难以分辨的问题, 提出了一种融合CBAM注意力机制和Ghost瓶颈层改进MobileNetV2模型, 将其中卷积模块的激活函数ReLU换为LeakyReLU, 利用PlantVillage公开数据集中的番茄病叶片进行实验, 最终达到98.57%的识别准确率. 相较于原MobileNetV2以及在其他数据集识别效果较好的卷积神经网络模型, 本文提出的模型具有更高的识别效率以及鲁棒性, 在识别准确率上有所提升, 模型大小和参数量以及计算量都有所减小, 验证了本文方法的有效性, 保证识别精度的同时减少参数量和计算量.

由于番茄病叶片的种类不止数据集所用的这几种, 因此在实际识别的场景中, 可能存在其他因素影响模型识别的准确率. 在后续的研究中, 应使用实地采集的清晰番茄病叶片清晰图像和公开数据集中的图像一起训练, 对网络训练进行优化, 更好地满足农业中的病害识别问题.

参考文献
[1]
曾晓娟, 张驰, 何艳清, 等. 基于1980–2019年FAO数据的世界番茄生产状况分析. 湖南农业科学, 2021(11): 104-108. DOI:10.16498/j.cnki.hnnykx.2021.011.026
[2]
Kamilaris A, Prenafeta-Boldú FX. Deep learning in agriculture: A survey. Computers and Electronics in Agriculture, 2018, 147: 70-90. DOI:10.1016/j.compag.2018.02.016
[3]
Hassan SM, Maji AK, Jasiński M, et al. Identification of plant-leaf diseases using CNN and transfer-learning approach. Electronics, 2021, 10(12): 1388. DOI:10.3390/electronics10121388
[4]
Turkoglu M, Yanikoğlu B, Hanbay D. PlantDiseaseNet: Convolutional neural network ensemble for plant disease and pest detection. Signal, Image and Video Processing, 2022, 16(2): 301-309. DOI:10.1007/s11760-021-01909-2
[5]
张宁, 吴华瑞, 韩笑, 等. 基于多尺度和注意力机制的番茄病害识别方法. 浙江农业学报, 2021, 33(7): 1329-1338. DOI:10.3969/j.issn.1004-1524.2021.07.19
[6]
黄英来, 艾昕. 改进残差网络在玉米叶片病害图像的分类研究. 计算机工程与应用, 2021, 57(23): 178-184. DOI:10.3778/j.issn.1002-8331.2105-0321
[7]
Sandler M, Howard A, Zhu ML, et al. MobileNetV2: Inverted residuals and linear bottlenecks. Proceedings of 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018. 4510–4520.
[8]
Howard AG, Zhu ML, Chen B, et al. MobileNets: Efficient convolutional neural networks for mobile vision applications. arXiv:1704.04861, 2017.
[9]
陈宗阳, 赵辉, 吕永胜, 等. 基于改进MobileNetV2网络的涂层表面缺陷识别方法. 哈尔滨工程大学学报, 2022, 43(4): 572-579. DOI:10.11990/jheu.202103061
[10]
彭玉青, 乔颖, 陶慧芳, 等. 融入注意力机制的PM2.5预测模型 . 传感器与微系统, 2020, 39(7): 44-47.
[11]
罗建豪, 吴建鑫. 基于深度卷积特征的细粒度图像分类研究综述. 自动化学报, 2017, 43(8): 1306-1318. DOI:10.16383/j.aas.2017.c160425
[12]
Woo S, Park J, Lee JY, et al. CBAM: Convolutional block attention module. Proceedings of the 15th European Conference on Computer Vision (ECCV). Munich: Springer, 2018. 3–19.
[13]
吴志炜, 师红宇. 基于DSConv与CBAM的棉花异纤识别. 棉纺织技术, 2022, 50(3): 19-23. DOI:10.3969/j.issn.1001-7415.2022.03.005
[14]
高淑萍, 赵清源, 齐小刚, 等. 改进MobileNet的图像分类方法研究. 智能系统学报, 2021, 16(1): 11-20. DOI:10.11992/tis.202012034
[15]
Han K, Wang YH, Tian Q, et al. GhostNet: More features from cheap operations. Proceedings of 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle: IEEE, 2020. 1577–1586.
[16]
王立辉, 杨贤昭, 刘惠康, 等. 基于GhostNet与注意力机制的行人检测跟踪算法. 数据采集与处理, 2022, 37(1): 108-121. DOI:10.16337/j.1004-9037.2022.01.009
[17]
Iandola FN, Han S, Moskewicz MW, et al. SqueezeNet: AlexNet-level accuracy with 50× fewer parameters and <0.5 MB model size. arXiv:1602.07360, 2016.
[18]
Howard A, Sandler M, Chen B, et al. Searching for mobileNetV3. Proceedings of 2019 IEEE/CVF International Conference on Computer Vision. Seoul: IEEE, 2019. 1314–1324.