韩鹏程 燕 群 彭 涛 宁方立
(1 中国飞机强度研究所 西安 710065)
(2 西北工业大学机电学院 西安 710072)
由于腐蚀、老化、地质变形或施工失败等原因,天然气管道泄漏事故频发。针对管道气体泄漏问题,国内外学者开展了相关研究。目前已有许多针对管道气体泄漏检测的方法[1-2],根据不同的检测物理量可分为声学检测法和非声学检测法。非声学检测方法中光纤检漏法[3]、质量平衡法[4]、压力点分析法[5]等检测方法原理简单,但是灵敏度低,对缓慢增加的泄漏或微小的渗漏反应弱,甚至无效。气体示踪法[6]、红外热成像法[7]等检测方法在定位精度以及实时性方面有所提高,但其设备复杂,成本昂贵,在实际工程应用中受限于气体类型、气体浓度。声学检测法中Mostafapour等[8]利用声发射技术,提出一种结合小波变换、滤波和互相关技术的泄漏检测算法。该方法可用于城市燃气管道泄漏源的定位,但存在对材料敏感、安装要求高、易受噪声干扰、信号辨识困难等问题。Xiao 等[9]提出了一种基于小波变换和支持向量机的声信号泄漏检测方法。该方法对燃气管道泄漏严重程度进行识别,但是需要人工提取特征,需要相当充裕的经验知识。
深度学习是一种特征学习,即通过学习数据的更高层次抽象表示,能对具有复杂分布特征的图像、视频、声音等信号进行特征提取、分类和识别[10],被广泛应用于语声识别[11]、图像处理[12]等领域。卷积神经网络(Convolutional neural networks,CNN)[13]是一种有监督的深度学习算法,其对深层特征的学习能力很强。CNN 通过对原始数据的特征提取、选择和模式识别统一到一个框架下,避免了信息丢失,减少了人工工作量,在实际工程中应用更为方便。宁方立等[14]通过对卷积核进行改进,提取阀门泄漏信号的窄带线谱特征。该方法将CNN 引入到阀门泄漏检测领域,但是基于“泄漏”和“背景”的分类模型较为单一。
综上所述,目前管道气体泄漏检测方法受限于技术特点,不具备通用性,且识别准确率较低。CNN可以对气体泄漏声信号特点进行提取,但是需要进一步模拟实际管道泄漏形式,建立多分类模型。本文针对输气管道气体泄漏检测问题,在实验室搭建输气管道,模拟常见的阀门泄漏和垫片泄漏,采集泄漏声信号通过短时傅里叶变换(Short time Fourier transform,STFT)构建输气管道气体泄漏数据集。在设计CNN网络结构时,添加Inception模块,建立基于CNN 的二分类模型和不同泄漏类型的三分类模型。结果表明这种设计可以有效提高三分类模型的性能。
STFT 既保留了原始信号的时频域信息,也不受信号频带范围的制约,是一种常用的时频联合分析技术,具体运算为
式(1)中:z(t)为原始信号,g(t-τ)为中心位于τ时刻的窗函数。
将管道气体泄漏时域信号经过STFT 处理的结果在时域排开,得到保留时频域信息的二维谱图。在STFT 过程中,窗函数的长度决定时频域分辨率,具体运算为
其中:T为时间分辨率,F为频率分辨率,表示向下取整运算,Nx为参与STFT的样本长度,Nw为窗函数长度,N0为窗口重叠宽度。将时频图分辨率P定义为
气体泄漏产生的超声信号具有不同于环境背景声的特征,本文在构造时频图时,首先进行超声截断,只对20~40 kHz超声频率段进行表征。同时,根据式(4),通过调整窗口重叠宽度,对时频图分辨率大小,即CNN分类模型输入时频图尺寸进行分析。
CNN 可以对气体泄漏超声信号表征的时频图特征进行自适应提取。CNN 分类模型的训练过程包括前向传播和反向传播两个部分。前向传播经过卷积层、池化层对输入时频图进行特征提取和降维,在全连接层进行分类,预测时频图的类别。假设第l层为卷积层,第l-1层为池化层或输入层,则:
式(5)中,为第l层输出的n个特征图为第l层输入的m个特征图,k为卷积核,b为偏置项,⊗表示卷积操作,f(·)为激活函数。
反向传播以特征图预测类别概率值和真实类别标签的损失函数作为误差,通过误差反向传播和优化算法进行模型参数更新。首先对前向传播全连接层输出值进行Softmax 函数处理,使其变成一个概率值。Softmax函数[15]定义为
式(6)中:yi代表全连接层的原始输出,i= 1,···,N,N代表分类的类别。
选择交叉熵函数[16]作为损失函数,其定义为
式(7)中:N为某批次样本数,yi为真实的类别标签,为预测的类别概率值。
在设计CNN 网络结构时,对如何确定网络层数、卷积层和池化层中的核尺寸和数目、全连接层的神经元数目没有严格的规定,一般是通过验证集结果不断调整参数,确定最终网络结构,而如果在训练初始就设定较为合理的数值,就可以节省大量的调参时间,提高效率。大部分经典CNN模型希望通过把卷积层堆叠得越来越多,提高模型性能,但是层数太深会造成参数太多,计算复杂度加大。
本文利用Inception 模块平衡网络的宽度和深度,防止过拟合的同时提高网络对尺度的适应性。由于不同支路的感受野是不同的,所以输出特征图有多尺度的信息在里面。选择小尺寸卷积核可以减少卷积参数总数,增加模型容量和模型复杂度。卷积核尺寸通常为奇数,方便以卷积核中心为标准进行滑动卷积,避免位置信息发生偏移,同时保证在进行padding时,图像的两边依然相互对称。
对模型超参数调整,通过多次预训练确定CNN网络结构。3 个卷积层中卷积核尺寸均为3×3,Conv-1 层卷积核滑动步长和卷积核尺寸保持一致,有效减小输出特征图尺寸。卷积核个数分别为16、32、64,均为2 的次幂,方便硬件字节级存储管理,有利于显卡硬件计算过程中划分参数矩阵。为了更多地保留特征图纹理信息,采用最大池化进行池化操作。3 个池化层中,池化核尺寸均为3×3,池化核滑动步长和尺寸保持一致,因此输出特征图尺寸为原来的1/3。卷积层和池化层搭配SAME 方式的Padding 操作,即0 值填充,可充分利用和处理输入特征图的边缘信息。设计两个全连接层,第一个全连接层把局部特征通过权值矩阵重新组合,第二个全连接层输出预测的类别。
上述网络结构为本文建立的基本网络结构,同时在基本网络结构中添加Inception模块,设计改进的CNN 结构,如表1 所示,用于提升三分类模型性能。Inception 模块前3 个通道为卷积操作,第4 个通道为池化操作,卷积核大小分别为1×1、3×3和5×5,每个通道的核个数均为32,通过SAME 方式的Padding 操作可以得到相同纬度的特征,然后将这些特征直接拼接得到维度为128维的输出特征图,如图1所示。
表1 改进的CNN 结构Table 1 Improved convolutional neural network structure
图1 Inception 模块Fig.1 Inception module
搭建输气管道气体泄漏平台,如图2所示,利用法兰球阀和垫片小孔模拟实际输气管道中最容易产生的阀门泄漏和垫片泄漏。
图2 输气管道气体泄漏平台Fig.2 Gas pipeline gas leakage platform
3.1.1 时频图表征
图3(a)为典型阀门泄漏时频图。分析可知,阀门泄漏超声信号在频域上主要包括宽带连续谱和窄带线谱,宽带连续谱声压级幅值会随着不同泄漏条件发生变化,窄带线谱具有时域连续性和频域稳定性特点。图3(b)为典型垫片泄漏时频图。分析可知,相比阀门泄漏,垫片泄漏在频域上主要包括宽带连续谱,其窄带线谱成分能量较小,反映在时频图上并不明显。图3(c)为典型实验室环境背景时频图。分析可知,在超声频率段内,由于电路噪声和其他环境中超声信号的影响,在时频图上会存在窄带线谱噪声。这些噪声具有时变性和不稳定性,对模型的抗干扰能力有了更高要求。
图3 超声信号时频图Fig.3 Time-frequency diagram of ultrasound signal
3.1.2 数据集样本构成
分别采集4 个法兰球阀在阀门开度为15°、30°、45°,管道压力为0.7 MPa 和0.9 MPa 下的气体泄漏信号。做时长为1 s 的截断,通过时频图表征作为“阀门泄漏”类样本,共包括4992 个样本,如表2所示。
表2 “阀门泄漏”样本构成Table 2 Sample composition of “valve leakage”
在进行垫片泄漏和背景实验时,采集和“阀门泄漏”类同样多的样本,同时保证阀门泄漏和垫片泄漏的声压级在同一区间内。分别采集不同孔径的垫片在无挡板、6 mm 挡板、12 mm 挡板环境,管道压力在0.2~0.5 MPa 下的气体泄漏信号。通过时频图表征作为“垫片泄漏”类样本,共包括4992 个样本,如表3所示。
表3 “垫片泄漏”样本构成Table 3 Sample composition of “gasket leakage”
“阀门泄漏”、“垫片泄漏”和“背景”类样本构成输气管道气体泄漏数据集。
在实际工程中,只需要判断出管道中是否有泄漏,因此首先建立基于“泄漏”和“背景”的CNN 二分类模型,其中,“泄漏”类样本包括“阀门泄漏”和“垫片泄漏”类样本。在划分数据集时,通常将大约2/3~4/5的样本数据用于训练,剩余样本用于验证集和测试集,保证训练集、验证集和测试集处理的为非同批次数据集样本,具体划分如表4所示。
表4 二分类气体泄漏数据集划分Table 4 Division of the two-class gas leakage data set
以ReLU 函数作为激活函数,交叉熵作为损失函数,采用Adam算法为优化算法更新网络参数,最小化损失函数训练模型。计算机软件环境为windows10+Python,CPU为Intel Core i7-8700,GPU为GTX 1080Ti。
在进行时频图表征时,选择窗长为1024个采样点,窗口重叠宽度通常为半窗长512 个采样点,根据式(4)得到186×513 分辨率的“长方形”时频图。通过调整窗口重叠宽度为838 个采样点,使时频图的长宽一致,得到513×513 分辨率的“正方形”时频图。
将这两种时频图输入到CNN 中进行训练和测试其性能,以整体性能更好的一组作为输入时频图尺寸。采用基本网络结构训练基于CNN 的二分类气体泄漏分类模型。图4 分别为训练集损失函数和准确率随训练步数变化的情况。
由图4 可知,513×513 分辨率时频图作为输入时,训练步数增加到4743步,模型收敛;513×186分辨率时频图作为输入时,训练步数增加到3534 步,模型收敛。此时两个模型的损失函数稳定在0.05 左右,准确率稳定在98%左右。
图4 二分类模型收敛特性Fig.4 Convergence characteristics of the two-class model
计算两个模型在测试集上的性能,如表5所示。
表5 不同输入时频图尺寸模型性能对比Table 5 Performance comparison of models with different input time-frequency diagram sizes
分析可知,相比186×513 分辨率时频图作为输入,513×513 分辨率时频图作为输入的情况下,精度由0.889 提高到1.000,召回率由1.000 下降到0.928,而精度和召回率的调和平均数F1-score 由0.941 提高到0.962,模型性能有了很大提高。CNN分类模型虚警率由0.125 下降到0,漏警率由0 上升到0.072。除此之外,测试集识别准确率由93.53%提高到96.90%。
综上所述,确定以513×513 分辨率作为输入时频图的尺寸。
通过进一步细分泄漏类型,研究基于“阀门泄漏”、“垫片泄漏”和“背景”的CNN三分类模型判断泄漏属于哪一类。按照二分类气体泄漏数据集划分思想,三分类气体泄漏数据集划分如表6所示。
表6 三分类气体泄漏数据集划分Table 6 Classification of three-class gas leakage data set
分别在基本网络结构的每一层卷积层后添加Inception 模块,计算测试集在模型上的识别准确率,确定添加位置,如表7所示。
表7 不同位置Inception 模块对模型的影响Table 7 The influence of Inception modules in different positions on the model
由表7 可知,Inception模块随着添加位置后移,总体识别准确率逐渐提高,但是在第一层和第二层后,其总体识别准确率相比未添加时反而降低,尤其在第一层后只有80.80%。
分析可知,第二个卷积层维度为32,第三个卷积层维度为64,而文中所使用的Inception 模块维度为128。因此,当Inception 模块添加在前两个卷积层后时,维度的压缩都造成底层通用特征的丢失,进而造成深层网络难以提取到更精细的特征。
因此,确定Inception模块添加位置在第3 个卷积层后,并和训练集作用于基本网络结构时训练情况进行对比。图5(a)和图5(b)分别为损失函数和准确率随训练步数变化的情况。
由图5可知,作用于基本网络结构时,训练步数增加到9424 步,模型收敛;作用于改进网络结构时,训练步数增加到8370 步,模型收敛。此时两个模型的损失函数稳定在0.1 左右,准确率稳定在96%左右,添加Inception模块加速模型收敛。
图5 三分类模型收敛特性Fig.5 Convergence characteristics of the threecategory model
计算两个模型在测试集上的性能,如表8所示。
表8 三分类模型测试集识别性能Table 8 Recognition performance of threeclass model test set
分析可知,添加Inception 模块后,有效提高了模型性能,各项指标相比未添加Inception模块时均有提高。其中,总体识别准确率由原来的91.05%提高到93.12%,而且每一类的识别准确率没有出现失衡的现象。
和二分类模型进行对比,三分类模型总体识别准确率和F1-score 均有所降低。这是因为在进行“泄漏”和“背景”的二分类时,在超声频率段内无论是阀门泄漏还是垫片泄漏,“ 泄漏”类频谱的声压级都大于“背景”类的声压级,导致在进行分类时,通过声压级信息就可以判断出是否有泄漏,分类相对简单。在三分类模型中,通过细分泄漏类型,训练集样本增加了一类。其中阀门泄漏和垫片泄漏的声压级都在20 dB 和70 dB 之间,此时在训练过程中会充分利用时频图上的特征信息进行判断,分类情况更为复杂。
通过模拟管道气体泄漏中常见的阀门泄漏和垫片泄漏,采集对应超声信号进行时频图表征,建立基于“泄漏”和“背景”的二分类模型判断是否有泄漏发生,并对输入时频图尺寸进行了探讨。建立基于“阀门泄漏”、“垫片泄漏”和“背景”的三分类模型判断泄漏属于哪一类。对比发现,二分类模型数据类型比较单一,而且进行超声截断,导致在进行分类时,通过声压级信息就可以判断出是否有泄漏。而在三分类模型中,阀门泄漏和垫片泄漏频谱声压级在同一区间内,但是其频谱特点不一样,基本消除了绝对声压级对分类的影响。在设计CNN 网络结构时,添加Inception模块可以平衡网络的宽度和深度,在加速模型收敛的同时提高三分类模型整体性能。