计算机系统应用教程网站

网站首页 > 技术文章 正文

机器学习!改进YOLOX的铝铸件表面成孔缺陷检测研究

btikc 2024-09-01 15:30:27 技术文章 23 ℃ 0 评论

铸造是诸多重装、高精设备关键零部件的主要成形方法,在造型、浇注、落砂等工艺环节已逐步实现自动化,但在表面缺陷检测等环节尚缺少快速检测系统或装置。因生产环节复杂等问题,铸件在铸造过程中易出现偏芯、漂芯、漏芯等成孔缺陷,直接影响后续加工。待检测件具有缺陷成因多、形状不规则、特征提取困难等特点,采用深度学习技术检测铸件表面成孔缺陷存在难度大、检测精度低等难题。

近年来,基于端到端算法的表面缺陷检测成为工业检测的新手段。KONOVALENKO I等构建残差分类器捕捉特征形状,对金属表面缺陷检测精度达到96.7%,但未解决感受野区域捕捉受限问题;翁玉尚等提出K-Means II聚类改进锚框的Mask R-CNN算法,检测精度明显提升,但仍为Two-Stage检测算法,难以实现实时检测。One-Stage检测算法直接利用卷积神经网络回归目标边界框坐标和分类概率,明显提升检测速度并降低硬件依赖度,其中以SSD、YOLO系列为基础的端到端算法适用于表面缺陷的实时检测。端到端缺陷检测法已用于汽车轮毂、工业轴承等目标的缺陷检测。针对铸件表面缺陷检测常用X射线检测、荧光渗透检测和工业内窥镜检测,基于端到端算法中One-Stage检测方法对铝铸件表面缺陷检测方法研究较少。鲍春生等针对铸件划痕缺陷的检测精度有了很大的提高,而其提出的YOLOv3-Mv2模型采用预设锚框Anchor-Base检测方式,运算耗时和算力大大增加。

安徽理工大学王成军教授在2023年第43卷第09期《特种铸造及有色合金》期刊上发表了“基于改进YOLOX算法的铝铸件表面成孔缺陷检测研究”,文章针对铸件在铸造过程中易出现漂芯、漏芯等成孔类缺陷,采用视觉检测时铸件与背景特征相近,产生特征网络提取能力欠缺的问题,提出改进YOLOX的铝铸件表面成孔缺陷检测方法。构建成孔缺陷数据集;引入SE注意力机制,提升特征重用率;替换原卷积块为CBH,稳定特征拟合过程;完善CIOU边界框回归损失函数,加速模型收敛。试验证明,改进模型在铝铸件缺陷数据集的平均检测精度提升至97.13%,单图推理速度为0.016 2 s,可快速准确地完成铝铸件表面缺陷检测。

【算法基础- YOLOX算法】

YOLOX目标检测算法,输入端采用Masic和Mix-up两种数据增强方式预处理输入图片,并将其缩放至分辨率。Backbone层采用Focus结构将图像切片调整为分辨率的特征图,其中32代表将图像切分为32块同等大小的小特征图;主干网络由CSPDarknet53和空间金字塔池化SPP(Spatial Pyramid Pooling,SPP)组成,提取前景特征。PAFPN层沿用FPN结构,通过上采样传递高层特征信息,下采样融合浅层特征的方式,增强网络特征融合能力。Prediction层提出解耦头技术,采用无预设锚框Anchor-Free检测方式、Multi positives机制和SimOTA标签匹配策略,缓解了训练过程中正负样本不均衡问题,改进前YOLOX网络结构见图1。


图1 改进前YOLOX网络结构图


铝铸件表面成孔类缺陷检测难点在于铸件与背景特征相像,引发特征提取能力不足和有效感受野区域受限的问题,影响缺陷检测精确度和处理速度。针对上述问题,改进后YOLOX算法将目标检测任务重新定义为单一的回归预测问题,模型框架见图2。


图2 改进后YOLOX网络结构图


【缺陷检测模型建立】

为满足铝铸件表面成孔缺陷检测的精度和实时性需求,对原始YOLOX网络做出3点改进。

CSPDarknet53网络作为YOLOX主干网络,使用CBL基础卷积块,由Conv、批归一化层(Batch Normal,BN)和SiLU激活函数组成,可防止网络饱和,避免产生不可导问题。但在深层网络中才能体现其优势,且SiLU函数中的Sigmoid指数函数将导致求导过程计算量增加。

