APP下载

基于NAM-YOLO网络的苹果缺陷检测算法

2023-11-14张嘉琪徐啟蕾

计算机与现代化 2023年10期
关键词:注意力苹果特征

张嘉琪,徐啟蕾

(青岛科技大学自动化与电子工程学院,山东 青岛 266061)

0 引 言

中国是一个农业大国,其苹果年产量超过1700万吨。然而,大部分苹果的分拣和分级过程仍然没有实现自动化。苹果在采摘和运输过程中容易因磕碰、挤压造成机械损伤导致加速腐烂,降低苹果的经济价值。目前,苹果采摘后主要采用人工分拣的方式,该方式具有很大的局限性:1)错误率高且效率低;2)由于工人对苹果缺陷判断没有标准,结果可能会有所不同[1-5]。部分依靠机械结构进行分拣[6-8]。

近年来,深度学习算法被大量应用于农产品检测,应用深度学习进行苹果缺陷检测成为主要研究热点之一,国内外学者对苹果分级做了大量研究,根据苹果大小、形状、颜色等特征进行分级的方法已比较成熟[9-11],而苹果缺陷的检测一直是苹果分级的一个障碍。Yu等人[12]基于多图像特征和加权K-means聚类算法提出了一种快速有效的苹果自动分级方法,使用顶部、底部和两侧的图像和苹果平均灰度值区分苹果缺陷、茎、花萼,准确率达到96.00%,该算法处理速度较快,但精度与鲁棒性欠佳。Hu 等人[13]提出了一种基于卷积神经网络(Convolutional Neural Networks,CNN)的方法,使用来自水果扫描网格的3D形状信息来检测瘀伤的苹果。Fan 等人[14]引入了一种基于计算机视觉的在线系统,该系统采用CNN 实现苹果缺陷检测,实验结果表明,该方式优于支持向量机(Support Vector Machines,SVM),分级准确率达96.00%。该系统检测时每个苹果需采集6张照片,检测效率仍有提升空间。可见,采用上述方法对苹果分级有着重要意义,但仍然存在分类准确度低,细小缺陷检测能力差等问题。Redmon 等人[15]于2016 年提出(You Only Look Once,YOLO)算法。YOLO 系列被大量应用于农业领域[16-18]。Valdez 等人[19]将YOLOv3 应用于RGB 图像中苹果的2 类分级。苹果按照缺陷与健康进行分类,健康苹果与缺陷平均检测精度分别是80.70%和69.00%,检测精度有待提升。

因此,本文主要针对提高苹果缺陷检测精度与效率,克服苹果缺陷的复杂多样因素造成的误检和漏检,在原有的YOLOv5 网络中加入基于Transformer 的TRANS 模块,改进YOLOv5 的颈部特征融合网络,并引入基于归一化的注意力机制;利用改进的YOLOv5网络对苹果进行缺陷检测,优化苹果实时检测效果。

1 YOLOv5网络模型

YOLOv5 是Glenn Jocher 在2020 年提出的一种单阶段目标识别算法。YOLOv5 主要包含4 个部分,即输入端(Input)、骨干网络(Backbone)、颈部网络(Neck)和检测头(Head),其中Input 经过图像预处理统一图像大小;Backbone 提取图像特征;Neck 包含了一系列网络层,可以根据一定的规律融合主干提取的图像特征,使特征语义信息更加丰富,并将输出处理后的特征作为预测层的输入;通过Head 网络预测输入特征获得对象的类别并生成边界框的最终坐标。核心思想是将目标检测作为回归问题来处理,将数据经过特征提取、特征融合后直接定位目标位置并对目标进行归类。

根据网络宽度和深度的差异,YOLOv5 可分为n、s、m、l、x 这5 种网络模型。其中,YOLOv5s 网络的计算速度最快,但平均精度低。本文选择YOLOv5s 作为主要研究模型,YOLOv5s 网络结构如图1 所示。Backbone 网络主要由卷积层、BN 层、SiLU 激活函数、空间金字塔快速池化(Spatial Pyramid Pooling-Fast, SPPF)和集中综合卷积(Concentrated-Comprehensive Convolution,C3)模块组成。

图1 YOLOv5s网络结构

