APP下载

基于卷积神经网络的水面火焰倒影滤波方法

2021-01-25徐小强张瑞琦

关键词:倒影灰度火焰

徐小强, 张瑞琦, 冒 燕, 陈 旭

(武汉理工大学 自动化学院, 湖北 武汉 430070)

为保证水面上的安全,快速消灭水面火灾已经成为人们研究的重点.目前的消防艇主要采用人工灭火装置,当遇到严重火情时需要同时出动多艘消防艇进行灭火,可能会对消防人员的人身安全产生威胁.与传统的消防艇中由消防人员负责寻找火焰位置进行灭火不同,在无人消防艇中需要由无人艇自动寻找火焰区域进行灭火.如何检测倒影、防止水面倒影影响火焰检测,已成为无人消防艇应用中亟待解决的问题.

近几年,国内外研究者针对火焰颜色特征、形态特征及运动特征等提出了多种火焰识别方法[1-3].文献[4]建立了在RGB色彩模式(即红、绿、黄色彩模式)与HSV空间下的火焰识别模型,但是提取出来的火焰区域比较宽泛,火焰在水中的倒影区域也会被认为是火焰区域.文献[5]提出了YCbCr空间的火焰识别模型,有效地利用火焰色彩信息提取了火焰区域,但是对于亮度高的火焰区域以及火焰倒影和火光区域识别效率低.文献[6]提出了在HSI空间下的火焰分割模型,该方法对干扰鲁棒性差,检测出的火焰区域宽泛.

针对以上模型对水面上火焰识别的不足,笔者将卷积神经网络应用于目标识别中[7],判断图片中是否含有火焰图像,然后结合YCbCr空间下的火焰识别方法,根据折射和反射后水中火焰倒影与火焰的亮度差,提出一种滤除掉水面上火焰倒影的火焰识别方法—基于YCbCr水面火焰识别方法.

1 基于卷积神经网络的火焰判别

为了分割出图片中较为精确的火焰区域,利用卷积神经网络对图片中是否含有火焰进行判断.

1.1 卷积神经网络

1.2 试验过程

使用卷积神经网络tensorflow框架[11-13]进行设计,对输入图片中是否含有火焰进行判断.进行深度学习的卷积神经网络结构示意图如图1所示.

图1 卷积神经网络结构示意图

1) 为了获得更多的样本,采用对图片矩阵重新调整像素为32×32×3,再将图片随机裁剪出5张像素为28×28×3的图片,对图片进行随机水平翻转,将像素为28×28×3的图片送入网络.

2) 卷积神经网络包括3个卷积层、3个池化层、一个全连接层和一个输出层.① 第1个卷积层C1使用32个大小为2×2×3的卷积核,提取出32张像素为28×28的特征图,每个卷积层之后采用relu激活函数.② 第1个池化层P1是将第1个卷积层提取到的特征图作为输入的2×2最大池化层.③ 第2个卷积层C2使用64个大小为3×3×32的卷积核,提取出64张像素为14×14的特征图,每个卷积层之后采用relu激活函数.④ 第2个池化层P2是将第2个卷积层提取到的特征图作为输入的2×2最大池化层.⑤ 第3个卷积层C3使用128个大小为5×5×64的卷积核,提取出128张像素为7×7的特征图,每个卷积层之后采用relu激活函数.⑥ 第3个池化层P3是将将第3个卷积层提取到的特征图作为输入的2×2最大池化层.⑦ 全连接层(F1层)将第3个池化层得到的特征图作为输入.为了防止过拟合,全连接层在与输出层相连之前,需要先进行随机丢弃(保留率keep-prob=0.5).⑧ 输出层采用softmax分类[14].

3) 损失函数如下所示:

Loss=-[ylabellg(yconv[0][1])+ (1-ylabel)lg(yconv[0][0])],

(1)

式中:Loss为损失值;ylabel为标签输出值;yconv[0][1]和yconv[0][0]分别为输出是火和不是火的概率.

1.3 结果分析

由于并没有火焰识别的标准图库,笔者从网络中收集了320张含有火焰和320张不含有火焰的图片,对其大小进行重新调整[15],并从中进行随机裁剪、翻转后获得1 600张含有火焰的图片和1 600张不含有火焰的图片.对最终获得图片中的70%作为训练集,30%作为测试集.经过测试,该网络识别精度可以达到94.2%.

2 水面火焰的图像分割

对于一张输入图片,通过卷积神经网络对图片中是否含有火焰图像进行判断.若卷积神经网络识别结果为不含火焰,则直接输出不含有火焰;若卷积神经网络识别结果为含有火焰,则对图片进行进一步处理,分割出较为精准的火焰区域.

到了山西,不吃碗正宗的刀削面,那绝对算空走一趟。山西刀削面一讲刀工,二讲浇头,小小一碗面,里面有很多门道。削面功夫全凭手的劲头掌控,削出的面似空中飞舞的柳叶,又似水中畅游的银鱼,中厚边薄,均匀有致,长短六寸,方为上品。

2.1 剧烈燃烧火焰区域识别

在YCbCr空间提取火焰图像,是利用图像的亮度、红色信息以及蓝色信息来提取火焰图像.但是由于火焰燃烧剧烈的地方在图像上一般呈现白色,此时利用亮度、红色信息以及蓝色信息来提取火焰图像,就会导致火焰燃烧剧烈的地方并不会被识别为火焰区域,从而导致有较多的火焰区域被识别为非火焰区域.图2-4分别为为火焰原图、YCbCr空间火焰图片及YCbCr空间火焰提取结果.对图2中火焰进行提取,其转换至YCbCr空间图像如图3所示,在YCbCr空间提取结果如图4所示.

