基于深度卷积神经网络的食品包装缺陷检测算法研究

2023-04-19 06:37吴昊然陈晓星
智能计算机与应用 2023年3期
关键词:边缘卷积深度

吴昊然, 陈晓星, 高 傲

(东华大学 计算机科学与技术学院, 上海 201620)

0 引 言

食品包装检测是食品生产过程中一项不可或缺的生产流程。 传统的人工缺陷检测方法存在效率低下,检测主观性较强等问题。 同时,长期工作产生的视觉疲劳现象,会降低质检员对食品包装缺陷判断的准确性。 另一方面,传统质检投入极高的人工成本,检测效率也并不稳定。 因此研究基于机器视觉的计算机自动检测算法显得尤为重要。 在以往的研究中,常用的缺陷检测方式主要包括: 超声波检测法、渗透检测法、X 射线检测、磁粉检测法,但这些技术都需要专业的设备仪器,价格高昂,无法在现代工业生产中得到更大范围的推广。 随着图像处理技术的发展,推出了基于深度学习的缺陷包装检测方法。薯片食品生产线光照条件稳定,单一流水线产品类型固定,比较适合采用基于深度学习的方式检测产品缺陷,本文研究则着重于使用深度学习的方法对流水线上食品包装进行缺陷检测。

对于解决传统人工缺陷检测方法的不足给食品生产带来的诸多负面影响,众多专家学者对机器质检进行了研究,如:王鑫等学者[1]提出基于HOBS 异常检测算法,属于基于概率统计异常检测算法中的一种,HOBS 异常检测算法属于无监督模式检测算法,该方法具有数据集不需要标注,硬件环境要求较低,在普通CPU 下就可训练。 赵宝水[2]用了一种基于最小二乘拟合的图像区域提取算法,最终设计了一种基于Lab 颜色空间下分块Otsu 算法的包装检测方案。 巩晓云[3]提出了一种组合去噪方法,用均值滤波器、中值滤波器、高斯滤波器完成了对3 种噪声的去除,进而采用大津算法阈值分割增强图像对比度,去除了去噪后形成的模糊效应。 但是这些方法主要依赖人工提取特征,可移植性较弱。 而深度学习的特征提取是由机器自动完成的,而且数据量越大,表现就越好,同时还可以通过调参进一步提高性能上限。 所以本文拟基于深度卷积神经网络对包装缺陷进行研究。

目前,基于深度学习的目标检测网络大体可以分为one-stage 和two-stage 两种。 其中, two-stage有R-CNN[4]、Faster R-CNN[5]、SPP-Net[6]等, twostage 目标检测算法是先提出备选框,再对备选框进行判断,从而进行定位和分类。 one-stage 目标检测算法有SSD[7]、 YOLO 系列[8]等,这类算法是将目标检测问题视为一个回归问题进行处理,直接通过单阶段的网络,一体化实现生成备选框的过程,从而进行目标的定位和分类。

分析研究可知,YOLO 系列的目标检测算法在速度和效率上更优,因此本文针对数据集的特点选择了YOLOv5 算法及其对应的主干特征提取网络,并对网络结构进行改进。 因为薯片包装背景单一、不复杂,缺陷重在边缘,YOLOv5 中的Mosaic 数据增强意义不大,从边缘信息这一角度出发,改用了基于Canny 边缘检测算法求得图片的边缘线条。 再引入SENet 网络,根据特征通道间的相关性进行建模,筛选出了针对通道的注意力,并对重要的边缘特征进行强化来提升识别准确率。 抑制网络中无用特征,强化边缘特征。 另外,将YOLOv5n 模型的传统卷积层改为深度可分离卷积层,有效减少了SE-YOLOv5包装缺陷检测算法的参数量和计算量。 最后所提的SENet-YOLOv5 模型检测准确率、平均精度均值(mAP) 都得到了一定的提升,表明该方法可应用于薯片包装缺陷检测以提高企业的工作效率。

1 基本原理

1.1 YOLOv5 算法原理