Sigmoid 加权衬垫(Sigmoid Weighted Liner Unit,SiLU)激活函数[20]是一种平滑非单调函数,可有效抑制训练过程中的梯度消失。Backbone 中C3-1由CBS、Resunit、Concat 模块组成,在Neck 中将C3-1中的Resunit 替换成了CBS 模块。SPPF 结构是在空间金字塔池化(Spatial Pyramid Pooling,SPP)的基础上改进的,SPPF 可以更高效地实现SPP 的功能。SPPF 将特征图依次输入3 个最大池化层Maxpool,并将特征图拼接后进行尺度统一,确保目标大小与位置保持一致,使得网络更好地提高分类精度和速度,同时提取更丰富的特征信息。Neck 采用特征金字塔(Feature Pyramid Networks,FPN)[21]+路径聚合网络(Path Aggregation Network,PAN)结构,FPN 和PAN结构实现了高层特征和底层特征的融合和互补。二者相辅相成,克服了各自的局限性,增强了模型的特征提取能力。图像输入Backbone 后,在不同的图像粒度上聚集并形成图像特征。Neck 将图像特征合并随即传输到预测层,Head 预测图像特征以生成边界框和预测类别。

2 NAM-YOLO苹果缺陷检测算法

2.1 NAM-YOLO网络模型

针对苹果缺陷检测经常误检漏检、缺陷易混淆等问题,降低在复杂场景下检测苹果表面不同缺陷的误检率与漏检率,本文提出一种基于改进YOLOv5s 的NAM-YOLO 模型。其网络结构示意图如图2 所示,相比于传统YOLOv5s 网络,本模型分别在Backbone网络、Neck 网络进行改进。在Backbone 网络中添加基于Transformer 的TRANS 模块,以更好地融合特征与全局信息。在Neck 中将BiFPN 结构替换YOLOv5原有的PANet 结构,以增强多尺度特征融合能力,并在Neck 网络与Head 之间添加一种轻量级的高效的注意力机制(Normalization-based Attention Module,NAM)[22]以强化目标区域的关键特征,提高网络的检测精度。

图2 改进后的NAM-YOLO网络结构

2.2 主干网络的改进

本文将Transformer[23]引入YOLOv5s 的网络模型中。Transformer 模型能够关注全局图像特征块之间的依赖关系,并保留足够的空间信息用于目标检测,捕获丰富的上下文信息。TRANS 结构如图3 所示。每个TRANS 编码器包含2个子层,第1个子层是多头注意力机制,多头注意力通过不同的线性变换将特征映射到不同的向量空间,这有助于网络关注当前像素,获得上下文语义[24]。第2个子层是全连接的前馈网络多层感知机(Multilayer Perceptron,MLP)。2 个子层之间通过残差连接(Residual),然后进行层归一化(Layer Normalization,LN)[25]。采用残差连接可以减弱神经网络的“退化现象”。“退化现象”即在网络层数加深时,网络的损失值不降反增。

图3 TRANS编码器的架构

在Backbone前端添加TRANS模块容易触发边界回归,从而丢失部分有助于检测的上下文信息。将TRANS 模块添加到特征图分辨率较小、网络层数较深的Backbone 末端,可以降低计算和存储消耗,更好地提高苹果缺陷的检测效率与精度。在苹果缺陷检测数据集上,可以证明TRANS模块具有更好的性能。

2.3 颈部网络的改进

颈部网络的作用是更好地利用骨干网络提取的特征,通过对骨干网络在不同阶段提取的特征进行上采样、下采样和融合,增强模型在不同尺度的检测能力。如图4(a)所示,FPN 是从P3 到P7 自上而下融合构建特征图像金字塔,在特征图像金字塔的每一层提取出不同的特征,每一层都会进行预测。这样精度有所提升,但计算量大、需要大量的内存。PANet 结构示意图如图4(b)所示,包含一个自顶向下和自底向上的双向融合骨干网络,同时在最底层和最高层之间添加了一条“捷径”,用于缩短层之间的路径。PANet包含自适应特征池化和全连接融合2个模块。PANet识别由骨干网络提取的苹果单一缺陷这类浅层特征,效果较为明显,但难以获得深层的特征以识别复杂的缺陷。

图4 特征网络结构

本文将加权双向特征金字塔(Bidirectional Feature Pyramid Network,BiFPN)[26]引入YOLOv5s 网络,其结构示意图如图4(c)所示。BiFPN 通过向不同分辨率的输入特征添加额外的权重,使网络获得每个输入特征的重要性以更好地平衡不同尺度的特征信息。BiFPN 通过优化多尺度特征融合方法,实现了有效的双向跨尺度连接和加权特征融合,平衡了模型的效率和精度。

2.4 NAM注意力机制

近年来,注意力机制因其具有即插即用、有效增强信息、共享权重的特点被广泛应用于深度学习目标检测领域[27]。

卷积块注意模块(Convolutional Block Attention Module,CBAM)[28]采用了空间和通道混合注意力机制,包含2 个模块:通道注意力模块和空间注意力模块。2个注意力模块采用串联的方式。

