APP下载

基于卷积神经网络的车用锻件磁粉视觉检测裂纹分割方法

2023-05-30石爱贤秦训鹏金永洪

关键词:磁粉注意力卷积

石爱贤, 秦训鹏, 吴 强, 金永洪, 黄 展

(1.武汉理工大学 现代汽车零部件技术湖北省重点实验室,湖北 武汉 430070; 2.武汉理工大学 湖北省新能源与智能网联车工程技术研究中心,湖北 武汉 430070)

汽车、工程机械、航空航天领域大量的关键零部件采用锻造成形,锻件在热锻成形、热处理过程中,表面易产生折叠、裂纹等缺陷,导致表面应力集中,在服役过程中成为薄弱点使零件发生断裂失效。为了保证锻件质量,需要对生产的锻件进行无损检测外排除表面裂纹。荧光磁粉检测作为一种能够实现低成本、快速、大批量的无损检测技术,被广泛应用于车用锻件的缺陷检测中。目前,磁粉检测普遍采用人眼识别裂纹,易误识别、漏识别,且劳动强度大、效率低,甚至对工人身体造成损害。

近年来,随着人工智能、机器人技术的进步,基于机器视觉的磁粉缺陷检测得到迅速的发展。相机视觉自动化检测裂纹可以消除检测过程的主观性,提高检测精度。针对磁粉检测缺陷识别的研究大致可以分为以下2类:基于传统机器视觉的检测方法;结合机器视觉和深度学习的检测方法[1]。

传统机器视觉检测方法通过在图像中提取缺陷特征来判断是否存在缺陷。文献[2]提出了一种复合阈值分析算法,实现了对制动盘裂纹的分割,采用梯度特征区分裂纹和伪裂纹;文献[3]根据灰度特征和纹理特征,基于随机森林建立了分类模型,实现对列车车轮踏面裂纹的分割;文献[4]提出了结合梯度特征和线段检测法(line segment detector,LDS)算法识别工件裂纹;文献[5]提出了一种裂纹提取算法,提取几何特征和纹理特征,利用支持向量机(support vector machine,SVM)训练出分类器,实现了对曲轴裂纹的分割。与传统机器视觉方法不同,深度学习方法自动提取特征的高级语义,并在同一网络中对特征进行识别分类。文献[6]提出了基于AlexNet的磁粉探伤识别模型,识别精度达到95%;文献[7]针对列车车轮裂纹,提出了一种基于Faster R-CNN的检测模型,准确率较传统的canny检测算法高出21.73%;文献[8]提出了一种基于改进EfficientNet的裂纹识别网络,该网络在EfficientNet的基础上加入SE-Net和特征金字塔网络(feature Pyramid network,FPN),并引入DIoU,能在较暗的环境下工作,提高了识别的准确率。

当前,基于深度学习的智能磁粉检测技术多为裂纹目标检测,对于裂纹分割的研究多基于传统机器视觉,不能适应检测环境变化,不具备好的泛化性和鲁棒性;对于裂纹分割的研究集中于轮廓简单、裂纹明显的零件,在复杂环境中分割小尺度裂纹精度低。传统的一阶段缺陷图像分割网络,例如FCN、SegNet、Mask-RCNN、UNET等,在通用数据集上达到了不错的效果,但在面对具体工程问题时,也存在局限性。针对这些问题,本文提出了一种新的基于两阶段卷积神经网络的裂纹分割方法,在保证检测速度的情况下,实现对裂纹高精度分割。

1 实验平台

为模拟磁粉检测中识别裂纹的流程,本文搭建了裂纹检测模拟实验平台。实验平台由紫外光源、相机、上位机、检测台组成,如图1所示。为屏蔽白光的干扰,实验在暗室中进行。紫外光源强度为3 000 μW/cm2,相机分辨率为 3 072 px×3 072 px。转向节臂是非常典型的车用锻件,连接转向系和行驶系、承受力和载荷,其可靠性对于行车安全至关重要,绝不允许表面存在裂纹。本文以转向节臂为例,构造转向节臂缺陷数据集,训练两阶段神经网络模型,检验算法的鲁棒性。

