基于改进VGG13 的冲压件表面缺陷识别方法研究

2024-03-05 08:35刘荣光朱传军成佳闻王林琳
机床与液压 2024年2期
关键词:冲压件正确率卷积

刘荣光, 朱传军, 成佳闻, 王林琳

(1.湖北工业大学机械工程学院, 湖北武汉 430068; 2.华中科技大学数字制造装备与技术国家重点实验室, 湖北武汉 430074)

0 前言

产品质量一直是社会各界广泛关注的问题。 《中国制造2025》 提出“质量为先” 作为制造强国战略的基本方针, 《中国机械工程技术路线图》 则强调未来二十年的制造业发展要更加注重 “保障产品质量”。 表面缺陷作为产品质量的常见问题之一, 一方面影响产品的外观和舒适度, 造成不必要的经济损失; 另一方面也会影响产品性能 (如表面摩擦力等), 导致产品使用过程存在安全隐患。 因此, 如何快速准确地识别产品表面缺陷, 成为了产品质量管理中亟待解决的关键问题之一。 缺陷检测是工业上非常重要的应用, 常见的产品表面缺陷检测方法主要有人工缺陷识别、 超声波缺陷识别、 漏磁缺陷识别, 由于缺陷多种多样, 传统的检测方法很难做到对缺陷特征进行完整的建模和迁移, 复用性不大、 要求区分工况, 这会浪费大量的人力成本, 且检测周期长、 需要进行复杂的特征设计等诸多局限性。

基于机器视觉的产品表面缺陷识别是指利用计算机视觉技术对包括表面刮痕、 破损、 磨损等在内的缺陷图像进行识别, 从而获得缺陷类别的过程, 属于典型的图像识别问题。 常见的基于机器视觉的表面缺陷识别方法以机器学习算法为主, 主要包括支持向量机[1]、 人工神经网络[2]、 贝叶斯网络[3]等模型。 随着深度学习在特征提取和定位上取得更好的效果, 越来越多的学者和工程人员开始将深度学习算法引入到缺陷检测领域中。 基于深度学习的缺陷识别方法与传统的缺陷识别方法最大的不同在于: 前者可以通过模型实现端到端的特征自动化提取。 KHUMAIDI 等[4]提出了一种基于高斯核的CNN 模型, 通过使用高斯核模糊图像从而提升模型的泛化效果。 ZHANG 等[5]同样将CNN 网络应用到了焊接缺陷的识别问题中。ZHONG 等[6]将Hough Transform 与CNN 相结合, 并将其应用到了高铁轨道检测中。 KRIZHEVSKY 等[7]提出了AlexNet 卷积神经网络。 Visual Geometry Group提出的VGG 系列模型[8], 在AlexNet 的基础上构建了一个更为庞大的神经网络模型, 通过高达十几层的网络结构, 达到更为准确的识别效果。 李勇等人[9]提出一种基于改进BiFPN 的电枢外观缺陷检测方法,大大减少了将缺陷件误判为良品的概率。 熊红林等[10]提出一种基于多尺度卷积神经网络(MCNN)图像识别模型, 将MCNN 模型应用在玻璃表面缺陷识别中, 有效提高了缺陷检测的准确率。 MEI 等[11]提出了一种无监督缺陷分割方法, 采用了卷积自编码器实现了缺陷主体与背景的准确分割, 从而有效避免了复杂的人工设计过程。 苏佳等人[12]提出一种基于改进YOLOv4 的YOLO-J 的PCB 缺陷检测算法, 有效提升了PCB 缺陷检测的准确率和速度。 田雪雪等[13]针对增材制件内部缺陷检测, 提出一种内部缺陷埋藏深度的定量检测方法, 有效缩小了检测误差。 罗兵等人[14]提出一种基于机器视觉的喷嘴图像缺陷检测方法, 有效提高了检测精度和速度, 满足工业生产线对喷嘴检测准确性和实时性的要求。