YOLOv5 是一种高效快速的目标检测模型,具有速度快、灵活性高的特点。 网络结构主要包括DarkNet- 53 主干网络、 路径聚合网络(Path Aggregation Network, PANet)[9]。 主 干 网 络 采 用CSP1_X 结构,主要包括2 个分支。 分支一由X个Bottleneck 模块串联,分支二为卷积层,然后2 个分支拼接到一起,使网络深度增加,特征提取能力大幅增强。 PANet[10]结构是由卷积操作、上采样操作、CSP2X 构成的循环金字塔结构,可以使图像不同特征层之间相互融合,以进行掩模预测,经非极大值抑制(Non-Maximum Suppression,NMS)[11]获得最终预测框。 具体网络模型[12]如图1 所示。

图1 YOLOv5 算法网络结构Fig. 1 Network structure of YOLOv5 algorithm

1.2 注意力机制模块

SENet[13]筛选出针对通道的注意力,并通过强化重要的特征来提升准确率。 这种结构的原理是通过控制scale的大小来加强重要的特征、减弱不重要的特征,从而让提取的特征指向性更强。 具体做法为:

(1)进行压缩(Squeeze)操作,找到通道间信号的关系并输出。 使用全局平均池化(global average pooling) 将feature map 所有特征值进行处理,计算成一个值(可看作1×1 卷积),即经过压缩操作后特征图被压缩为1×1× C向量。 公式如下:

(2)激励(Excitation)操作。 通过一定方式提取通道信息,再利用这些通道信息,来全面捕获通道依赖性。 为了满足这些标准,选择采用一个简单的门机制,并使用sigmoid激活(这里得到的标量S就相当于后续要加在输出信息U的某个Fm上的权重了)。 此处需用到的数学公式为:

其中,σ表示sigmoid激活;δ表示Relu激活函数;W1和W2是用于降维和升维的2 个全连接层的权重。 通过在非线性周围形成2 个全连接(FC) 层的瓶颈来参数化门机制,即降维层参数为W1,降维比例为r。 将通道权重相乘,原有特征向量为W ×H ×C,将SE 模块计算出来的各通道权重值(标量s) 分别和原特征图对应通道的二维矩阵相乘,并输出得到的结果。 SENet 的Block 单元如图2 所示。

图2 SENet 的Block 单元Fig. 2 The Block unit of SENet

2 SE-YOLOv5 食品包装缺陷检测方法

虽然YOLOv5 网络模型在目标检测上有显著的优点,但由于本数据集样本视距一致,目标大小一致且显著,背景单一,为了提高检测精度和速度,提出SE-YOLOv5 包装缺陷检测算法,模型如图3 所示。

图3 SE-YOLOv5 算法网络结构Fig. 3 Network structure of SE-YOLOv5 algorithm

本文对于该模型的主要改进为:针对数据集的特点,YOLOv5 中的Mosaic 数据增强意义不大,改用了基于Canny 边缘检测的数据增强,提升数据集细节;将注意力机制SENet 与DarkNet-53 融合组成新的特征提取网络SEDarkNet-53,作为SE-YOLOv5的主干网络,加强网络提取特征的能力;通过深度可分离卷积层代替主干网络中传统卷积的结构以降低模型参数量,提高识别速度。

由图3 可看到,首先输入端将640×640 大小的RGB 图像作为输入,为了凸显图像的边缘特征以更好地进行网络的特征提取,将图片进行Canny 边缘算法处理,并将其作为一个通道拼接至原图像,至此形成4 通道的图像输入。 主干网络(backbone)由卷积操作、下采样(Focus)和跨阶段结构(Cross Stage Partial,CSP)组成,这里将普通卷积替换成深度可分离卷积,以此来减少网络的参数量和提高识别速度,同时为了减少深度可分离卷积带来的性能损失,加入了通道注意力机制(SE)来提高模型性能。 将处理过后的图像输入至主干网络来提取图像特征(feature)。 颈干网络(Neck)由特征金字塔(Feature Pyramid Networks,FPN) 和 像 素 聚 合 结 构(Pixel Aggregation Network,PAN)组成,将主干网络提取的特征向量输入颈干网络进行特征的融合,最终通过3 个不同尺度下的YOLO 检测头(head)输出坐标偏移值和分类结果。

2.1 基于Canny 边缘检测的数据增强

