APP下载

一种改进的帧差法实现火焰目标分割

2012-11-15宁,丁

火灾科学 2012年4期
关键词:闪点阀值鱼眼

陈 宁,丁 飞

(江苏科技大学能源与动力工程学院,江苏 镇江,212003)

0 引言

传统的船舶火灾报警系统采用感烟报警器,通过监测烟雾的浓度来实现火灾防范,由于采用离子式烟雾传感器,在传感器远离火灾源时很难对初期火灾进行报警。为此,利用顶置鱼眼摄像头的图像传感作用,依据火焰的固有特性,把火焰从图像中分割出来,对识别火焰、构建新型的船舶火焰识别传感系统,在火灾的初期发现火焰非常具有现实意义。

视频火焰识别主要依靠视频火焰的静态特性如颜色特征、纹理特征等;动态特性如频闪特性、“边缘抖动”[1]、面积变化、形体变化、整体移动[2]等。考虑到视频流的来源是监控摄像头,其单帧图像的成像质量不高,火焰纹理的捕获受到限制。另外在红、绿、蓝(Red、Green、Blue,简称:RGB)颜色空间中,火焰颜色的分布是一个空间曲面,难以拟合[3]。且背景颜色、光照条件的差异都会对火焰的成像颜色产生影响。所以,根据火焰颜色来分割火焰是不够准确的。本文于是弱化了颜色特性的运用,采用灰度图像来进行算法处理,大大缩减了算法的复杂度。帧差法是基于火焰频闪特征提取序列帧中运动物体的常用方法,通过对火焰图像做帧差计算,得到的闪点不但包括火焰,还包括有运动物体。而“边缘抖动”、面积变化、形体变化、整体移动等火焰特征的运用都是在火焰分割之后对火焰轮廓的特征量进行提取,所以,火焰分割的准确程度对火焰识别具有举足轻重的作用。

在工程领域和实际生活中常遇到的实际燃烧过程几乎全部都是湍流燃烧过程,其流动是非稳态的、不规则的、表面上是随机的[4],火焰图像序列在进行帧差算法后得到的火焰闪点位置具有交叉与聚合的特性。本文重点论述运用帧差法,根据火焰闪点位置的交叉性与聚合性排除其它运动物体的干扰,分割火焰的方法。

1 鱼眼图像的恢复

本课题采用的置顶鱼眼摄像头视野达到180℃,最高分辨率为300万像素。高分辨率有效解决了宽视野图像细节捕获能力不足的问题。另外,用全景镜头(鱼眼)拍摄的整图由于变形厉害,一般难以辨识和分析,可以根据一般的全景镜头投影模型,如:球面透视投影模型、抛物面投影透视模型等,将鱼眼图片恢复为符合人眼视觉习惯的平面透视投影的图片。本文采用一种基于抛物面透视投影模型,完成对鱼眼图像的恢复[5],恢复算法的效果如图1所示。

图1 鱼眼图像恢复算法的效果图Fig.1 The rendering of fisheye image restoration algorithm

图1中,程序界面上右侧图形控件显示图片围绕红色圆环展开的左右、上下视角均为60℃的图片显示在左侧图形控件中。

2 火焰闪点位置的交叉性

传统的帧差图像的获取是对连续两帧灰度图像A、B的差值取绝对值,公式表示为:

其中,Thod为二值化图像所取的阀值。图像C中灰度值为1的像素点位置上和图像A、B灰度值相差较大,给人闪烁的感觉,所以本文将这些像素点称为闪点。通过进一步挖掘可以将上述闪点分为两个部分,其一是由亮变暗的闪点,另一部分是由暗变亮的闪点,但公式⑴中取绝对值的操作掩盖了这一区别,从而忽略了一个重要的火焰特性。

为了挖掘出这一信息,本文设计了如下算法。对连续两帧灰度图像A、图像B(图像A~图像H的实例图像参见图10~图14),其任一像素,若某位置像素的灰度值f(A)≥f(B),则将f(A)-f(B)赋值给图像C的对应位置像素点;若f(B)>f(A),则将f(B)-f(A)赋值给图像D的对应位置像素点,公式表示为:

然后,对图像C、D二值化,将灰度值较小的像素清零,公式表示为:

其中,Thod为二值化图像所取的阀值。

根据对闪点的定义,二值图像C、图像D中的灰度值为1的像素也同样是闪点,只是它们被分散到两个二值图中。将图像C、图像D分别存入RGB图像的红色和绿色通道,通过观察可以发现:对火焰图像而言,图像C、图像D上的闪点位置是相互交叉的,笔者把这种特性称为火焰闪点位置的交叉性,如图2所示;而对于运动物体,如行人而言,图像C、图像D上的闪点位置是相互区分的,如图3所示。

多学科交叉、多领域融合是高校学科发展的必然趋势。多学科交叉与融合不单纯体现在不同学科、专业人才之间的融合上,也体现在高层次人才培养方面,如中医院校尝试招收前置专业为非中医专业(如文学、西医学等专业)的中医或中西医结合类研究生。这类学生热爱中医、喜欢中医,多数曾自学中医,能跳出中医专业学生的固有思维,从不同角度审视中医,但没有经过系统的中医学教育,中医学基础知识相对薄弱。

