1. 引言
随着生活水平不断提高,人们更加注重饮食健康,水果给人们带来丰富的营养,但识别水果品种效率低下,人工成本提高,大量水果种类识别成为亟待解决的问题,水果品质的好坏直接影响水果是否能够正确分类,因此,研究水果品质与分级分类 [1] 具有重要的现实意义。
传统的水果识别方式大多是利用图像获取颜色、纹理等特征完成识别。Chen等人 [2] 采用多个网络模型融合和注意力机制方法,完成对数据图像从低维到高维的图像特征提取,减少特征提取干扰信息,最后通过SoftMax函数实现对苹果图像的分类,识别的准确率高达98.14%。吕伟 [3] 提出金字塔匹配模型和SIFT相融合的水果分类方法,采用SVM分类器进行分类,最后分类准确率达到98.9%。Dubey等人 [4] 提出一种改进的和差直方图作为纹理特征,并使用支持向量机分类器进行水果分类,最后得出的分类准确率高达99%。Muhammad等人 [5] 提出自动分类不同类型日期系统,把日期的彩色图像分解成颜色分量,然后将局部二进制或韦伯局部描述符直方图形式的局部纹理描述应用于每个组件,最后用支持向量机输出分类结果,该系统对日期分类的准确率超过98%。卢巍 [6] 采用K-means聚类算法对异常大树杨梅RGB图像进行聚类,并选取未成熟和成熟杨梅颜色数据均值作为两个质心,通过多次迭代,能够较好提取到数据边界的模糊信息,从而更好的区分果实和背景数据信息。
深度学习作为机器学习领域 [7] 的一个重要分支,在计算机视觉图像识别领域有着广泛的应用。Zhang等人 [8] 提出了新型的人工智能系统,使用旋转角度矢量网络的2D分数傅里叶熵,提取水果图像中的数据特征,之后,将五层堆叠的稀疏自动编码器作为分类器,以对18种类别水果进行分类,分类识别准确率到达95.08%。Majid等人 [9] 通过串行方法的最大平均值合并预先处理好的两种类型特征,然后使用基于谐波阈值遗传算法优化所得到的融合向量,最后使用多个分类器对所选功能进行分类,对七种类型水果分类准确率到达99%。王前程 [10] 提出深度信念神经网络的水果图像识别方法,通过Census变换提取图像特征,并在深度信念神经网络中训练,得到良好的识别效果,减少模型训练时间。Wang等人 [11] 提出一种改进的CNN应用于水果类别分类,先创建了一个8层的卷积神经网络,并利用参数整流线性单元代替了普通的整流线性单元,在每个全连接层之前放置了dropout层,最终网络达到95.67%的准确率。Jahanbakhshi [12] 提出一种改进的深度卷积神经网络对胡萝卜样本图像进行分类,通过混合池的批标准化方法,最终达到分级的准确率为99.43%。
为了解决传统水果分类识别算法成本高,效率低下等问题 [13] ,本文采用迁移学习技术、混合注意力机制、全局平均池化、BN、dropout等方法对ResNet50网络模型进行改进,提出基于CBAM-ResNet50网络模型的水果图像识别算法,并通过仿真实验验证了模型的有效性。
2. 材料与方法
卷积神经网络是在传统的多层感知机(MLP)的基础上发展起来的,是经典的机器学习算法,通过权值共享、局部感受野来模拟人脑结构,利用卷积、池化等操作提取输入图像的特征,当前比较流行的网络结构模型有AlexNet [14] 、GoogleNet [15] 、VGG [16] 等,网络结构对训练模型表达能力有较大的影响,结构太浅的网络使得模型在训练过程中不能充分的学习到输入图像的特征,网络结构太深会造成模型的训练时间过长,网络的性能退化。CNN主要由输入层、卷积层、池化层和全连接层三部分构成。卷积层和池化层是特征提取的核心模块,卷积核体现的是参数共享机制。池化层利用图像局部相关性的原理对图像保留有用信息,同时减少处理信息的数量,通常在卷积层之后会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的特征。
卷积神经网络经过多次卷积和池化堆叠操作,提取到原始图像中的一般抽象化表示,再通过全连接层对高维特征输入数据进行降维展平操作,最后激活函数将结果输入到分类器中进行分类,运算表达式如式
(1)
其中:L表示网络模型的层数,K表示过滤器,b表示为输出特征图的偏置项。
2.1. 实验环境配置与参数设置
计算机是64位windows10操作系统,256 GB内存,4 GB显存,使用pycharm集成开发环境编写代码,连接远程服务器,租用GPU,在TensorFlow框架下完成的模型的训练和测试,采用Anaconda 4.5.11,CUDA 4.10.3;Python 3.9.7。
2.2. 数据收集及处理
实验数据集选用部分kaggle水果图像数据集和从网上爬取 [17] 一些水果图片,以苹果、香蕉、葡萄、橙子、梨这5常见的水果类别为研究对象,实验采集原始水果图像1590,将这5类常见的水果图片放在不同的文件夹,一个类别代表一个文件。标签0为苹果,标签1为香蕉,标签2为葡萄,标签3为橙子,标签4为梨。将水果数据集按照随机取样的方法划分为80%训练集和20%测试集两部分,训练集图片数量为1274张,测试集图片数量316张。不同类别水果图像数量如表1所示。

