APP下载

基于深度学习的铁道车辆铸件X射线DR图像缺陷检测算法研究

2021-11-24赵先圣杨敬轩

中国体视学与图像分析 2021年3期
关键词:置信度铸件X射线

赵先圣,冯 鹏, ,沈 宽,杨敬轩,漆 伟,罗 燕,何 鹏,,刘 鑫

(1.重庆大学 光电技术及系统教育部重点实验室,重庆 400044;2.重庆大学 工业CT无损检测教育部工程研究中心,重庆 400044)

0 引言

近些年来,随着中国铁路运输的高速发展,对铁路运输零部件的安全问题提出了更高的要求,其中摇枕、侧架是铁路铸件零部件中比较重要的零部件之一,它们的制造质量直接决定了铁路运输的安全与效率。在铁路运输过程中,当受到过大的载荷交变应力作用时,容易导致摇枕、侧架断裂,造成重大经济损失,因此,提高对铁路铸件缺陷检测的效率和精度十分必要。X射线DR(Digital Radiography)是一种射线数字检测技术,DR技术因为检测速度快、探测效率高、价格成本低、分辨率好、更能适应现代工业生产快速在线检测要求等诸多优点得到越来越广泛的重视和应用。目前,对于铸件X射线DR图像分类分级的主要研究方法是图谱经验判别法,通过人工判定被测工件是否含有和标准缺陷图谱上相同的缺陷类型。采用的主要标准有我国的TB/T3105[1]、美国的ASTM系列标准[2-4]和欧盟的EN 12681[5]标准。该方法存在劳动强度大、工作效率低、易发生漏判误判等情况,无法进行大规模检测。随着计算机技术与人工智能技术的不断发展,基于DR图像的自动检测方法也层出不穷,可以分为以下三类:第一类是基于数字图像处理技术进行直接缺陷检测。通过手工进行特征设计,并用数字图像处理算法实现图像某些类特征的提取,从而实现目标检测。例如,Dalal等提出的HOG[6]算法,通过对图像局部梯度方向做统计直方图,经归一化后,实现对图像轮廓特征的提取。Ojala T等提出的LBP[7]算法,通过获取像素点的局部二进制值来提取图像局部纹理特征。第二类是采用传统机器学习网络与浅层神经网络(如支持向量机、贝叶斯分类器等[8])进行图像缺陷检测。例如,Xiao-Cong L等提出的基于量子粒子群算法(QPSO)来计算SVM分类器参数,进而识别表面缺陷的方法[9];第三类是基于深度学习网络进行缺陷识别与检测。在保证高准确度的同时,具有识别速度快、泛化性更高,以及实时检测等优势。主要分为双阶段检测算法和单阶段检测算法。双阶段检测算法是以R-CNN系列为代表的基于候选区域的目标检测算法;单段检测算法是以Yolo、SSD为代表的基于回归分析的目标检测算法[10]。而目前,将Yolo系列算法应用于铸件X射线DR图像缺陷检测研究较少,所以,利用Yolo v5算法对铸件X射线DR图像进行分级分类以及自动检测缺陷具有重要的理论和应用价值。

1 方法

1.1 算法整体理论框架

针对铁轨铸件射线DR图像存在的问题,以及需要对铁轨铸件缺陷实现精确的检测,本文提出了如图1所示的算法整体理论框架:数据采集模块、数据预处理模块、目标检测算法模块。

图1 Yolo v5算法整体理论框架

数据采集模块主要是用于获取铁轨铸件射线DR图像,构建用于目标检测算法的原始图像数据集。数据预处理模块主要是为了抑制DR图像中的散射噪声,提高图像对比度。目标检测算法模块的作用主要是学习铁轨铸件缺陷的分布特征,根据学习规律,实现铁轨铸件缺陷的目标检测。

1.2 数据预处理

工件缺陷检测的难点主要在于工件本身结构复杂、缺陷种类多,缺陷的形状、位置、区域面积多样化。而铸件的X射线DR图像存在图像边缘模糊,灰度值与背景差异较小等问题,导致工件缺陷的高精度检测存在较大的难度。

针对以上问题,本文算法首先对DR图像开展预处理,进行导向滤波,在抑制噪声的同时,保持图像的边缘信息,增强图像对比度。该算法需要一个引导图像I,本文采用的引导图像为原图像本身,此时导向滤波转化为Edge-preserving滤波器,可以用于图像的平滑降噪。对于一个输入的图像p,通过引导图像I,经过滤波后得到输出图像q,其中p和I都是算法的输入,对于i位置的像素点,得到的滤波输出是一个加权平均值,滤波器定义如式(1)所示:

(1)

式中,i和j分别表示像素下标。Wij(I)表示引导图像来确定加权平均的权值。得到平滑处理的图像后,为了使细节和纹理更清晰,本文将原图I和平滑图像q做相减运算得到图像的细节和大致轮廓,对其进行放大运算,系数为λ,再与平滑图像q进行相加运算得到最后的增强图像Ie,如式(2)所示:

Ie=(I-q)×λ+q

(2)

经过数据调整发现,当λ=4.5时,图像增强效果为最佳值。

1.3 Yolo v5的目标检测算法

Yolo v5的网络结构如图2所示,主要由Backbone模块、Neck模块和Output模块三个部分组成。

图2 Yolo v5的网络结构图

(1)Backbone模块

Backbone模块主要作用是在不同图像细粒度上聚合并形成图像特征的卷积神经网络。Backbone前端使用了Focus模块对图像进行步长为2的采样操作,并将采样得到的切片堆叠。Focus模块切片示意图如图3所示,得到长宽均为原图像一半,维度扩张为原来4倍的特征图。通过这种无信息损失的2倍邻近下采样,将输入特征图的通道数加以扩张,使得输入特征能更好的被后续神经网络提取。

图3 Focus模块切片示意图

Backbone模块采用CSPDarkNet结构,该结构在Yolo v3的DarkNet基础上结合CSPNet得到。CSPNet将输入基础特征层分为两部分:第一部分为输入特征层的副本;另一部分与DarkNet中的Res Block连接,如图4所示。输出经过Partial Transition Layer后再与第一部分中输入特征层的副本合并,将输入特征层的副本随神经网络传播到下个阶段。通过这种跨阶段合并特征层的方式,有效降低网络反演过程中重复的梯度信息。CSPNet结构能提高神经网络的学习能力,并在保证网络精度的同时降低计算瓶颈,提高计算速度。

图4 CSP结构与Res Block结合示意图

(2)Neck模块

Neck模块主要作用是将一系列混合和组合图像特征的网络层,并将图像特征传递到预测层。Neck模块的主要组成部分是路径聚合网络PANet(Path Aggregation Network)[16],如图5所示。该结构自顶而下与自底向上两种特征金字塔横向连接构成。而PANet结合了自顶而下与自底向上两种特征金字塔结构,使得特征空间分辨率保持不变,并显著提高了推演速度,简化了网络结构。

图5 路径聚合网络PANET结构

(3)Output模块

Output模块主要作用是对图像特征进行预测,生成边界框并预测类别。其主要包括了损失函数和加权非极大值抑制算法。

1)损失函数。目标检测任务的损失函数一般由分类损失函数Classification Loss和回归损失函数Bounding Box Regression Loss两部分构成。Yolo v5采用GIoU(Loss Generalized Intersection over Union)代替传统的IoU_Loss做Bounding box的损失函数,如式(3)所示。

(3)

如式(3)所示,其中IoU是两个区域重叠的部分除以两个区域的集合部分得出的结果。首先计算两个框的最小闭包区域面积AC(同时包含了预测框和真实框的最小框的面积)及IoU,再计算闭包区域AC中不属于两个框的区域占闭包区域的比重,最后用IoU减去该比重得到GIoU。最终的损失函数如式(4)所示:

LGIoU=1-GIoU

(4)

2)加权非极大值抑制算法(NMS);物体检测中应用NMS算法的主要目的是当有多个预测框出现交叉重叠(两预测框的IoU大于设定阈值)时,取预测效果最好的预测框留下,抑制其余重叠的预测框,从而找到最佳物体检测位置。

2 实验结果及分析

本文实验的环境具体设置为Intel(R)Core(TM)i5-9300H,Windows10,显卡为NVIDIA-TITAN-XP,使用的深度学习框架为Pytorch1.8.1,Python版本为3.8。

2.1 铁轨铸件数据的增强

图6为经过增强后的图像与原始图像的细节对比,不难看出经过导向滤波及细节增强处理后,图像中缺陷的特征更加突出。在不损伤图像轮廓的前提下,图像的细节与纹理得以增强,雾化现象明显削弱,缺陷的可识别性进一步提高。

图6 图像增强结果对比图

2.2 铁轨铸件数据集的制作