铝铸件表面成孔类缺陷检测中引入HardSwish激活函数,输入特征经BN层调整每层网络输出数据后,由HardSwish激活函数代替线性SiLU函数,规避Sigmoid函数所导致的梯度消失问题,降低梯度弥散率,加速模型收敛。同时,使用分段函数稳定拟合检测数据,可降低内存访问次数。

故可将改进YOLOX的铝铸件表面缺陷检测模型中的CBL基础卷积块替换为由Conv、BN和HardSwish激活函数组成的CBH卷积块,见图3。


图3 CBH卷积块

Fig.3 CBH convolution block


YOLOX算法中主干网络利用叠加CBL卷积块与CSP结构增加网络深度,提取图像特征。CSPDarknet53特征提取网络中浅层特征局部感受野小,使得捕捉明暗、特征边缘等细节更准确,适合检测小型缺陷目标,但语义知识欠缺,信息传递过程易受网络干扰。浅层特征经4次卷积叠加后获得比原图分辨率缩小至原图分辨率十六分之一的深层特征。深层特征局部感受野变大,反映整体结构,语义知识丰富,但获得细节有效特征信息持续减少,减弱较小缺陷目标特征的表达能力,导致漏检和误检。

通道注意力模块以SENet为基础设计,从主干特征提取网络的多尺度特征作为输入,先进行全局最大池化操作,实现空间维度特征信息压缩(Squeeze);然后通过11全连接卷积层(Fully Connected Layers,FC)学习压缩卷积后重分配权重的特征值,并通过Sigmoid激活函数,获得各通道注意力模块的权重信息;最终,将各个通道与其对应权重信息拼接,并与原始特征以点乘方式实现对特征信息的激励(Excitation),代替原始特征作为骨干网络的输出,提高可用特征利用率。

铝铸件表面成孔类缺陷中因砂芯漂移导致铸件表面出现漂芯缺陷。故在特征金字塔网络中引入SE注意力机制,增强对漂芯类缺陷的小目标信息的特征提取能力。从3种尺度特征中获得更具鲁棒性的特征图像,强化特征提取网络对成孔缺陷特征的关注,抑制无关背景信息,减少铝铸件表面小缺陷特征信息丢失,兼顾细节与整体,提升模型对铝铸件表面缺陷特征感知能力,见图4。


图4 压缩与激活注意力机制


损失函数是衡量预测算法模型对真实目标拟合效果的关键指标,边框回归损失函数直接影响目标定位结果。YOLOX模型输出端中采用解耦头(Decoupled Head)将预测目标框类别的分类任务与预测边界框坐标和置信度的回归任务区分开。YOLOX采用IOU作为反映检测缺陷准确度的标准,但此损失函数无法精确反应预测框与真实框重合度。

铸件成孔缺陷成因复杂,对表面成孔类缺陷检测算法中充分考虑到预测网络中预测框与真实框边界不重合时IOU值、中心点距离相同和边界框宽高比不同时所产生的问题。验证表面成孔类缺陷定位预测框时,采用CIOU (Complete-IOU )边界框回归损失函数计算损失,加速预测边框稳定回归。CIOU边界框回归损失函数在两框不重合时指出锚框随后移动方向,保证模型正常训练;当两框中心点重合且边框长宽比不同时,及时调整预测框,得到准确的预测框与真实框两框位置关系。

【研究结果】

试验选用工业相机采集铝铸件表面缺陷图像,设置相机拍摄时间间隔为0.2 s,图像分辨率为1280pix×720pix。铝铸件缺陷位置具有随机性,故在固定角度、背景下连续拍摄铝铸件缺陷图片无法充分满足工业场景,本研究在不同背景和光照强度下采集表面缺陷铝铸件图像,经筛选最终收集9 500张铝铸件表面缺陷图像,每张图像至少包含一种缺陷;同时采集了2 000张正常铝铸件图像。

数据处理过程使用开源工具LableImg实现铝铸件表面成孔类缺陷图像标注,分为检测整面漏铸孔、柱体漏铸孔、铸孔漂芯3种类型缺陷,缺陷标签分别为Surface Leak Punch、Cylinder Leak Punch、Wafer Leak Punch,正常铸件标签为Defect-Free。单个铝铸件在实际工业场景下有多处成孔需求,故成孔缺陷标签数均大于数据集总数。以COCO数据格式制作数据集,将标注文件存为.xml类型,文件中包含缺陷类型、缺陷框坐标和图像分辨率等信息。标注数据按8:1:1比例随机划分为训练集、测试集和验证集。铝铸件表面缺陷数据集标签分布见表1。