经过大量现场观察,可知薯片包装缺陷的数据集主要为封口不良,且视距一致,目标大小一致且显著,背景单一,因此Mosaic[14]数据增强对于本研究意义不大。

封口各类问题一般是体现在包装边缘的不规整性,存在强烈的边缘信息,因此从边缘信息这一角度出发,通过Canny[15]边缘检测算法求得图片的边缘线条,并作为一个图像通道加入至输入端原有的RGB 三通道中,形成具有边缘信息的4 通道图像,从而有利于主干网络提取特征,提升了性能。

2.2 SEDarkNet-53 主干网络

为了抑制网络中的无用特征,强化重要的边缘特征,SEDarkNet-53 引入SEnet 增加网络深度并提升特征提取能力,进一步对包装缺陷进行更加精确的定位和识别。 筛选出针对通道的注意力,把重要的特征进行强化来提升准确率,控制scale的大小,把重要的边缘特征加强,减弱次要特征,从而强化特征指向性。 原BottleNeck 具有简易的线性运算,在轻量化的同时保持准确性,CBS 模块改进流程如图4 所示。 图4 右侧增加LeakyRelu函数,避免负值输入的梯度为0,进而解决部分神经元不学习的问题,更充分地学习图像特征,再与SENet 结合生成CBS单元,以此达到对包装缺陷进行更加精确的定位和识别的效果。

图4 CBS 模块改进流程Fig. 4 CBS module

2.3 YOLOv5n 模型改进

SE-YOLOv5 包装缺陷检测算法将YOLOv5n 模型的3 处传统卷积层替换为深度可分离卷积层。 第一步进行Depthwise Convolution-深度卷积,与常规卷积操作不同,深度卷积的一个卷积核负责一个通道,逐个通道分开卷积,对于一张3×3 像素、四通道彩色输入图片(shape 为3×3×4),如图5 所示,经过第一次卷积运算,Depthwise Convolution[16]完全是在二维平面内进行。 卷积核的数量与上一层的通道数相同(通道和卷积核相对应),Feature map 通道数与卷积核个数相同,所以一个四通道的图像经过运算后生成了4 个通道的Feature map。

图5 深度卷积流程图Fig. 5 Depthwise Convolution

这样运算后,不会改变卷积前后的通道数,然后通过Pointwise Convolution[17],逐点卷积流程如图6所示。

图6 逐点卷积流程图Fig. 6 Pointwise Convolution

将卷积分解成 Depthwise Convolution 和Pointwise Convolution 后,这个卷积的计算量约减少了56%,整个网络参数下降到原本参数量的43.92%,有效减少了SE-YOLOv5 包装缺陷检测算法的参数量和计算量,利于后续模型的开发板部署。

3 实验与结果分析

3.1 实验环境

本次实验中,实验环境设置见表1。

表1 仿真实验配置Tab. 1 Configuration of the simulation experiment

3.2 训练过程

本研究采用的薯片包装缺陷数据集图像均为生产流水线摄像头拍摄的视频截取而成,数据集一共1 000张具有包装缺陷的图像,考虑实际的生产环境,具有缺陷的包装为少数,若训练集均为具有缺陷的正样本,则检测误检的概率就会很高,同时加入了2 000张没有包装缺陷的负样本,以保障正负样本平衡,测试中减少误检,提升召回率Recall。 因此,正负样本图片共3 000张图片,将其以9 ∶1 的比例分为训练集和验证集,图像的大小都是2 448*2 048,为方便训练和测试,本论文统一将图像大小放缩(resize) 为640*640。 为了满足试验要求,首先,借助Lableimg 软件对数据集进行标注,手动设置类别为合格包装和badbox 两类;然后,把数据集转变成yolo 格式。 此外,为体现算法鲁棒性,数据集中图像为原始图像,没有进行任何清晰化等预处理。 在网络训练前,使用K-Means 算法对先验框尺寸进行计算,初始锚框的参数设定为[9,14,17,32,33,23]、[32,64, 65,49, 60,120]、[127,92,140,188,352,333],通过在大型数据集COCO 上训练得到预训练模型进行权重的初始化,使用SGD 优化算法更新网络参数,学习率设置为0.001,训练批次为16,模型迭代500 次,网络的输入图片尺寸为640×640×3。为了验证本文改进YOLOv5 的检测性能,进行消融实验。测试集每批次训练记录一次loss值,当训练集和测试集的loss值趋于稳定时,即停止训练。

