基于团块标记的火灾识别算法

2022-04-15 04:45赵杨辉
黑龙江科技大学学报 2022年2期
关键词:像素点灰度阈值

杨 婷, 赵杨辉

(内蒙古电力(集团)有限责任公司 阿拉善供电分公司, 内蒙古 阿拉善 750306)

0 引 言

传统感温感烟类型火灾报警器由于其参考数据单一、反应滞后、误报漏报等缺陷,不能满足日益增长的安全需求[1]。如何使传感数据在达到设定阈值前就触发报警,又不会降低准确率,提前发现火灾隐患,成为近几年火灾防治的热点研究方向。

计算机视觉技术在火灾识别领域已有一定的研究。其中,Hong等[2]将颜色判别技术运用在火灾识别技术中,可以精准区分目标区域,但是当存在相近颜色物体时会误报。王欣刚等[3]提出了运动检测手段实时分析目标区域,利用小波分析法判断烟雾特征,该方法精度较高,可以实时捕捉火焰性征,但是计算量较大,实时性不强。Yang等[4]利用BP神经网络和SVM支持向量机识别火灾,该方法环境适应性强,但是训练成本高,不够精简,设备移植率低。

针对上述问题,笔者提出一种内核精简,应用广泛的团块标记火焰识别算法,该算法通过图像预处理降低像素复杂度,基于团块标记快速锁定目标区域,利用火焰颜色特征对目标区域进行复核校验,确认火灾是否发生。

1 火灾检测报警流程

文中基于Linux操作系统,通过QT开发平台,搭载OpenCV视觉函数库编写火灾识别算法。硬件平台以监控设备为核心,利用室外摄像头将视频流采集到监控主机,通过火灾识别算法完成对现场区域的分析[5]。

火灾识别算法以团块标记实现火焰部分的识别与定位[6-8],通过图像预处理降低计算量,提高检测实时性;通过特征匹配提高准确率,减少误报警数量。火灾检测报警流程如图1所示。

图1 火灾检测报警流程Fig. 1 Fire detection process

2 图像预处理

针对视频监控设计一套火灾识别算法,预处理采集图像,通过团块标记完成火焰的定位,利用火焰特征判别图像。

2.1 灰度化

视频监控系统采集的图像为彩色图像,直接进行火焰识别计算量较大,影响火焰识别的实时性,因此,需要对图像进行灰度化。

彩色图像采用R、G、B三个向量表达颜色信息,每个分量取值范围为0~255,每个像素点可以表达2 553种颜色信息。而视频采集单幅图像分辨率为640×480,需要简化图像提高计算实时性。

首先对三个向量求均值,然后将此均值作为该图像的唯一向量,将RGB颜色信息转换为YUV,其中U、V代表颜色信息,Y代表亮度信息,两者互不相关。将唯一向量信息赋值给Y,忽略U、V,仅保留采集图像的亮度信息。Y与RGB的关系式为

Y=0.3R+0.59G+0.11B。

转换后采集图像变为灰度图像,降低了实时分析的计算量,为后续二值化处理提供条件,火焰图像灰度化的转换效果如图2所示。

图2 灰度化火焰图像Fig. 2 Grayscale flame image

2.2 二值化

发生火灾时,火焰的亮度较图像中其它物体高,根据这个特性,可以将火焰与背景分离出来。为了识别火焰区域,需要对Y设定一个亮度阈值T0,高于T0的部分判别为火焰区域,并将此区域全部像素点的亮度值置顶,设为255;低于T0的部分判别为背景区域,并将此区域全部像素点的亮度值置零,设为0,然后灰度图像转换为黑白图像,进一步降低图像处理的计算量。

2.3 最优阈值选取

为防止误判火灾情况的发生,需要根据火焰的亮度特性设定阈值T0,经过大量实验对比,将T0设置为100,当图像灰度值超过75时,判断有疑似火焰发生。