NAM 在CBAM 的基础上进行改进,按顺序重新设计通道注意模块和空间注意模块,通过调整训练权重在通道维度和空间维度上的方差来调整注意力的权重。其结构如图5 所示。NAM 使用了批归一化(Batch Normalization,BN)[29]中的缩放因子来表示权值的重要程度如式(1)所示,以避免如挤压与激励注意力机制(Squeeze and Excitation Module,SE)和CBAM一样增加全连接层和卷积层。

图5 NAM注意力机制的结构

其中,γ与β分别为可训练尺度与移位参数,μB与σB分别为小批量β的均值与标准差。比例因子γ为BN的方差,ε是为了避免分母为0而增加的一个接近于0的很小的值。较大的方差可以带来更多的变化以及更丰富的信息。基于通道注意模块的γ归一化相关权重Wγ,可以对重要信道给予更多关注,并抑制无关的权重。假设F1∈R(H·W·C)为输入特征图,H、W和C分别表示通道的高度、宽度和数量。通道注意的输出如式(2)所示:

空间注意模块采用与通道注意模块相同的方式,将BN 应用于空间维度中的像素,即像素归一化(PN)。根据缩放因子λ聚焦于信息量较大的像素,并调整相关权重Wλ。F2∈R(H·W·C)是输入特征图,空间注意模型的输出如式(3)所示:

为了抑制不太重要的权重,NAM 向损失函数添加正则化项:

其中:l(·)与g(·)分别表示损失函数和l1范数惩罚因子;x和y分别是输入和输出;W是网络权重;p是平衡惩罚因子。

本文在BiFPN 结构的末端串联插入了3 个NAM模块以更好地细化颈部特征融合层的通道和空间信息,高效地提取复杂的苹果表面特征。

3 实验与结果分析

3.1 实验环境配置

深度学习框架为PyTorch 1.7.0,编程语言采用Python3.7。本文实验在Linux Ubuntu 20.04 LTS 操作系统上运行,配备Intel(R)Core(TM)i9-10900X CPU @ 3.70 GHz 处理器。搭载了显存为8 GB 的NVIDIA GeForce RTX 3070 显卡以及Compute Unified Device Architecture (CUDA) 10.1,由cuDNN 7.6.5 版本加速。内存大小为16 GB。本文改进后的YOLOv5s模型训练的超参数设置如表1所示。

已训练好的网络模型、摄像头以及上位机软件共同构成了苹果分级检测系统,检测系统界面如图6 所示。

图6 检测系统界面

3.2 苹果图像采集

目前并没有统一公开的苹果缺陷检测数据集,本文所使用实验数据通过现场采集获得,自制了一个苹果缺陷检测数据集。对市场上的苹果进行图像、尺寸以及重量信息采集。拍摄图像尺寸为3024×3024 像素,得到符合条件的图像共1800 张,保存格式为PNG,数据集图例如图7 所示。经过拍摄新鲜的苹果图像共1000 张,变质(包括腐烂、裂果等)的苹果图像800 张。通过水平翻转、平移以及随机裁剪与填充等方式对原数据集进行扩充,将图像扩充至4800 余张。YOLOv5 模型采用Mosaic 进行数据增强,对输入图像进行随机裁剪与排布,将4 张图片进行拼接。拼接后的图片输入YOLOv5 网络模型进行训练,提高了模型的泛化能力,避免过拟合现象影响苹果的检测效果。

图7 苹果数据集图例

3.3 数据集制作

本文使用的标注软件为LabelImg,将检测对象分成fresh 和stale 这2 类。根据苹果的位置标记实验中的图像并添加标签框,通过图像中标记目标样本来生成包含苹果目标类型和坐标信息的XML 文件,标注如图8所示。

图8 数据集标

通过上述工作,完成数据集的制作。将数据集随机按8:1:1 的比例划分为训练集、验证集、测试集,如表2所示。

表2 数据集划分/张

3.4 模型性能评估指标

准确率(Precision,P)、召回率(Recall,R)和各类别AP的平均值(Mean Average Precision,mAP)作为模型的评估指标。准确率是预测为正的所有样本中实际为正的样本的概率,表示对正样本结果的预测精度,计算公式如式(5)。召回率是在实际正样本中被预测为正样本的概率,表示整体预测精度,计算公式如式(6)。mAP的计算公式如式(7)。