Table 1. Number of images of different types of fruits
表1. 不同种类水果图片数量
网络模型在训练过程中,样本空间不够或样本数量不足会出现影响模型泛化能力,准确率不高等问题,采用平移、旋转、水平翻转、错切变换等数据扩充方法对数据样本进行扩充,提高了图像的准确性和多样性,扩大样本空间容量。同时,为了满足模型的输入要求,需要将图像进行归一化操作 [18] ,通过数据规范化操作将数据样本图像尺寸整理成224*224*3像素,然后将整理好的水果图像数据集送到网络模型中进行训练。
2.3. 迁移学习技术
卷积神经网络在图像分类 [19] 和识别方面发挥着重要作用,从头开始训练深度CNN模型通常需要大量的数据和高计算能力,此外,如果使用少量样本数据集来训练深度卷积神经网路模型,则会导致过拟合现象,因此,迁移学习技术 [20] 是解决这个问题的方法。
定义1领域(Domains)
(2)
式中:X表示特征空间;
表示为
,
的边缘分布,
表示第i幅图的特征,
表示领域的特征集合。
定义2任务(Task)
(3)
式中:Y表示类标签空间;
表示目标预测函数,预测实例类标签。
把一个问题中已经训练好的模型通过一些简单的调整策略使其适用于一个新的问题。将任务训练的第二次重复使用作为模型的起点任务,来解决目标领域中新数据集的学习任务,减少模型的开发时间,提高模型的性能。迁移主要是基于CNN模型和架构,并将其作为特征提取器与逻辑回归分类相结合。首先,对参数随机初始化设置,通过迭代网络模型和优化参数,使模型达到收敛某一值时输出,然后将预训练好的网络模型迁移到目标数据集上,再进行微调和网络优化,使得模型能够更好的适应目标任务。将训练好的模型适用于目标任务,从ImageNet数据集中学习到的特征与逻辑回归相结合作为通用分类器,预测新域中的类标签。借助迁移学习,可以节省时间和计算资源,并通过有限的训练数据集成功的学习新任务。
2.4. ResNet50网络
随着神经网络的不断发展,过多的堆叠网络模型的深度会出现网络退化等问题,从而使得模型的训练变得困难,he等人 [21] 提出了深度残差网络ResNet,主要通过恒等映射将输入跨层传递,残差块结构示意图如图1,在反向传播时,为了避免网络出现梯度弥散问题,该网络将输入中的一部分数据直接送入到输出,而不经过卷积网络,并保留了一部分原始的信息,从而大大加深了网络的深度,减少参数信息的丢失。

