王国庆,李 璇,杨理践,高松巍,耿 浩,2
(1.沈阳工业大学 信息科学与工程学院,沈阳 110870; 2.大连理工大学 工业装备智能控制与优化教育部重点实验室,大连 116024)
管道运输作为石油和天然气等能源的主要运输手段,其安全问题尤为重要,并且随着管道数量和里程数的增加,对于管道安全的维护难度也相应增加,漏磁检测等无损检测方法可以检测出管道中的缺陷[1],为解决管道安全问题提供了很大帮助。
漏磁内检测数据的判读是评估管道缺陷的基础[2]。由于长输管线输送距离较长,漏磁内检测数据量庞大。传统的漏磁数据识别分析方法大多需要人工判读,但是利用人工判别的方式进行漏磁数据检测,结果会受到无损检测员专业水平的影响,且对缺陷的判别没有统一的标准,对于不同的检测人员,检测结果容易受到主观影响[3]。并且人工判读需要花费大量的精力和时间,容易造成人员疲劳从而导致漏检或误检。通过机器学习的方法建立模型并进行训练,可以实现对管道漏磁内检测数据的批量处理和自动识别[4-6]。对于减少人力工作量,减少人为误差,提升数据判别的准确性具有重要意义。
近年来,众多学者在机器学习识别缺陷方面进行了大量研究,提出了不同的算法来自动识别漏磁缺陷信号[7-10]。不同的方法在缺陷识别的准确度和效率方面存在差异,在管道缺陷位置识别精度上也有待提高。采用一种基于改进的YOLOv5算法来对管道漏磁缺陷进行识别检测[11-14],通过向改进YOLOv5网络中输入实际检测数据进行训练,建立漏磁曲线缺陷识别系统,从而提升缺陷的识别准确性。
YOLO(You Only Look Once)算法是一种基于回归思想的多目标检测算法,代表可以从一张图像上识别出多种不同种类的物体,并通过非线性拟合计算出物体的尺寸坐标,以便为检测出的物体打上标注框。YOLO算法经过近几年的不断改进,发展成为现在的YOLOv5算法。YOLOv5网络模型结构总共分为输入端、Backbone、Neck以及Prediction四个部分。YOLOv5算法的网络模型结构如图1所示。
图1 YOLOv5网络模型结构
第一部分为输入端,它表示输入的图片。在该网络模型中输入图像的大小为640×640,在输入端模块会对图像进行图像预处理,具体为将图像缩放至便于网络训练的大小,以及对图像进行归一化等操作。输入端分为3个部分:mosaic数据增强、自适应锚框计算和自适应图片缩放[15],其中mosaic数据增强部分可以使模型能够更好地对图像中的小目标物体进行检测,也可以使模型的训练速度和模型精度大大提升。自适应锚框计算部分通过对每一次迭代输出的预测框面积进行更新,从而使模型预测的结果更加地合理化,自适应图片缩放部分的作用是对原始图像进行缩放,使输入图像统一为一个标准尺寸后,再送入检测网络中检测。Backbone为基准网络,该模块是为了对图像提取一些通用的特征表示。它分为两个部分:分别是Focus结构和CSP结构,其中Focus结构主要的作用是对图像进行切片操作,CSP结构是为了从网络结构设计的角度使推理中计算量很大的问题得以解决[16]。Neck网络通常是在Head网络和Backbone网络中间的位置,它起到进一步提升特征的多样性和鲁棒性的作用。该模块为FPN+PAN结构,它可以使加强网络特征融合的效果更好。Prediction使用的是GIOU_Loss损失函数[17],该损失函数可以对检测目标矩形框的识别损失率进行估算,并使算法的检测精度大大提升。
YOLOv5算法根据其含有的残差组件个数不同分为4个目标检测版本,分别为Yolov5s、Yolov5m、Yolov5l和YOLOv5x,4个目标检测版本残差组件依次递增,YOLOv5算法的不同网络结构的残差组件个数和卷积核个数如表1所示。随着YOLOv5算法网络深度逐渐加深,其模型的特征提取和特征融合能力也越来越强大[18]。
表1 YOLOv5的不同网络结构卷积核个数以及残差组件个数
其中:YOLOv5s是网络深度最小、特征图宽度最小的网络[19],其他的3种网络都是在YOLOv5s的基础上对网络进行加深以及加宽,可利用代码的编写控制每种模型的深度与宽度,更改便捷,实验中通过从节约内存成本和计算成本发的角度考虑,YOLOv5s可以使网络更加地轻量级,故本实验选择了网络模型深度以及宽度均最小的YOLOv5s进行模型训练,YOLOv5s的网络结构如图2所示。
图2 YOLOv5s网络结构
YOLOv5对于目标识别检测有着良好的表现的主要原因如下:
1)YOLOv5算法输入端模块设计了Mosaic数据增强,丰富了数据的多样性,同时自适应锚框计算以及自适应图片缩放的使用,也使模型的检测速度大大提升;
2)YOLOv5算法的主干网络中使用了Focus模块和CSP模块[20],Focus模块在输入图像特征图转换过程实现切片操作,效果表现良好,CSP模块可以提升网络学习能力,提升检测准确率,节约内存成本;
3)Neck网络中使用了与主干网络不同的CSP模块,在输出端部分使用GIOU_Loss损失函数为预测框的损失函数,在目标识别的后处理过程中,YOLOv5模型采用了加权NMS(非极大值抑制)算法。
YOLOv5算法是一种基于回归的目标检测算法,其采用直接输入整张图片的方式,不再使用卷积神经网络的全连接层,直接形成端到端的网络。边界框回归(bounding box regression)算法是该算法的核心,利用边界框回归算法能够在大量的管道漏磁检测数据中准确的找到管道缺陷位置,并对其边界进行准确划定。边界框回归算法使用窗口滑动机制将整张图像划分为S×S个网格,如果待检测目标的中心在某一网格中,则由该网格对待检测目标进行识别预测。每个网格会针对待测目标产生多个大小不一的候选检测框,最终通过平移缩放等几何变换对候选框进行回归,YOLOv5模型的回归计算方法为:
bx=2σ(tx)-0.5+cx
(1)
by=2σ(ty)-0.5+cy
(2)
bw=pw(2σ(tw))2
(3)
bh=ph(2σ(th))2
(4)
式中,tx,ty,tw,th分别为x,y轴坐标宽度和高度的偏移量,bx,by,bw,bh分别为回归的结果,(cx,cy)表示边界框在左上角的坐标值,pw,ph表示预测的前边框的宽度和高度。计算时的求解方法使用残差平方和,并用逻辑回归方法找出图像管道漏磁缺陷信号的边界框。
YOLOv5在目标识别过程中引入候选检测框,候选检测框是一组固定尺寸和宽高比的初始区域[21],初始检测框越接近真实检测框,其模型的训练越容易,训练结果检测精度越高。所以,初始检测框的确定会直接影响到真实检测框位置的确定和模型识别的精度。YOLOv5模型中采用了加权NMS(非极大值抑制)算法对初始检测框进行筛选,将交并比较大并且置信度较低的检测框判定为冗余检测框,并对冗余检测框进行删除。在YOLOv5算法中,非极大值抑制算法会将预测框集合B,与集合B中每个预测框相对应的置信度集合C和最终输出的预测框集合3个集合进行汇总。并对集合C中的置信分数从高到低将集合B中与其对应的预测框进行排序,将置信度值最高的预测框选出放到集合R中,移除集合B中的该预测框。将集合B中其余的预测框与置信度值最高的预测框计算交并比IOU的数值,并将交并比值与设定的阈值进行大小比较,移除交并比值比设定阈值大的相对应预测框。重复对集合B中剩余预测框置信度进行排序,直至集合B中的预测框被全部移除为止,此时的集合R为该数据集所求预测框。该算法虽然解决了形成的多个检测框而导致的标记框冗余问题,但是阈值的不同设定会影响检测精度,实验中引进自适应阈值调整的方法,对预测框的选择进行了自适应调整,以减少漏检问题。
(5)
(6)
式中,Ci,j为最终的置信度结果,IOU为计算所得的两个边界框的交并比数值,N为YOLOv5默认的设定阈值0.5,Nt为可变动的自适应阈值。即选取的最大置信度Im与默认阈值N的差值和默认阈值N之比,使默认阈值N向大于0.5方向按差值比例偏移得到的数值为Nt的值。更改后的自适应NMS算法在挑出置信度最高的预测框后,会计算集合B中剩余预测框与选出预测框的IOU值,在IOU值大于阈值的预测框中选出数值最大的值设为Im,根据式(6)重新计算Nt的值为新的阈值,最后把比Nt值大的IOU值相对应的预测框进行移除操作,重复上述比较,直至集合B中的预测框个数为零。改进后的NMS算法的阈值设定与预测框相关,预测框的结果与最终的检测结果相关,故对阈值进行上述优化,以提升算法的识别准确率。
在YOLOv5算法中,损失函数作为该算法输出端的一部分,起到了计算边界框损失的作用。利用它可以对边界框的位置进行调节,提升该算法对漏磁信号识别的准确性[22]。传统的YOLOv5算法采用损失函数GIoU Loss来计算边界框的损失,其评价指标广义交并比GIoU(generalized intersection over union)直接把交并比IoU(intersection over union)设为模型回归的损失,用下式表示:
(7)
(8)
其中:交并比IoU为在遍历所有图像网格后,在网络输出端输出的置信度,置信度是候选边界框与真实边界框的交并比[23],式中:A、B分别为真实边界框和候选边界框的面积。在任意的两个边界框A、B中先确定一个最小的闭合形状C,然后计算真实边界框A与候选边界框B的交并比,再利用交并比减去封闭形状C中没有覆盖真实边界框和候选边界框的面积占闭合形状C总面积的比值,进而得到损失函数GIoULoss,其损失函数计算如下:LGIoU=1-GIoU。在该算法求解时,将损失函数GIoULoss与非极大值抑制算法(NMS)相结合,搜索局部极大值进而得到准确的漏磁信号标注结果。
GIoU由于惩罚项的引入,在目标框和预测框不重叠的情况下,预测框会向漏磁数据标定目标框移动,GIoU除了关注漏磁信号目标框与预测框的重叠区域不同,还关注了非重叠区域,能够更好的反应重合度。但GIoU仍然在相邻缺陷识别准确性上存在问题,对于一些没有重叠的目标检测框,GIoU回归策略可能会退化为交并比IoU的回归策略[24]。其主要问题在于,当IoU返回值为0时,GIoU倾向于使漏磁缺陷信号检测框和目标框以最快方式产生重叠,而后GIoU的惩罚机制逐渐失效,即检测框与目标框之间的包含而不重叠也被认为是正确的。为了解决这一问题,在GIoU中引入欧氏距离ρ,检测框和目标框之间的最小矩形斜距c以及检测框和目标框的中心点b,bgt,达到提升漏磁信号识别精度的目的。建立DIoU(Distance-IoU)公式原理如下所示:
(9)
在该损失函数中,b,bgt分别表示检测框和目标框的中心点,其欧式距离为ρ。c为覆盖检测框和目标框之间的最小矩形的斜距。DIoU中添加了一个惩罚项,故仍然保留GIoU中当预测框和目标框不重叠时,预测框可以向目标框移动这一优点。同时,对于漏磁缺陷信号的识别,DIoULoss能迅速使漏磁信号预测框与目标框之间的距离最小化,而GIoULoss优化的是识别出的漏磁信号预测框与已标定的目标框之间的面积,所以DIoU和GIoU相比,不但可以提升精度,还可以加快收敛速度。
管道漏磁内检测器中,漏磁场信号的采集记录由探头完成,然后将漏磁场信号信息传送送到计算机部分,由计算机部分将漏磁数据和管道其他信息数据统一存储记录。管道漏磁数据扫描格式如图3所示。每次扫描的管道漏磁场信号数据被保存在一个完整的文件中,一个数据文件主要包括漏磁场信号的数据和辅助数据。
图3 管道漏磁内检测数据组成部分
其中漏磁场信号的数据主要有φ分量、ρ分量和z分量,它们分别相当于管道周向、径向和轴向的三维磁感应强度分量;其他的数据主要有探头每次扫描所需要的时间信息;探头所在的周向位置信息;管道相关配置文件信息等。
探头在管道内检测器中的排列方向为逆时针方向排列,分别记录管道周向360°漏磁场信号特征。其中,磁感应强度径向分量、磁感应强度周向分量、磁感应强度轴向分量又为管道外部和管道内部的同一个检测点的信息。对于辅助数据的内容主要有扫描时间、探头的周向、距离、经度、纬度、温度、瞬时速度、压力、数据处理标志、硬件版本信息、备用、结束标志等设置信息。
YOLO模型对于目标的识别分类过程为有监督训练方法,需要输入图像数据集,将漏磁数据通过管道漏磁检测数据分析系统分段导出,每段数据包括X、Y、Z三个方向的磁场数据,分别为管道漏磁信号轴向数据、径向数据和周向数据。管道漏磁信号数据经管道漏磁内检测器的存储单元内导出,导出格式为十六进制的DAT数据文件,利用漏磁数据分析软件对DAT文件进行数据读取,将DAT数据格式转换为txt文本数据格式,通过对数据进行处理,提取数据文件中所需要的检测信息,利用代码将txt文件批量转化为曲线图,将管道漏磁数据可视化,以供机器进行识别判读。
“之后,我只听到小表姐大发雷霆,骂了好多难听的话,我只记得小表姐最后一句话是:‘荡妇,不要脸的女人,跟我去见我妈,让我妈看看你到底是个什么东西!’
曲线图像的成像原理是将转换完数据格式后的数据点直接输入到计算机中,将检测器内各个通道中的实际检测值按照描点连线的方式对其进行成像,从而生成曲线图像。其中,曲线图像中的横坐标表示沿检测器运行方向上采集检测点的数量,可通过计算得到里程数;纵向为多通道传感器并行采集的数据,每条曲线的波动情况则反映漏磁数据的大小。定义漏磁检测数据中的记录数为横坐标X,漏磁检测数据中的实际检测值为纵坐标Y,通过描点成像进而实现管道漏磁内检测的曲线显示。生成的漏磁检测曲线如图4所示。
图4 漏磁检测曲线图
长输油气管道一般由高磁导率的铁磁性材料加工而成,检测过程中需要经过励磁装置磁化。以轴向永磁励磁方式的管道漏磁内检测装置为例,磁通经过的磁路主要由永磁体、轭铁、钢刷、管道、工作气隙及装配气隙几部分组成。在磁路内部安装有磁敏元件,以检测缺陷处漏磁通。管道壁上不存在缺陷,磁力线会直接均匀地通过管道壁。在管道壁上存在自然缺陷或焊缝缺陷时,磁力线无法直接通过缺陷处的管道壁,会形成畸形的,不均匀的磁通回路,形成漏磁场。可通过对漏磁场的位置进行标定,建立漏磁曲线图像缺陷数据集。
现有的数据进行某种操作后生成新的数据来扩充数据库,采用预设的数据变换规则,在已有数据的基础上进行数据扩增,在单样因为YOLOv5模型受数据样本量的影响较大,所以训练中需要大量的数据来支撑,但是获取足够的图像数据集相对较难。实验利用本数据增强中,基本上可以对图像进行以下4种操作,分别为图像颜色反转、对图像进行亮度增强、图像镜像以及对图像进行旋转。实验共建立1 400张漏磁曲线图像作为数据集,其中每张图像大小均为875×656像素。YOLOv5模型对于图像的识别是有一种有监督的神经网络训练过程,模型的输入是图像,需要人为对输入图像进行标记,定义图像特征,为其制作标签文件。实验利用图像标注工具labelImg软件为漏磁信号标准缺陷进行标准标注,从而为模型提供标准缺陷信息。漏磁缺陷信号数据标定如图5所示。
图5 漏磁缺陷信号数据标定
通过在labelImg软件上为管道漏磁信号曲线缺陷处打上识别标框,记录管道漏磁曲线缺陷信息。再通过labelImg软件生成格式为PASCAL VOC数据文件,即.xml后缀文件,xml文件中存储着标注框的关键信息,有标注框在x轴上的最小值xmin、标注框在y轴上的最小值ymin、标注框在x轴上的最大值xmax、标注框在y轴上的最小值ymax四个关键参数,利用标注框在x轴上的最大值与标注框在x轴上的最小值之差得到标注框的宽,利用标注框在y轴上的最大值与标注框在y轴上的最小值之差得到标注框的高,进而确定标注框的左上角坐标以及标注框的大小,根据这个思想利用代码将xml文件转化为txt格式文件,为建立YOLO模型数据集做准备。改进YOLOv5模型数据格式如图6所示。
图6 YOLOv5数据格式
将数据集按照5:1:1比例进行训练集、验证集和测试集的划分,随机抽取1 000张图像作为训练集,200张图像作为验证集,剩余200张图像作为测试集,并按照如上的数据格式对数据集文件夹进行建立,完成YOLOv5模型数据集的制作,其中,Annotations文件夹和labels文件夹存放图像标注框的坐标信息,images文件夹存放数据图像,imageSets文件夹存放训练集和验证集的图像名称与存放地址。
实验需要搭建深度学习平台对YOLOv5模型进行训练,管道漏磁缺陷信号识别实验的运行环境如下:CPU为Intel i7-7700 K,GPU为NVDIA GeForce GTX 1070,系统内存为16 G,操作系统为 Windows 7 64位,安装驱动为CUDA 11.2,开发语言为Python,深度学习框架为Pytorch。
首先进行数据预处理,训练过程中需要PASCAL VOC和YOLO两种数据文件,利用LabelImg生成格式为PASCAL VOC的数据,即.xml后缀文件,再利用代码将其转化为txt格式文件,转换后的txt文件可以方便YOLOv5模型进行数据的读取。之后将准备好的数据集输入YOLOv5s进行训练,然后初始化先验框参数,YOLOv5采用K-means聚类算法对数据集的标注框进行聚类得到初始先验框。YOLOv5中的先验框,是由宽w和高h两个参数组成,利用图像的像素尺寸,来表示数据样本中样本的大概形状。在YOLOv5中共有9个先验框,平均分配在3个检测层上,每个检测层分配3个尺寸不同的检测框。不同尺寸的检测框对不同尺寸的特征有着不同的敏感程度,不同尺寸的特征会匹配与其对应的先验框。运行模型得到适合该数据集的先验框参数,并将先验框参数写入此模型。通过确定更精确的先验框,可以使网络模型对于待检测目标有更好的识别精度。
设置初始先验框后,为模型导入预训练模型权重,并通过训练调整该模型的权重。训练模型设置图像尺寸参数img为640,单次训练图像数batch为16,训练次数epochs为100次。分别将GIoU Loss和DIoU Loss作为模型训练的损失函数。
通过建立的数据集分别对原始YOLOv5网络和改进YOLOv5网络进行训练,图像尺寸参数设置、单次训练图像数和训练次数保持不变。在漏磁信号数据训练集和验证集上训练后的损失函数均值曲线与目标检测损失均值曲线分别如图7和图8所示。
图7 原始YOLOv5网络在训练集和验证集上损失函数曲线与目标检测损失均值曲线
图8 改进YOLOv5网络在训练集和验证集上损失函数均值曲线与目标检测损失均值曲线
从图7、8可以看出,在相同的实验条件下,改进的YOLOv5算法在训练集和验证集上的损失函数均值与目标检测损失均值和原始的YOLOv5算法相比,均有所下降。针对训练集,改进YOLOv5算法在训练结束后损失函数均值由0.058降为0.036,目标检测损失均值由0.071降为0.012;针对验证集,改进YOLOv5算法损失函数均值由0.066降为0.033,目标检测损失均值由0.078降为0.011。这表明了每处漏磁信号缺陷识别框和需要识别的对应缺陷目标框面积之差减小,漏磁信号识别框位置也更加准确,改进YOLOv5算法起到了更良好的效果。
将测试集输入训练后的网络,并将权重文件更改为训练后的最佳权重。分别对X、Y、Z三个方向上的单个缺陷、组合缺陷、相邻缺陷、边缘缺陷以及不规则缺陷进行自动识别。运行改进后的YOLOv5模型,缺陷的自动识别结果如图9~11所示。
图9 X向漏磁数据自动识别结果
从图9~11可以看出,对于X、Y、Z三个方向上的磁场信号,通过改进的YOLOv5算法,均对漏磁缺陷信号进行了有效的自动识别。对于单个缺陷、组合缺陷、相邻缺陷、边缘缺陷以及不规则缺陷均具有很好的识别效果。测试结果表明,改进的YOLOv5算法可以在漏磁缺陷图像上找到缺陷信号的位置,并形成识别框。通过自动对缺陷信号进行识别标注,实现了管道缺陷自动识别的过程。
采用插值平均精度方法对漏磁数据的自动识别过程进行评价,计算缺陷类别识别准确率P和召回率R并绘制P-R曲线,P-R曲线下的面积为平均准确率AP的值,多个类别的平均准确率AP的平均值即为总平均准确率mAP。对于YOLOv5模型,平均准确率AP和总平均准确率mAP通常被作为评估模型的指标,缺陷类别识别准确率P和召回率R的计算如式(10)、(11)所示:
(10)
式中,TP为准确检测出漏磁缺陷信号的数量,FP为将非漏磁缺陷信号检测为缺陷信号的数量。
(11)
式中,FN为将漏磁缺陷信号检测为非缺陷信号的数量。
(12)
实验采用的评估指标主要包括:模型训练损失函数均值、目标检测损失均值以及平均准确率mAP。其中模型训练损失函数均值和目标检测损失均值越低,代表漏磁信号识别效果越好;平均准确率mAP值越高,代表模型分辨漏磁缺陷信号和漏磁非缺陷信号的能力越好。实验利用200张未标注的管道漏磁信号图像对改进的YOLOv5模型进行验证,图12为模型的mAP评价结果,本次训练模型mAP值为0.928,说明该模型精度较高,测试结果良好,对管道漏磁信号缺陷检测具有一定的可行性。
图12 模型mAP评价结果
针对管道漏磁信号识别中存在的问题,在传统的YOLOv5算法的基础上,对YOLOv5算法进行了改进,提出了基于改进的YOLOv5算法的管道漏磁信号识别方法。实验结果表明,改进的YOLOv5算法在漏磁信号的识别准确性上有大幅度提升,缺陷识别精度相较于原算法有明显提高,对漏磁信号的位置及形态均具有较好的识别能力。基于改进的YOLOv5算法实现了管道缺陷漏磁数据的自动检测和识别,模型平均准确率mAP值达到0.928,实现了管道漏磁信号识别精确度的提升。经实验验证,该方法具有一定的可行性,可在短时间内大量标注管道漏磁曲线图像缺陷信息,降低人员工作量,提升数据判读的准确性。