其中,TP 表示被检测对象中被正确预测的部分,FP表示被错误地检测为目标对象的部分,FN 表示目标检测对象中预测错误的部分,n表示所有由网络模型检测坏果的数量,N表示测试样本的类别数,AP是计算出的准确率Precision 在不同召回率Recall 水平下的平均值。

3.5 消融实验

本文设计了消融实验来验证每个改进模块的优化效果,一共验证了6 种网络,分别在YOLOv5s 网络的基础上单独添加TRANS、NAM 注意力机制以及在颈部更改BiFPN 结构进行对比验证。采用相同的苹果缺陷检测数据集,一致的超参数配置。消融实验分别比较了各种模块组合后的准确率、召回率、mAP。

模型1 使用的是未进行改进的YOLOv5s 模型,mAP 为93.07%。模型2 中采用本文改进后的颈部网络,将BiFPN 结构代替YOLOv5s模型原有的PANet结构,提高了网络多尺度融合能力,mAP 提升了1.93 个百分点。模型3 中采用本文修改后的主干网络,在原有主干的尾端增加了TRANS 结构。模型4 中,主要验证了YOLOv5s颈部末端添加NAM注意力机制对实验结果的影响,加入NAM 注意力机制后,mAP提升了2.25个百分点。模型5、模型6和模型7分别是对模型2、模型3 和模型4 中的改进方式的两两融合,本文提出的NAM-YOLO 网络模型则是同时融合上述3 种改进。表3 显示了每个模型的参数和消融研究结果的比较。其中,“×”表示未使用改进的方法,而“√”表示使用了改进的方法,“-”表示空白项。

表3 消融实验结果

为了探究NAM-YOLO 对苹果缺陷的检测能力,选取鲜果、带有碰伤、裂口和腐烂的坏果图像共230幅输入模型中进行测试。将碰伤、裂口和腐烂的苹果归为一类进行检测。部分检测效果如图9 所示,对应检测结果如表4 所示。NAM-YOLO 对鲜果和带有裂口苹果识别效果最好,无漏检(坏果被识别为鲜果);带有碰伤的坏果漏检了2个;腐烂的坏果漏检了2个。结果表明,NAM-YOLO 在分析苹果品质中更有优势,可以完整地检测苹果状态,具有良好的鲁棒性。

表4 苹果果实检测结果

图9 苹果检测结果对比

3.6 算法对比实验

为了验证改进算法的性能,本文引入主流目标检测算法YOLOv3、YOLOv5s、YOLOv7,设置相同的超参数对苹果缺陷检测数据集进行训练。对比实验选择mAP@0.5作为模型评估指标。检测结果如表5所示,不同算法的mAP曲线如图10所示。

图10 不同算法mAP曲线图

图10 中,横坐标为训练轮次,纵坐标为检测算法的mAP 值。在经过300 次迭代后,YOLOv3 的mAP 值最低;YOLOv5s 与NAM-YOLO 的mAP 值波动较小;改进后的NAM-YOLO 算法较YOLOv3、YOLOv5s、YOLOv7,mAP 分别提高了18.00 个百分点、5.70 个百分点、3.70 个百分点。通过对比可知,改进后的NAM-YOLO算法具有明显优势。

4 结束语

针对传统视觉方案下,苹果缺陷检测系统质量分析效率低、精度差的问题,本文提出了一种基于YOLOv5 算法的NAM-YOLO 模型,用于对苹果的坏果进行检测。该模型在Backbone 网络中加入TRANS 模块,提高融合特征与全局信息能力,使用BiFPN 模块代替颈部网络中的PANet结构,以提高模型的特征融合能力。在BiFPN 模块的末端接入基于归一化的注意力机制NAM。

NAM-YOLO 模型在苹果缺陷检测数据集中,检测准确率达到98.73%,召回率达到97.39%,mAP达到98.90%。与改进前的YOLOv5 模型对比,准确率提升了10.44个百分点,召回率提升了2.16个百分点,mAP提升了5.83 个百分点。相比于主流检测算法检测精度较高,网络模型具有更优的鲁棒性。因此,本文提出的NAM-YOLO 模型的检测精度高,分类效果好,能满足生产环境下对苹果果实实时检测的任务需要。在进一步的工作中,将扩展数据集,设计一套集坏果检测、苹果尺寸分级一体的苹果分拣分级系统。添加苹果尺寸样本,还将考虑如何缩小模型,提高模型的检测速度。

猜你喜欢

注意力苹果特征
让注意力“飞”回来
如何表达“特征”
不忠诚的四个特征
抓住特征巧观察
“扬眼”APP:让注意力“变现”
收获苹果
A Beautiful Way Of Looking At Things
拿苹果
会说话的苹果
线性代数的应用特征