本文作者基于卷积神经网络的表面缺陷识别问题展开研究, 通过分析问题特性, 改进VGG13 网络模型, 在不同的特征提取层之后分别增加CBAM注意力机制模块改进卷积神经网络, 实现表面缺陷的准确识别, 使其具有更好的图像识别效果, 并将改进后的模型引入到冲压件表面缺陷识别问题中,从而提升冲压件表面缺陷识别的准确性。 在数据处理方面, 对所采集的冲压件缺陷数据集进行扩充,进一步提高模型的泛化能力, 使得整个模型可以满足新缺陷数据的需求, 有效实现冲压件表面缺陷的准确识别, 确保产品质量, 避免表面缺陷问题造成的不必要损失, 为生产过程中的智能决策和调控提供准确的参考依据。

1 模型方法与原理

1.1 VGG 网络

VGG 模型是常见的卷积神经网络模型之一, 通过依次采用多个3×3 卷积, 模仿出更大的感受野[8]。 VGG 与浅层的CNN 模型相比有着更强的特征学习和表达能力, 在更加复杂的缺陷识别问题中, 可以学习到有用的特征信息, 从而有效地提高识别的效果。 许多学者的研究以及预实验结果均表明; 以VGG 作为基础模型, 在分类问题中有着良好的效果。 文中采用VGG13 网络模型进行实验,网络结构如图1 所示, 由10 个卷积层(Conv) 和3个全连接层(FC) 构成。 卷积层中所有的卷积核大小均为3×3, 所有的池化核大小为2×2, 且每2 次卷积之后进行1 次池化 (Pool), 均为最大池化。VGG13 前2 层每层卷积核个数为64, 第三、 四层每层卷积核个数为128, 第五、 六层每层卷积核个数为256, 第七、 八层每层卷积核个数为512, 第九、十层每层卷积核个数均为512。 最后是3 个全连接层(FC) 的连接, 原全连接层节点个数分别为4 096、 4 096、 1 000。 由于文中所使用的数据规模较小, 为降低参数量以加快训练过程, 将前2 个全连接层的节点个数减少至2 048, 文中使用的缺陷数据集共8 类, 最后一层全连接层个数为8。 网络中最后一层分类层采用Softmax 激活函数, 其余均采用ReLU 激活函数。

图1 VGG13 模型网络结构示意Fig.1 Schematic of the network structure of the VGG13 model

1.2 CBAM 模块

CBAM (Convolutional Block Attention Module) 将通道注意力机制模块和空间注意力机制模块结合起来[15], 是一种端到端的通用模块。 CBAM 模块示意如图2 所示, 通过通道注意力机制得到包含权重的新的特征图后, 再由新的特征图空间位置像素信息得到空间当中的分布, 最终得到特征图。 CBAM 克服了通道域中全局平均池化将空间信息转换为通道信息过程中信息丢失的缺点。

图2 CBAM 模块Fig.2 CBAM module

通道分支是给定一个输入F∈RH×W×C,H、W、C分别为特征张量的高度、 宽度和通道数, 同时经过全局平均池化(GAP) 和全局最大池化(GMP) 操作分别得到不同的空间语义描述算子, 通过一个共享感知机将2 个通道注意力特征向量以相加的方式进行融合, 最后经过激活函数, 得到通道注意力向量Mc∈Rc×1×1。 与SEnet 不同的是, 在CBAM 中增加了并行最大池化层, 可以提取到更全面和丰富的高层特征,详细描述如式(1) 所示:

其中:σ代表激活函数;W0、W1代表全连接层的权重。

空间分支是将通道分支输出结果沿着通道维度,经过全局平均池化(GAP) 和全局最大池化(GMP)操作, 分别得到2 种不同的通道特征描述算子, 将二者拼接, 然后经过一个卷积核大小为7×7 的卷积操作, 再经过激活函数, 最后得到空间注意力向量Ms=R1×H×W。 详细描述如式(2) 所示:

