基于改进YOLOv7 的苹果表面缺陷轻量化检测算法

2024-04-24 06:01李大华
河南农业科学 2024年3期
关键词:轻量化特征提取注意力

李大华,孔 舒,李 栋,于 晓

(1.天津理工大学 电气工程与自动化学院,天津 300384;2.天津市新能源电力变换传输与智能控制重点实验室,天津 300384;3.天津市复杂系统控制理论及应用重点实验室,天津 300384)

我国是重要的果蔬生产大国,果蔬在生长、采摘、运输和仓储过程中,不可避免地会产生缺陷和损坏,因此,果品分级是果蔬加工销售过程的重要环节[1]。但目前企业主要还是采用人工来识别果蔬品质的好坏,其耗时长、工作量大、依赖程度高,果品分级效果不佳[2]。因此,实现工业化果蔬品质分级是提高经济收益、占据更大市场份额的重要途径[3]。

随着计算机视觉和深度学习技术的进步,许多国内外学者对水果缺陷、分级检测进行了大量研究,使分级检测变得更加简单[4-7]。JI 等[8]将基于粒子群优化的支持向量机(SVM)应用于苹果分级,结果表明mAP 值达到91%。王迎超等[9]将K-means 聚类和改进的多层感知器(MLP)神经网络运用于苹果分级,识别准确率达到94.25%。SUSTIKA 等[10]使用不同深度的卷积神经网络对草莓进行分级检测,结果显示,VGGNet 达到了最好的精度,而GoogLeNet 计算结构达到最高效。李善军等[11]采用改进SSD 算法对采集扩充后的柑橘数据集进行实时分类检测,最终该模型的mAP 达到87.89%,检测时间相较于原SSD 降低436.90%。刘敬宇等[12]提出一种改进的YOLOX 模型,通过使用融合因子和引入基于卷积块的注意力机制(CBAM)来提高检测精度,樱桃表面缺陷的平均检测精度为97.59%,大小和颜色分级的平均检测精度为95.92%。王川等[13]通过增加特征层、引入注意力机制以及改用Soft-NMS 算法对YOLOX 模型进行改进,改进模型在芝麻蒴果检测中准确率达到96.84%。

现有研究中深度学习算法往往要消耗大量的计算资源,虽然近几年已有较多研究学者提出了轻量化算法,但对于实际应用的场景,仍然需要在保证准确率的情况下降低检测模型和算法对计算资源的依赖程度。为此,提出了一种基于YOLOv7 的轻量级网络,使用GhostNetV2 作为backbone 进行特征提取,降低模型复杂度。并通过使用无参注意力机制SimAM,避免模型轻量化导致过多的精度损失。利用快速归一化的双向特征金字塔进行特征融合,加强深层语义信息和浅层位置信息之间的联系,进一步提升苹果表面缺陷的识别精度。最后改用ECIOU 损失函数,实现对苹果缺陷检测速度和准确率的进一步提升。

1 材料和方法

1.1 数据集采集

供试苹果采集于山东省菏泽市某苹果种植园。使用华为nova5pro 的后置摄像头,于自然光照条件下进行拍摄,图像分辨率为4 000 像素×3 000 像素。共采集600 张图片,包含腐烂、病害、虫蛀、机械伤、褶皱、裂纹6类苹果缺陷,每张图片中有一至多个缺陷类型,如图1所示。

图1 苹果表面缺陷类型Fig.1 Type of apple surface defect

1.2 图像增强

为避免因样本数量较少产生过拟合现象,保证数据集可用性,通过对苹果表面缺陷图像进行增强,来扩充数据集的大小。为提升数据集图像多样性,采用旋转、翻转、裁剪、灰度变换、噪声、色调变换、部分剪切等图像增强方法,以2种方法组合的形式对图像进行增强。图像增强操作方法如图2所示。

图2 图像增强操作方法Fig.2 Image enhancement operation method

扩充后数据集共包含4 200 张苹果表面缺陷图片,采用LabelImg 软件对图像进行标注,所得到的XML 文件中包括图片的缺陷位置和类别。训练集、验证集和测试集按照6∶2∶2的比例进行划分。在该数据集上分别进行消融试验和对比试验,训练并验证改进模块和改进算法的有效性。

1.3 YOLOv7整体结构改进

