时间:2024-05-04
马庆禄,唐小垚
(重庆交通大学交通运输学院,重庆 400074)
我国的隧道数量和长度均占世界第一,隧道火灾事故的危害极大[1],较早的发现火灾事故能够保障人民的生命安全,降低社会和个人的财产损失,因此研究实时、准确的感知火灾的发生并能及时发出警告具有重要的意义。
传统的基于硬件的火灾检测器[2]具有很多的局限性,虽然一些学者在此基础上做出了改进,如Ting[3]等提出了将传感器采集的多种物理信息进行融合的火灾检测算法,但是由于传感器自身的特性,受隧道里环境(气流、粉尘等)影响较大,且必须近距离接触火源待收集火灾到信息后,才能发送数据提出警示,不能很好的保证实时性以及精准的反馈火灾的严重程度。近年来,许多学者提出通过视频监控系统以实现实时监测火灾的研究算法越来越多,视频检测能够满足实时性的要求并且检测的区域的大,并能提供很直观的火灾画面。
基于图像的火灾检测的关键环节在于特征提取以及模式识别。判断火焰是否存在提取的图像特征一种是关于静态的颜色和外形,另一种是动态的变化区域和闪烁频率等。Kim MG[4]提出了结合颜色信息理论的火焰检测分割技术,通过帧差法成功提取火焰的HIS特征,但由于颜色比较单一,所以准确率较低。Liqiangwang[5]通过分析火焰闪烁的时空特性和亮度变化特性建立了闪动特征模型,实验结果误报率较低。Foggia[6]在火灾检测中融合了火焰燃烧的形状、颜色和运动形态,从而在一个多专家框下实现了火灾的实时检测。王琳等[7]给出一种基于RGB和Lab的颜色统计模型,对隧道内疑似火灾区域边缘分割完整,有较好的鲁棒性。这些方法多是以颜色和形状来提取火焰特征,泛化能力不足,人为因素影响较大,无法广泛应用。
目前,基于深度学习的视频目标检测发展迅速,Frizzi[8]采用卷积神经网络(CNN)对火灾进行检测,该方法虽然取代了手动提取特征,但无法准确获取火灾位置并且对初期火焰漏检率高。现在深度学习网络主要分为先产生候选区域再分类的两步法(Two Stage)和直接对图像进行卷积处理得检测结果的一步法(One Stage)。常见的两步法主要R-CNN[9]、Fast R-CNN[10]、Faster R-CNN[11],一步法主要包括SSD[12]、YOLO[13]、YOLOv2[14]、YOLOv3[15]、YOLOv4[16]可以更快地实现目标检测。YOLOv3是最流行的一步法,它广泛应用于交通运输领域的交通标志[17]、交通流[18]、路面坑洼[19]、视觉裂缝[20]等检测。Shen等[21]运用YOLOv1模型进行火灾检测,虽然有很高的检测速度,但易受环境和其它因素干扰导致检测精度较低。Kim等[22]采用Faster R-CNN进行火灾检测,检测的精度显著提高但实时性无法得到保证。Yu等[23]在提出Mask R-CNN的特征层中从下至上将火焰特征进行融合,精度有所提高但实时性却无法保证。Jin等[24]采用了Anchor-Free网络结构进行火灾检测,降低了网络参数使其更容易部署在实际应用,但算法的检测效果正负样本极端不平衡且具有语义模糊性(两个目标中心点重叠);
现有的算法无法满足隧道火灾检测对实时性和准确性的要求,因此本文提出嵌入DenseNet的YOLOv4多尺度公路隧道火灾检测算法。自建了一个含有3000张隧道火焰图片的数据集,在CSP特征提取层中加入DenseNet网络,加强特征复用,降低梯度消失的问题,抑制过拟合。为了增强小尺寸的隧道火焰,在特征检测层中加入104×104特征检测层,加强特征融合,并用K-means聚类算法对数据集进行处理,获取隧道火灾检测先验框并分配给各特征检测尺度。建立了嵌入DenseNet的YOLOv4多尺度公路隧道火灾检测模型。实验表明该模型对隧道火灾检测具有较高的准确性和实时性,能够满足隧道火灾检测的要求,并且对隧道火灾初期的小尺寸火焰具有很好的检测效果,对隧道火灾预警的研究具有重要意义。
YOLOv4网络主要由输入端、BackBone主干网络、Neck、Prediction四个模块构成。在输入端采用Mosaic和CutMix的数据增强方式,增强图像特征信息,减少GPU的损耗。包含5个CSP网络结构的CSPDarknet53作为主干的核心,能够降低计算瓶颈以及内存成本,增强学习能力。在颈部以路径聚合网络(PANet)和采用1×1,5×5,9×9,13×13最大池化方式的空间金字塔(SPP)构成,增强特征融合。在训练过程中采用标签平滑和学习率余弦退火衰减等技巧进行优化。框架结构如图1所示。
图1 YOLOv4框架结构图
YOLOv4目标检测网络流程如图2所示。在输入端将隧道火灾视频帧划分为N×N格。采用具有火焰中心坐标的网格进行火焰检测,每个网格单元预测B个赋有Tx、Ty、Tw、Th和置信度五预测值的边界框。用置信度来评价检测的精度和置信水平[15]。
图2 YOLOv4网络火灾检测
通过式(1)求得预测框的宽和高,分别用Bw、Bh表示,以及预测框的中心坐标(Bx,By)。
(1)
式中σ(x)——Logistic函数;
Cx、Cy——特征图中每个网格的左上角坐标;
Pw、Ph——先验框相对于特征图的宽和高;
Tx、Ty、Tw、Th——模型预测的中心坐标及宽高。
图1表示换道车辆在时间段t内完成从初始车道到达目标车道的换道过程,图中M代表换道车辆,C代表原始车道上行驶于换道车辆M前方的车辆,
将预测框的位置参数与特征尺寸的比值与输入图片尺寸相乘,得到火焰原图中预测的边界框坐标值。每个网格需预测一个类别信息,记录为C类,因此输出为尺寸N×N(5×B+C)的张量。同时,检测系统按式(2)计算交并比。
(2)
式中IoU——交并比;
DR——预测框;
GT——实际框。
用IoU来衡量预测框的精度,其理想值为1。
YOLOv4网络训练时的损失函数由边界框回归损失Lciou、置信损失Lconf、分类损失Lclass共同构成YOLOv4目标检测网络的的损失函数,表达式如式(3)。若边界框没有目标,就不计算Lciou和Lclass。
(3)
式中S2、B——特征图尺度与先验框;
λnoobj——权重系数;
ρ(·)——欧氏距离;
c——预测框与实际框闭包区域的对角线距离;
b、w、h——预测框的中心坐标及宽高;
bgt、wgt、hgt——实际框的中心坐标及宽高;
相比传统的损失函数计算方法,CIoU避免了尺度敏感的问题,对预测框和实际框的关系有更好的表达。因此采用CIoU损失函数计算边界框回归损失,采用交叉熵计算置信度损失与分类损失。
3.1.1 特征检测层改进
在特征检测网络中,YOLOv4采用13×13,26×26,52×52的三种尺度对特征进行融合,尚未完全利用特征提取网络中分辨率较大的浅层特征图的位置信息[25]。因此直接用来进行检测,多次卷积处理后,会使小型火焰信息丢失,不能很好的完成火焰初期的检测任务。
因此,在原来的基础上新增一个低维尺度104×104尺度检测,强化特征的学习,将YOLOv4检测尺度由3尺度变为4尺度,通过融合多种尺度的特征信息后进行火灾检测,但新增的检测尺度会稍加模型检测时间。改进后的网络结构如图3所示。
3.1.2 特征提取层改进
在特征提取过程中,为了解决特征传播梯度消失的问题,在CSPX模块中嵌入DenseNet网络[26],增强多层间的特征复用,结构如图4(a)所示。
图4 嵌入DenseNet结构
DenseNet与ResNet网络总体结构类似,不同的是,前者是将网络结构中前面的每一层与下一层进行密集链接,而后者是将下一层与某一层进行元素级相加,因此特征信息更加丰富。为了增强计算效率,减少网络参数,DenseNet采用1×1卷积模块降低特征数量并跃层将特征图融合。DenseNet的核心如式(4)所示
xm=Hm([x0,x1,…,xm-1])
(4)
式中xm表示第m层网络输出的特征图;
[x0,x1,…,xm-1]表示将第0层到第m-1层网络的特征图进行通道合并;
Hm是由批归一化(batch normalization,BN)、修正线性单元(Mish)激活和CONV(卷积)的组合操作.
改进后的特征提取网络如图4(b)所示。其中,CBM模块表示Hm操作组合;ResNet单元表示两个CBM模块及其快捷链路的和;DenseNet单元表示一个1×1卷积CBM和一个3×3卷积CBM的组合操作,不同DenseNet单元间采用密集型网络连接的方式。
在目标检测中引入先验框,通过判断给定锚框中是否含有检测对象并分预测框与实际框的距离,省去了以往的多尺度滑动窗口遍历环节,从而提升了目标检测的速度与精度。为了加快隧道火焰检测的精度和速度,采用K-means聚类对火灾数据集进行处理,统计分析,重新获得先验框的宽高值,其中的K代表类簇个数,means代表类簇内数据对象的均值[27]。
而传统的欧式距离变换会使大目标和小目标检测产生较大的误差,影响检测性能。因此通过式(5)来进行计算,将交并比加入到标注框的距离计算中。
d(box,centroid)=1-IoU(box,centroid)
(5)
通过K-means算法得到IoU与先验框个数的关系图,如图5所示。
图5 先验框K与IoU关系
由图可知,在先验框个数为12时,IoU增长速度变缓,因此文章设置先验框个数为12,使网络的计算效率和模型的检测精度的关系都能达到最佳。再通过K-means在本文的隧道火灾数据集中计算得到12个聚类中心,如图6所示。
图6 聚类中心分布图
因此得到的12个先验框如表1所示,通过对比测试最终选定(19,27),(44,52),(52,98)分配给新增具有小物体感受野的104×104特征检测层;将(114,97),(88,170),(206,106)分配给52×52的火灾检测特征层;在26×26的特征图层上选用(163,183),(123,272),(257,239)这三种先验框尺寸进行火焰检测;最后将(372,162),(218,347),(371,344)分配给13×13的特征图层用于大面积火灾检测。
表1 先验框分配表
目前有很多与目标检测相关的数据集,如MS COCO以及PASCAL VOC,但关于火灾检测的数据集较少,因此本文通过收集网上以及公开的火灾视频,对视频处理提取火灾图片,构建了一个包含13000张左右的火灾图片数据集,以及几十段火灾的视频库。本文还通过在重庆交通大学1号门地下通道模拟隧道火灾形成初期实验获取数据集,试验现场如图7。经过筛选,一共提取了火灾图片数据集中的3000张火焰图片,并通过软件LabelImg进行数据标记。为了文中提出的火灾检测算法的泛化性,本文还通过手机拍摄隧道灯光以及汽车的车灯获取了1000张图片作为负样本数据集。因此,本文算法训练的数据集共4000张,其中火焰图片3000张,隧道行车灯光,隧道灯光各500张。
图7 隧道火灾初期模拟试验
本文在Intel Core I5-10200H处理器,8G内存,NVIDIA GeForce GTX 1650Ti,4G独立显存的硬件环境下,以及CUDA10.2,CUDNN7.6,Darknet深度学习框架,Windows10,64位系统,编程语言Python等软件环境进行实验验证。
在模型训练阶段,设置批尺寸(Batch size)、动量(Momentum)、衰变值(Decay)、初始学习率(Learning rate)等参数,训练参数如表2所示。采用数据增强来增加训练样本,在训练过程中,通过分析IoU曲线和Loss曲线来不断优化和调整模型参数,最终保存Loss曲线趋于平滑稳定、Loss值最低的权重,将该权重用于隧道火灾火焰检测,文中将改进后的算法用YOLOv4-Improve表示。
表2 参数设置
训练过程中的损失函数变化曲线图如图8所示。由图8可知,在前1500次迭代中,曲线变化较大,后逐渐平滑,而到了12000次以后,Loss值相对稳定。
图8 Loss值变化曲线
训练过程中IoU变化曲线图如图9所示,从图9中可以看出,在前2500次迭代中,IoU值变化明显,逐渐增大。在2500次以后曲线趋于平滑,最后也达到稳定值,变化较小。
图9 IoU变化曲线
在目标检测中,通常将预测框与目标真实框的交并比(IoU)大于0.5设定为成功预测到目标位置,通过准确率(P)和召回率(R)计算平均精准度(AP)和加权调和平均(F),并以平均AP值(mAP)作为算法检测精度的综合评价指标。AP用于评估模型在单个检测类别上的精度表现,而mAP越大表明整体检测精度越高。式(8)为准确率的计算公式,式(9)为召回率的计算公式,式(10)为加权调和平均的计算公式,式(11)为mAP的计算公式。
(8)
(9)
(10)
(11)
其中,TP为真正例,FP为假正例,FN为负正例,c为分类数。
4.4.1 验证集检测结果
为了验证改进后的YOLOv4网络的鲁棒性和泛化性,本文用百度图片获取的验证集进行了测试,部分检测结果如图10所示。
由图10(a)和图10(b)可以看到,隧道模拟的两处火灾都达到了0.9以上的置信度,完整的标记出图中存在的火焰。图10(c)和图10(d)也能正确的标记燃烧车身上的火焰,且没有受隧道灯光的干扰导致误检。实验结果表明本文算法在公路隧道火灾检测中较好的效果,能够实现对隧道内不同面积的火焰的检测,并且不受隧道其它灯光的影响。
4.4.1 对比实验
为了更好的体现本文优化后的网络模型,本文将改进后的模型与YOLOv4、YOLOv3、YOLOv4-tiny进行了测试对比,LOSS曲线图如图11所示。
图11 Loss曲线图
由图11可以看出YOLOv3和YOLOv4-tiny在前1500次Loss值就下降到1以内,然后开始缓慢下降,最终分别达到0.3802和0.4075。而YOLOv4和YOLOv4-Improve在3000次以后Loss值降到2以内,然后变化趋于平滑,在达到平稳时,Loss值分别为1.3000和1.3537。
绘制模型的精度和召回率曲线,简称P-R曲线(Precision-Recall),结果如图12所示。
图12 P-R曲线
由图12(a)和(b)可以看出,YOLOv3和YOLOv4-tiny两种模型在火焰和灯光检测精度各有优点,但总体上精度都比较低。图12的(c)图,YOLOv4在检测精度上相比前两种算法有了一个不错的提升,且灯光和火焰都能兼顾。而图12(d)为改进后的模型P-R曲线明显优于其它几个模型,在YOLOv4的基础进一步提升了算法的检测精度。本文为了实现火灾初期的火焰检测,在小目标检测上进了很多增强,改进前后的小目标检测效果如图13所示。
图13 改进前后小目标检测
图13(a)、(b)、(c)中可以看出,YOLOv3将火光作为了检测对象,而实际的火焰并未检测到。而YOLOv4只是检测出了一处火焰,但改进后的YOLOv4模型将大巴车两处火焰均标记出来。在隧道灯光检测上,YOLOv3的置信度只有0.35,而YOLOv4有0.96,改进后的YOLOv4模型确能将多处隧道灯光标记出来。由此可知,本文改进的YOLOv4算法对小目标检测有较大的提升。
为了评估不同改进方法对火焰的检测效果,将P、R、mAP进行对比,结果如图14所示。其中,YOLOv4-K是对数据进行了聚类分析的模型检测结果,YOLOv4-104是多尺度检测模型,YOLOv4-DenseNet是在特征提取层中嵌入了DenseNet网络的检测模型。
图14 不同改进方法对比结果
由图可知,只增加特征检测层算法mAP提升了0.9%,对小目标检测有提升。而对先验框重新聚类得到的YOLOv4-K模型总体也只提升了0.7%。而在特征提取层中加入DenseNet对检测结果有较大的提升。而融合了多种改进策略的YOLOv4-Improve相对YOLOv4-DenseNet还提升了1.3%。
为了进一步证明改进后的YOLOv4算法在隧道火灾检测中有更好的效果,本文将自建的数据集Faster R-CNN、YOLOv3、YOLOv4等模型上进行实验对比,结果如表3所示。
表3 多种算法对比结果
由表3可以得到,相比Faster R-CNN,本文改进的算法mAP提升了6.3%,平均检测时间也比其快0.15s。而相比YOLOv3,mAP提升了9.7%,速度提升了0.08s。对比原YOLOv4,本文提出的算法虽然牺牲了0.04s检测时间,但mAP提升了4.3%,隧道火灾检测的总体效果得到了提升。
为满足公路隧道火灾实时检测的要求,综合考虑和分析其它算法模型,研究了一种结合隧道机器人、摄像头等视觉的YOLOv4火灾检测算法。实验结果表明,改进的算法在同类火灾检测算法中具有更好的精确度和实时性,在本文构建的隧道火灾数据集上,准确率达到了90.4%,召回率达到了82.3%,mAP达到了83.8%,平均检测时间为0.16s,为实现隧道初期火焰智能检测提供了理论研究价值,构建了一个隧道火灾火焰数据库,以及一些类火特征的负样本数据集,为深度学习在隧道火焰检测领域的理论研究提供了训练集支撑。本文隧道火焰数据集较少,图像质量等问题,检测精度还有待提高。因此,在以后的研究中,将对隧道火灾数据集进行扩充和优化,对不同材质火源引起的火焰进行数据采样,同时继续对网络进行改进,降低网络复杂度。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!