试验采用的硬件配置为Intel(R) Xeon(R) Platinum 8255C CPU@2.50GHz处理器,显卡型号为NVIDIA GeForce RTX 3080-10G,编译环境为PyCharm,PyTorch 1.8.1搭建网络模型,Python 3.8编译器,Cuda 11.1和Cudnn 8.4加速GPU训练。

铝铸件表面成孔类缺陷模型训练设置最大迭代轮数为300,初始学习率为0.005,权重衰减系数设置为0.000 5,非极大值抑制值(NMS)为0.65,Mosic和MixUp数据增强尺度为(0.1,2.0)。试验采用表面缺陷检测常用评价指标对铝铸件表面缺陷检测模型精度评估,包括准确率(Precision,P)、召回率(Recall,R)、平均精度均值(Mean Average Precision,mAP)。考虑铝铸件表面缺陷模型需适应真实工厂环境,采用推理时间衡量模型推理速度,其越小表示检测模型每秒处理图片数量越多。

以相同数据集和同一GPU为基准,为更直观表示各改进模块贡献效果和比较改进后YOLOX算法与其他算法在铝铸件表面缺陷检测中的识别效果,对比试验的结果见表2。改进后算法平均检测精度(mAP@0.5)比传统YOLOv5和YOLOX提升了2.63%和2.32%,平均检测精度(mAP@0.5:0.95)比传统YOLOv5和YOLOX提升了3.06%和1.47%,优于上述检测算法。

从检测精度数据看,SE注意力机制提升了网络对不同通道特征提取的能力,使整面漏铸孔和片状漏铸孔缺陷检测精度均有明显提升;CBH卷积块对柱体漏铸孔和铸孔漂芯缺陷的检测效果有所提升,有效缓解了铸件与背景特征相近的问题;最后,引入CIOU边界框回归损失函数,有效解决两框不重合时导致的回归问题。改进后YOLOX算法较YOLOv5和YOLOX算法得到明显的精度提升,虽推理时间少量增加,但仍在可接受范围,符合实时检测的需求。



图5为YOLOX算法与改进后YOLOX算法对铝铸件表面缺陷数据集检测PR曲线、mAP值和损失函数回归结果对比。结果显示,在多类缺陷检测精度有所提升。图6为实验室环境下对各类铝铸件缺陷的检测效果,改进模型可检测出多种缺陷且错检率较低。综上所述,本研究提出的改进YOLOX算法性能较好,在检测精度和速度方面表现良好,可满足铝铸件成孔类缺陷检测的需要。


(a)原始模型PR曲线 (b)改进模型PR曲线

(c)mAP@0.5 (d)mAP@0.5:0.95

(e)原始模型损失函数拟合结果 (f)与改进模型损失函数拟合结果

图5 改进前后YOLOX模型运行结果对比图

(a)整面漏铸孔缺陷 (b)柱体漏铸孔缺陷 (c)铸孔漂芯缺陷 (d)正常铝铸件

图6 铝铸件检测效果图


【研究结论】

(1)对网络模型重新设计,引入CBH卷积块,优化有效感受野区域;CIOU边界框回归损失函数关注预测框与真实框之间逻辑关系,促进模型拟合过程稳定。

(2)采用SE注意力机制对通道特征信息压缩和激励,提高缺陷铸件特征权重,降低背景权重,减少特征信息损失。与原模型对比,验证了模型对解决铸件特征与背景相近的有效性。

(3)改进后YOLOX算法对铝铸件表面缺陷检测精度mAP比YOLOX提升了2.32%和1.47%;在检测速度方面,单张图像推理时间满足铝铸件成孔类缺陷实时检测的需求。

[文献引用格式]

胡佳琪,王成军,杨超宇,等.基于改进YOLOX算法的铝铸件表面成孔缺陷检测研究[J].特种铸造及有色合金,2023,43(9):1205-1209.

HU J Q,WANG C J,YANG C Y,et al.Detection of hole-forming defects on aluminum casting based on optimized YOLOX[J].Special Casting& NonferrousAlloys,2023,43(9):1 205-1 209.

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表