YOLOv7 作为目前较先进的目标检测网络,相较于其他网络而言已经较为轻量且准确率很高,但对于一些嵌入式设备仍然较大,对自建数据集的准确率也有提升空间。为了进一步改善YOLOv7算法的语义可分辨能力和轻量化程度,进一步提高对边缘模糊的苹果缺陷的检测效果,提出了基于改进YOLOv7 的苹果表面缺陷轻量化检测算法。首先,采用轻量化GhostNetV2网络替换原YOLOv7算法的特征提取网络CSPDarkNet53,其中将第4、10、15 层作为主干网络的输出特征层与Neck部分相连,构建出新检测模型GhostNetV2-YOLOv7,从而减小模型规模,提高检测速度。其次,为了避免由于使用了轻量级的特征提取网络而导致的精确率下降,在backbone 输出的3 个特征层后加入无参轻量型注意力机制SimAM,来强化特征层对特征信息的表达,提高模型的特征提取能力。颈部网络部分采用BiFPN 结构代替原有的FPN+PANet 结构,进一步提高特征聚合的效果,减少计算量,提高对苹果表面缺陷的检测能力。最后改用ECIOU 作为损失函数,实现检测速度和准确率协同优化。改进的YOLOv7网络模型结构如图3所示。

图3 改进的YOLOv7网络模型结构Fig.3 Improved YOLOv7 network model structure

1.3.1 使用GhostNetV2 作为特征提取网络

GhostNetV2[14]是北京华为诺亚方舟实验室于2022年提出的一种更轻量级的网络模型。GhostNetV1的核心是使用Ghost 模块代替标准卷积,以达到降低模型参数量的目的。而GhostNetV2 相较于GhostNetV1 的改进主要是在Ghost 模块的基础上添加了一种长距离注意力机制模块(DFC),其不仅可以在常见硬件上快速执行,也可以捕获长距离像素之间的依赖关系,有效解决了原始GhostNet 无法有效提取全局感受野的问题。

GhostNetV2 中 的GhostV2 bottleneck 是 一 个 反向残差瓶颈结构,主要包含DFC模块和2个Ghost模块,结构如图4 所示。其中第1 个Ghost 模块与DFC模块分支并行,对输入信息进行特征提取,以增强扩展特征。之后通过逐元素相乘来丰富其语义信息。当Stride=2 时,还需通过一个DW 卷积模块,随后特征传入到第2个Ghost模块中进行通道压缩,以产生输出特征。该结构使GhostV2获得了长距离编码能力,极大地增强了网络的特征提取能力。因此,本研究使用GhostNetV2 作为YOLOv7 的主干网络。首先使用16 个GhostV2 bottleneck 模块进行特征提取,其次提取主干GhostV2 bottleneck 模块中的4、10、15层特征信息与YOLOv7的Neck部分相连,然后使用SPPCSPC 实现局部特征和全局特征的 融 合。 选 用GhostNetV2 作 为YOLOv7 的backbone,做到了在损失小部分准确度的情况下减少了较多计算量,提高了检测速度,更易嵌入到硬件移动设备中。

图4 GhostNetV2 bottleneck结构Fig.4 GhostNetV2 bottleneck structure

1.3.2 引入SimAM 注意力机制 因为模型轻量化

过程导致了一部分的精度损失,而注意力机制通过对网络输入部分赋予不同的权值,忽略无关信息,使网络模型更加关注苹果表面缺陷分类和定位任务所需要的重要信息。因此,本研究在主干网络输出的3 个特征层之后加入SimAM 注意力模块来提高模型的特征提取能力,避免模型轻量化导致过多的精度损失。SimAM[15]注意力机制不同于现有的基于通道1D 和空间2D 的注意力模块,SimAM 是一种轻量型3D 注意力模块,其核心在于使用能量函数来计算注意力权重,无需向原始网络添加参数。SimAM 注意力模块结构如图5 所示,其中X 是特征图,C 指通道数,H 指特征图的高,W 指特征图的宽。SimAM 通过在苹果缺陷的相邻神经元上产生空间抑制来减少复杂背景对苹果表面缺陷检测的干扰,突出了苹果表面缺陷的关键特征。

图5 SimAM注意力机制结构Fig.5 Structure of SimAM attention mechanism

1.3.3 引入双向加权特征金字塔网络 YOLOv7 的颈部网络是用于特征聚合的部分。在原有的FPN+PANet 结构中,FPN 用于自上而下地传递深层语义信息,PANet 则增加了一条自下而上的层间传输路径,改善了深层语义信息和浅层位置信息之间的联系。这种结构能够处理不同尺寸的特征图,减少信息的丢失,提高目标检测的精确率,但网络训练的参数量有所增加。

BiFPN 网络[16]是一种基于PANet 的改进网络,它忽略只有一个输入的节点,在保证重要信息提取的前提下简化网络结构。BiFPN 实现跨层连接,能更充分地提取位置信息,提高对小目标苹果缺陷及边缘模糊缺陷目标的检测能力,网络结构如图6所示。

图6 BiFPN网络结构Fig.6 BiFPN network structure