本文实验数据来自车间实际生产的摇枕与侧架铁路铸件的射线DR图像。数据集的制作流程包括图像裁剪、图像增强和图像标注。首先是图像裁剪,将原始图像一分为二,这样能够使有用特征(缺陷)的占比得到提高,进而提高识别的准确度;其次是图像增强,采用导向滤波能在不损伤图像轮廓的前提下使图像的细节与纹理得以增强;最后由工厂质控人员采用Labelme软件对缺陷类型与位置进行标注,形成数据集。对于图像标注,其数据格式参考VOC数据集的形式。参照美国ASTM国际标准,并结合本课题实际情况,将需要标注的缺陷分为:气孔类与疏松类。这两种缺陷在铸造缺陷中最为常见,对其进行缺陷检测尤为重要。其中,气孔类缺陷(用a表示)又细分为两个等级:a1和a2;疏松类缺陷(用c表示)细分为3个等级:c1,c2和c3;缺陷类别和等级示意如图7所示,缺陷的等级主要根据缺陷的面积与深度来进行划分。

图7 缺陷类别和等级示意图

使用Labelme软件对这5种缺陷进行标注,生成json格式的标签文件,标注界面如图8。本文铁路铸件X射线DR图像均通过同一台扫描仪得到,扫描仪的相关参数无区别,本次实验收集了2017年至2019年的中车公司某下属子公司的铁路铸件X射线DR图像共600张,将经过预处理的铁路铸件X射线DR图像截成左右相等的两部分得到1200张图片,其中摇枕400张,侧架800张。对其进行标注,得到1169个标签文件与8783个标签示。设定训练集与测试集的比例为7∶3,其中训练集中又划分30%作为验证集。

图8 标注界面示意图

2.3 算法评价体系

Yolo v5模型检测精度指标主要包括常用的性能指标精确率(P),召回率(R),IoU阈值为0.5时的平均AP大小(mAP@0.5),以及定义预测的平均置信度(AC)等作为网络性能的评价指标。

精确率P定义如式(5)所示:

(5)

式中,TP是预测框与真实框IoU>0.5的个数,FP是预测框与真实框IoU<0.5的个数。精确率P的大小即为所有预测框中属于正确检测的比例,P可以反映模型的正检率。

召回率R定义如式(6)所示:

(6)

式中,FN是指被遗漏的真实框的个数,召回率R表示在所有正样本中被正确预测的比例。

平均精确度AP:表示在每次目标检测所对应的P-R曲线和横纵坐标所围起来的面积,它表示网络对数据集在不同阈值下对某一类别的目标检测的效果。一般而言,AP越高表示目标检测效果越好。平均精确度AP定义见式(7):

(7)

式中,p(r)表示精确率P与召回率R所表示的曲线。

平均精确度均值mAP:表示网络对数据集中所有类别的AP值的均值,它是衡量网络对所有类别目标的检测效果,也是本文针对多目标分类的检测重要指标之一。平均精确度均值mAP定义见式(8):

(8)

预测平均置信度AC定义见式(9):

(9)

式中,TB表示所有与真实框IoU>0.5检测框的总个数,TC表示IoU>0.5检测框的置信度之和。

这4项指标从不同方面反应了目标检测模型对数据集中目标的检测能力,通过对目标检测模型之间的性能指标分析,可以得到适合用于铁路铸件射线DR图像缺陷检测的目标检测模型。

2.4 实验结果分析及对比

本文实验结果分析主要根据模型检测精度指标以及实验结果图和局部结果放大图来进行分析和对比,模型检测精度指标主要包括精确率(P),召回率(R),IoU阈值为0.5时的平均AP大小(mAP@0.5)、定义预测的平均置信度(AC)以及检测时间这五个指标。表1反映了本文算法检测后的各项缺陷的平均检测精度(mAP)以及模型的整体检测精度。

表1 缺陷mAP值

由表1可以看出,除气泡a1与疏松c1类两类缺陷,其余3类缺陷的mAP@0.5均在95%以上,达到了较高的检测精度。可见Yolo v5对这三类缺陷的特征识别能力较强,检测效果较好。对于相对识别精度较低的a1类与c1类缺陷,由于数据集中两类缺陷相对较少,标签数量有限,导致泛化能力不高;且缺陷本身较浅,尺寸较小,与周围区域灰度差异不大,不易被特征提取网络提取特征并识别,因此Yolo v5对其的识别精度相比较差。