图2 火焰闪点位置Fig.2 Flame flash point position

图3 行人闪点位置Fig.3 Pedestrian flash point position

对于图2、图3中的任一红色(黑白图中为暗色)闪点,根据其附近有无绿色(黑白图中为亮色)闪点来决定此点的取舍,同理,绿色闪点也依据其附近有无红色闪点来决定此点的取舍,可以过滤掉图3中绝大部分闪点。本文算法采用核[6]W(m×n的全1矩阵,m、n为大于1的奇数,如图4所示)对图像C、图像D分别执行膨胀运算,得到图像X、Y,再用图像C和图像Y的与运算得到图像E,图像D和图像X的与运算得到图像F的算法,公式表示为:

其中,″⊕″表示逐个像素点执行膨胀操作,″&″表示逐个像素点执行与操作。

图4 膨胀核WFig.4 Dilating kernel W

对于n×n的核来说,如果一个红色闪点在其n×n(以像素为单位)的范围内有至少一个绿色闪点,则此红色闪点被保留,反之,如果此范围内没有绿色闪点,此红色闪点将被舍弃;同理,绿色闪点也按此方法取舍。膨胀核的大小可以根据具体情况自由选取。将图像E、F分别存入RGB图像的红色和绿色通道,得到的图像如图5、图6所示。

图5 交叉性处理后火焰闪点位置Fig.5 Flame flash point position after the treatment of cross-cutting

图6 交叉性处理后人体运动闪点位置Fig.6 Pedestrian flash point position after the treatment of cross-cutting

通过观察图像2、图像3、图像5、图像6可以看出,此算法可以大幅减少帧差二值图中由于人体运动产生的闪点,但对火焰闪点的削减则小得多,并且保留了火焰的基本外形特征。该方法用于消除运动物体闪点干扰比较有效。

3 火焰闪点位置的聚合性

一般而言,闪点的位置大都分布在火焰的边缘,所以属于火焰的闪点是聚合在一起的,这也就是火焰闪点位置的聚合性。对于其它干扰形成的闪点,可能和火焰闪点相距较远,本文采用改进的K均值聚类算法将其区分。K均值是一种简洁、高效的聚类算法,但由于初始的类别中心点位置是随机产生的,所以此算法不能保证找到定位聚类中心的最佳方案,常用的解决方法是多次运行聚类算法,得到多个结果,最后选择方差较小的那个结果。本文根据需要去除的是少数远离火焰闪点的运动闪点这一需求,运用距离算法得到初始的聚类中心点。距离算法中对于任一闪点,计算它到其余闪点距离的和,将距离和值最大和最小的闪点作为K均值的初始聚类中心点。算法如下表所示:

表1 距离算法示意表Table 1 Table of distance algorithm

其中:P1、P2…Pn为闪点序列,Dij表示Pi到Pj的距离,则有Dii=0,Dij=Dji(i≠j);Si为Pi到闪点序列中每个点的距离之和,Si=D1i+D2i+D3i+…+Dni。

但假如原闪点序列本身就是聚合的,则此算法会剥离外部闪点,产生过度聚合。所以,在闪点聚合算法的设计中可以根据由火焰闪点序列取出的疑似火焰区域二值图中白色像素所占的比率(rate)来判断是否要执行此算法,如果rate小于等于某阀值才执行上述聚合算法。初始闪点分布如图7所示,聚合算法执行效果如图8所示。

图7 闪点聚合前位置Fig.7 Flash point position before the treatment of polymerization

图8 闪点聚合后位置Fig.8 Flash point position after the treatment of polymerization

从图7中发现,红、绿闪点不加以区分,而图8中发现,红色闪点表示聚合结果,绿色闪点为排除的闪点。此外为了方便观察,在图7、图8中使用圆环将游离闪点位置标出。

4 火焰外形的抽取

通过火焰的颜色特性,认为火焰疑似区域中亮度较高的像素为火焰,通过图像的二值化,将其区分出来,再通过OpenCV中cvFindContour函数抽取此二值图的轮廓,并根据火焰种子的位置利用函数cvDrawContour填充轮廓[7],最终得到火焰的外形。以下为本文对火焰分割的算法流程图,如图9所示。

5 实例

本实例为实测试验过程,在一段视频序列中选取连续的两帧图像并分别灰度化,如图10、图11所示。图中不但有火焰的闪动,还有人体的运动。

将两帧图像做帧差运算,并进行二值化处理,取阀值为帧差灰度图像最高灰度值的一半。为了便于观察,将存在闪点的区域截出,如图12所示,可以看出由于人的运动在火焰闪点的左上方产生一些闪点(用方框标出)。对图12中的闪点根据火焰闪点位置的交叉性进行运动闪点的排除,得到的闪点序列如图13所示。从图13中可以看出,仍有少量运动闪点(用两个圆环分别标出)未能排除。