3.3 模型检测效果

由本论文提出的算法检测效果可以看出,通过本研究提出的改进YOLOv5s 的算法,可以有效地检测出大部分的缺陷,但也存在一定程度上的漏检和误检。 从对数据集的分析来看,这是典型的样本不均衡导致的。 对检测效果分析可知,误检其一为生产流水线的杂物导致的误检,说明模型的抗噪声能力有待进一步提升。 其二为小目标的误检,但其较低的置信度完全可以通过置信度过滤的方法将其去除。 一个优秀的深度学习算法不仅仅取决于模型的架构,同时优良的数据集也是重要的因素。 正负样本的不均衡导致的漏检,抗噪能力的提升这些完全可以从数据集的角度进行解决,解决方法即为增加该类型的封口不良类别、包含杂物的负样本图片以及小目标的样本数量,并进行重新训练。

3.4 模型检测效果对比

为了验证本文提出的改进模块对YOLOv5s 算法性能的影响,设计7 组实验对不同的改进部分进行消融实验,验证其有效性,对表2 进行分析可见,模型8 是本文所提出的网络模块。 模型2 将原有的三通道图像输入加入了Canny 边缘检测的通道,即本文提出的基于边缘的数据增强,相较于基线模型,将mAP从0.88 提升至0.91(3.4%),边缘数据增强将图片的隐式信息显式化,有利于主干网络提取特征,从而提升了性能。 而模型参数和识别速度方面,因为输入从三通道变成了四通道,对应的卷积核通道数也从三通道变成了四通道,保证张量计算的一致性,从而让模型的参数量有略微的提升,但从识别速度来看,影响并不大。 模型3 在YOLOv5s 主干网络(backbone)中使用深度可分离卷积结构替代原有的卷积的微调后,在牺牲极少的mAP性能的情况下(0.88→0.86),或者说准确率基本不变的情况下,有效地减少了模型参数量和提升了模型识别效率。 其中,相较于基线网络,模型参数量从7.2 M 下降至4.1 M(66%),识别速度从95.1 ms 提升至55.1 ms(42%);模型3 在基线模型的基础上加入通道注意力机制(SE),能将通道的注意力信息嵌入到YOLOv5s 的模型,使得模型对特征图的注意力更加集中,来提升模型的性能。 从表1 来看,通道注意力将基线模型的mAP从0.88 提升至0.94 (6.8%),略微增加了识别速度,模型的性能取决于精度与速度的权衡,而不是一味地提升性能或速度,因此该改进模块使得mAP的提升让识别速度的增加是可以接受的;从表1 中的模型4 ~7 来看,各个改进模块兼容程度较好,并未出现加入多个改进模块mAP反而下降的情况,这是由于本文的改进模块是对YOLOv5 的不同阶段算法进行改进的。 最终加入3个改进模块的模型8 的mAP达到0.95,识别速度为59.7 ms,相较于基线模型,精度提升了7.9%,而识别速度提升了37%。

表2 消融试验Tab. 2 Ablation experiment

4 结束语

为了节省大量人力,提高食品包装检测效率,保证产品质量,本文提出一种基于SENet-YOLOv5 网络的包装缺陷实时检测方法,在YOLOv5 架构的基础上,本研究采用基于Canny 边缘检测算法的数据增强,通过深度可分离卷积层代替主干网络中传统卷积的结构以降低模型参数量,提高识别速度,融合通道注意力机制SE 模块,加强网络提取特征的能力。 实验表明,本研究所提出的SENet-YOLOv5 模型,mAP达到0.95,识别速度为59.7 ms,相较于基线模型,精度提升了7.9%,而识别速度提升了37%,可应用于实际的生产过程。

猜你喜欢
边缘卷积深度
基于3D-Winograd的快速卷积算法设计及FPGA实现
深度理解一元一次方程
从滤波器理解卷积
深度观察
深度观察
深度观察
基于傅里叶域卷积表示的目标跟踪算法
一张图看懂边缘计算
一种基于卷积神经网络的性别识别方法
在边缘寻找自我