为了准确分离火焰与背景信息,需要根据采集图像的灰度值分布计算更加合适的阈值。根据初始阈值100,将图像分割成两部分区域,对两部分区域的灰度值分别求得均值L1和H1,再分别对两个均值求均值,得到新的阈值T1,反复N次得到Tn,根据Tn分离图像,就可以将明显区别于其它区域的灰度集合筛选出来,这就是利用迭代均值法选取最优阈值的过程,公式如下所示。

随着迭代次数的增大,当|Tn-Tn-1|足够小时,Tn就无限逼近最优阈值。出于对系统实时性的考虑,经过大量实验比对,将迭代次数设定为3次。若最终迭代结果T3≤100,则判定区域内未发生火灾,排除采集图片,继续对下一帧采集图片进行预处理;如果最终结果T3≥100,则判断该区域可能发生火灾,并将该图像作二值化分割处理。最优阈值二值化分割效果如图3所示。

图3 火焰二值化分割效果示意Fig. 3 Schematic of flame binary segmentation effect

3 团块标记

3.1 第一次团块标记

根据二值化图像信息,统计图像中每一片相连的白色区域,分别标记,完成第一次团块标记。通过标记,可以实现对每一片白色区域面积的计算。

以像素阵列的(1,1)为起点对采集图像从左到右、自上至下进行扫描,示意图如4所示。

图4 第一次团块标记扫描原理Fig. 4 Scanning principle of first lump mark

从(1,1)开始向右扫描至(1,14);发现(1,2)至(1,6)与(1,10)至(1,13)两片白色连续区域,并分别标记团块1与团块2;完成第1行的扫描后,跳转到(2,1),开始对第2行进行扫描;在第2行发现(2,6)至(2,7)与(2,9)至(2,10)两片白色连续区域,由于(2,6)至(2,7)与(1,2)至(1,6)相连,因此,该区域仍标记为团块1;(2,9)至(2,10)与(1,10)至(1,13)相连,该区域仍标记为团块2。

完成第2行的扫描后,跳转到(3,1),开始对第3行进行扫描;在第3行发现(3,2)至(3,4)与(3,7)至(3,8)两片白色连续区域,由于(3,2)至(3,4)不与上述任何区域相连,因此,该区域标记为团块3;(3,7)至(3,8)与(2,6)至(2,7)、(2,9)至(2,10)同时相连,此时该区域标记为序号较小的一方,并在团块2与团块1之间建立等价组合。最终将等价组合合并为一个团块,并标记为集合中的最小序号,重新排序得到采集图像标记团块的统计和分析。

3.2 团块筛选

为了提高火灾识别精度,防止灯光等干扰因素引起火灾误报警,将面积较小的团块进行删除。第一次团块标记的过程中同时记录了每个团块的像素点个数,通过大量实验比对设定一个面积阈值100,低于阈值的作为干扰信息进行删除。图5是筛选后的火焰区域。

图5 筛选后的火焰区域Fig. 5 Flame area after screening

3.3 团块填充

团块填充的目的是将目标区域中的气泡进行填充,从而更好地对目标区域的形状特性进行分析和判别。

创建一个5×5像素点集扫描图像,并且该扫描体的像素点灰度值都为255;扫描方式与第一次团块标记类似,从第1~5行开始扫描,每5列为1步长,完成后,再从第6~10行开始扫描,以此类推。

扫描过程中,扫描体与被扫描区域的像素点灰度值进行与计算,如果计算结果都为0或1,那么继续扫描下一区域;若果计算结果同时包含1和0,那么将被扫描区域的像素点值全部置255,实现目标区域气泡的填充及膨胀。

为了腐蚀膨胀的区域,需要进行第二次扫描然后进行第二次扫描,如果计算结果都为0或1,那么继续扫描下一区域;若果计算结果同时包含1和0,那么将被扫描区域的像素点值全部置0,实现目标区域膨胀部分的腐蚀。团块填充后的效果如图6所示。

图6 团块填充效果Fig. 6 Effect picture of block filling

3.4 第二次团块标记

第二次团块标记采用目标区域轮廓追踪法进行扫描,轮廓追踪可以快捷获取区域的形状特性。轮廓追踪法的原理如图7所示。