Figure 1. Residual structure of ResNet network
图1. ResNet网络残差结构
残差元有恒等映射和快捷连接,恒等映射加深网络模型的深度,而快捷连接使得残差变得可能,在普通模块连接的过程中,将其后面再加上几个恒等映射层(Identity mapping,即y = x,输出等于输入),使得在增加网络深度的同时有效避免了训练误差的上升,残差结构表示为
(4)
(5)
和
分别表示残差单元第l和第
个输入,
是要学习的残差映射,W是当前层需要学习的参数,
是relu激活函数,
表示恒等映射,即输出等于输入,由式(4) (5)进行递归运算,得到残差单元l的特征表示,计算公式如(6)所示
(6)
运用求导法则,得出反向传播过程的梯度,计算公式如式(7)所示:
(7)
其中
表示损失函数的梯度,L层的梯度可以直接传递到任何一个比它浅的L层,
表示残差梯度并且等于1,该梯度不会直接传递,而是通过带有权重的层来传播梯度,从而有效避免了学习过程中信息丢失的问题。
2.5. 注意力机制
注意力机制 [22] [23] [24] [25] 在计算机视觉、语音识别等领域中有着广泛的应用,该技术的核心重点是对信息数据资源的高效分配,能够让网络模型更多的关注应该关注的特征,而不是什么都关注。注意力机制常见的实现方式 [26] :
一是通道注意力机制:是聚焦图像中特征内部之间关系的有用信息,重点是获得输入进来的特征层和每一个通道中的特征信息;
二是空间注意力机制:在通道上对输入进来的每一个特征点取最大值和平均值。之后将这两个结果进行一个堆叠,利用一次通道数为1的7*7卷积和激活函数sigmoid,将获得了输入特征点的权值乘上原输入特征层,进而能够更好的学习空间上的特征信息。
为了能够同时获取通道和空间上地有效信息,采用混合注意力模块(CBAM)如图2:
该模块是一种在图像分类中常用的深度学习模型,能够将不同的注意力机制分配给不同的卷积核或池化层,进而更好的捕捉到图像的特征信息。通过串联通道和空间注意力的方法,避免了通道注意力机制不能很好地关注空间上的特征信息和空间注意力机制弱化了通道上的信息,将两个不同的注意力机制结合起来,能够获取更加全面的图像信息,强化有效特征,避免了不重要信息的提取,进而提高了网络模型的性能。
3. 结果与分析
3.1. 网络模型构建
由于水果图像分类数据集和ImageNet数据集相差较大,直接用ResNet50网络模型识别水果图像数据集,会导致模型识别出来的效果不佳,所以本文提出了CBMA-ResNet50模型对水果图像进行识别,在初始ResNet50网络结构的卷积模块2~4直接后添加CABM注意力机制,其后将平均池化(average pool)替换成全局平均池化(GlobalAvgPool2D),并添加一个Dropout层和BN层,来进行网络结构的优化,网络结构如图3所示:
主要改进内容入下:
1) 迁移学习:采用迁移学习技术 [27] ,将ImageNet数据集上训练好的权重参数迁移到ResNet50网络模型中,使用这些训练好的权重信息,能够加快对新任务数据集进行训练,提高网络模型的训练速度和学习效率,同时一定程度上避免了网络出现过拟合现象。
2) 添加CBAM注意力机制模块:在卷积模块2~4之后添加混合注意力机制CBMA,通过空间和通道两个维度自动的学习输入到的权重信息,使用学习权重分配强调数据区域中的重要特征,进而提高网络模型的识别效果。同时CBMA模块内部只有少量的池化层和特征融合操作 [28] ,没有卷积结构,这样的网络结构降低了模型的复杂度,减少计算量,进而提高网络模型的性能。
3) 设置全局平均池化(GlobalAvgPool2D),添加至主干网络之后,调整网络的输出尺寸,按照中心化的方式将高维数据转化为低维数据,然后对特征图求平均值,这样,每个数据点只能被计算一次,提高了计算的效率,进而提高了模型的泛化能力。
4) 添加dropout正则化,将参数设置为0.5,使得网络模型在训练时将神经元随机丢弃一半,梯度在正向传播时屏蔽对下游神经元的贡献如图4。梯度在反向传播时,不会更新神经元的权重,也不会依赖其他神经元的输入特征,不仅提升了模型的泛化能力,也能够减少中间特征的数量,从而减少冗余。

Figure 3. Improved ResNet50 network model
图3. 改进后ResNet50网络模型

Figure 4. Neural networks without and with Dropout forward propagation
图4. 未使用和使用Dropout正向传播的神经网络
5) 构建Batch Normalization层,大部分放在激活函数的后面 [29] ,主要是对隐藏层的输入服从均值为0,方差为1标准的正态分布,使得领域的分布不再处于边界,防止梯度的消失,加快网络模型的收敛速度。
3.2. 水果图像识别性能对比试验
保持其他条件不变的情况下,用本文模型与其他5种经典的神经网络模型进行比较,根据水果图像数据集样本的情况和分类特点,本实验选择准确率和损失值作为评价模型性能的指标,每个模型均迭代40轮次,每次迭代5就选择保存最好的一轮权重信息,结合不同模型在测试集上的表现,选择最好的网络模型,结果如图5所示。

Figure 5. Accuracy and loss value curves of different network models
图5. 不同网络模型准确率和损失值曲线图
从图5可以看出,本文提出的基于CBMA-ResearchNet50网络模型在损失值最低点和准确率达到最高点,损失值为0.032,准确率为99.3,对水果图像分类的效果上优于其他模型。损失曲线的收敛速度也是最快的,在迭代到第5次世代左右模型的收敛趋向于平稳,这说明与其他模型相比较,本文模型能够在较短的时间内能够达到最好的性能,MobileNet模型在该数据集上模型性能表现最差,准确率精度最高是0.70,识别效果不好;且收敛速度较慢,曲线不平滑,网络波动大,迭代到20世代模型才开始收敛;Xception模型训练曲线全程波动较大,模型不稳定;其他网络模型在数据集上表现较为稳定,均是在25轮次开始趋于收敛,且曲线平滑。本文提出的CBAM—ResNet50模型训练集的准确率高达99.6%如表2所示,与MobileNet-v3、VGG16、AlexNet、Xception、ResNet50模型相比较分别提高了29、7、14、9、4个百分点,测试集准确率高达99.3%,与其他模型相比分别提高了13、13、7、8、6个百分点,本文模型有效平衡了模型识别精度与收敛速度,进而提高了网络模型的性能。