但是由于不同的输入特征具有不同的分辨率,也就意味着不同特征层有着不同的贡献。因此,为了进一步提高特征聚合的效果,根据不同特征层的重要性,对每个特征层分配一个额外的权重,采用快速归一化融合(Fast normalized fusion)进行特征层加权特征融合[17]。融合过程如下:

本研究采用BiFPN 结构代替原有的FPN+PANet结构,能一定程度上减少参数量,提高网络模型的检测效率,同时提高对小目标苹果缺陷的检测能力。

1.3.4 采用改进损失函数ECIOU YOLOv7 模型使用CIOU[18]作为回归损失函数,其定义如下:

由公式(6)可以看出,回归期间预测框的宽高不能同时增加或者减少,因此,一旦预测框和边界框是等比缩放的时候,CIOU 有时会阻止模型有效地优化。而损失函数EIOU[19]在CIOU 的基础上拆分了α,计算预测框和真实框的长度和宽度,解决CIOU存在的问题。公式如下:

而当对存在距离很远边缘的目标进行检测时,只使用EIOU 会使得计算变慢,且没有早期收敛。因此,本研究提出使用ECIOU 作为损失函数,前期先使用CIOU 损失函数进行计算,当它收敛到合适的范围时,再利用EIOU 损失函数对缺陷边缘进行细微调整[20],直至收敛到正确的值。ECIOU 损失函数定义如下:

1.4 试验环境与参数配置

本试验在Windows10 操作系统、硬件配置Intel(R)Core(TM)i5-11260H@2.60GHz、机带RAM 16 GB、Nvidia Geforce RTX 3050Ti、显存4 GB 的笔记本电脑上进行,所使用的Pytorch 版本为1.12.1,CUDA版本为11.3。

算法使用随机梯度下降(SGD)作为优化器进行训练,默认权重衰减系数为0.000 5,其参数动量为0.9,初始学习率为0.01,训练时采用余弦退火方法动态调整学习率。其中batch size 设置为8,模型一共迭代300 轮。

1.5 评价指标

采用精确率(Precision)、召回率(Recall)、检测帧速、平均精度均值(mAP@0.5)、mAP@0.5:0.95 作为主要性能指标,同时以模型运算量、参数量以及模型大小作为轻量化指标,来评估模型对苹果表面缺陷的综合检测性能。计算公式如下:

其中,TP表示正确识别的苹果表面缺陷样本数;FP表示错误识别的缺陷样本数;FN表示未识别到的缺陷样本;APi指一个类别的平均精度;n表示类别数目。mAP@0.5是指将IoU设为0.5时,求得的6 种苹果缺陷的平均精确度,mAP@0.5:0.95 是指在不同的IoU 阈值(0.5—0.95,步长为0.05)上的平均mAP。

2 结果与分析

2.1 消融试验结果

为了证明提出的使用GhostNetV2 替换CSPDarkNet53、引入注意力机制模块SimAM、利用BiFPN 进行快速归一化融合、改用ECIOU 损失函数的改进方法的有效性,进行消融试验,评估不同改进措施在相同试验条件下对算法性能的影响。消融试验采用YOLOv7 作为基线模型,在增强后的苹果表面缺陷数据集中进行试验,输入图像大小为640像素×640像素,训练300轮后,结果如表1所示。

表1 消融试验结果Tab.1 Ablation experimental results

Model_1 是使用YOLOv7 作为基线模型的试验结果。由Model_2 结果可以看出,在使用轻量化网络GhostNetV2 替换YOLOv7 的特征提取网络后,模型比原来小20.8 MB,检测速度提高33.10帧/s,但是精确率和召回率都有明显降低,说明GhostNetV2 作为轻量化网络,其特征提取能力相对较弱。Model_3 是在此基础上加入了注意力机制SimAM,强化了特征层对特征信息的表达,一定程度上弥补了轻量化带来的不足,提高了网络对小目标特征的融合能力,使精确率提高了2.2 百分点,召回率提高了0.9百分点,SimAM 作为无参模块没有增加模型大小,但小幅度降低了运算速度。Model_4 为结合快速归一化融合的BiFPN 结构,可知BiFPN 并不增加模型的复杂度,还将精确率提高了0.4 百分点,召回率提高了4.7 百分点,表明了改进的特征融合方法相比PANet 而言更具有优势。Model_5 为改用ECIOU 作为回归损失函数,提高了模型的收敛速度,使召回率提升了1.1 百分点,检测速度又提升了2.69 帧/s。改进模型整体性能优于基线模型YOLOv7,证明改进算法是有效的。

2.2 模型改进前后性能效果对比

