基于卷积神经网络的火灾探测器

(整期优先)网络出版时间:2023-04-24
/ 2

基于卷积神经网络的火灾探测器

学生:林周慧,陈紫婧,徐怡鑫,陈泓宇   指导教师:刘丽媗

闽南师范大学 物理与信息工程学院 2020级 物理学(师范)

【摘要】目前针对大空间场合的火灾识别,本文提出一种利用卷积神经网络识别的算法。该算法主要依靠卷积神经网络对图像进行识别,卷积神经网络通过提取图像特征信息来进行深层次分析,完成对火灾的判断,有效提高了火灾探测的可靠性。

【关键词】火灾识别;卷积神经网络

【项目名称】基于卷积神经网络的复合型火灾探测系统

【项目编号】S202210402022

21世纪以来,随着我国经济的发展和城市化进程的推进,城市人口密度不断增加,火灾隐患日益增多,因此,提高消防安全管理水平迫在眉睫。近几年,随着国家一系列政策支持以及消防工业标准的陆续出台,我国消防技术和产业有了长足的发展,国产的基于卷积神经网络的大空间场合火灾识别系统被广泛应用于在城市中的各类建筑中,有效提高了区域火灾防控能力。但与此同时,市面上常见的基于卷积神经网络的大空间场合火灾识别系统仍然存在着一些问题,如常用火灾探测设备可靠性相对较差,容易受环境因素影响造成误报。且探测系统存在延迟探测、计算量较大等问题,于是我们提出了基于卷积神经网络的火灾探测系统的算法。我们经过通过大量实验训练及调试,得出了准确性较高的火灾识别模型,并与硬件设备相结合,投入实际应用中。

1.基于卷积神经网络的火灾识别

1.1 卷积神经网络识别流程

2

图 1 火灾识别流程

1.2 卷积神经网络的结构设计

卷积神经网络是专门针对图像识别开发的,由输入层、卷积层、池化层、全连接层、输出层及激活函数等组成。首先由卷积层和池化层提取出图像局部区域的特征图,再经过重复的卷积和池化保留具有识别价值的特征,最终通过全连接曾判断出是否存在火灾,并由输出层输出最终结果。在网络学习的过程中,卷积神经网络的参数能自动优化,且在不断的更新,由此也巧妙地解决了人工设计参数所存在的问题。

整体模型的性能会受到网络的结构设计的直接影响,本探测系统共包含5个卷积层、5个池化层、1个全连接层和1个输出层,结构示意如图2所示。

1

图 2 卷积神经网络结构设计

输入层Input:输入层是CNN架构中的第一层,输入图像已经提前经过预处理,大小为150pixel×150pixel×3的彩色图像,经过输入层的归一化后将像素区间缩小到[0,1],实现神经网络的输入。

卷积层Conv_1:本层卷积核步长设计为1,卷积核规格为3×3,数量为105;像素资料经过Relu非线性变换得到的特征图谱,其大小为150pixel×150pixel×105。

池化层Pool_1:池化运算分为最大池化和平均池化,本探测系统采用最大池化运算MaxPooling。本层池化层的池化核步长设计为2,池化核规格大小为2×2,数量为105,特征图谱的大小为75pixel×75pixel×105。

卷积层Conv_2本层卷积核步长设计为1,卷积核规格为3×3,数量为105,特征图谱大小为75pixel×75pixel×105。

池化层Pool_2:运用MaxPooling,池化核步长设计为2,池化核规格大小为2×2,数量为105,特征图谱的大小为37pixel×37pixel×105。

卷积层Conv_3:本层卷积核步长设计为1,卷积核规格为3×3,数量为105,特征图谱大小为37pixel×37pixel×105。

池化层Pool_3:运用MaxPooling,池化核步长设计为2,池化核规格大小为2×2,数量为105,特征图谱的大小为18pixel×18pixel×105。

卷积层Conv_4:本层卷积核步长设计为1,卷积核规格为3×3,数量为105,特征图谱大小为18pixel×18pixel×105。

池化层Pool_4:运用MaxPooling,池化核步长设计为2,池化核规格大小为2×2,数量为105,特征图谱的大小为9pixel×9pixel×105。

卷积层Conv_5:本层卷积核步长设计为1,卷积核规格为3×3,数量为105,特征图谱大小为9pixel×9pixel×105。

池化层Pool_5:运用MaxPooling,池化核步长设计为2,池化核规格大小为2×2,数量为105,特征图谱的大小为4pixel×4pixel×105。

全连接层F1:本层神经元数量为440,在每层卷积层及池化层后面均采用dropout来减少过拟合行为。全连接层将图像数据高度抽象为数组,经过多轮“卷积层和池化层”的处理之后,由多个全连接层来给出最后的分类结果。

输出层Output:输出层包含2个神经元,使用Softmax激活函数,反映出火灾图像的分类情况。

1.3 卷积神经网络的参数设计

本文模型选用的是随机梯度下降法,其中迭代次数epoch值为250,学习率(learning_rate)为0.0001,batch size设置为64。

2.实验与结果分析

2.1 建立数据集

图片来源于CSDN,该数据集约有20000张图像,可分为验证集和训练集,图片数量比例为3:7。其中,验证集总计6000张图片其中4000张为实际发生火灾,2000张为实际未发生火灾。训练集总计14000张图片其中,9334为实际发生火灾图片,4666张为实际未发生火灾。典型图片如图3:

/private/var/mobile/Containers/Data/Application/2B96D091-AA73-4D7B-927D-761F7AE84BC8/tmp/insert_image_tmp_dir/2023-03-13 11:02:36.576000.png2023-03-13 11:02:36.576000/private/var/mobile/Containers/Data/Application/2B96D091-AA73-4D7B-927D-761F7AE84BC8/tmp/insert_image_tmp_dir/2023-03-13 11:02:44.192000.png2023-03-13 11:02:44.192000/private/var/mobile/Containers/Data/Application/2B96D091-AA73-4D7B-927D-761F7AE84BC8/tmp/insert_image_tmp_dir/2023-03-13 11:03:03.941000.png2023-03-13 11:03:03.941000/private/var/mobile/Containers/Data/Application/2B96D091-AA73-4D7B-927D-761F7AE84BC8/tmp/insert_image_tmp_dir/2023-03-13 11:03:11.573000.png2023-03-13 11:03:11.573000

图 3 火灾典型图片

2.2 数据预处理

使用Tensorflow中提供的ImageDataGenerator类实现对图片的预处理操作,包括数据增强、生成一个批次一个批次的图片,以生成器的形式给模型训练。再通过ImageDataGenerator类中的flow_from_directory函数实现对图片数据的读取和处理,以及图片标签的生成、该方法以训练图片文件夹为路径,生成经过数据增强/归一化的数据,在一个无限循环中生成无限产生batch数据供给模型进行训练。

接下来开始构建数据集,为利用神经网络进行训练,我们需要做如下几步:

(1)将图片构建成同样的大小。

(2)对每张图片构建数据标签,对于火灾的检测,发生火灾标记为fire,未发生火灾标记为nature。

(3)将数据集分为验证集和训练集,比例为3:7。先在训练集上训练,然后在验证集测试,进而减少过拟合行为,当训练集和验证集的损失函数整体处于下降趋势,且最终损失值和准确率相近时,可认为模型没有过拟合,而最终的结果也需要使用验证集上的准确率。

(4)分批次,对于深度学习,一般使用小批次梯度下降法,所以需要确定每个批次图片的数量,数量需要根据CPU的内存容量来决定,本项目取64张图片为一个批次。

2.3 模型训练

模型的训练过程可由损失率、准确率的曲线图及epoch值来反映。loss代表训练集损失值、val_loss代表测试集损失值,epochs是指数据集训练的总次数。火灾识别模型共采取了250次训练,其中每训练50次输出一次。通过图5可以看出,随着训练次数的增加,模型中训练集和测试集的损失率会不断下降,同时模型的准确率在持续上升。在epoch值为25次时,准确率有一个大幅度的提升;在50-250次之间时,准确率较高且整体呈现稳步上升趋势;最终训练集准确率为97.61%,测试集准确率为96.73%,说明模型对测试数据也有着较强的拟合能力。下图还反映了epoch 和损失值之间的关系。模型在训练25次时,训练集和测试集的损失值均陡然下降;在50-250次之间呈平稳下降的趋势;最终训练集的损失值为0.0786,测试集的损失值为0.3041,可见数据随着epoch次数的增加而逐渐优化。

模型训练的准确率以及损失函数的曲线如图4所示。

/private/var/mobile/Containers/Data/Application/2B96D091-AA73-4D7B-927D-761F7AE84BC8/tmp/insert_image_tmp_dir/2023-03-13 11:27:48.295000.png2023-03-13 11:27:48.295000

图4 模型的准确率及损失函数曲线

2.4 评价指标

烟雾图像检测识别算法中我们用验证集的准确率(val_acc)来衡量模型的性能,一个可靠的检测模型需要具备高的准确率和较低的误报率,可以在很大程度上有效地避开具有火灾特征的干扰物,实际应用价值极高。

3.结语

针对常用火灾探测器可靠性较差,容易受环境因素干扰造成误报、延迟探测、计算量较大等问题,本文提出了基于卷积神经网络的火灾探测系统的算法。将图像送入卷及网络识别层,提取火灾图像块的深度特征,最后利用坐标将视频图像帧中的火灾位置标注出来。本文提出的算法具有较高的检测率,高达 96.73%。

致谢

首先,感谢学校给予我们参加福建省大学生创新创业训练计划的机会,感谢指导老师的帮助引导,感谢团队成员的互帮互助,让我们在整个项目研究的过程中,收获颇丰。既锻炼了我们的团队协作能力,又锻炼了我们的科研实践能力,让我们从最初的迷茫到确定研究方向,最终促成我们完成结项工作。

【参考文献】

[1] 柴文.基于机器视觉的火灾检测与识别方法研究.河北科技大学硕士论文.2020

[2] 靳华中,刘阳,叶志伟.一种改进的深度网络残差学习的图像降噪方法.华中师范大学学报(自然科学版).2020

[3] 殷亚萍,柴文,凌毅德等.基于特征分析的卷积神经网络烟雾识别.无线电工程.2021

[4] 陈群贤.TensorFlow下基于CNN卷积神经网络的手写数字识别研究.信息记录材料.2022

[5] 林恒青.基于深度卷积神经网络的脱机手写汉字识别系统的设计与实现.湖北理工学院学报.2019

[6] 许伟靖.基于视频图像的火灾检测方法研究.沈阳建筑大学硕士论文.2013

[7] 张仲鑫.基于图像处理的烟雾探测方法及实现.电子科技大学硕士论文.2014

[8] 费东炜,孙涵.基于深度哈希网络的车型识别方法.计算机技术与发展.2019

[9] 刘欢.基于烟雾分割及烟雾扩散性的早期火灾检测.重庆大学硕士论文.2019