图1 实验设备原理示意图

2 卷积神经网络模型框架

2.1 锻件裂纹检测策略

在智能检测时,模型需要输出的信息为是否存在裂纹,以及裂纹的位置和几何信息。根据对数据集的分析和企业实际生产经验,发现转向节臂磁粉检测存在以下特征:

(1) 裂纹出现的区域比较集中,多出现在转向节臂颈部,如图2所示。

图2 转向节臂颈部裂纹

(2) 裂纹的尺度大小不一,数据集的裂纹分布在几毫米到几百毫米之间。

(3) 转向节臂上存在的加工痕迹、氧化皮、轮廓线对检测存在干扰。

针对上述问题,为了保证本文提出的基于两阶段卷积神经网络的裂纹分割方法的实施,建立了裂纹识别分割策略,如图3所示。通过构建裂纹定位模型获得裂纹的位置,并通过构建裂纹分割模型获得像素级的裂纹分割结果。

图3 裂纹识别分割策略

2.2 裂纹定位模型

裂纹定位模型从复杂背景中定位裂纹位置,并将含有裂纹的区域从原图中分离,因此需要模型具有强抗干扰能力和识别能力。SSD算法是由文献[9]在2015年提出的基于深度学习的目标检测算法,具备从复杂的背景中精准快速检测出目标物体的能力。SSD算法在YOLO的基础上吸取了Faster-RCNN的锚框机制,在保证检测速度的情况下,精度与Faster-RCNN相差不大。本文选用SSD算法为裂纹定位模型基本框架,为了保证模型能够准确提取裂纹特征,针对磁粉检测工程环境对SSD算法进行改进。改进的SSD算法以Resnet50作为基础网络,增强模型特征提取能力;同时在特征提取结构中加入空间注意力机制,使模型关注容易出现裂纹的位置,消除背景对检测的干扰,增强模型对图像细节的敏感度;通过引入通道注意力机制使模型关注裂纹的特征,消除自身轮廓线对检测的干扰,增强模型的鲁棒性,提高裂纹分割的精度。

2.2.1 模型总体结构

裂纹定位模型结构如图4所示,由基础网络层、特征提取层、预测层、非极大值抑制构成。

图4 裂纹定位模型结构

从图4可以看出,取Resnet50的前4层[Conv-1,Conv-2,Conv-3,Conv-4]作为基础网络,从原图中提取特征,输出初始特征图F0,在此基础上,添加一系列卷积层[Conv-5,Conv-6,Conv-7,Conv-8,Conv-9]作为特征提取层,生成不同尺度的特征图[F1,F2,F3,F4,F5],从多个层次对裂纹进行检测,提高模型的鲁棒性。

网格模型结构见表1所列。表1中:w为卷积核或特征图的宽度;h为卷积核或特征图的高度;c为卷积核个数;Ch和S分别表示通道和空间注意力模块。

表1 网络模型结构

2.2.2 改进残差网络

在网络层数不断加深时,堆叠过度的神经网络层会加剧梯度消失和梯度爆炸,准确度反而降低。文献[10]提出了一种新的网络结构Resnet,采用残差结构避免出现梯度消失和梯度爆炸。为了确保对小裂纹的精准识别,本文在Resnet的残差结构基础上加入卷积注意力模块(convolutional bock attention module,CBAM),突出检测特征,优化检测结果。改进后的残差模块如图5所示。CBAM通过构建空间和通道2个注意力模块,从输入的特征图上提取出空间和通道2个方面的注意力信息,将获得的信息进行整合,从而使特征图的特征更加精炼,提高计算的效率和准确率,其公式[11]为:

(1)

其中:F为输入特征图;MC为通道注意力特征向量;MS为空间注意力矩阵;⊗表示矩阵对应元素相乘;F′为提取通道注意力特征图;F″为提取通道注意力和空间注意力特征图。