表2包含了5类缺陷各自的正检率、误检率、漏检率与平均置信度,反映出每类缺陷中被正确识别(正检)、被识别为其他类缺陷(误检)、被识别为背景(漏检)的比例,以及正确识别时的平均置信度(可靠程度)的大小,从而更直观的展示本文算法对各级缺陷的识别情况。

表2 各类缺陷识别结果

由表2可以看出,本文算法对a1类缺陷的正检率最低,有22%的a1类缺陷没有被检测出来。对于c1类缺陷的正检率也相对较低,其中有14%的c1没有被检测出来。但本文算法对5类缺陷的误检率都较低,说明a1类与c1类缺陷是由于其本身特征不明显且标签数目太少,从而不易于被Yolo v5网络识别,这一点从平均置信度大小也可以看出来。整体而言基于Yolo v5的铁路铸件缺陷检测的检测精度较高,整体漏检率与误检率均在较低范围之内,且有较大的改进空间与发展潜力。

将本文的检测结果与基于Yolo v3的检测结果进行对比验证。图9展示了不同检测算法在轨道铸件DR图片数据集上的缺陷检测效果,其中第一行至第四行分别表示图9(a)~图9(d)。图9(a)对应2张轨道铸件DR图片经过预处理之后的原图;图9(b)表示一线工人标注的数据集图片;图9(c)表示采用Yolo v3的检测结果;图9(d)表示采用本文算法的检测结果。而图10则展示了与图9所对应的图片和算法的局部对比缺陷检测效果。

对于Yolo v3缺陷检测算法,从图9(c)和图10(c)能够看出该算法能够较好地识别出缺陷所在大体位置以及缺陷的类型,但是对于缺陷的等级识别以及识别的精确度方面表现较差,且存在较多的漏检情况和部分的缺陷等级识别有误差的误检情况。对于本文算法,从图9(d)和图10(d)能够看出该算法能够基本识别出缺陷所在大体位置以及缺陷的类型,通过和图9(b)一线工人标注的数据集图片比较来看,分别出现错检1个特征和多检1个特征。证明此算法对于缺陷的等级识别以及识别的精确度方面表现较好,对于a1类特征存在较多的漏检情况,其他类型和等级缺陷的漏检率不是很高。

图9 实验对比结果

图10 局部对比结果

表3给出了不同算法在测试集检测后的mAP值与平均置信度。可以看到Yolo v3的mAP值仅为56.1%,本文算法则达到了87.4%。对于平均置信度而言,本文算法达到了78.0%,有较高的可信度,说明了其能够基本识别出缺陷所在大体位置以及缺陷的类型,对于缺陷的等级识别以及识别的精确度方面表现较好。

表3 两种网络结构识别性能对比

表4给出了两种算法的时间消耗情况。在模型检测速度方面,采用 FPS(Frame Per Second)即每秒钟处理的图片数量作为评价指标。可以看到,本文算法的检测速度较Yolo v3高13 frame/s,检测速度有较大提升。

表4 两种网络结构识别图像消耗时间对比

3 结论

本文基于Yolo v5深度学习相关理论,结合传统图像处理方法,开展铁路铸件X射线DR图像缺陷检测算法的研究,旨在探索快速、高准确度、轻量化的缺陷检测模型。利用Yolo v5深度学习网络进行缺陷识别,将生成Region Proposals与目标分类合二为一,降低了DR图像缺陷检测的误检和漏检,达到较高的识别精度,避免了传统方法分级分类精度较差的问题。实验数据表明,本文算法可以对铸件射线DR图像的气孔、疏松缺陷进行检测且初步分类分级,且具有较高的精度。在后续研究中,将会继续扩大数据集的样本数据量,改进深度模型算法,进一步提高检测精度和速度,尝试对其他缺陷类型进行检测。并尝试以本文的方法为基础,推广到其他铸件射线DR图像的缺陷检测,为工业缺陷检测智能化提出解决方法。

猜你喜欢

置信度铸件X射线
实验室X射线管安全改造
2021 年中国铸造行业数据发布
GJB 2896A-2020《钛及钛合金熔模精密铸件规范》解读
硼铝复合材料硼含量置信度临界安全分析研究
虚拟古生物学:当化石遇到X射线成像
正负关联规则两级置信度阈值设置方法
废铸件推出装置
环形凹槽类铸件铸造工艺
医用非固定X射线机的防护管理
置信度条件下轴承寿命的可靠度分析