潘新雨, 马 燕
(上海师范大学信息与机电工程学院, 上海 200234)
气体是工业生产不可或缺的物质,但气体的生产、存储、运输和使用等过程中易发生泄露,而大部分气体具有无色无味的特点,在发生泄露时不易被察觉,从而引发气体爆炸、中毒等事故。 因此,如何在第一时间检测泄漏气体是众多企业面临的难题之一。
近年来,随着红外成像技术的快速发展,工作人员可通过红外监控设备对气体进行实时监控。 但现有的气体泄漏检测方法大多是在无其它干扰的情况下进行分析检测,当监控范围内存在外界干扰因素时,则会降低检测精度。 另外,红外图像的目标与背景之间的对比度低,具有信噪比低、边缘模糊等特点,也增加了检测难度。 针对上述问题,王建平等[1]融合多幅帧间差分和背景差分后的图像,利用形态学滤波消除噪声干扰,最终获得气体泄漏疑似区域;刘路民根等[2]提取候选目标区域形状特征,使用支持向量机(Support Vector Machines, SVM)分类器进行判别;李红娣等[3]使用图像熵表征纹理的复杂程度。 本文基于气体形状特征和灰度分布特征,排除不符合该特征的区域,从而准确地识别泄漏气体区域。
首先,提取红外视频,对视频进行预处理,利用背景减除法排除部分非运动干扰区域,提取疑似气体泄漏的区域;其次,根据气体的形状特征、灰度值变化特征,对疑似气体泄漏的区域进行分析,最终判断是否属于泄露气体。 算法的流程如图1 所示。
图1 算法流程图Fig. 1 Algorithm flow chart
由于电荷耦合器件(Charge Coupled Device,CCD)摄像头存在内部噪声,外界也不可避免地存在运动噪声。为避免噪声干扰,本文采用高斯滤波对每帧图像去噪,使图像变得模糊,避免将噪声作为泄漏气体。 高斯滤波器的均值和方差分别取0和0.8。
目前,常用的运动目标检测法主要有帧间差分法、背景差分法和光流法[4]。
帧间差分法是通过对视频序列中相邻两帧图像作差分运算来获取检测目标轮廓的一种方法。 该方法实时性好,但当运动目标颜色分布均匀时,相邻帧的差别主要集中在运动方向两侧,而内部有一定缺失,因此该方法不易获取完整目标。
光流法是对图像中所有的像素点赋予矢量速度,形成运动场,通过分析像素点的运动特征对图像进行动态分析。 该方法适用于摄像头移动的情况,但计算复杂,无法保证实时性。
背景减除法适用于背景相对静止的目标检测,将视频序列的当前帧与背景帧差分运算,再用阈值提取目标。 该方法计算简单,实时性好,一般能获取较完整的运动目标轮廓。
本文采用背景减除法提取运动区域。 一般情况下,视频中第一帧无运动对象和干扰,因此本文将第一帧设置为背景图像,后续各帧图像与背景图像作差分运算获得差分图,然后将差分图进行二值化阈值处理;当像素差分值的绝对值大于阈值,则将该像素看作疑似气体点,用1 表示,否则用0 表示;最后,利用形态学中的膨胀操作修补孔洞。 本文选取了一段天然气泄漏红外视频中的一帧图像,将阈值分别设置为10,15 和20 时得到疑似气体泄露区域,如图2 所示。 从图2 可见,随着阈值的增大,疑似气体泄露区域的数目随之减小。 为避免漏检,本文取阈值为15。
图2 不同阈值下的疑似气体泄漏区域Fig. 2 Suspected gas leakage areas under different thresholds
1.4.1 气体形状特征
受分子运动影响,气体往往呈现不规则云团结构,但在稳定无干扰的情况下,即使气体向四周扩散,该气体结构的形状特点也不会发生较大的改变[5]。 由此,本文提出气体泄漏区域的判断准则:
(1) 气体连通区域的形状类似于圆形,当连通区域的形状在较大程度上偏离圆形,则判断其为非气体连通区域;
(2) 对于当前帧中的连通区域,当其与后面帧中邻近位置的连通区域的形状特征较为接近时,则判断其为气体区域,否则为非气体区域。
根据判断准则,本文进一步提出基于气体形状特征的气体泄漏检测算法:
(1) 遍历所有连通区域,获取各连通区域最小外接矩形框的中心点坐标(xi,yi),高度hi,宽度wi和面积si,并对这些特征值归一化,得到特征向量fi=(xi,yi,hi,wi,si);
(2) 删除si小于50 的连通区域;
(4)遍历各连通区域,当第i帧中第j个连通区域的特征向量与第i+1帧中第k个连通区域的特征向量间的余弦相似值cos(θ)<0.5,则删除连通区域。
1.4.2 气体灰度分布特征
根据气体分布规律,在气体的扩散过程中,越靠近气体的中心位置,气体浓度越大,该位置与背景对应位置间的灰度差值也越大;反之,越远离气体中心,气体浓度越小,该位置与背景对应位置间的灰度差值也越小[6]。 气体分布示意图如图3 所示。
图3 气体分布示意图Fig. 3 Gas distribution diagram
当连通区域的中心与气体中心重合时,可以沿连通区域的中心按上,下,左和右4 个方向连线(紫色线)至连通区域边界;在连线上等间隔取n个点,如图3(a)中水平右边连线上的A1、A2、A3和A44 个点。 理想情况下,这4 个点的灰度差值的绝对值逐渐减小,即满足式(1):
但当连通区域的中心偏离气体中心时,这4 个点的灰度差值绝对值不一定符合式(1),如图3(b)所示,有可能满足式(2):
即连线上点的灰度差值绝对值符合式(1),但同时也存在个别点不符合式(1)的情况。
本文进一步提出基于气体灰度分布的气体泄漏检测算法:
(1) 对于第m个连通区域,沿其中心点A0向上方向连线至连通区域边界,等间隔取n个点,得到这n个点在差分图上数值的绝对值|δ1|、|δ2|、…、|δn |,以这些点的序号i为横坐标,|δi |为对应纵坐标,得到二维图中的n个离散点,对这n个离散点用最小二乘法拟合,得到沿中心点A0向上连接至连通域边界的直线,该直线的斜率为k1。 最小二乘法计算公式(3):
(2) 分别沿向下、向左、向右连线,分别得到斜率为k2、k3和k4的拟合直线;
(3) 当f(k1)+f(k2)+f(k3)+f(k4)≥3,则第m个连通区域为气体区域,否则为非气体区域。 其中,f(ki) 按式(4)计算:
利用最小二乘法拟合离散点,其目的是为了得到二维图中这些离散点的总体变化趋势,忽略一些小波动,从而使算法更具普适性。
分别对图4(a)中的1 号和2 号连通区域,采用基于气体灰度分布的检测算法得到拟合直线,如图4(b)和图4(c)所示。 图4(b)中4 条拟合直线的k值均小于0,则判断1 号连通区域为气体;图4(c)中4 条拟合直线的k值只有2 条小于0,则判断2 号连通区域为非气体,判断结果与原图一致。
图4 1 号和2 号连通区域最小二乘法拟合结果Fig. 4 Least square fitting results of connected region 1 and 2
实验硬件配置为Intel(R) Core(TM) i5-10210U CPU @ 1.60 GHz 2.11 GHz,16.0 GB 内存,软件仿真环境为Python 3.9,OpenCv 4.6.0.66。 利用本文提出算法对一段天然气泄漏红外视频进行预处理,寻找疑似气体泄漏的区域,针对气体的形状特征和灰度分布特征,进一步判断疑似区域是否为泄漏区域,进而验证算法的准确性与可行性。
首先,对红外视频进行高斯滤波去噪预处理,以镜头无晃动、视频中无运动干扰对象的第1 帧作为背景帧,后续每一帧与背景帧差分并进行二值化处理,获取各帧图像中的疑似气体泄漏区域;其次,对各连通域计算其特征向量,分析其长宽比、面积和相邻两帧间的连通域特征向量间的余弦相似度,删除非气体泄漏区域;最后,根据气体分布特征获得气体泄漏区域。 利用本文算法检测气体区域的结果如图5 所示。
图5 利用本文算法检测气体区域的结果Fig. 5 Results of gas region detection using the algorithm
对比图5(c)和图5(d)可以发现,通过气体形状特征可以排除部分非气体区域,但仍存在非气体区域,而利用气体灰度分布特征后则可以排除非气体区域,更准确地获得气体泄漏区域。
另外,从视频中截取连续12 帧图像,这些图像的检测结果如图6 所示,可见利用本文算法检测得到的泄漏气体区域集中在气源附近,其结果与图像相符。
图6 连续12 帧图像的检测结果Fig. 6 Detection results of 12 consecutive frames of images
为检测本文算法在视频中有干扰因素时的性能,本文从视频中截取了含有运动人物的连续12 帧图像,检测结果如图7 所示。 从检测结果可以看出,由于运动人物不符合气体的形状和灰度分布特征,本文算法未将其作为泄漏气体。
图7 连续12 帧含干扰因素图像的检测结果Fig. 7 Detection results of 12 consecutive frames of images with interference factors
本文利用气体形状和灰度分布特征提出了一种新的气体泄漏检测算法。 该算法首先使用高斯滤波对输入红外视频中的各帧图像进行去噪预处理;其次,以稳定无干扰的第一帧图像作为背景帧,后续每一帧图像与背景帧做背景减除法,获取疑似气体泄漏连通区域;最后,通过形状特征和气体的灰度特征来判断连通域是否为不可见气体泄露的区域。 该算法的优势在于使用了气体自身的特有规律来分析判断,即使存在外界干扰,也能更精准的排除非气体区域。