芒果图像的改进EfficientNet模型分级
2023-01-06尚庆生韩运龙
巩 晴,尚庆生,郭 泓,韩运龙
(兰州财经大学信息工程学院,甘肃兰州 730020)
芒果是中国东南部重要的经济作物,它原产于热带地区,形状类似鸡蛋和肾脏,极其富含维生素.我国作为世界上第二大芒果生产国,在四川、云南和海南建立了芒果种植园,芒果产业成为了当地的支柱产业.芒果在销售时,分级是必不可少的一步,分级销售可以提高芒果的经济效益.
近年来,随着机器学习、深度学习的发展,利用深度学习对水果进行大批量分类和分拣已经成为可能,这样不仅减少了劳动力,而且提高了准确率.图像分类任务中最常见的神经网络模型是卷积神经网络(Convolutional Neural Networks,CNN),其参数相较其他算法大大减少,缩短了学习时间,减少了对数据量以及运行内存的要求.目前常用的水果分类方法主要有两种,一种是利用计算机视觉[1-2]、支持向量机(Support Vector Machines,SVM)[3]、人工神经网络(Artificial Neural Network,ANN)[4]、BP(Back Propagation)神经网络[5]等传统分类方法对水果进行分类,传统的水果分类方法的重心在对水果图像的预处理以及特征提取的阶段,其模型泛化能力较差,过程也较为繁琐,局限性较大.另一种分类方法随着更多有关深度学习的模型提出后得到广泛应用,如VGGNet[6]、AlexNet[7]、ResNet[8]、SqueezeNet[9]等,这些模型不仅在很大程度上减少了网络学习的权值参数,而且在学习效率以及模型准确率上得到了很大的提高.Li等[10]为提高蔬菜的自动识别和分类精度,提出改进VGG网络模型来训练蔬菜图像数据集,将前两个全连接层(VGG-M)的输出特征结合起来,并在网络中加入批量归一化层.经过实验验证,在测试数据集上对分类识别的正确率高达96.5%.Kumari[11]等人提出SA-CSO用于优化混合分类器,以最大限度地提高分类精度,利用混合模糊分类器和CNN对芒果进行分级,实验结果表明,该模型的准确率达到91.91%,证明所提出的KNN与SA-CSO-FCNN结合的模型在芒果分级的准确性方面是优秀的.但在传统的神经网络中,通常通过改变网络深度、提取特征的特征层数及改变输入图像的分辨率三者之一来提高网络的识别精度,虽采用这些方法可带来准确率的提升,但同时模型的过拟合及梯度爆炸参数的计算成本也随之增加.
因此,针对以上问题,本文采用基于Efficient-Net[12]的多尺度融合算法,作为图像分类领域中最精确的模型之一,EfficientNet系列模型采用深度、宽度和输入图像分辨率的联合调整技术.同时,为了更好地保证图像的原始特征不受影响,选取Efficient-Net-b3和EfficientNet-b6这两个高效的基本网络,在提取出相应的特征后,给两个基本网络的特征提取部分嵌入CBAM模块,随后将两个基本网络结构的输出传入CBAM,作为其输入特征,最后将两种输出特征映射拼接在一起发送到全连接层,以获得更准确的分类结果.将此模型与ResNet50、DenseNet 169等基本模型对比,并进行消融实验,验证该模型在处理速度和精度上的优越性.
1 材料与方法
1.1 数据集介绍及图像预处理
选用的芒果数据集为Kesar芒果公开数据集,根据中华人民共和国芒果标准“NY/T3011-2016”[13]将芒果的等级分为三种,如表1所示.实验期间,每个等级的芒果图像各200幅,样本总数为600幅,每幅图像的格式为.jpg.将其按4∶1分为训练集与测试集,即480个训练样本、120个测试样本来进行深度学习模型预训练.
表1 芒果质量等级NY/T 3011-2016Table 1 Mango quality grade NY/T 3011-2016
1.2 模型概述
本文使用的模型基于EfficientNet-b3与EfficientNet-b6的多尺度融合卷积神经网络,并嵌入了CBAM注意力机制模块的方法来提取目标数据集较重要的特征,提高了模型的学习效率和泛化能力,最终获得准确率的提高.
1.2.1 EfficientNet分类模型
在传统神经网络中,一般采取增加网络的深度、改变特征提取的层数以及提高输入图像的分辨率三者其一使模型的准确率、效率得到更好地提升,但网络深度加深的同时梯度消失的问题也将出现,图像分辨率的提高也会加大模型的计算量,准确率也随着分辨率的增加而下降.而Tan等人提出Efficient-Net模型,是针对图像的深度、宽度及分辨率3个维度进行调整,使模型的准确率得到提高.本文所采用的EfficientNet网络的基线网络EfficientNet-b0网络结构如图1所示.
图1 EfficientNet-b0网络结构Fig.1 EfficientNet-b0 network architecture
EfficientNet网络的深度、宽度和分辨率与其他单一只调整其中一个的网络不同,它会设置固定的尺度缩放系数统一进行缩放,从而使得网络在三维环境下的性能更好.其复合比例系数的计算公式如(1)所示:
其中:d,w,r三个因子分别是缩放网络对深度、宽度和分辨率的缩放系数;α,β,γ三个因子都是由一个很小范围的网络所搜索得到的常量,决定了具体的分配资源情况;φ因子是一个特定的系数,通过这个系数对网络的深度、宽度以及输入图像的分辨率进行统一的缩放.
1.2.2 CBAM注意力机制
在图像分类中加入注意力机制,往往会使网络关注重要的特征,而忽略不太重要的特征.CBAM(Convolutional Block Attention Module)[14]是一种轻量注意力模块,注重通道信息和空间信息,通道注意机制可以去除冗余的特征信息,空间注意机制可以去除无关的背景信息.随着CBAM的加入,网络更加关注细微的特征,检测和定位局部有用的信息,使得相似物种的分析更加精确.
通道注意模块传递输入,然后分别通过多层感知机(Multilayer Perceptron,MLP)对MLP输出的特征执行逐元素求和操作,以生成最终的频道注意特征图.对其和输入特征图进行乘法运算,生成空间注意模块所需的输入特征,公式为:
空间注意模块使用前面提到的注意输出的特征图作为这个的输入特征图.将该特征和该模块的输入相乘,以生成最终生成的特征图.公式如下:
其中,F为输入特征,F∈RC*H*W,σ表示激活函数,f7×7代表7×7卷积,AvgPool(F)、MaxPool(F)分别为平均池化特征和最大池化特征.
1.2.3 基于EfficientNet的多尺度融合算法
当训练EfficientNet-b5单模型时,需要将图像大小调整到最合适的输入大小456×456.虽然调整大小方法可以将原始图像转化为各种大小的数据集,但大小的变化不可避免地会影响图像的原始特征.为了更好的保证图像的原始特征不受影响,利用多尺度融合的思想和EfficientNet-b0~Efficient-Net-b7模型最合适的输入参数对单个模型进行改进,将公式(1)中α、β、γ固定为常数,放大不同φ的基线网络EfficientNet-b0,得到EfficientNet-b0~EfficientNet-b7模型,其最合适的输入参数如下:
这四个系数分别是宽度系数、深度系数、输入图像分辨率和Dropout.由于其他三个参数已经反映在模型中,故不需要额外的控制.因此,在选择融合模型时,只考虑图像的大小.在芒果数据集中,近一半的图像高度在[280,340],大部分图像宽度在[493,564].因此选择EfficientNet-b3和EfficientNet-b6两种模型进行多尺度融合.可见,b3模型能较好地提取高度维度图像的特征,b6模型能较好地提取宽度维度图像的特征.
本文结合多尺度融合算法和CBAM注意力机制的思想,并融合EfficientNetb0~EfficientNet-b7模型的网络特点,提出了一种基于EfficientNet的多尺度融合算法,其网络结构如图2所示,当芒果被输入到EfficientNet-b3和EfficientNet-b6两个基础网络提取相关特征时,它们将分别通过嵌入CBAM的b3和b6特征提取器.在这个过程中,两个网络结构的不同尺度输出将作为CBAM的输入特征,将经过CBAM的输出特征进行拼接,从而得出分类结果.
图2 基于EfficientNet的多尺度融合网络结构图Fig.2 Multi-scale converged network structure diagram based on EfficientNet
1.2.4 损失函数
在网络训练的过程中,如果不进行标签平滑计算的损失,仅考虑正确标签位置的损失,而忽略其他标签位置的损失,这会使得该模型过分强调提高正确标签的概率,从而造成过度拟合.针对这个问题,本文提出了一种基于标签平滑的交叉熵损失方法,既考虑了训练样本在正确标签位置的损失,同时也考虑到其他轻微误差的标签位置的损失,使模型在提高正确分类概率的同时也减少了错误的分类情况,提高模型的学习能力.Cross-Entropy损失函数可以描述如下:
2 实验结果与分析
2.1 实验环境及参数设置
将实验工作站作为训练处理平台,硬件为AMD Ryzen 75800H with Radeon Graphics处理器,主 频3.20 GHz,16 GB内 存,NVIDIA GeForce RTX3060 Laptop显卡,7 GB的显存.软件为Windows 10操作系统,PYCHARM平台,使用其中的深度学习工具箱来设计和实现芒果等级图像识别.详细参数设置如表2所示.
表2 超参数设置Table 2 Hyperparameter settings
2.2 评价指标
为了验证模型的性能,根据网络模型和芒果数据集的特点,采用准确率(Accuracy)和F1值作为评价标准.
其中,TP、TN、N分别为真正例样本数、真负例样本数和数据集样本总数.
2.3 实验及结果分析
在芒果测试数据集下分别将改进的多尺度融合并嵌入CBAM注意力机制的EfficientNet模型与ResNet50、DenseNet 169模型进行实验,并进行可视化显示,图3、图4为实验比较的结果.可见改进的多尺度融合并嵌入CBAM注意力机制的EfficientNet模型相比ResNet50和DenseNet169收敛较快,且准确率分别比ResNet50、DenseNet169提高了6.1%和5.1%,有明显地提升,验证了改进模型的有效性.
图3 网络训练准确率对比图Fig.3 Comparison chart of network training accuracy rate
图4 网络训练损失率对比图Fig.4 Comparison chart of network training loss rates
同时,为了验证改进模型的有效性,本文进行消融实验,在测试集上对比EfficientNet、嵌入CBAM注意力机制的EfficientNet和多尺度融合并嵌入CBAM注意力机制的EfficientNet的结果,结果对比见表3.
表3显示,综合模型比单个模型更精确.将CBAM的注意力机制引入到多尺度融合中,虽然模型的参数量有所提高,但是其识别精度提高了5.89%.证明了基于CBAM的多尺度融合Efficient-Net模型用于芒果图像分级数据的可行性和有效性.
表3 消融实验结果Table 3 Ablation experimental results
3 结语
本文研究了针对芒果等级的分类,提出了一种结合CBAM注意力机制和多尺度融合的Efficient-Net分类模型,并将其应用于芒果等级的分类任务中,准确率约为95.23%.首先,利用EfficientNet-b3和EfficientNet-b6对输入图像进行不同尺度的融合;然后将不同尺度融合的输出作为混合注意机制的输入,其中通道注意机制能很好地去除冗余特征信息,空间注意机制能很好地去除无关背景信息;最后,本文还将训练完成后的多尺度融合模型与ResNet50和DenseNet169进行对比,并进行消融实验,证明改进模型的可行性和有效性.该模型可应用于其他分类任务中,但在应用此模型时,需做一些修改:根据实际数据集图片分辨率的大小,选择对应的模型进行融合;或根据改进的模型将已有数据集图片的大小利用深度学习工具进行裁剪,从而适用此模型.