基于图像处理与YOLO的端面缺陷检测方法
2022-11-24王石生杜呈欣孟宇坤白丽高凡
王石生,杜呈欣,孟宇坤,白丽,高凡
中国铁道科学研究院集团有限公司电子计算技术研究所,北京,100081
0 引言
近十年来中国的新能源汽车产量逐年递增,作为关键材料的压铸铝件,常出现爬料、划痕、磕碰等缺陷,影响部件的性能及寿命,需在生产过程中进行质检。对于压铸铝件端面缺陷检测,当前国内仍由人工肉眼判别及尺规测量来完成。人工质检既耗时又费力,产品的质检质量也不稳定。而对于类似场景的板材等缺陷,目前市面上常见采用传统图像处理方法进行检测[1],使用过程中较为耗时,且当图像放大到接近微观表达,依靠传统图像处理很难从粗糙的表面中提取到具有不同形态特征的缺陷。随着人工智能的发展,以YOLO系列[2]为代表的深度学习技术可以自动学习缺陷特征,避免形态特征不完善表达,使得表面缺陷智能视觉检测成为可能。
本文针对压铸铝件端面缺陷,采用了一种基于图像处理与YOLO v4的缺陷检测模型,利用现场采集的端面缺陷数据,对零部件质量情况进行分析与统计,实现对压铸铝零部件的智能质检。
1 压铸铝件端面缺陷数据集制作
本文的研究对象是基于压铸工艺的汽车热总成铝合金件的多个环形端面,压铸铝件端面缺陷种类如图1所示,包括磕碰、异物、爬料、划痕四类缺陷,端面背景杂乱,存在刀痕和水渍的干扰。
图1 端面缺陷示意图
所采集的图像需要突显出缺陷特征,本文采用环形正面蓝光、面阵2D相机、远心镜头的组合来拍摄图像,并基于VOC2007格式[3]人工标注缺陷。神经网络模型需要海量数据集支撑,为此,本文采用数据合成和数据增强的方式扩充数据集。
本文将多种缺陷从背景中人工提取出来,并将缺陷数据的背景设为透明,以随机方式将缺陷样本与真实杂乱的端面背景进行融合,融合过程中将缺陷进行旋转、缩放、亮度调节等操作,提升合成数据的真实性及多样性。将合成缺陷数据和真实缺陷数据都进行数据增强,包括如裁剪、平移等几何变换,和添加噪声、模糊、直方图均衡化等像素变换。这种数据合成与数据增强的方式可以短时高效地为训练模型提供大量数据样本,提高模型泛化能力和鲁棒性。
2 压铸铝件端面缺陷检测方法
2.1 端面图像预处理
针对端面背景杂乱、不同端面检测部位不一的情况,本文使用传统图像处理方法将待测圆环提取出来,如图2所示。
图2 端面待测区域提取流程图
首先寻找合适的特征进行定位,通过感兴趣区域将所选特征进行初步分割,由直方图均衡化和逻辑非运算将图片的明暗对比度提高,并且将图片的明暗分布取反;接着进行二值化操作,在消除部分干扰物的影响的同时提高目标圆的边缘梯度值,利用泛洪填充算法将圆环填充为一个完整的圆形;然后通过寻找最大连通域将目标圆从背景中提取出来;再利用Canny算子提取目标圆的边缘离散像素点[4];最后结合最小二乘拟合法与Huber算法来迭代拟合圆,利用得到的圆心和半径,结合实际工件的尺寸将检测范围从原图中分割出来。具体的迭代拟合过程如下:
先使用最小二乘法拟合出初始圆心和半径,然后使用Huber算法利用最速下降法来迭代拟合圆。令:
最小二乘拟合要求距离的平方和最小,也就是f最小,为便于求解析解,上式可化简为:
当f取极小值时,可求出初始圆心坐标和初始圆半径R。将初始圆心半径代入到Huber算法进行迭代优化。使用优化过的最小二乘法进行迭代,将单个边缘点到目标圆的距离ei作为自变量带入到Huber函数中:
可得到共线总误差一个正的样本误差,自变量待求的参数向量为,目标函数为:
采用最速下降法求解,最速下降法的核心在于自变量沿着负梯度迭代变化时,函数下降最快。直到循环次数达到上限或目标函数的值与上一次迭代的目标函数的值之差小于某一设定阈值时停止迭代,得到最终的圆心坐标和圆半径。
2.2 基于YOLO v4的缺陷识别定位算法
本文采用基于YOLO v4的检测模型实现对压铸铝件端面缺陷的识别与定位,模型结构如图3所示。
图3 基于YOLO v4的缺陷检测模型
主体特征提取网络使用了CSPDarknet53,在保证模型识别精度的同时减少算力消耗[5]。同时将主体网络的激活函数改为Mish函数,避免饱和,令梯度下降得更好。
在主体特征提取网络后加入一个SSPP(sampling spatial pyramid pooling)模块,较SPP[6]模块多一个均匀采样操作。具体地,先对特征图进行均匀采样,再用三种不同尺度的池化核以采样点为中心作最大池化,用以提取局部特征信息,同时直接使用最大池化处理采样后的特征图,用以提取全局特征信息,最后将全局与局部融合拼接在一起。这种SSPP模块,能够全融合特征信息,可以避免感受野信息的冗余,提高模型的运算速度。
在预测分支中使用PANet[7]结构,采用拼接操作融合多尺度特征,利用浅层特征弥补网络层数加深而带来的信息损失,提升模型的检测性能。网络输出三种不同尺度,预测出相对预设锚框的位置、置信度和类别概率。
2.3 损失函数
其中,S代表网格尺寸,B代表候选框个数。
3 实验结果与分析
3.1 实验参数设置
本文采用Adam迭代优化网络,利用L2正则化防止训练过拟合,采用预热学习率策略对学习率进行更新调整,训练epoch设置为3000。
3.2 数据集与运行环境
本文使用合成数据和真实数据的混合数据作为模型的训练集,使用剩余的真实数据作为模型的测试集。由于现场汽车热总成零部件大多质量优良,采集到的四类缺陷每类真实数据为700张,经过数据增强及人工合成后扩充至7000张。
模型采用Pytorch1.2.0搭建,Torchvision为0.4.0版本,CUDA为10.0.130版本,CUDNN为7.5.0版本。在一张TITAN RTX(24G)显卡上训练,设备现场使用GeForce RTX 2080 Ti显卡进行压铸铝件质检分析。
3.3 实验结果
本文采用精确率P(Precision)和召回率R(Recal)作为模型推理准确性的衡量指标,采用误检率FA(False Alarm)和漏检率M(Miss Rate)作为设备实际质检效果的评价指标。四种量化指标的定义为:
其中,TP表示实际为正、预测为正的样本数量,FP表示实际为负、预测为正的样本数量,FN表示实际为正、预测为负的样本数量。对于精确率和召回率,将每个图像作为样本进行统计;对于设备质检,将每个汽车热总成零部件作为样本进行统计,每个零部件共有40个待测环形端面。
实验结果如表1所示,缺陷检测可视化效果如图4所示。通过结果可以看出,本文模型在压铸铝件端面缺陷检测任务中具备有效性和可靠性。
表1 端面缺陷检测模型评价结果
图4 端面缺陷检测效果示意图
本文基于PyQT搭建了如图5所示的软件界面,将缺陷检测算法、追溯统计分析集成为一套质检系统,能够实时检测零部件、统计存储检测影像,并配备贴标机,能够实现产品便捷追溯。
图5 缺陷在线检测软件系统
4 结论
针对基于压铸工艺的汽车热总成铝合金件的多个环形端面存在磕碰、异物、爬料、划痕四类缺陷类型,本文提出一种基于传统图像处理和YOLO v4的端面缺陷检测方法。通过现场采集照片及人工标注,制作端面缺陷数据集,通过数据合成和数据增强的方式对数据集进行样本增广,解决数据积累难、数据量少的问题;通过传统图像处理,可将杂乱背景剔除,让模型更关注于端面本身;通过改进的YOLO v4算法,运算量降低的同时,识别精度达99.8%,证明该算法可实现对压铸铝件端面缺陷的快速准确检测。