图7 轮廓标记Fig. 7 Outline marking

扫描指针P抵达目标区域后,对第一个像素点标记A,开启轮廓追踪模式,通过邻近8个像素点灰度判别前进方向。判别过程如下:从标记点右侧像素点开始按照0~7顺时针编号;从0号点开始,按照0→1→2→3→4→5→6→7→0的顺序进行判别,当灰度值出现0→255的跳变时,且该255的像素点未被标记,则该255的像素点就是指针P下一步前进的方向,并中止邻域像素点的判别过程;指针P前进到下一跳像素点,并标记A,并重复上一过程,直至判别过程中出现了两个被标记的点,说明指针已回到起点,完成轮廓追踪。

扫描方式与第一次团块标记相同,抵达目标区域时,中断扫描,开启轮廓追踪模式。追踪方法利用邻域像素灰度值比对的方法进行,原理如图8所示。

图8 轮廓追踪判别Fig. 8 Contour tracing discriminant

完成轮廓追踪后,重新开启扫描过程,当遇到像素点A时继续扫描,且之后扫描的像素点全部标记A,直至遇到另一个像素点A,标记结束。标记过程示意如图9所示。

图9 扫描标记示意Fig. 9 Schematic of scanning mark

红色标记为轮廓标记,白色标记为扫描标记,图像中其余团块按照B,C,…依次标记,最终通过第二次团块标记获取各目标区域的几何中心以及面积,并选用合适的框体进行火灾定位。效果示意图如图10所示。

图10 火灾定位Fig. 10 Fire location

4 颜色算法设计

为了提高火灾识别的快速性和准确性,在团块标记的基础上提取特征,并与火焰模板进行比对,通过OpenCV进行大量特征识别训练[9],从而增强智能识别火灾的能力[10]。

4.1 特征提取

利用团块标记法对疑似火焰区域初步定位后,文中框选彩色图像,截取选中部分作为特征区域进行下一步颜色判别,提取结果如图11所示。

图11 火焰特征提取示意Fig. 11 Schematic of flame feature extraction

4.2 颜色判别

为提高团块标记法准确性,根据火焰的颜色特性[9],选用火焰颜色模板进行比对训练,二次判定疑似火焰区域,颜色模板色卡如图12所示。

图12 火焰颜色模板色卡Fig. 12 Flame color template color card

模板色卡对应的RGB值如表1所示。

表1 火焰颜色RGB值

首先,将提取的特征区域分成若干等面积小区域,每个小区域求出一个色度均值,然后,利用每个色度均值与模板色值一一比对,分析色度匹配误差、匹配成功率以及火灾识别率,接着,通过OpenCV库对大量实验图像的色度识别进行训练,最终,得出色度匹配误差为±5%,匹配成功率70%以上时,火灾识别成功率可达到95.6%,较传统视觉算法提升15.7%,训练过程如图13所示。

图13 火焰颜色训练过程Fig. 13 Flame color training process

4.3 火灾识别检测

根据团块识别算法和火焰特征训练,通过大量实验,实现火灾图像检测算法的应用,平均一整套判别过程耗时约为0.5 s,较传统视觉算法缩短83.6%。图14是火灾图像的识别结果,通过绿色框体标记火灾区域。

图14 火灾检测效果Fig. 14 Fire detection effect

5 结 论

文中提出了一种基于团块标记的火灾识别算法,考虑算法的独立性,采用程序移植,实现摄像头分布式火灾判别,构建了精简的火灾识别网络。实验证明,该算法有较强的实时性,平均判别时间约为0.5 s,同时,具有较高的精准度,实测准确率达95.6%。

猜你喜欢
像素点灰度阈值
航空滤光片阵列多光谱图像条带灰度调整算法
改进的软硬阈值法及其在地震数据降噪中的研究
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
天津港智慧工作平台灰度发布系统和流程设计
基于局部相似性的特征匹配筛选算法
改进小波阈值对热泵电机振动信号的去噪研究
Arduino小车巡线程序的灰度阈值优化方案
一种X射线图像白点噪声去除算法
基于canvas的前端数据加密