图2 火焰原图

图3 YCbCr空间火焰图片

图4 YCbCr空间火焰提取结果

笔者采用一种自定义的火焰判断方式.当YCbCr空间提取出火焰区域较为准确时,采用在YCbCr空间下利用图像的颜色信息来提取火焰图像;当YCbCr空间提取出火焰区域较为不准确时,则利用火焰的灰度值远大于图像中其他区域灰度值[16]的特征将火焰提取出来.图5为火焰灰度图.对图2中火焰进行提取,采用水面火焰识别方法提取结果如图6所示.

图5 火焰灰度图

图6 水面火焰识别方法提取结果

2.2 火焰倒影滤波

在识别火焰时,火焰倒影区域与火焰区域存在颜色上较高的相似性,在YCbCr空间提取火焰图像时会被误判为火焰区域.人眼看到水中火焰的倒影是水面反射火焰的光进入人眼成像,但是火焰的光经过水面反射时还会发生折射.由于火焰的光在经过水面时,一部分发生反射,形成人眼中的火焰在水面上的倒影,一部分发生折射,没有进入到人眼中,这样就形成了水中火焰倒影亮度与火焰的区别.利用这一特点,在原YCbCr空间模型的基础上更加强调对灰度值的要求,过滤掉灰度值低于阈值的像素点,进而滤除火焰在水面的倒影.

2.3 火焰图像分割试验

对于含有火焰的图像,笔者利用以下5个步骤将图像中火焰区域分割出来.

1) 将RGB火焰图像转换成灰度图像.灰度图像与彩色图像相比能够很好地体现出图像的亮度信息.为了更好地看出图像各个区域的亮度变化以及数据的处理,首先将RGB图像转换成灰度图像,转换公式如下:

Gray=0.299R+0.587G+0.114B,

(2)

式中:Gray为灰度值;R为红色通道的信息值;G为绿色通道的信息值;B为蓝色通道的信息值.

2) 将RGB火焰图像转换到YCbCr颜色空间.YCbCr颜色空间可以与RGB空间进行线性变换.其变换公式[17]如下:

(3)

式中:Y为亮度信息;Cb为蓝色信息;Cr为红色信息.

3) 利用火焰颜色特征粗略提取火焰区域.在YCbCr颜色空间提取火焰,公式如下:

(4)

式中:Ymean、Crmean和Cbmean分别为亮度均值、红色色差分量均值和蓝色色差分量均值[18-19];x和y为像素点坐标.

4) 计算灰度平均值.鉴于当火焰亮度高时,在YCbCr空间提取火焰区域较为不准确;而当火焰较为暗淡时,在YCbCr空间提取火焰区域较为准确.笔者计算出整个图像的灰度平均值和粗提取的火焰区域灰度平均值.

当出现如式(5)所示情况,认为在YCbCr空间提取出的火焰区域较为不准确,反之,则认为在YCbCr空间提取出火焰区域较为准确.

(5)

式中:fire_gray_mean为整图像的灰度平均值;gray_mean为粗提取的火焰区域灰度平均值;a和b为选定阈值.

5) 提取火焰区域.图7为灰度图.由图7可知,火焰区域的灰度值远大于其他区域,当在YCbCr空间提取出火焰区域不准确时,则利用火焰区域的灰度值远大于其他区域的特性提取火焰区域,即利用火焰的亮度远大于其他区域的特性,将火焰区域提取出来.

图7 灰度图

当在YCbCr空间提取出火焰区域准确时,则直接利用在YCbCr空间提取出火焰区域,但这次提取火焰区域对火焰的亮度特性要求较粗提取火焰区域时做了进一步改进,滤除火光和火焰倒影部分,即

(6)

2.4 结果与分析

为了验证上述方法,进行了多次试验(其中图片均来源于网络和视频),选择其中4张较为有代表性的图片进行说明.图8为待提取火焰区域图片.对图8图片中图像进行火焰区域提取.直接采用原始YCbCr空间模型进行火焰提取,提取出火焰区域如图9所示.采用本研究中改进后水面火焰识别算法所提取出的火焰区域如图10所示.

由图9a和c可知:在原YCbCr空间颜色模型中提取图片中火焰区域时,可能会将火焰亮度高的区域误判为非火焰区域,从而只提取出火焰倒影和火光区域,未能将火焰的真实燃烧区域提取出来.从图10a和c可以看出,改进之后的水面火焰识别算法完整地提取了火焰燃烧区域,对图片中火光和倒影实现了较好的滤除效果,仅将倒影中亮度过高的一小部分识别为火焰区域.

图8 待提取火焰区域图片

图9 原YCbCr空间颜色模型提取结果

图10 改进的水面火焰识别算法提取结果

3 结 论

针对火焰在水面上燃烧时,在提取火焰区域时火焰与倒影之间特征相似的问题,笔者提出了一种水面火焰识别方法.这种改进的水面火焰识别方法可以准确地判断出图像中是否含有火焰图像,有效过滤火焰倒影、火光等区域,提取出较为精准的火焰区域.改进的水面火焰识别方法还解决了当火焰亮度较高时,利用YCbCr空间模型识别出来的火焰区域有较大空洞的问题,因此该方法极具实用价值.后续的研究可针对不同风速时倒影滤除问题进行深入探讨.

猜你喜欢

倒影灰度火焰
采用改进导重法的拓扑结构灰度单元过滤技术
最亮的火焰
倒影
天津港智慧工作平台灰度发布系统和流程设计
缤纷的火焰
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
倒影之美
Arduino小车巡线程序的灰度阈值优化方案
漂在水上的火焰
找倒影