在人类社会活动中, 存在各类事故, 其中火灾较为常见且对社会公众安全危害较大. 居民区、工业厂房、博物馆、图书馆、大学实验室等场所易燃物品的存放、电器的违规操作都可能引发火灾, 给人民的财产造成巨大损失, 甚至会对生命安全造成威胁[1]. 而现有的火灾检测报警技术多以感烟型、感光型、感温型为主. 张兴等[2]提出了一种嵌入公式低功耗的多特征火灾早期预警系统, 对相对湿度、一氧化碳浓度、二氧化碳浓度、氧气浓度4种火灾早期特征量进行监督学习, 最终该预警系统的识别率在90%以上, 误报率在3%以下; 揭景耀等[3]介绍了基于不同物理效应的离子感烟探测技术和光学感烟探测技术, 并着重介绍了光学感烟探测的机理. 这些检测原理都是通过感知火灾发生时的各种特征, 如烟雾、烟雾浓度、光强等, 他们的工作原理导致其无法在未发生火灾时进行报警[4].
近年来, 图像技术和计算机视觉技术的深度发展, 基于图像视频的火灾预警方法逐渐引起人们的关注. 与可见光成像原理不同, 红外成像的原理是利用目标反射或辐射红外线来成像的[5]. 基于深度学习的目标检测方法应用在很多场合, 目前的目标检测算法分两种, 一种是双阶段目标检测算法(two-stage), 例如R-CNN (Region-CNN, R-CNN)[6]、Fast R-CNN[7] 、Faster R-CNN[8]、Mask R-CNN[9]. 例如张坚鑫等[10]提出一种基于多尺度特征融合的火灾检测模型, 对Faster R-CNN进行一系列的改进, 改进后算法的平均检测准确率为0.851. 另一种是单阶段目标检测算法(one-stage), 例如SSD (single shot multibox detector)[11]、YOLO (you only look once)[12]、YOLOv2[13]、YOLOv3[14]、YOLOv4[15]. 石磊等[16]提出了一种基于改进型SSD的视频烟火检测算法, 利用DenseNet网络作为SSD的基础网络并引入Focal loss函数, 提高了精度和速度, 但精度仍有待提高; 任嘉锋等[17]提出了一种改进YOLOv3的火灾检测与识别的算法, 针对YOLOv3小目标识别性能不足的问题进行了改进, 最终算法在火焰和烟雾数据集上的精度分别达到90.75%、83.38%; 谢文翰等[18]提出一种基于卷积神经网络YOLOv4的火灾烟雾检测模型, 在YOLOv4算法的基础上嵌入SENet, 改进后算法提高了检测精度但检测速度较慢.
上述算法在火灾检测方面有很重要的促进意义, 但仍存在一些缺点, 比如大多为检测火灾发生时产生的特殊气体、烟雾、火焰等特征量进行预警, 这就造成其不能在未形成火势前进行检测和报警. 为解决上述存在的缺点, 设计一种能在火灾发生前就检测到火灾隐患并准确预警的算法, 提高特定场所下火灾检测的性能, 达到“防火于未燃”的目的. 因此, 提出一种基于深度学习的早期火灾预警算法, 以红外热像仪作为采集设备对特定场所进行红外图像采集并制作成数据集, 以YOLOv4为基础, 引入卷积注意力模块并增加卷积层, 得到网络权重后, 生成预测图像, 最后利用本文提出的智能火灾检测算法对预测图像处理, 从而判断是否具有火灾隐患.
1 YOLOv4算法 1.1 算法原理YOLOv4是基于YOLO系列的改进和创新后得到的目标检测算法, 它的网络结构分为输入端(input)、主干网络(backbone)、颈部(neck)和头部(head).
输入端为统一尺寸的图像, 主干网络采用CSPDarknet53, 相较于YOLOv3的主干网络Darknet53, 其在主干网络中加入ResNet残差网络并进行跳跃连接操作, 有效降低了网络的复杂度. 最终输出3个不同尺度的特征层P3、P4、P5, 尺度大小分别为52×52、26×26、13×13. 特征层P5经过空间金字塔池化(spatial pyramid pooling, SPP)进行4个尺度1×1、5×5、9×9、13×13的最大池化操作, 有效提高了网络的感受野.
路径聚合网络(path aggregation network, PANet)对FPN (feature pyramid networks, FPN)进行改进, 采用FPN+PAN的方法, 通过自顶向下和自底向上的操作对上下文的特征充分融合, 可以分离出更显著的特征, 得到更高的语义信息.
将经过SPP和PANet处理的3个特征层送到YOLO head中, 生成预测框的调整参数, 包括框的宽、高、中心点坐标及置信度等, 用来调整使用K-means聚类算法生成的先验框. 最后判断3个特征层的先验框是否包含目标以及目标的种类, 利用非极大抑制获得预测框.
1.2 损失函数在网络的预测过程中, 损失函数能很好地反映训练结果预测的好坏, YOLOv4网络的损失函数由位置损失函数、置信度损失函数、分类损失函数3部分组成, 总损失函数
$ \begin{split} LOSS = &\mathop \sum \limits_i^{S \times S} \mathop \sum \limits_j^B I_{ij}^{\rm obj}\left[ {1 - \left( {IOU - \frac{{{\rho ^2}\left( {b_{ij}^t, b_{ij}^p} \right)}}{{{C^2}}} - \frac{v}{{1 - IOU + v}} \times v} \right)} \right] + \sum\limits_i^{S \times S} {\sum\limits_j^B {I_{ij}^{\rm obj}} } \left[ {C_{ij}^t\log \left( {C_{ij}^p} \right) + \left( {1 - C_{ij}^t} \right)\log \left( {1 - C_{ij}^p} \right)} \right] \\ & + \sum\limits_i^{S \times S} {\sum\limits_j^B {I_{ij}^{\rm noobj}} } \left[ {C_{ij}^t\log \left( {C_{ij}^p} \right) + \left( {1 - C_{ij}^t} \right)\log \left( {1 - C_{ij}^p} \right)} \right] + \sum\limits_i^{S \times S} {\sum\limits_j^B {I_{ij}^{\rm obj}} } \sum\limits_{C \in classes} {\left[ {P_{ij}^t\log \left( {P_{ij}^p} \right) + \left( {1 - P_{ij}^t} \right)\log \left( {1 - P_{ij}^p} \right)} \right]} \\ \end{split} $ | (1) |
$ v = \frac{4}{{{\pi ^2}}}{\left( {\arctan \frac{{w_{ij}^t}}{{h_{ij}^t}} - \arctan \frac{{w_{ij}^p}}{{h_{ij}^p}}} \right)^2} $ | (2) |
其中,
为提高红外图像的检测精度, 本文对YOLOv4的网络结构进行改进, 得到改进后的YOLOv4-CC算法. YOLOv4-CC算法网络结构图如图1所示.
2.1 改进YOLOv4算法
首先, 在CSPDarknet53网络输出的3个特征层后引入卷积注意力模块(convolution block attention module, CBAM), 如图1的红色虚线框所示, 它不仅可以更高效的关注图像中的目标信息, 而且可以使网络更有效的提取关键特征信息.
CBAM由通道注意力和空间注意力构成, 输入一个H×W×C的特征F, 对F进行全局平均池化和最大池化操作, 通道上得到两个1×1×C的特征, 空间上得到两个H×W×1的特征, 通道上, 将分别送入一个网络共享的两层感知器(MLP), 使用Sigmoid激活函数得到F的权值
其次, 将特征层P3、P4后的1×1卷积层增加为
本文采集的是特定场所中温度未达到燃点且没有隐患的目标, 经过训练得到网络权重, 红外图像输入网络权重中得到含有目标预测框的图像. 使用提出的IFD算法对图像中目标预测框以外区域进行火灾检测.
算法1. IFD算法
输入: 图像像素点数量S×S、图像像素值image[a]、预测框box[b]的个数N、预测框坐标
输出: 是否具有火灾隐患.
1) FOR b=1, 2, …, N
2) box[b]的R、G、B三通道赋值为0;
3) END
4)将图像的所有像素点的像素值按0–255分为256个等级, 计算落到每个等级的像素点数量;
5) FOR a=1, 2, …, 256
6) 计算落到每个等级的像素点数量并设置阈值T;
7) 计算前景像素点数量
8) 计算背景像素点数量
9) 计算整张图像的平均灰度
10) IF
11) 将分割阈值前景和背景的像素值a赋值给阈值T;
12) END
13) 引入阈值A,
14) IF
15) 将A赋值给阈值T;
16) IF image[a]>T
17) 将像素值image[a]赋值255;
18) ELSE
19) 将像素值image[a]赋值0;
20) END
21) END
22) FOR a=1, 2, …, N
23) IF 两框相交
24) 计算两个框的宽
25) 计算两个框的真实面积
26) ELSE
27) 计算两个不相交框的宽
28) END
29) 计算图像中框的真实面积
30) END
31) 计算整张图像面积
32) 计算红色、绿色、蓝色通道平均像素值分别为
33) 除预测框之外区域的平均像素值
34) IF RGB_mean>score
35) 有火灾隐患;
36) ELSE
37) 无火灾隐患;
38) END
算法1中的阈值A是为防止极端情况的出现所引入的, 确定引入的阈值A步骤如算法2.
算法2. 确定引入的阈值A
输入: 平均像素值
输出: 阈值
1) FOR i=1, 2, …, 256
2) IF 含有未标记的物体
3) IF
4) 将i赋值给
5) ELSE
6) i++;
7) END
8) END
9) ELSE
10) IF
11) 将i赋值给
12) ELSE
13) i++;
14) END
15) END
16) END
17) A的范围为
IFD算法中引入的score为图像的像素平均值RGB_mean, score取无未标记物体图像的最大平均像素值和有未标记物体图像的最小平均像素值的交集.
3 实验及结果分析本实验的操作系统为Windows 10, 使用的编程语言为Python 3.7.10, 开发工具为Spyder 4.2.5, 开发框架为TensorFlow 1.13.1. CPU版本为: Inter(R) Core(TM) i7-4770K CPU; GPU版本为: NVIDIA Tesla P100-PCIE-16 GB. 实验数据集为红外热像仪拍摄实验室场景获得, 红外热像仪的采样频率为30 Hz, 图像大小为1154×970, 以水杯(water cup)、电脑(computer)、人(person)、电烙铁电源(electric iron power supply)、电烙铁头(electric iron head)、椅子(chair)、灯管(lamp tube) 7类目标制作了2 011张图像. 训练集和测试集按比例为9:1, 训练集1 809张, 测试集202张, 并使用LabelImg软件对图像进行标注, 标注完成后生成XML文件, XML文件中包含该图像的路径、目标、目标位置等信息. 数据集的标注如图3所示.
3.1 评价指标
本文目标检测算法采用平均精准度(average preci-sion, AP)、平均精准度均值(mean average precision, mAP)、每秒处理帧数(FPS)作为本实验的评价指标, 如式(3)–式(5)所示, 在对模型进行测试时, 设置IOU为0.5.
$ AP = \int_0^1 {P(R)} dR $ | (3) |
$ mAP = \frac{{\text{1}}}{c}\mathop \sum \limits_{i = 0}^c AP $ | (4) |
$ FPS = \frac{1}{\textit{Times}} $ | (5) |
其中, AP表示单个类别的精准度, mAP表示整体的检测精度, FPS表示网络的检测速度.
$ P = \frac{{TP}}{{TP + FP}} $ | (6) |
$ R = \frac{{TP}}{{TP + FN}} $ | (7) |
其中, TP表示检测过程中检测正确的正样本数量, FP表示检测过程中检测错误的正样本数量, FN表示检测过程中没有检测到的负样本数量.
智能火灾检测算法采用检测准确度(Accuracy)和误检率(false positive rate,FP rate)作为评价指标. 如式(8)、式(9)所示.
$ Accuracy = \frac{T}{{Total}} $ | (8) |
$ FP{\text{ }}rate = \frac{{FP}}{{FP + TN}} $ | (9) |
在YOLOv4-CC算法的网络训练中, 整个训练过程为100轮, 前50轮训练的学习率为0.001, 每轮迭代203次, 每次训练8张图像; 后50轮训练的学习率为0.000 1, 每轮迭代次数为814次, 每次训练2张图像. 整个训练共迭代50 850次, 经过100轮迭代后, 损失函数收敛, 算法改进前后损失函数曲线图如图4所示.
对算法改进前后各类别的AP值比较, 如图5所示. 从图5中可以直观地看出算法改进后各个类别的AP值都有所提高, 其中, 水杯(water cup)的AP值较改进前提高的最多, 达到5.39%, 椅子(chair)、电烙铁头(electric iron head)、电烙铁电源(electric iron power supply)、灯管(lamp tube)、人(person)的AP较改进前分别提高了3.3%、2.63%、2.67%、2.23%、2.69%.
3.3 YOLOv4-CC算法与其他算法对比将YOLOv4-CC算法与其他目标检测算法进行对比试验, 如表1所示, YOLOv4-CC算法的mAP值比YOLOv4算法的mAP值提高了2.7%, 比YOLOv3算法、SSD-VGG算法、Faster R-CNN-ResNet50算法的mAP值分别提高了5.96%、7.15%、4.82%; 速度方面, SSD-VGG算法的FPS最好, Faster R-CNN-ResNet50的FPS最差, YOLOv4-CC算法的FPS为37.1.
根据以上结果分析, YOLOv4-CC算法不仅能满足实时检测的需求, 还显著地提高了算法的检测精度.
3.4 智能火灾检测算法结果分析YOLOv4-CC算法经过训练得到网络权重, 最终得到含有预测框的图像, 而提出的智能火灾检测算法IFD是一种对预测框图像处理的算法, 因此, IFD算法检测准确度的高低也取决于YOLOv4算法的精度以及预测框精准度.
为检测IFD算法的性能, 进行实验确定算法中的阈值A和得分score. 图6为不同阈值A下有无未标记物体的二值化对比图, 图中的K为未标记的目标, 利用第2.2节中确定阈值A的步骤, 根据不同阈值A比较无未标记物体和有未标记物体图像的平均像素值, 确定阈值A范围为164<A<166.
阈值A确定后, 对比不同阈值A情况下有无未标记物体的平均像素值, 如图7所示. 从图中知, 当A为164时, 平均像素值的范围为0.191到0.907; A为165时, 平均像素值的范围为0.159到1.209; A为166时, 平均像素值的范围为0.033到1.099. 取不同阈值A下平均像素值的交集, 确定得分score范围为0.191<score<0.907.
3.5 早期火灾预警算法结果分析早期火灾预警算法由神经网络算法和本文提出的IFD算法组成, 图8为IFD算法的可视化流程图. 图中K为未标记的目标, 利用IFD算法可以判断预测框图像是否有火灾隐患.
为测试IFD算法在预测框图像上的效果, 利用IFD算法对200张图像进行实验, 其中69张为无未标记物体的图像, 131张为有未标记物体的图像. 如表2所示为YOLOv4算法改进前后IFD算法的检测对比分析, 从表2可知, 经YOLOv4算法得到无未标记物体和有未标记物体的预测框图像, 本文提出的IFD算法其预测框图像上的检测准确度分别为91.30%和85.49%, 总检测准确度为87.50%, 误检率为5.08%, 说明IFD算法能得到良好的火灾隐患检测效果; 同理, IFD算法在YOLOv4-CC算法得到的在此基础上, IFD算法在YOLOv4-CC算法得到的预测框图像上的检测准确度分别为94.20%和92.37%, 总检测准确度为93.00%, 误检率为3.2%, 比改进前算法的总检测准确度提高了5.5%, 误检率下降了1.88%. 在IFD良好的检测效果下, 进一步改进YOLOv4, 得到更显著的检测效果. 根据上述分析, IFD算法对预测框图像的检测效果显著, 并且, YOLOv4-CC+IFD算法显著提高了早期火灾预警算法的检测能力.
4 结论与展望本文针对传统火灾预警方法检测精度低、不能在未发生火灾时及时预警的问题, 提出一种基于深度学习的早期火灾预警算法, 对YOLOv4网络结构进行改进, 在此基础上, 提出一种智能火灾检测算法对预测图像处理, 利用得分评估火灾隐患. 对改进前后的YOLOv4算法以及智能火灾检测算法进行实验对比, 结果表明, 改进后YOLOv4算法模型在保证实时检测的前提下, 显著提高了算法的精度, 提出的智能火灾检测算法可以精确检测火灾隐患. 最终, 由改进后的YOLOv4算法和智能火灾检测算法组成的早期火灾预警算法解决了在未发生火情时及时预警的问题, 高精度和低误检率保证了算法的显著效果.
[1] |
孙旋. 我国消防科技发展现状及展望. 安全, 2020, 41(2): 1-6. DOI:10.19737/j.cnki.issn1002-3631.2020.02.001 |
[2] |
张兴, 席廷宇, 张恩华, 等. 多特征量数据融合嵌入式火灾早期预警系统. 计算机应用, 2018, 38(S1): 249-252. |
[3] |
揭景耀, 刘激扬. 感烟火灾探测器. 传感器技术, 1997(3): 19-22. DOI:10.13873/j.1000-97871997.03.006 |
[4] |
史玉坤. 基于视频内容分析的火情早期预警方法研究[硕士学位论文]. 天津: 中国民航大学, 2016.
|
[5] |
汪汉云, 王程, 李鹏, 等. 多源遥感图像配准技术综述. 计算机工程, 2011, 37(19): 17-21, 25. DOI:10.3969/j.issn.1000-3428.2011.19.005 |
[6] |
Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation. Proceedings of 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus: IEEE, 2014. 580–587.
|
[7] |
Girshick R. Fast R-CNN. Proceedings of 2015 IEEE International Conference on Computer Vision. Santiago: IEEE, 2015. 1440–1448.
|
[8] |
Ren SQ, He KM, Girshick R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031 |
[9] |
He KM, Gkioxari G, Dollar P, et al. Mask R-CNN. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020, 42(2): 386-397. DOI:10.1109/TPAMI.2018.2844175 |
[10] |
张坚鑫, 郭四稳, 张国兰, 等. 基于多尺度特征融合的火灾检测模型. 郑州大学学报(工学版), 2021, 42(5): 13-18. DOI:10.13705/j.issn.1671-6833.2021.05.016 |
[11] |
Liu W, Anguelov D, Erhan D, et al. SSD: Single shot MultiBox detector. Proceedings of the 14th European Conference on Computer Vision. Amsterdam: Springer, 2016. 21–37.
|
[12] |
Redmon J, Divvala S, Girshick R, et al. You only look once: Unified, real-time object detection. Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas: IEEE, 2016. 779–788.
|
[13] |
Redmon J, Farhadi A. YOLO9000: Better, faster, stronger. Proceedings of 2017 IEEE conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017. 6517–6525.
|
[14] |
Redmon J, Farhadi A. YOLOv3: An incremental improvement. arXiv: 1804.0276, 2018.
|
[15] |
Bochkovskiy A, Wang CY, Liao HYM. YOLOv4: Optimal speed and accuracy of object detection. arXiv: 2004.10934, 2020.
|
[16] |
石磊, 张海刚, 杨金锋. 基于改进型SSD的视频烟火检测算法. 计算机应用与软件, 2021, 38(12): 161-167, 173. DOI:10.3969/j.issn.1000-386x.2021.12.027 |
[17] |
任嘉锋, 熊卫华, 吴之昊, 等. 基于改进YOLOv3的火灾检测与识别. 计算机系统应用, 2019, 28(12): 171-176. DOI:10.15888/j.cnki.csa.007184 |
[18] |
谢书翰, 张文柱, 程鹏, 等. 嵌入通道注意力的YOLOv4火灾烟雾检测模型. 液晶与显示, 2021, 36(10): 1445-1453. |