其中:f7×7代表卷积操作, 卷积核大小为7×7。

2 实验设计与结果分析

2.1 实验设计

此实验在武汉某制造车间采集的冲压件缺陷数据集上进行。 冲压件缺陷数据集包含8 种常见缺陷类别, 分 别 为 点 坑 (65 张)、 断 裂 (81 张)、 划 痕(243 张)、 孔洞 (149 张)、 拉伤 (179 张)、 麻点(93 张)、 毛刺(58 张)、 起皱(154 张), 每张缺陷图像大小为376 像素×376 像素, 图3 所示为冲压件8种缺陷图像示例。 在实验过程中, 将冲压件缺陷数据集分为训练集、 验证集、 测试集三部分, 比例为6 ∶2 ∶2。 以测试集正确率作为评价模型指标, 实验平台由某云服务器提供: CPU10 核Intel(R)Xeon(R)Gold 5218R CPU@2.10 GHz, 内存为50 GB, GPU 为RTX 3090∗1, 显存为24 GB, 所有模型单独运行10次取 平 均。 镜 像 采 用PyTorch1.10.0、 Cuda 11.3、Python3.8 深 度 学 习 框 架 以 及Numpy、 Matplotlib、OpenCV 等深度学习库, 在模型中每次训练的批次(Batch Size) 大小为32, 训练100 个Epoch, 采用Adam 优化器, 学习率为0.001, 损失函数为交叉熵损失函数, 反向传播更新模型的参数。 在训练过程中, 对所有网络的前2 个全连接层随机失活一半的神经元, 防止模型过拟合。

图3 冲压件缺陷图像示例Fig.3 Example of defects in stamping parts: (a) point pit; (b) fracture; (c) scratch; (d) hole; (e)strain; (f) pitting; (g) burr; (h) wrinkling

2.2 数据增强

数据增强是扩充数据样本一种有效的方法, 可以使有限的数据产生更多的数据, 增加了数据集的多样性, 提高了模型的鲁棒性。 卷积神经网络的参数数以万计, 训练好一个网络需要大量的数据集, 由于现实条件的制约, 采集的数据样本数量有时较少, 达不到深度学习的条件, 或者无法覆盖所有情况, 因此需要通过数据增强手段来扩充图像的数量。 尤其是缺陷图像, 在工业生产过程中更加难以采集。 通过数据增强由有限的数据产生了更多变种, 使原始数据的表示形式更多, 一定程度上降低了模型对数据中某些属性的依赖。 因此, 在小样本数据集输入网络模型训练之前, 可以通过数据增强方法来扩大样本集数量, 提高模型的泛化性能。 传统的数据增强方式有随机翻转、裁剪、 变形缩放、 镜像、 增加噪声、 染色扰动、 随机遮挡等, 通过这些方式获得更多的训练图像。 如图4所示, 针对采集的冲压件缺陷图像的具体特点, 选用旋转、 水平镜像、 竖直镜像3 种几何变换对数据集进行扩充, 使得每种缺陷图像均扩充为原来数据集的3倍。 数据增强只在占比60%的训练集中使用, 在验证集和测试集中未使用数据增强。

图4 冲压件划痕缺陷数据增强效果Fig.4 Enhanced effect of scratch defect data of stamping parts: (a) original image; (b) rotate 90°; (c)horizontal mirror image; (d) vertical mirror image

2.3 实验结果

