基于CNN的水管道小泄漏声信号识别
2021-08-21贺永方刘兰慧
李 哲,封 皓,刘 欣,贺永方,刘兰慧
(1.天津大学精密仪器与光电子工程学院,天津300072;
2.承德石油高等专科学校,河北承德067000;3.天津精仪精测科技有限公司,天津300384 4.中国市政工程华北设计研究总院有限公司,天津300074)
管道是城市水资源运输最主要的方式。然而,腐蚀、施工、地质变动等原因会引起管道泄漏,这将造成水资源的巨大浪费。因此,及时发现管道泄漏具有十分重要的意义。近几十年来出现了多种管道泄漏检测方法。例如质量平衡法[1]、负压波法[2]、示踪气体法[3]、光纤检测法[4]、声学检测法[5]等。其中,声学检测法由于具有较高的灵敏度,在管道泄漏检测系统中被广泛应用[5]。
声学检测法主要检测管道泄漏引起的声或振动信号。当管道泄漏时,内部和外部的压力差会产生湍流,进而引起泄漏点附近水的振动,从而产生声信号。泄漏声信号为宽频带信号,其频率成分包括低频成分(由于泄漏处的非定常分离流引起)和高频成分(由于气蚀引起)[6–8]。
在声学检测法中,管道内检测法因其检测精度高而被广泛研究和使用。它通过在管道中放入搭载传感器的内检测设备来采集信号;该设备在管道内移动的同时采集声信号,以此判断泄漏位置和大小。国内天津大学开发了一种系缆式管道内检测系统。该检测系统搭载声学传感器进行泄漏检测,其更加接近泄漏点,该方法具有检测与定位精度高,误报率小的优点。
为了提高泄漏识别率,需要开发有效的管道泄漏声信号识别方法。目前,大多使用机器学习算法进行管道泄漏声信号识别,例如支持向量机[9–12]、人工神经网络[13–14]、贝叶斯学习[15]等。Xiao 等利用1 mm、3 mm、5 mm 的泄漏孔模拟泄漏,提取标准差、小波平均频率、绝对平均值等信号特征,使用支持向量机对不同直径的泄漏孔进行模式识别[10]。El-Zahab 等分别使用支持向量机、决策树、贝叶斯学习方法进行泄漏声信号识别,其研究对象为3 L/min~15 L/min 的泄漏,主要适用于大泄漏的识别[12]。Li等对1.2 L/min~8.4 L/min 泄漏量的测量信号进行特征提取,获取均值、峰值频率等时域或者频域特征,使用人工神经网络分类器进行模式识别[13]。上述方法研究了泄漏速率较大的情况,当管道泄漏速率较小时,识别方法识别性能可能会降低。除此之外,以上讨论的识别方法[9–15]均为通过人工提取的信号浅层特征进行泄漏识别,特征提取依赖于科研人员的经验,提取难度大,适用范围小,泛化能力弱。利用泄漏信号隐藏的深层特征,实现特征的自动提取和模式识别是目前研究的热点问题。
最近,深度学习已成为最成功的机器学习方法之一,卷积神经网络(Convolutional Neural Networks,CNN)在环境声音分类、语音识别、音乐流派分类等领域得到广泛的应用[16–18]。将CNN应用到管道泄漏识别领域是一种新的研究思路。
针对上述问题,本文提出了一种基于CNN的管道声学信号识别方法。首先,搭建实验平台,收集不同位置、压力、泄漏速率的声信号来构建数据集,以增加方法的鲁棒性;其次,使用多窗谱谱减法(Multitaper Spectral Subtraction,MTSS)去除背景噪声;最后,自行设计3层网络结构,将去噪后的声信号的时频图输入经过训练的CNN网络,进行泄漏识别。
1 方法
下面是本文提出的管道声学信号识别方法的介绍。图1 表示了所提出方法的总体架构,该方法主要包括3 个部分:(1) 使用MTSS 对声学信号去噪;(2)将去噪后的信号转化为含有泄漏特征的特征图;(3)使用CNN对特征图进行泄漏识别。
图1 泄漏识别方法流程图
1.1 MTSS算法
多窗谱方法(Multi-taper Method,MTM) 由Thomson提出[19–21],使用一个正交的锥形窗集合分别求信号的谱,之后求其平均值,可得到比常规周期图法更准确的谱估计。
MTSS的具体步骤为:
对于原始声学信号x(n)加窗并分帧后得到xi(m),i表示第i帧。对xi(m)进行快速傅立叶变换(FFT),获得其幅度谱|Xi(k)|和相位谱θi(k)。在i帧前后共取3帧进行平均,计算平均幅度谱|(k)|:
使用MTM 计算分帧后的信号xi(m)的功率谱密度P(k,i)。在i帧前后共取3 帧对P(k,i)进行平滑,求得信号第k帧的平均功率谱密度k,i):
以相同原理可以求出噪声的平均功率谱密度(k),其中k,i)为噪声第k帧的平均功率谱密度,N为噪声总帧数:
求得谱减后的幅度谱|(k)|:
式中:α为过减因子且α>1,β为增益补偿因子且β一般取0.002[19–20]。
1.2 CNN算法
CNN 是一种具有表征学习能力的前馈神经网络。为了进行管道泄漏识别,同时发挥CNN 的优势,本文提出了一种改进的CNN网络:
(1) 由于声信号是一维信号,使用CNN 对声信号进行识别一般先分帧,再直接输入一维CNN进行特征提取。这种方法设计的CNN 主要对信号在时域范围内进行特征提取,难以获取信号的频谱特征。本文先对声信号进行短时傅里叶变换(short-time Fourier transform,STFT),将一维数据转化为二维数据,两个维度分别代表信号的时域和频域信息,之后输入CNN进行模式识别。
(2)针对管道声学信号特点设计的网络,采用3层卷积层和3层池化层进行特征提取,使用2层全连接层进行管道泄漏声学信号分类。图2显示了本文设计的CNN的具体结构。
图2 本文设计的CNN结构示意图
(3)结合声学信号时频图的特征,将卷积核确定为长方形。此外,考虑到使用小而深的卷积核可以达到与大的卷积核相同的效果,同时具有减少参数、泛化性能强的优点,因此卷积层前2层使用5×1的长方形卷积核,第三层使用3×3的正方形卷积核。
为了减少冗余信息,增强特征,在每层卷积层的后面都使用最大池化的方法进行下采样。池化层的尺寸为2×2,步长为2。
2 实验研究
2.1 实验装置
为验证所提出的管道声学信号识别方法的性能,搭建实验平台并进行实验。图3 为实验平台的布置示意图。管道为长12 m、外径220 mm、内径216 mm的钢管。
图3 实验平台布置示意图
如图4(a)、图4(b)所示。使用泄漏孔模拟现实中的泄漏场景,泄漏孔位于管道中心位置,距离管道两端各6 米。本文研究的泄漏孔直径分别为0.4 mm、0.6 mm、0.8 mm 和1 mm。考虑到供水管道的压强一般为0.3 MPa~0.5 MPa,选择0.3 MPa 和0.5 MPa两个典型的压力值模拟实际场景。实验时分别把检测装置放在距离泄漏孔1 m、2 m、3 m、4 m、5 m 处实验。
图4 实验装置图
设计了一种系缆式管道内检测器,如图4(c)所示。该检测器头部装有动力伞结构,可以利用管道内流体动力推动检测器在管道内前进。该检测器能够更加接近泄漏点,因此具有更高的检测灵敏度。此外,由于采用系缆式节状结构,因此相比于采用传统PIG和球形检测器更加灵活,更容易回收,具有很好的应用前景。
考虑到内检测器需要将传感器置于管道内部,这样对传感器的尺寸具有严格的限制。因此,声学传感器使用自制高性能全指向性MEMS麦克风,该麦克风相比于水听器体积更小,灵敏度为-45 dB。频率范围为20 Hz~20 000 Hz。采集系统采样频率为44.1 kHz,略大于人耳听力上限的两倍。考虑到实验管道长度有限,实验时拆下带有声学检测系统的测量节(图4(c)中左侧第1节)进行实验。
2.2 信号去噪
由采集系统采集到的声信号一般都含有噪声,首先需要对信号进行去噪。使用MTSS 降噪,根据参考文献[19–20]的建议,过减因子α与信号的信噪比和实际信号有关,需要根据实验进行选择。为了设置合适的参数,将RESON TC4013 水听器测得的实际泄漏信号作为纯净信号,使用MATLAB2014a在纯净信号中添加高斯白噪声,得到带噪信号。采用去噪后提高的信噪比作为去噪结果的评价指标。
图5 显示了过减因子α与提高的信噪比之间的关系图。从图中可以看出,设置初始信噪比分别为-5、0、5,提高的信噪比达到最高时α分别为1.8、2、2.2。因此,考虑到实际测得的信号的信噪比在0 附近,设置过减因子α=2。
图5 过减因子α与提高的信噪比关系图
图6 表示0.5 MPa 压力、测量点距离泄漏孔1 m处的条件下不同泄漏孔去噪前后信号波形图。从图6中可以看出,去噪前信号由于毛刺较多,泄漏和小泄漏情况下的信号难以分辨;去噪后无泄漏情况下的信号趋于平坦,小泄漏情况下的信号的毛刺被去除,信号的关键成分被保留,去噪取得了明显的成效。
图6 不同泄漏孔去噪前后信号波形图
图7 是不同条件下声信号时频图。从图7 中第一行可以看出,由于麦克风底噪等因素的影响,原始信号在频域内主要表现为宽频带特征,信号的特征被噪声掩盖;尤其是无泄漏和小泄漏情况下的原始信号较为相似,难以分辨。使用MTSS 算法进行去噪后,如图7 第二、第三行所示,无泄漏情况下的噪声基本被滤除,而小泄漏情况下的信号特征仍能够保留,有利于下一步的分类工作。此外,从图7中第4行可以看出,随着测量距离的增加,声信号发生衰减,高频信号衰减快,低频信号衰减慢,但总体的频谱特征保持基本一致。
图7 不同条件下声信号时频图
考虑到现有文献使用泄漏速率或泄漏孔直径描述泄漏场景[9–15],为了方便与已有的方法进行对比,对人工模拟泄漏的泄漏速率进行测量,图8 绘出了压力、泄漏孔直径与实际测量得到的泄漏速率的关系。
图8 泄漏孔直径与泄漏速率关系图
3 实验结果及讨论
3.1 信号特征图生成与训练
声信号的采样频率为44.1 kHz,将去噪后的信号在时域内进行分帧,设置帧长为1 024 个点,对应时域范围为23 ms,窗函数为汉宁窗,两个相邻的帧之间有50 %重叠,获得分帧后序列xi(n) 。对每一帧做FFT,获得其幅度谱Xi(k) 。参考文献[22]指出,在4.3 kHz 以上声压谱变得复杂;而且,与低于4.3 kHz 的频谱相比,声能比较弱。因此,选择4.3 kHz作为泄漏识别的上限频率,同时考虑到实际工程应用过程中的低频噪声扰动,选择下限频率为500 Hz。在幅度谱中根据研究需要取第12~102个点(对应频率范围为500 Hz~4 394 Hz)。将相邻的40 帧组成一张图片,得到的图片尺寸为90×40。图像的特征提取流程图如图9所示。
将样本的70%作为测试集,30%作为验证集。改变压力、测量点距泄漏点距离和泄漏孔直径大小,所获得训练集总数为18 382,测试集总数为7 878。获取的数据数量如表1所示:
表1 训练集与测试集数量表
CNN 使用TensorFlow1.14.0 和python3.7 实现。使用Adam optimizer梯度下降法训练网络,Adam的参数设置为:learning rate=0.001。损失函数设置为交叉熵,batchsize 设置为64。为了加快训练速度且避免梯度消失问题,使用Leaky ReLU 作为激活函数。
3.2 模型识别结果与分析
使用混淆矩阵对分类算法的性能进行评估。对于本文提出的识别算法,混淆矩阵如表2 所示。混淆矩阵的横轴代表真实类型,纵轴代表预测类型,中间的数据代表对应的样本数量;主对角线上的数据为预测正确的样本数(图中加粗显示)。表3 给出了不同方法的识别正确率。
对表2 和3 进行联合分析可以发现,无泄漏和1 mm泄漏的识别率较高,可以达到97%以上;所有类别泄漏孔的识别正确率均能够到92%以上;平均识别准确率达到了95.28%。
表2 基于CNN的分类结果混淆矩阵
为了显示本文所提出的管道泄漏识别方法的优越性,将其与基于AlexNet[23]和支持向量机(Support vector machine,SVM)[10,13–14,24]的机器学习方法进行比较。AlexNet为经典的CNN网络,基于AlexNet的识别结果如表3第3行所示。
表3 不同分类方法识别准确率/(%)
SVM是管道泄漏识别常用的机器学习方法,提取去噪后的声信号特征后将其输入到SVM 中。提取的特征为:标准差,频率质心,绝对均值,均方根值和短时能量,这是文献中最常用的特征[10,13–14,24]。图9 显示了前3 个特征的散点图:标准差,频率质心和绝对均值。从图10中可以看出,当泄漏孔直径接近时,泄漏信号的特征向量非常接近,这会影响到SVM的识别性能。
图9 图像特征提取过程图
图10 声信号3个特征的散点图
从表3 中可以看出,本文提出的管道泄漏声信号识别方法的平均识别率高于SVM 和AlexNet 方法。对于不同的泄漏场景,SVM 和AlexNet 方法对泄漏孔直径为1 mm的泄漏识别效果较好,对于剩余的泄漏场景分类效果不佳,准确率均低于88%。结果表明,所提出的方法在泄漏识别领域是有效的。
4 结语
本文提出了一种基于CNN 的管道泄漏声信号识别方法。为了验证本文提出的识别方法的性能,搭建实验平台,采集不同条件下的泄漏声信号;用MTSS 去除该信号背景噪声,并通过计算得到去噪声信号的时频图;将时频图作为数据集输入CNN系统。结果表明,本文提出的方法的平均识别准确率为95.28%。同时,与SVM和AlexNet方法的识别性能进行比较,可知本文的方法具有明显优势,可用于管道泄漏声学内检测领域。但本文的实验数据均在实验室条件下测得,下一步可考虑在现场管道中部署系缆式管道内检测系统,获得更多的数据集,进而优化本文提出的方法。