基于MobileNet V2和迁移学习的番茄病害识别
2023-06-04王哲豪范丽丽何前
王哲豪 范丽丽 何前
摘要:番茄叶部病害严重影响了番茄的产量和质量,为实现在移动设备实时对番茄进行病害识别,提高番茄的产量,减少种植者的损失。本研究提出将轻量级网络模型MobileNet V2和迁移学习的方式相结合,对番茄早疫病、番茄细菌性斑疹病、番茄晚疫病、番茄叶霉病、番茄斑枯病、番茄红蜘蛛病、番茄褐斑病、番茄花叶病、番茄黄化曲叶病等9种叶部病害图像以及健康番茄叶片图像进行分类识别,首先将数据集按照9 ∶ 1的比例分为训练集和验证集,对于训练模型根据迁移学习的方式分别采用不冻结卷积层、冻结部分卷积层、全部冻结卷积层的方式获得3种模型,然后在模型最后加上2层全连接层并用Dropout层防止过拟合,接着通过Softmax层输出实现对番茄病害图像分类识别,最后利用验证集来统计模型的准确率和损失值。其中,冻结部分卷积层准确率最高,达到93.67%。另外,通过试验对比传统网络VGG16、ResNet50训练集和验证集的准确率、损失值及运行时间,其中迁移学习的MobileNet V2模型的准确率最高,运行时间最短。该研究提出的基于MobileNet V2和迁移学习的番茄病害识别研究方法识别效果较佳,速度较快,为在移动设备实时对番茄病害识别提供了技术支持。
關键词:MobileNet V2;迁移学习;病害识别;番茄
中图分类号:TP391.41 文献标志码:A 文章编号:1002-1302(2023)09-0215-07
基金项目:湖北省教育厅创新团队项目(编号:T2021009);国家自然科学基金(编号:11871388)。
作者简介:王哲豪(1996—),男,湖北武汉人,硕士研究生,研究方向为农业图像处理。E-mail:1030922418@qq.com。
通信作者:范丽丽,博士,副教授,硕士生导师,从事偏微分方程方面的研究。E-mail:23404587@qq.com。
我国自古以来都是农业大国,目前我国农业经济十分发达,是我国国民经济中的中流砥柱。番茄作为我国主要农作物之一,无论是出口还是在国内都有相当大的市场。番茄整个生长周期都会受到不同病害的侵袭,其中在番茄叶部的病害对番茄有较为严重的影响[1],番茄叶部病害种类繁多,包括番茄早疫病、番茄细菌性斑疹病、番茄晚疫病、番茄叶霉病、番茄斑枯病、番茄红蜘蛛病、番茄褐斑病、番茄花叶病、番茄黄化曲叶病,每种病害都会直接影响番茄的质量和产量。因此对番茄病害的研究与防治就显得十分有必要。
近年来,随着机器学习的不断发展壮大,将机器学习与农业结合越来越普遍。对农作物病害识别也从传统方法[2]慢慢过渡到机器学习相关方法。赵小虎等将改进的U-Net网络运用于番茄分割,获得了较好的分类并为后面识别打下了基础[3]。贾兆红等提出EFCA注意力模块再通过最大池化和concat操作,将番茄叶面型病害分类准确度提高到了86.69%[4]。张洪骏等分别研究了VGG16、InceptionV3、ResNet50、MobileNet V2对番茄病害的识别,不考虑时间成本,准确率达到了94%[5]。胡玲艳等利用轻量级模型SqueezeNet对番茄病害进行识别,并对比了与LeNet、MobileNet模型的差异,证明了轻量级模型的实效性和准确率[6]。方晨晨等采用多尺度卷积代替传统卷积,解决了网络过深引起的退化问题,最终训练后的模型权重只有19 MB,准确率达到了98.58%,可以有效识别出番茄病害图像[7]。迁移学习作为深度学习常用的方法,被广泛地运用于农作物病害识别研究[8-11],包括水稻、玉米、茶叶等。但是基于迁移学习和轻量级模型MobileNet V2以实现移动端设备实时对番茄病害识别的研究较少。
番茄叶部病害种类多,病害之间相似度高,用传统卷积神经网络(convolutional neural networks,简称CNN)网络训练需要花费大量时间、精力且准确率不高,不能很好地结合于实际情况。因此,本研究提出基于MobileNet V2和迁移学习的番茄病害识别研究方法,并通过试验验证其有效性。
1 数据集
本研究的数据集选自Plant-Village数据集,包括54 303张健康和染病叶片的图片,分为38个类别。本研究选取其中番茄健康和染病图片,分为10个类别,分别是番茄健康叶片图片、番茄早疫病图片、番茄细菌性斑疹病图片、番茄晚疫病图片、番茄叶霉病图片、番茄斑枯病图片、番茄红蜘蛛病图片、番茄褐斑病图片、番茄花叶病图片、番茄黄化曲叶病图片,共有18 835张照片。每个类别按照9 ∶ 1划分为训练集和验证集,具体的数据集数量见表1,部分示例图像见图1。
由表1可知,番茄叶部病害数据集数量偏少且分布不均匀,模型在训练过程中将不可避免地将数据集中数量少的病害分类到数据集中数量多的病害中。除此之外,由图1可知,番茄细菌性斑疹病和番茄健康叶片在形状、纹理上非常相似,番茄红蜘蛛病和番茄褐斑病在外观、颜色上同样非常相似,这就导致模型直接训练会难以区分。
2 MobileNet V2
2.1 模型提出
随着计算机视觉领域的发展,卷积神经网络也在不断地迭代更新。为追求更高的准确率,相继出现了AlexNet、VGG、NiN、GooLeNet、ResNet。卷积神经网络的层数在不断加深,内存需求不断增大,计算量也在成倍增加[12]。比如,VGG16权重文件大小就高达490 M,ResNet50更是达到了644 M。
如此巨大的内存需求和计算量导致这些网络模型局限于实验室,不能在移动设备和嵌入式设备运行,由此Google团队在2017年提出专注于移动端和嵌入式设备中的轻量级CNN——MobileNet V1。
通过文献[13]可知,MobileNet V1模型参数只有VGG16的1/32,准确率却只下降了0.9%。模型最大的创新点就是提出了深度可分离卷积(depthwise separable convolution)。深度可分离卷积包括逐通道卷积(depthwise convolution,简称DW)和逐点卷积(pointwise convolution,简称PW)。
图2中传统卷积,卷积核的channel等于输入特征图的channel,输出特征矩阵的channel等于卷积核个数。图3中深度可分离卷积前半部分是逐通道卷积后半部分是逐点卷积。其中逐通道卷积和传统卷积的区别在于,卷积核channel等于1,输入特征矩阵channel等于卷积核个数等于输出特征矩阵channel。
假设输入特征矩阵的高和宽为DF,卷积核的高和宽为DK,输入特征矩阵的深度为M,输出特征矩阵的深度为N。对于普通卷积而言计算量如下:
对于深度可分离卷积,计算量如下:
两者对比:
深度可分离卷积计算量普通卷积计算量=DK×DK×M×DF×DF+M×N×DF×DFDK×DK×M×N×DF×DF=1N+1DK×DK。(3)
而在MobileNet网络中卷积核大小一般取值为3×3,即DK=3,同时N取值一般较大,则由公式(3)推导得到两者比值为1N+19,使用深度可分离卷积计算量是传统卷积计算量的1/9到1/8,大大减少了运算量和参数数量。
本研究还提出宽度因子α和分辨率因子ρ,通过调整宽度乘法器和分辨率乘法器来权衡网络计算量和准确率。具体计算量如下:
权衡后的深度可分离卷积计算量=DK×DK×αM×ρDF×ρDF+αM×ρN×ρDF×ρDF。(4)
对于MobileNet V1网络模型有一些显而易见的缺点,比如V1结构相对简单没有图形复用、在处理低维度问题上使用ReLU函数容易造成信息丢失,针对以上问题Google团队在2018年提出了MobileNet V2网络模型,其中最大创新点是提出了倒残差结构(inverted residual)以及在倒残差结构最后一层用线性函数(linear bottlenecks)[14-15]代替ReLU激活函数。
2.2 模型结构
MobileNet V2借鉴了ResNet中的残差模块,在ResNet残差结构先降维,再卷积,最后升维。而根据深度可分离卷积计算量小的特点提出的倒残差结构,先通过1×1的卷积核升维操作,再通过3×3深度可分离卷积,最后通过1×1卷积降维。以较小的计算量获得较好的性能。
由图4可知,倒残差结构分为步距为1和步距为2等2种情况。其中,只有当步距等于1且输入特征矩阵和输出特征矩阵大小和深度相同才有捷径分支连接。由图4还可以看出,在倒残差结构中后面采用线性激活函数代替ReLU激活函数,这是因为对于低维运算ReLU容易造成信息损失。同时对于移动端和嵌入式设备低精度float16/int8 也能反映较好的数值分辨率,在倒残差结构中使用ReLU6激活函数来代替ReLU激活函数,ReLU6激活函数见图5。
最终通过类似于ResNet网络不断堆叠残差结构形成MobileNet V2模型。由表2可知,t表示扩展因子,c表示输出特征矩阵深度,n表示bottleneck次数,s是步距,k是深度。MobileNet V2模型首先通过一层卷积层,接着不断通过DW卷积,通过平均池化下采样,最后通过类似于全连接层的卷积层输出。
3 迁移学习
在传统模型训练中往往不可避免会出现以下几个问题:(1)数据量少,数据量分布不均匀,导致过拟合。(2)需要不断地调整各种参数,效率低且花费精力。(3)面对模型层数深,计算量大,耗费时间长。面对以上问题提出了迁移学习,迁移学习可以简化模型,加快模型收敛,减少数据量对训练的依赖[16-18]。迁移学习已经成为深度学习中十分常见的方法之一。
迁移学习使用方法是相同模型下,将已经训练好的模型参数引入到自己需要训练的模型中。模型训练本质就是对数据进行特征提取,以此让计算机更好地识别。具体过程是对于一个给定的深度神经网络,用数据集去训练它,在学习过程中,第1层学会了识别一些很简单的特征,紧接着后面的层将开始对这些简单特征进行组合。随着特征的增加,就能得到很复杂的特征表示。也就是说底层这些简单的特征是相通的,而迁移学习就是要迁移这些共性的信息和特征从而避免再次学习到这类知识,实现快速学习。反映到具体模型训练中就是权重参数和偏置参数。
迁移学习结合到模型训练中主要分为3种情况:(1)不冻结。迁移卷积层参数作为模型初始化继续训练。载入权重之后,只作为预训练和初始化并重新训练所有参数。(2)部分冻结。冻结一部分卷积层,只对另一部分卷积层训练。(3)全部冻结。直接将已经训练好的模型参数作為自己的模型参数。在迁移策略中往往在模型的最后根据自己的分类个数结合以上3种情况设计不同的输出层。
本研究的迁移学习是基于TensorFlow官方提供的MobileNet V2 1.0 224预训练模型权重。在迁移之前首先需要将数据做和TensorFlow模型权重一样的预处理,将图片从[0,255]分布转化到[0,1]之间,然后减去0.5,最后再乘以2。然后根据以上3种情况对模型进行冻结训练,具体见图6。
由图6可知,本研究在利用迁移学习方法之后在模型后面加入了2层全连接层,并在最后利用Softmax函数分类。情况二部分冻结,选择在模型倒残差模块训练中冻结一部分卷积层,训练一部分模型权重参数。
4 结果与分析
4.1 试验环境
试验硬件环境:CPU为Intel CoreTM i7-10750H CPU @ 2.60 GHz 2.59 GHz;RAM為16.0 GB。软件环境:64 位操作系统,基于 ×64 的处理器;IDE为PyCharm;软件环境为Python 3.7;学习框架为TensorFlow 2.0,Keras 2.3.1。
4.2 试验方法与结果
为了验证本研究选取的MobileNet V2模型对番茄病害识别的准确性与实时性,选取准确率优秀的传统网络模型VGG16网络模型和ResNet50网络模型进行对比试验。对3种网络都是采取全部冻结的迁移学习方式,并且在模型最后加上2层全连接层,最后利用Softmax分类输出,进行训练,batch设置为16,epochs设置为50,学习率设置为0.000 5,试验结果见图7、图8、图9、表3。
由图7、图9可知,VGG16模型和MobileNet V2模型收敛速度快,准确率好。而在图8中ResNet50模型,随着迭代次数的增加,训练集准确率很高但是验证集准确率却没有提升。由表3可知,MobileNet V2模型无论在训练集还是验证集的准确率和损失值都优于VGG16模型,且MobileNet V2模型训练时间明显更短。
表4是分辨率因子ρ取224,不同宽度因子α对模型性能和训练时间的影响;表5是宽度因子α取1.0,不同分辨率因子ρ对模型性能和训练时间的影响。
由表4和表5可知,宽度因子取1.0,分辨率因子取224,模型准确率最高,虽然减少宽度因子和分辨率因子的取值可以降低运行时间,但是准确率也会有不同程度的降低,况且轻量级模型MobileNet
V2的运行时间本来就比传统模型短很多,每个epoch训练时间只有122 s。相比于准确率对模型的影响,运行时间并没有明显降低,因此对于本试验模型在选取宽度因子1.0,分辨率因子224情况下表现最好。
混淆矩阵是结果的一种指标,可以更加直观地看到预测结果,对于3种迁移学习方式,batch设置为16,epochs设置为50,学习率设置为0.000 5,宽度因子设置为1.0,分辨率因子设置为224。混淆矩阵见图10至图12,准确率和损失值见表6。
由图10、图12可知,对于番茄细菌斑疹病和健康番茄的分类效果并不好,除此之外对番茄红蜘蛛病和番茄褐斑病的分类效果也比较差。由图11可知,部分冻结卷积层中番茄早疫病和番茄叶霉病的分类完全正确,而且番茄斑枯病和番茄花叶病也有较好的分类效果。
由表6可知,本试验模型对于部分冻结的迁移学习方式表现效果最好,验证集准确率最高,达到了93.67%,能够有效地对番茄叶部病害进行识别。
5 结论
针对移动端和嵌入式设备能够快速准确识别番茄病害,本研究提出了基于MobileNet V2和迁移学习的番茄病害识别研究方法。利用迁移学习对浅层特征的提取,对MobileNet V2模型卷积层参数部分冻结,部分保留,并在模型最后加上2层全连接层,1层Softmax层输出,实现模型对番茄病害区域的快速训练与准确识别。试验结果表明,本研究对番茄病害识效果较好,准确率达到了93.67%,同时满足了在移动设备上实时识别。但本试验通过测试发现识别准确率还有进一步提升的空间。因此下一步研究工作考虑细化迁移学习对模型的影响,进一步提高准确率以满足商业需求。
参考文献:
[1]Chandra N V,Megha Reddy K,Ashish Sushanth G,et al. A versatile approach based on convolutional neural networks for early identification of diseases in tomato plants[J]. International Journal of Wavelets,Multiresolution and Information Processing,2022,20(1):12-21.
[2]张 宁,吴华瑞,韩 笑,等. 基于多尺度和注意力机制的番茄病害识别方法[J]. 浙江农业学报,2021,33(7):1329-1338.
[3]赵小虎,李 晓,叶 圣,等. 基于改进U-Net网络的多尺度番茄病害分割算法[J]. 计算机工程与应用,2022,58(10):216-223.
[4]贾兆红,张袁源,王海涛,等. 基于Res2Net和双线性注意力的番茄病害时期识别方法[J]. 农业机械学报,2022,53(7):259-266.
[5]张洪骏. 基于CNN的番茄叶片病害图像识别方法研究[D]. 哈尔滨:哈尔滨工业大学,2021.
[6]胡玲艳,周 婷,许 巍,等. 面向番茄病害识别的改进型SqueezeNet轻量级模型[J]. 郑州大学学报(理学版),2022,54(4):71-77.
[7]方晨晨,石繁槐. 基于改进深度残差网络的番茄病害图像识别[J]. 计算机应用,2020,40(增刊1):203-208.
[8]王忠培,张 萌,董 伟,等. 基于迁移学习的多模型水稻病害识别方法研究[J]. 安徽农业科学,2021,49(20):236-242.
[9]董 萍,卫梦华,时 雷,等. 迁移学习在玉米叶片病害识别中的研究与应用[J]. 中国农机化学报,2022,43(3):146-152.
[10]徐 杰. 基于ResNet的茶叶病害识别系统设计与实现[J]. 电子技术与软件工程,2022(12):167-170.
[11]周 维,牛永真,王亚炜,等. 基于改进的YOLOv4-GhostNet水稻病虫害识别方法[J]. 江苏农业学报,2022,38(3):685-695.
[12]孙 俊,朱伟栋,罗元秋,等. 基于改进MobileNet-V2的田间农作物叶片病害识别[J]. 农业工程学报,2021,37(22):161-169.
[13]孟 琭,徐 磊,郭嘉阳.一种基于改进的MobileNet V2网络语义分割算法[J]. 电子学报,2020,48(9):1769-1776.
[14]刘合兵,鲁 笛,席 磊. 基于MobileNet V2和迁移学习的玉米病害识别研究[J]. 河南农业大学学报,2022,56(6):1041-1051.
[15]Shahi T B,Sitaula C,Neupane A,et al. Fruit classification using attention-based MobileNet V2 for industrial applications[J]. PLoS One,2022,17(2):e0264586.
[16]林 禹. 深度神经网络传递迁移学习遥感影像分类[D]. 阜新:辽宁工程技术大学,2021.
[17]马 铮. 基于深度-迁移学习的玉米叶部病害识别方法研究[D]. 哈尔滨:东北农业大学,2021.
[18]周宏威,沈恒宇,袁新佩,等. 基于迁移学习的苹果树叶片病虫害识别方法研究[J]. 中国农机化学报,2021,42(11):151-158.