Table 2. Comparison effect diagram of network models
表2. 网络模型对比效果图
3.3. 迁移学习的数据增广对模型性能影响
为了验证数据增广对模型性能的影响,在其他参数条件不变的情况下,基于迁移学习分别对数据扩充和数据未扩充网络进行训练,准确率和损失曲线如图6所示。

(a)
(b)
Figure 6. Data augmentation and non augmentation curves based on transfer learning; (a) Unexpanded training curve and loss curve of data; (b) Data augmentation training curve and loss curve
图6. 基于迁移学习的数据扩充和未扩充曲线;(a)数据未扩充训练曲线和损失曲线;(b) 数据扩充训练曲线和损失曲线
没有数据增广的训练曲线和损失曲线之间存在一定的间隙,数据质量得不到保障,影响模型的识别度,获取数据的特征不稳定。数据扩充之后得到的曲线在刚开始出现剧烈震荡,随着迭代次数的增加波动的幅度慢慢趋于平稳,减少了数据的丢失,确保了数据的可靠性,并且验证集的准确率达到0.95高于未扩充后的验证集准确率0.91,提高了4个百分点。由此表明,数据增广能够补全额外信息,提高数据分析的速度和效率,有效提升网络的性能。在迁移学习方式,可以看出经过数据增广的训练集准确率并未有显著提升,CBMA-ResNet50网络的迁移学习已经在ImageNet大型数据集上学习到了较好的特征提取能力,进而导致数据增广的作用不那么明显,模型在训练过程中波动较小;验证集准确率刚开始达到了0.9以上,网络模型迅速收敛,在迭代10次后曲线趋于平稳,且测试集准确率到达最高0.95。上述结果表明,经过迁移学习数据增广的测试集准确率高于没有扩充的测试集准确率,加快了网络模型的收敛速度。数据增广优化了网络模型的效果,一定程度上扩充了数据样本的多样性和变化性,避免网络模型出现过拟合现象。
3.4. 注意力机制对实验结果的影响
为了验证注意力机制对模型性能的影响,在其他参数条件不变的情况下,通过加载预训练好的网络模型的参数,使用迁移学习方法在残差结构之后添加混合注意力机制对水果图像数据集进行识别 [30] ,由图7可以看出

Figure 7. Accuracy of training and validation sets with attention mechanism
图7. 带有注意力机制的训练集和验证集的准确率
添加的混合注意力机制能够更快定位到水果图像有用的特征,可以自适应地调整不同部分之间注意力权重信息,获得有效的权重信息,使得模型能够更好的理解输入的数据,增强了网络模型的表达能力,降低了噪声对实验结果的影响,弱化了数据样本无效的特征,提高了识别水果图像的效果,准确率高达0.99,并且训练损失低于验证集损失,曲线趋于平滑,在水果图像数据集上表现良好,进一步增强了网络模型的性能。
4. 讨论与结论
本文提出CBAM—ResNet50网络模型,采用数据增强技术,通过训练好的权重信息进行迁移学习,在残差结构模块后添加混合注意力机制,并优化模型参数对改进的网络进行训练。进一步分析了图像数据增广、注意力机制超参数等方法对模型的影响,得出以下结论:
通过对大型数据集训练,获取训练好的权重信息,提取水果图像的特征,水果图像数据集的增加,可以了解数据的分布特征,使得模型更好的适应了水果图像的数据分布,提高了模型的鲁棒性,数据扩充不仅丰富了数据样本的多样性和变化性,而且能够有效提高网络的性能。
2)迁移学习将训练好的权重信息迁移到新的网络模型中,使得模型能够快速学习,提高新任务的学习速度,降低模型的复杂度,增强了模型的鲁棒性。
3)混合注意力机制使得网络关注重要特征,抑制无关信息,弱化了图片噪声对网络的影响,提高了提取信息的能力,同时,CBMA模块中没有大量的卷积操作,不需要太多计算量,从而降低网络模型复杂度,提升模型的性能。
4)网络结构中添加全局平均池化减少了模型的参数量,降低了模型的复杂度;Dropout正则化一定程度上避免了过拟合现象;批量归一化(BN)加快了模型的收敛速度,提高了模型的识别效率。
基金项目
国家自然科学基金项目(61751313);甘肃省重点研发计划项目(21YF5GA088);甘肃省教育信息化建设专项任务项目(2011-02)。
NOTES
*第一作者。
#通讯作者。