基于改进GMM背景差分方法的蒸汽泄漏检测研究
2023-12-27鄢家鑫陈青李朋洲周寒刘晓东
鄢家鑫,陈青,李朋洲,周寒,刘晓东
(中国核动力研究设计院,四川 成都 610213)
反应堆回路试验装置是建设新型核反应堆的必要设施。受环境因素或操作人员影响,该装置回路管道边界会发生高压蒸汽泄漏,严重威胁反应堆试验装置运行[1]。对此一些学者和专家在泄漏检测领域做出了研究。目前在该领域,普遍采用专业试验人员进行泄漏检查的方式,该方法面临识别的准确率和频率受限的问题。目前已经有了一些用于管道设备泄漏的自动化检测方法[2]。这些方法通过测量设备内介质的压力、温度等物理特性,人工建立精确的流动数学模型识别特定泄漏,成本较高且适用场景有限[3-4]。除此之外,采用接入主控系统的自动化传感器进行泄漏检测的方法需要铺设大量物理传感器,技术复杂、成本高昂且缺乏灵活性[5]。
尽管当前研究已经在压力设备的泄漏检测领域进行了许多研究,但对于一种适用于形状结构多变、泄漏介质多变且泄漏机理不清晰的装置的智能泄漏检测方法仍是该检测领域所迫切需要的。随着视觉技术的兴起,基于拍摄视频的背景建模和背景差分技术在不同的检测领域得到了广泛的应用。目前这种智能视觉监控系统已经应用于机场、港口、道路、工业园区[6-7]。
为了实现对压力设备蒸汽泄漏的故障检测,在当前普遍用于运动目标检测的背景差分法的研究基础上[8-9],提出一种改进的混合高斯背景建模(Gaussian Mixture Model, GMM)背景差分方法用于红外蒸汽泄漏检测分割,并研究高温压力容器泄漏环境下的运动蒸汽特征表现,提出检测与分割效果的量化评价指标,并构建真实数据集与现有背景分割方法进行实验对比。
1 蒸汽泄漏检测方法
在大部分的红外蒸汽泄漏场景中,摄像机拍摄的背景是变化较少的固定场景,基于此假设,我们判断在没有蒸汽泄漏的情况下,摄像机拍摄的背景具有可以用统计学模型描述的常规特征。因此,本文建立了该红外蒸汽泄漏场景的背景模型,当出现不符合场景图像中背景模型的部分时,视为检测到蒸汽泄漏。其流程如图1所示。
1.1 基于背景差分法的图像检测分割
背景差分法的原理如下,一般分为四步:
(1)背景初始化:(也称为背景生成、背景提取或背景重建)是计算第一幅背景图像的过程。
(2)背景建模:(也称为背景表示)描述了用于表示背景的模型。
(3)背景更新:该步骤主要关心如何更新背景模型,以自适应视频帧随着时间推移出现的变化。
(4)背景与目标像素分类:也称为前景检测,包括对“背景”或“运动目标对象”中的像素进行分类。
这四个步骤使用的方法有不同的目标函数和约束条件。因此,它们具有不同的算法特征。背景初始化是离线的,通过“批处理”来实现初始化。背景更新是在线的动态算法,通过采取逐帧传入数据的方式完成背景模型更新。背景初始化、建模和更新属于图像重建算法,前景检测属于分类算法。其运作原理见图1,其中N是用来建模的视频帧数,B(t)和I(t)分别代表t帧时背景和图像。
背景模型的建立是背景差分法的核心任务,是决定其余步骤采用何种方法的关键环节。背景建模有以下常见方式,统计见表1[10-13]:
图1 蒸汽泄漏检测方法流程
表1 背景建模方法
表1的背景建模方式并不是全部的方法,且均存在不同程度的问题,但混合高斯背景建模(GMM)相比其他方法,出现了更多的学者对其进行改进[14-17]。考虑到红外蒸汽泄漏检测的场景的背景较为复杂,属于多模态背景。本文使用一种改进的基于混合高斯背景建模(GMM)的方法来实现对红外蒸汽泄漏的检测。
在本文的应用场景中,蒸汽在大部分时间与管道、墙壁背景具有不同色彩与纹理,因此使用像素的强度值作为我们特征表示的基础,以此来建立背景模型,该特征表示有效利用了白色蒸汽阴影与背景的颜色差异,对光照的变化具有足够的鲁棒性。像素的强度值是该像素距离最近的物体表面反射的光线在该像素传感器上的度量,满足静态背景和静态光照的条件下,这个度量将是相对恒定的。假设在采样过程中产生了独立的高斯噪声,那么该像素的强度值的密度可以用一个以平均像素值为中心的正态分布来描述。对于以t帧构建背景模型的视频序列I来说,每个像素X的变化过程可以用式(1)表示:
{X1,…,Xt}={I(x0,y0,i):1≤i≤t}
(1)
在检测任务中,假设对于图像的每个固定位置像素来说,其受到相同材质物件的光照,那么仅需要一个可以自适应调节参数的高斯模型就可以表示该像素。但实际上,整个检测追踪过程中,同一像素会受到不同材质的不同光照,除此之外,在场景中存在移动变化的前景像素,即使是如蒸汽这样的具有相对一致的色彩特征的移动对象,也会相比静态背景产生更多的变化。对于大部分背景像素来说,其通常具有相同的像素分布,且数量要远多于前景像素,因此可以使用多个自适应高斯模型来对某一像素点进行近似,以模拟背景中像素值的不同模态。这一针对像素点的混合自适应模型如式(2):
(2)
(3)
本文方法对背景像素高斯模型进行更新,其过程基于这样的两点简单假设。
(1)像素的三通道取值独立且具有相同的方差;
(2)某一像素在损失函数的度量上越接近训练得到的背景模型,该像素就越可能是背景的一部分,反之则更可能是前景目标。
在将像素的背景模型用式(1)描述的基础上,背景更新的过程采用K-means方法,对每一帧的每一个像素对照现有的K个高斯分布进行检查,直到新的像素点与对应的高斯分布匹配上,本文采用Wasserstein作为匹配方法,其表达式见式(4):
Wp(μ,y)={infE[d(X,Y)p]}1/p
(4)
E为X,Y两个分布的联合分布的期望均值, 当Wasserstein距离小于35,视为找到匹配,匹配函数描述了更新帧与背景模型的概率相似度,极大地提高了该算法的适用性。
当新的像素与背景模型的高斯分布匹配上, 新背景模型的分布参数更新方式如下式:
μt=(1-ρ)μt-1+ρXt
(5)
(6)
其中式(7)为当前背景模型的最小似然概率;式(8)中的α为学习率,表示背景的更新速率,当像素与背景匹配上Mk,t为1,未匹配上为0。
ρ=αη(Xt∣μk,σk)
(7)
ωk,t=(1-α)ωk,t-1+α(Mk,t)
(8)
α为学习率,表示背景的更新速率,当像素与背景匹配上Mk,t为1,未匹配上为0。如果当前像素值没有匹配上任何的背景模型分布,以当前像素作为均值重新创建一个高斯模型,其标准差设置为初始化背景模型中的最大值,权重为初始化权重中的最小值。基于最大似然法更新背景模型的思路,使用ω/σ度量各个像素混合高斯分布的优先级,值越大,优先级越高,越可能是背景。随着训练样本的增加,方差减小,ω/σ会不断增加,在不断更新中,只有匹配成功的样本会让其变化。这样保证了最可能的背景模型始终在顶部。匹配到第n个模型分布时,所建立的背景模型的数学表达式可以被表示为式(9):
(9)
其中T表示背景权重之和的最小值,表示属于背景而不受运动前景影响的最小度量,默认设置为0.9。T较高时,背景模型中可能会包括一些重复运动的背景(例如吹动的烟雾、工厂里震动的螺丝等)所导致的透明阴影。蒸汽泄漏目标的检测分割过程就是不断地用当前帧与背景模型进行差分运算来检测分割动态目标。在本文方法中就是逐像素计算当前帧模型与背景高斯模型之间的Wasserstein距离,当距离大于阈值时,该像素为目标像素,反之属于背景。
1.2 分割结果图像后处理
蒸汽泄漏场景存在着管路与拍摄平台的微小相对运动导致的震动、蒸汽对光线的遮挡等各种影响成像质量的因素,如图2(a)、(b)所示,需要在检测中进行图像处理,本文采取了两种图像处理方式对抗以上因素导致的噪声、空洞与裂缝。
1.2.1 空间域滤波
当前常见的空间域滤波方法包括高斯滤波、中值滤波、均值滤波等,其采用卷积元素作为kernel,一般通过诸如微分、积分的数值运算得到中心滤波像素的值。高斯滤波根据距离滤波核中心元素的距离与高斯分布的模型计算中心像素,在去除高斯随机噪声时非常有效,但是容易造成图像模糊,中值滤波用核中中值代替中心像素,计算简单但容易滤掉小目标。均值滤波取核中像素均值代替中心元素,对于椒盐噪声滤除能力强,虽然也会造成一定的模糊,但小于高斯滤波。本文使用自适应的均值滤波方法进行去噪并进行数学形态学处理,结果如图2(c)所示。
图2 滤波及形态学处理
1.2.2 检测结果形态学处理
形态学是一门建立在拓扑学基础上的图像分析学科,其与空域滤波的本质区别是采用结构元素作为内核,通过集合运算得到对应的中心像素值。结构元素是由0和1组成的矩阵,它可以是任何形状与大小,但是一般来说,结构元素要小于待处理的图像中的形状,且结构元素的中心像素原点应当与输入图像的ROI区域像素点对应。
形态学操作的基本方式有腐蚀与膨胀,以及在此之上通过不同处理顺序,不同运算方式得到的高级形态学操作。通常来讲,腐蚀可以删除对象形状的边界像素,使形状减小,膨胀与此相反,使边界像素增加,形状变大。当先腐蚀再膨胀就实现了高级形态学操作开运算,它可以分离物体,并在平滑边界的同时不明显改变形状及其大小。当顺序颠倒,先膨胀再腐蚀,即为闭运算,可以排除形状中的空洞。本文在图像处理的不同阶段使用了开闭运算作为图像检测的后处理,处理结果如图2(d)所示。
1.3 基于统计特征的蒸汽泄漏判断
蒸汽目标作为一种大小、形状不定的特殊检测目标,通过背景差分法处理泄漏图像获得疑似泄漏区域,在疑似泄漏区域目标中,针对泄漏蒸汽灰度特征、形状及扩散特征分析判别泄漏蒸汽区域,并根据泄漏阴影面积特征判定泄漏级别。
1.3.1 蒸汽特征研究
当红外光通过物质,物质分子中与光波振动频率相同的部分会吸收红外辐射能量跃迁到高能级,导致红外光能量下降。表现在红外图像上就是在蒸汽边缘的低温部分出现较暗的阴影效果,计算泄漏图像中灰度zk出现概率:
(10)
其中,nk是灰度zk在图像中出现的次数,WH是像素总数,在第102帧泄漏蒸汽图像中,其灰度分布直方图如图3所示:
图3 泄漏蒸汽灰度特征
可以看到泄漏帧灰度图具有两个峰,代表背景和蒸汽像素的两类区域。本文计算疑似蒸汽泄漏区域与背景区域的灰度标准差,如式(11),发现泄漏与疑似泄漏区域的方差具有一定偏离。m表示各个区域的灰度均值,该项特征可用于与形状面积特征联合判定蒸汽泄漏。
(11)
1.3.2 蒸汽特征判别准则
考虑到本文蒸汽泄漏场景下的红外图像会出现与可见光成像所面对的不同的干扰,比如因泄漏蒸汽加热周围管道保温层导致的非泄漏区域异常高温,蒸汽受到物体阻碍产生的形状变化,所以无法凭借单一特征判定蒸汽泄漏。本文利用蒸汽泄漏图像的灰度、形状及面积特征,判别相关帧是否处在蒸汽泄漏状态,并根据泄漏大小,给出初步的轻微、普通、严重三种泄漏程度判断。判断标准如下,当疑似蒸汽泄漏区域灰度值属于泄漏蒸汽灰度分布的第二个峰且形状闭合时,认为该帧是蒸汽泄漏。在确定泄漏的情况下,本文挑选人工判断的三种不同程度的泄漏图像,根据对泄漏蒸汽阴影占全图面积的比例来确定泄漏程度,当占比小于4%时,判断为轻微泄露,占比为4%~7%时定义为中等泄漏,大于12%即为严重泄漏,人工判断的三种程度泄漏成像如图4所示:
图4 蒸汽泄漏程度示意图
2 实验结果与分析
在Windows 11系统进行实验,软件配置为Python 3.8,opencv-contrib-python 4.4.0版本,numpy 1.19.0,scipy 1.6.2版本。
2.1 数据集
数据集选用自建的SteamLeak数据集中的steamTS200inf1数据集作为该次试验的数据集,该数据集采集自海康DS-2TA03型号红外相机拍摄的蒸汽泄漏试验,如图5所示。
其拍摄的智能机器人试运行测试平台,由管廊管网区、容器设备区,仪器仪表区等组成,使用的试验蒸汽源压力稳定在0.3 MPa左右,蒸汽温度设置为110℃左右。该数据集由218张红外图片组成,大小为384×288,为方便处理,统一裁剪成160×120大小。标注采用labelme软件,对具有明显轮廓的蒸汽泄漏图像进行标注,生成遮罩。
图5 蒸汽泄漏试验
2.2 对比分析
为了探索在蒸汽泄漏阴影检测中背景差分方法的有效性,选用了3种算法与本文所提供的改进算法做对比分析,本文算法优于其对比算法。本算法的主要参数设置见表2。
表2 主要参数设置与初始化
2.2.1 主观结果对比分析
为了验证所提改进方法的优势,选用LSBP[18](Local SVD Binary Pattern)、GMG[19](三位作者的姓氏首字母简写)、CNT[20](CouNT)三种方法与本文所提方法在steamTS200inf数据集上进行对比,其检测结果对比如图6所示。
从中可以看到,所有的方法都存在不同程度的噪声点,GMG算法几乎无法检测到大片的蒸汽阴影,LSBP和CNT检测到的蒸汽具有较为明显的空洞与裂缝,检测到的前景目标不是很完整。相比这几种算法,本文提到的改进算法检测到的目标非常完整,虽然整幅图像去噪方面并无明显优势,但是对目标前景的边缘与内部噪声抑制非常明显。
2.2.2 检测结果客观评价分析
为了评估算法对蒸汽泄漏的检测能力,本文根据分类任务的常用评价模型好坏的方法及概念计算了相关指标并对四种算法做了对比,以未泄漏、轻微泄漏、中度泄漏、严重泄漏为分类标签,根据实验数据集steamTS200inf,依据时间顺序,将序列帧划分为四个阶段,即前15帧为0类未泄漏,第16帧到第20帧为1类轻微泄漏,第21帧到第25帧为2类中度泄漏,从第25帧到218帧均为3类严重泄漏。
图6 steamTS200inf 数据集检测结果对比分析
本文使用精准度(accuary)、准确率(precision)、召回率(recall)和F1分数作为泄露二分类的评价指标。在本文的分类任务中,对每一帧图像的对应i类(i取值0,1,2,3)预测结果可以分为TP真正例、TN真负例、FP伪正例、FN伪负例,它们的含义如表3所示。
表3 混淆矩阵示意
在机器学习中,精度可以表示为式(12),其是对分类器分类精度的整体评价,是预测正确的样本量和总样本量的比值。
(12)
准确率表示为式(13),是预测i类中正确分到对应类的比例,取值为0~1,越接近1代表分类模型越好;召回率表示为(14),是预测为i类的样本占所有i类样本的比例,取值为0~1,同样约接近1越好,召回率和准确率互相矛盾,成反比关系,因此需要用F分数平衡矛盾,定义如式(15),是权重为α的F和R的加权调和平均,α为1时即为F1分数。
(13)
(14)
(15)
当不需要泄漏等级判断,仅做泄漏和未泄漏的二分判别时,本文定义未泄漏却预测为泄漏的样本量比上真实泄漏样本量为泄漏误报率,预测真实泄漏样本量比上真实标签泄漏量的值为泄漏报警率,该值越接近1越好,可以大于100%。试验结果如表4所示。
从表4中可以看到,文使用算法泄漏报警率最接近1,检测效果最好,LSBP算法灵敏度较高,超出了100%,误报较多,GMG算法对于本场景的识别效果最差,只有11.33%的报警率。准确率和召回率均是二分类指标,当用于多分类时,本文根据样本在总样本中所占比例为4类结果分配权重取加权均值得到对应的指标,可以看到,各个泄漏等级类i的检测具有不同的特征阈值,导致其他算法的F1指标与i(i=1,2,3)类精准率并不高,加之各类样本不均衡,会出现取值为0的结果。但蒸汽泄漏问题最关注的是泄漏与否,即二分问题,可以看到本文算法及其他算法在泄漏报警率上与误报率上均表现较佳,除GMG算法外均可达95%以上,误报率低于5%。
为了客观评价本文方法对蒸汽泄漏红外阴影目标检测的有效性。借鉴图像分割任务中的相关评价指标,本文使用索伦森-骰子系数(Dice Coefficient)利用数据集第218帧标注结果度量蒸汽泄漏分割检测效果。Dice是一种集合相似的度量函数,用于计算样本的相似度,其通常定义为式(16):
(16)
在背景与前景的分割问题中,蒸汽前景像素点为真值(阳性),背景像素点为负值(阴性),其中TP(True Positive)表示正确的分为阳性的像素数,即实际为蒸汽前景,也正确检测为蒸汽前景的像素个数;FP表示错分为阳性的像素个数,即被错误归到蒸汽前景的背景像素的个数;FN表示错分为阴性的像素个数,即错误检测为背景像素的蒸汽前景像素的个数。
表4 试验检测分类结果指标图
从图6和表5中可以看到,MG算法的Dice最低,与真实值相差最大;CNT和LSBP算法的度量值接近,本文改进的混合高斯背景差分法得分最高,为0.7831,验证了该算法在蒸汽泄漏红外目标检测中的有效性。
表5 分割Dice指标比较
3 结 论
本文实现了对静态背景下的蒸汽泄漏检测,并提出一种改进的基于混合高斯模型的背景差分法。该方法在与目前主流的其他背景差分法的对比中,在泄漏报警率及Dice指标上有更优异的表现。以真实的红外蒸汽泄漏数据做实验分析,实验结果表明,基于改进GMM背景差分方法可以实现对红外蒸汽视频的泄漏检测。
本文提出的方法是一种近于无监督学习的方法,这是本文工作的主要优势,同时从原理来看,本文的方法也具有对类似静态背景目标进行检测的通用性。由于样本数据的长尾效应,本文并没有机会使用大量的泄漏数据去获取背景模型特征。在日后的研究与工作中,将建立更大的数据集,通过基于深度学习的图像分割与建模方法实现对蒸汽泄漏类型目标的识别与定位;并将本文方法在其他动态目标检测领域进行拓展。