为了能从复杂环境中识别到裂纹特征,尤其是针对小尺度裂纹的识别,在裂纹定位模块中引入通道注意力,捕捉输入特征图特征通道之间的重要性,排除无关特征的干扰,从而提高模型的识别能力。通道注意力模块由池化层、多层感知机、激活函数3个部分组成。对于输入特征图F,分别进行最大值池化和平均值池化,获得最大池化向量和平均池化向量;将2个向量输入到一层隐藏层的多层感知机,经过感知机处理得到向量相加,通过Sigmoid激活函数,就得到最终的通道权重向量。将权重向量与特征图F点乘就可得到通道注意力特征提取向量MC,其计算公式如下:

MC(F)=Sigmoid(MLP(AvgPool(F))+

MLP(maxPool(F)))

(2)

其中:Sigmoid为激活函数;MLP为多层感知机;AvgPool为平均值池化;maxPool为最大值池化。

为了能从复杂的检测环境下检测出裂纹的位置,需要对目标中的特征进行聚焦,排除背景噪声的干扰,关注容易产生裂纹的位置,因此本文引入由池化层、卷积层、激活函数组成的空间注意力模块。在定位模型中,对于输入的特征图F′,在空间方向进行最大值池化和平均值池化,生成2个池化矩阵,将这2个矩阵进行连接运算,组成一个张量输入到卷积神经网络,卷积计算后的向量经过激活函数处理得到最终的空间注意力权重向量,将空间注意力权重向量与输入特征图F′点乘就得到融合空间注意力和通道注意力的特征图F′。其计算公式为:

MC(F′)=Sigmoid(Conv7×7([AvgPool(F′);

maxPool(F′)]))

(3)

其中,Conv7×7为卷积核大小7×7的卷积层。

2.3 裂纹分割模型

UNET是常用的图像分割模型,由编码器和解码器组成,通过下采样和上采样获取图像特征。UNET的采样结构为固定4层,UNET++在UNET的基础上改进固定采样结构,在下采样之后都对其进行相应次数的上采样,得到多个级别的特征映射层[12]。UNET++采用含有多个卷积层的跳跃连接,将编码层的信息经过卷积提取之后再输入到解码层,可以减小编码层与解码层之间的信息差,并且能够让网络自动学习不同深度特征信息的重要性,卷积层的数量由特征层的深度决定。

UNET++结构图[13]如图6所示。

图6 UNET++结构图

xi,j计算公式如下:

(4)

其中:Conv()代表卷积计算;u()代表上采样运算。

同时,UNET++在中间层加入了深监督机制,监测网络中间层的输出,避免模型在训练过程中产生梯度消失的现象,防止反向传播损失计算时对接近输入层的有效性降低。UNET++含有4个层级的特征图,采用深监督机制可以通过中间层的输出调整网络。损失函数计算公式如下:

(5)

采用深监督机制可以计算编码层的每一层的损失,可以使浅层的网络得到更好的训练,网络也能学习到更多低级别的语义特征,增强网络的鲁棒性和分割的精度。

3 实验结果与讨论

本文采集的原始数据集为102张,通过labelme软件分别进行目标检测框和图像分割真值的标注。为防止模型过拟合,提高模型收敛的速度,将标注完成的数据集经过随机旋转、随机缩小、改变对比度、改变亮度、改变颜色空间、随机翻转等8种方法,扩充到5 100张。

数据增强的方法如图7所示。从图7可以看出,增强后的数据集扩充了样本数量,丰富了图像姿态,增强了模型的鲁棒性和对于环境变化的适应性。将其中的80%作为训练集,10%作为测试集,10%作为验证集。

图7 实验数据集增强

本次实验采用的平台为Inter Xeon gold 6254,GPU为NVIDIA RTX2080TI,系统为Windows 10。

为了合理评价本文提出的模型,本次实验采用平均精度(average precision,AP)和 交并比(intersection over union,IoU)作为裂纹分割网络图像分割精度的评价指标,采用检测时间、参数量作为模型复杂度和检测速度的指标,其中检测时间为检测一张图片需要花费的时间。检测速度采用每秒检测帧数(frames per second,FPS)来评价。

AP是神经网络模型识别物体的平均精度,可通过召回率与精度计算得到。具体计算公式如下:

(6)

其中:TP为正样本判定正确的数量;FP为正样本判断错误的数量;FN为负样本判定错误的数量;TN为负样本判定正确的数量。

IoU为交并比,表征图像分割结果与真值之间的相似度,其计算公式如下:

(7)

为了说明模型的识别结果,本文对SSD原模型、添加空间注意力的模型SSD(Ch)、添加通道注意力的模型SSD(S)以及添加空间和通道注意力的SSD(CBAM)进行对比实验,训练100轮,取100轮中表现最好的模型,实验进行3次,取3次平均值。

实验过程中平均精度随训练轮数增加的关系如图8所示,从图8可以看出SSD(CBAM)平均精度明显优于其他3种方法。

图8 消融实验训练过程平均精度变化

消融实验结果见表2所列。从表2可以看出,SSD原算法的平均精度为94.9%,在模型中

表2 裂纹检测模型消融实验结果

加入通道注意力模块时,平均精度达到95.8%,相比原模型上升0.9%;在模型加入空间注意力模块时,AP达到95.6%,相比原模型上升0.7%;在模型中加入空间和通道注意力模块时,AP达到97.8%,相比原模型上升2.9%。

同时,从表2可以看出,相比原模型,在加入空间或通道注意力模块以及同时加入2种模块时,空间注意力模块与通道注意力模块均对模型性能有所提升,并且在同时添加2种模块时,性能提升更大,达到2.6%,而且在模型中加入通道注意力模块时,SSD(Ch)比SSD原模型检测时间下降2 ms;加入空间注意力模块时,SSD(S)比SSD原模型检测时间下降1.7 ms;2种模块均加入时,SSD(CBAM)比SSD原模型检测时间下降1.9 ms。因此,在模型中加入通道和空间注意力模块有助于提高检测速度,提升检测精度。

在裂纹分割实验中,各个模型输入图像的尺寸均为512×512,训练100轮,实验结果如图9所示。

从图9a~图9d可以看出,本文方法在训练开始时就有不错的精度,最终的精度也显著高于其他3种方法;并且不同于其他3种方法,本文方法在验证集上的表现高于训练集,表明本文方法具有很强的鲁棒性。

图9e表示本文方法、FCN、UNET、SegNet的交并比和检测时间,图9f表示本文方法、FCN、UNET、SegNet的交并比和参数量。

裂纹检测分割实验结果见表3所列。从表3可以看出,本文方法检测单张图片花费时间为70.4 ms,相比UNET范围时间高34.4 ms,比SegNet范围时间高37.5 ms,比FCN范围时间高45.0 ms,但本文方法能达到14帧/s的检测速度,超出工程实际生产节拍的需要,并且本文方法在裂纹分割的精度上显著高于其他方法,IoU达到85.7%,比UNET高出15.5%,比FCN高出28.5%,比SegNet高出18.1%。

表3 裂纹检测分割实验结果

以上结果表明,本文提出的两阶段方法在检测时间上满足使用要求,在裂纹定位精度和裂纹分割精度上相比传统的一阶段分割方法有了显著提高。

具体的检测效果如图10所示。

图10 裂纹检测示例

4 结 论

本文提出了一种新的基于两阶段卷积神经网络的车用锻件磁粉检测裂纹分割方法:第1阶段定位裂纹将裂纹从原图中裁剪分离;第2阶段在裁剪的区域内将裂纹和背景进行分割,对裂纹进行像素级精准分割。UNET++作为裂纹分割模型,在UNET基础上加入深监督机制,改进了损失函数,图像的分割精度更高。通过实验验证和综合对比,相比于其他目标检测网络和图像分割网络,本文提出的方法在转向节臂裂纹数据集上的表现更好,表明本文提出的裂纹分割方法具有很强的实用性和鲁棒性,对不同尺度裂纹的敏感度高。

猜你喜欢

磁粉注意力卷积
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
充电式交流磁粉探伤仪的应用研究
核电站堆内异型结构组件的磁粉检查工艺
磁粉夹持正压力理论分析和实验研究
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
一种基于卷积神经网络的性别识别方法