如图7、图8 所示,与原YOLOv7 模型相比,改进模型在训练和验证过程中收敛速度更快、振荡幅度更小、召回率更高。通过图9、图10 模型效果热力图可以明显看出,改进YOLOv7算法的精确率更高。经过300 轮训练后,与YOLOv7 相比,改进模型的平均精确度mAP@0.5 和mAP@0.5:0.95 分别提高了2.0、12.0 百分点,召回率提升了3.9 百分点,模型减小20.8 MB,速度提升36.43帧/s,改进模型具有更好的性能,能够更好地对苹果缺陷进行有效的检测。

图7 YOLOv7模型训练结果Fig.7 YOLOv7 model training results

图8 改进YOLOv7模型训练结果Fig.8 Improved YOLOv7 model training results

图9 YOLOv7识别效果热度图Fig.9 YOLOv7 recognition effect heat map

图10 改进YOLOv7识别效果热度图Fig.10 Improved YOLOv7 recognition effect heat map

2.3 不同模型对比结果

为了验证本研究设计的苹果表面缺陷检测网络的先进性,在苹果缺陷数据集上,将改进YOLOv7与SSD 等主流目标检测算法以及Efficientnet-YOLOv3 等轻量级改进模型在mAP、模型大小和检测帧速上进行比较,结果见表2、3。

表2 与主流目标检测算法结果对比Tab.2 Comparison with the results of mainstream target detection algorithms

从表2 可以看出,和主流目标检测网络相比,改进YOLOv7 模型的内存占比最小,仅为50.5 MB,其检测速度最快,达到83.33 帧/s,在精度上也明显优于其他检测方法。主要是因为本研究采用了轻量级网络提取特征,以达到轻量化的目的。

从 表3 可 以 看 出,Efficientnet-YOLOv3 和Ghostnet-YOLOv4 模型进行轻量化操作导致检测精度损失严重,虽然YOLOv4-tiny 和YOLOv7-tiny 的内存大小比改进YOLOv7 模型的小,但改进YOLOv7 的mAP@0.5 比 两 者 分 别 高15.8、3.5 百 分点。与轻量级网络比较,改进YOLOv7 能够达到检测精度和检测速度的平衡,保证实际应用中准确性和实时性的要求,且模型更易嵌入到移动设备中。改进YOLOv7 检测精度mAP@0.5 和mAP@0.5:0.95分别达到99.0%和85.3%,均优于其他轻量级模型,是由于引入了SimAM 注意力模块和快速归一化融合BiFPN 结构,融合更有效的缺陷特征,确保了更高的检测精度。

表3 与轻量级检测算法结果对比Tab.3 Comparison with the results of lightweight detection algorithms

2.4 模型改进前后检测结果对比

由图11 可以看出,YOLOv7 存在对病害缺陷这类小目标病斑的漏检情况,对褶皱缺陷和腐烂缺陷的定位不准确。相较于YOLOv7,改进的YOLOv7模型对于小目标苹果缺陷检测效果更好,对腐烂等这类边缘模糊的缺陷的定位更准确,检测精度更高。说明引入SimAM 注意力模块、BiFPN 结构和ECIOU 不仅弥补了模型轻量化造成的精度下降,还较原YOLOv7提高了检测准确率。

图11 苹果表面缺陷检测效果示意图Fig.11 Detection effect diagram of apple surface defects

3 结论与讨论

针对如何提高苹果表面缺陷检测的速度与精度以及减小模型大小等问题,提出一种基于改进YOLOv7 的苹果表面缺陷轻量化检测方法。设计以GhostNetV2 作为YOLOv7 的特征提取网络,进而实现网络的轻量化。此外,通过引入SimAM 注意力机制以及采用快速归一化融合的BiFPN 结构,进一步提升苹果表面缺陷的识别能力,采用改进的损失函数ECIOU 进一步提升了收敛速度。结果表明,改进模型在提高检测准确度的同时提高了检测速度,减小了内存占比,达到了轻量化的目的,能对苹果缺陷进行有效检测。改进YOLOv7 模型的mAP@0.5、模型大小和检测速度分别为99.0%、50.5 MB、83.33帧/s,其 综 合 性 能 优 于 YOLOv7、CenterNet、Efficientnet-YOLOv3 等算法,可实现对苹果表面缺陷的快速准确诊断,满足农业实际使用要求。研究过程中发现,YOLOv7-tiny 有比YOLOv7 更高的检测帧数,内存占比也更小。之后的工作可以侧重在以YOLOv7-tiny作为基线模型进行研究。

猜你喜欢
轻量化特征提取注意力
让注意力“飞”回来
汽车轻量化集成制造专题主编
一种轻量化自卸半挂车结构设计
一种轻量化自卸半挂车结构设计
基于Daubechies(dbN)的飞行器音频特征提取
“扬眼”APP:让注意力“变现”
Bagging RCSP脑电特征提取算法
A Beautiful Way Of Looking At Things
瞄准挂车轻量化 锣响挂车正式挂牌成立
用户:轻量化挂车的使用体验