以VGG13 网络为基准网络模型, 对比了在VGG13 网络的不同位置引入CBAM 模块对实验结果的影响。 VGG13 共有10 个卷积层, 加入CBAM 模块的位置在每2 个卷积层之后。 VGG13-CBAM01 在每2个卷积层之后各加入一个CBAM 模块, VGG13-CBAM02 删除了VGG13-CBAM01 中加入的第一个CBAM 模块, 以此类推, VGG13-CBAM03、 VGG13-CBAM04、 VGG13-CBAM05 分别在前者的基础上减少一个CBAM 模块。 由于VGG13-CBAM01 与VGG13-CBAM02 收敛效果不佳, 这里不再展示。 图5(a1)(b1) ( c1) 分 别 为 VGG13-CBAM03、 VGG13-CBAM04、 VGG13-CBAM05 网络模型训练集的误差损失随迭代次数的变化曲线; 图5(a2)(b2)(c2)分别为VGG13-CBAM03、 VGG13-CBAM04、 VGG13-CBAM05 这3 种网络模型验证集正确率随迭代次数的变化曲线。 由图5(a1)(b1)可知: VGG13-CBAM03、VGG13-CBAM04 网络模型在同样迭代100 个Epoch的情况下, 相比于原VGG13 网络模型, 能进一步加快误差下降, 训练过程中的误差也明显低于原VGG13 网 络。 由 图5 (a2) (b2) 可 知: VGG13-CBAM03、 VGG13-CBAM04 网络模型在同样迭代100个Epoch 的情况下, 相比于原VGG13 网络模型, 有效提升了验证集的正确率, 训练过程中的验证集正确率明显高于原VGG13 网络。 而图5(c)所示的VGG13-CBAM05 网络相比于原VGG13 网络无明显改进效果。

图5 训练集误差与验证集正确率对比曲线Fig.5 Comparison curves of training set error and validation set accuracy: (a) VGG13 and VGG13-CBAM03;(b) VGG13 and VGG13-CBAM04; (c) VGG13 and VGG13-CBAM05

2.4 测试集正确率

基于冲压件缺陷数据测试集, 将训练好的各网络权重分别加载到VGG13 网络及其改进模型上进行实验验证和分析。 表1 所示为该数据集测试集在原模型与改进模型以及使用数据增强扩充数据前后各模型的测试集正确率。

表1 数据增强前后各网络模型之间的对比Tab.1 Comparison between network models before and after data enhancement

由表1 可知: 数据增强方法在VGG13 与其改进模型中均能提高分类精度, 改进后的VGG13-CBAM03、 VGG13-CBAM04 相比于VGG13 原网络在测试集上提高效果明显, 测试集正确率由79.65%分别提高到了81.55%和81.40%, 而VGG13-CBAM05无明显改进效果。

3 结论

文中主要基于武汉某制造车间采集的冲压件缺陷数据集对VGG13 网络展开研究。 通过在VGG13 不同卷积层位置分别引入CBAM 注意力机制模块进行改进, 共提出了5 种VGG13-CBAM 网络模型。 通过实验对比发现VGG13-CBAM03、 VGG13-CBAM04 相比于原VGG13 网络模型能够加快训练过程中误差的下降并提升验证集正确率, 在冲压件缺陷数据集上取得了良好的识别效果。 同时在数据预处理阶段使用数据增强策略扩充数据, 使原本用于训练阶段的数据集扩充为原采集数据集的3 倍, 有效提高了模型的泛化性能, 在测试集上取得了良好的效果, 有效地确保产品出厂质量, 避免由于表面缺陷漏检误检而造成的不必要损失, 为工艺参数的优化以及生产调控管理决策提供了准确的参考依据。 文中虽对冲压件缺陷识别的准确率有所提升, 但在工业产品的实际生产过程中, 模型的好坏会受到噪声、 数据集的大小、 数据集样本分布不均匀、 采集的缺陷图片质量高低等因素影响, 后续将针对此方面展开研究。

猜你喜欢
冲压件正确率卷积
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于PLC的冲压件生产线自动控制系统设计
门诊分诊服务态度与正确率对护患关系的影响
浅析冲压件测量点的规划
基于3D扫描的冲压件质量检测
浅谈汽车镀金冲压件回弹的解决方法
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
生意
品管圈活动在提高介入手术安全核查正确率中的应用