接着由于rate值小于设定阀值,根据闪点位置的聚合性,运用K均值算法对剩余闪点进行处理,其结果如图14所示。从图14中可以看出,靠近火焰闪点的运动闪点(用圆环标出)未能被排除,但这一结果对后续提取闪点序列外接矩形与确定火焰种子的算法影响较小,故不再对其做进一步处理。

图9 火焰分割的算法流程图Fig.9 The algorithm of flame segmentation flow chart

图10 灰度图像第1帧 (图A)Fig.10 The first frame(image A)

对图14中闪点序列取其外接矩形,其在原始灰度图像帧1、2中对应位置的矩形区域即为疑似火焰区域。对应第1、第2帧灰度图,得到两个火焰疑似区域。如图15、图16所示(图像有一定的拉伸变形)。

对图像15、图像16做二值化处理,火焰灰度图中火焰区域的亮度较高,选取适合的阀值,得到二值图显示如图17、图18所示。

图11 灰度图像第2帧(图B)Fig.11 The second frame(image B)

图12 帧差图像(图C、D)Fig.12 Image of frame difference(image C、D)

图13 具有位置交叉性的闪点图(图E、F)Fig.13 Image of flash points with crossing (image E、F)

利用OpenCV中cvFindContour函数抽取图17、图18轮廓,加之图像G、H中闪点序列中心点(火焰种子)的位置信息,通过OpenCV中cvDraw-Contour函数填充轮廓,得到火焰外形如图19、图20所示。

从图19、图20可以看出,利用本文算法提取火焰外形取得了良好的效果,该方法不但排除了人体运动的干扰,而且火焰外形较为完整。之后便可对火焰轮廓进行其它特征量的提取,构建新型的船舶火焰识别系统。

图14 闪点聚合后闪点位置图(图G、H)Fig.14 Image of flash points with polymerization(image G、H)

图15 疑似火焰区域1Fig.15 Suspected flame area 1

图16 疑似火焰区域2Fig.16 Suspected flame area 2

图17 火焰疑似区域1二值图Fig.17 Binary image of suspected flame area 1

图18 火焰疑似区域2二值图Fig.18 Binary image of suspected flame area 2

图19 火焰外形图1Fig.19 Image of flame shape 1

图20 火焰外形图2Fig.20 Image of flame shape 2

6 结语

本文提出了利用顶置鱼眼摄像头进行模式识别的方法来探测火源的构想,并用火焰分割算法提取出了完整、“干净”的火焰轮廓,可以为之后的火焰识别算法打下牢固的基础。

利用火焰闪点位置的交叉性来排除运动物体闪点干扰的方法,在图像火焰的分割操作中取得了良好的效果,但在此过程中仍有少量运动物体闪点残留。文中进而提出了利用火焰闪点位置的聚合特性的一种距离分类算法,进一步将游离的干扰闪点剔除,最终分割出火焰。

阀值分割在图像分割中有着广泛应用,具有计算简单、运行效率高、速度快的特点,对于火焰这种高亮度的分割对象更能显示其优势。本文算法中阀值的选取受背景与光照条件的影响,选用合适的阀值对于火焰的分割具有重大的意义。对于传统的帧差法,往往是前一帧减去后一帧然后取绝对值,但在取绝对值的时候掩盖了火焰闪点位置的交叉性,本文的意义在于发掘出了这部分信息并设计了初步的算法。

[1]吴龙标,宋卫国,卢结成.图像监控中一个新颖的火灾判据[J].火灾科学,1997,6(2):60-66.

[2]陈维南,潘泓,叶桦.基于图像处理的火灾监控系统的实现[A].2001年中国智能自动化会议论文集(上下册)[C],昆山,2001:704-705.

[3]程鑫,王大川,尹东良.图像型火灾火焰探测原理[J].火灾科学,2005,14(4):239-245.

[4]王乐.某散货船机舱火灾特性研究[D].镇江:江苏科技大学,2011.

[5]汪嘉业,杨兴强,张彩明.基于鱼眼镜头拍摄的图像生成漫游模型[J].系统仿真学报,2001,13(增刊):66-68.

[6]Rafael C.Gonzalez,Richard E.Woods,Steven L.Eddins.数字图像处理(MATLAB版)[M].阮秋琦译,北京,电子工业出版社,2005.

[7]Gary Bradski,Adrian Kaehler.学习 OpenCV(中文版)[M].于仕琪,刘瑞祯译,北京,清华大学出版社,2009.

猜你喜欢

闪点阀值鱼眼
面向鱼眼图像的人群密度估计
多组分可燃液体闪点特性研究
光敏传感器控制方法及使用其的灭蚊器
动力学因素对车用柴油闪点测定的影响
微信扫一扫马上看视频鱼眼视频 小程序每天带你看最有意思的摄影视频
基于小波分析理论的桥梁监测信号去噪研究
混合液态危险品闪点特性研究
激光多普勒测速系统自适应阀值检测算法
鱼眼明目鱼头补脑是真的吗?
深度学习在无人驾驶汽车中的应用