马世玲 袁 伟 俞孟蕻
(1.江苏科技大学计算机学院 镇江 212100)(2.江苏科技大学电子信息学院 镇江 212100)
船舶是水运的核心工具,承担着大量的运输任务。火灾是一项威胁船舶安全的重要因素。据国际 海 事 组 织(IMO)的 统 计 报 告 显 示[1],2009年-2019 年,造成船舶折损的前三个原因分别是沉船、搁浅和火灾,火灾事件相对较少但危害极大。船舶是漂浮于水面上的独立个体,整体结构由热传导性极强的钢板构成,内部区域复杂,通道宽度有限,上述的种种特性会给火灾救援和人员逃生带来极大困难。在火灾的发展过程中,烟雾往往是先于火焰出现在火源点,初期阶段火灾危害较小,及早发现并处理火情,能够有效控制火灾波及范围,减少损失。现有的船舶火灾检测系统主要依赖于各种点传感器探测火灾,然而其具有检测延迟、误报率高、易受海上周围环境影响的特点,有一定局限性。采用视频检测方法相较于点传感器,可以依附于现有的摄像机监控系统,同时能获得更具体的火灾信息。视频检测适应性广、响应速度快,是一种有效且快速的检测方法。
近年来,视频检测方法多采用深度学习,主要是基于卷积神经网络的各种衍生算法[2]。大体上可以分为两类,一类是采用分类和预测框的二阶段算法,如RCNN 系列[3];一类是采用回归思想的单阶段算法,如YOLO 系列[4]、SSD 系列等[5],较于前者速度快,检测精度有一定下降。文献[6]提出一种CNN 结构,能在同一体系结构内实现特征提取和分类。文献[7]使用Faster R-CNN 提取火灾区域并进行多维纹理分析,大大减少因颜色类似产生的误报。文献[8]探讨对比了先进的CNN 模型在火灾检测下的效果,对比结果体现了YOLOv3 在火灾检测中的高准确度和极快的速度。大多数基于CNN 的火灾检测算法仅仅考虑了图像所携带的图像信息,这样很容易对周围类似火焰或者烟雾的目标产生误判。为了解决这个问题,一些算法在考虑火灾空间特征的同时,也加入了时间特征,提高模型的检测性能。文献[9]利用CNN 和LSTM 分别提取烟雾的图像信息和时间信息,并利用注意力机制提取关键帧,优化分类过程。文献[10]结合ELASTIC-YOLOv3 和Fire-tube,提取图像信息和时域的光流信息,并对光流信息进行再处理,以此来检测夜间火焰,有效地降低了误判率。文献[11]在YOLOv3 骨干网络的基础上利用空洞卷积模块提取上下文信息,实现了对火焰的检测。当前的火灾研究在准确度上已有了高水准,但是在误检问题上仍有改进空间。
为了提高火灾视频的检测性能,本文提出基于YOLOv3 和光流的算法,该算法充分考虑火灾视频的静态信息和动态信息。光流特征能够反映烟雾或者火焰在当前背景下的移动情况,YOLOv3 作为一种快速高效的算法,对后续的应用有一定的辅助作用。本文算法提取视频中的光流特征作为动态信息,并结合视频帧的RGB 信息,采用YOLOv3 算法,进行对火灾视频的检测。
在视频检测中,光流是常用的运动信息,被定义为空间运动物体在观察成像平面上的像素运动的瞬时速度[12],能够表征物体在相邻帧中的运动信息。现有的光流计算技术按照理论基础与数学方法分为以下类别[13]:基于梯度的方法、基于匹配的方法、基于能量的方法、基于相位的方法、神经动力学方法。Farnback[14]算法是一种利用多项式求解稠密光流的方法,针对烟雾和火焰这类纹理较多的目标,有较好的效果。光流计算方法有两个重要假设:1)相邻帧之间的亮度恒定;2)相邻帧之间的物体运动微小。
Farnback 利用二次多项式模拟图像中的像素邻域,从多项式展开系数估计光流[15]。
其中x=(x,y)T是某个像素点的坐标,Α是一个对称矩阵,b是一个向量,c是一个常数。
对于上一帧图像中某一点像素有系数Α1,b1,c1,该像素移动d,则对于当前帧图像对应点有系数Α2,b2,c2,根据f1(x)=f2(x-d)可推得:
对于相邻帧图像,选用平均值表示真实值:
同时引入:
可得
由此推导出光流大小。
YOLO 系列是端到端的网络结构,采用回归思想,在整张图片信息的基础上进行预测,在速度上超越了其他的滑窗式算法。相比于YOLO 系列的初期版本YOLOv1 和YOLOv2,YOLOv3[16]堆叠多层卷积结构,借鉴多种算法,进行多种改进,使得检测效果在速度和精度上都能保持高水准。
YOLOv3 的特征提取网络Darknet-53 借鉴了Resnet[17],引入了残差模型(Residual Block),残差基本单元是由1×1 和3×3 的卷积构成的,其结构如图1 所示,这种结构减少了网络层数过深时梯度消失的风险,加强了网络的学习能力。Darknet 由多组1×1 和3×3 卷积层构成,在一定程度上减少了参数量和计算量,而且深层的网络结构,能更好地表达特征,有助于提高检测效果。
图1 YOLOv3的残差基本单元
YOLOv3 还借鉴了FPN(Feature Pyramid Networks)[18],利用多尺度融合在大中小三个尺度上进行目标检测。浅层特征中几何特征丰富,深层特征中语义特征丰富,三个尺度互为补充,使得检测效果更好。YOLOv3 简要的网络结构如图2 所示,先采用Darknet-53 网络提取特征,再运用多尺度检测,在三个尺度上进行回归检测。
图2 YOLOv3的简要网络结构
利用深度学习进行火灾检测时,常使用火灾中产生的烟雾和火焰作为检测目标。在获取的火灾视频中,火灾图像表现为RGB 形式,展示了火灾区域的颜色、纹理、轮廓等特征。仅仅使用图像上表现的特征用作检测很容易与相似的目标发生混淆。火灾视频是时间轴上每一帧静态火灾图像的有序排列,从中提取的光流体现了动态信息。本文将光流图像和RGB 图像进行像素级融合,同时获取静态信息和动态信息。与背景区域的光流特征相比,火灾区域的光流特征在像素上的R、G、B 值普遍偏高,为了增强可视化效果,此处将RGB 图像和光流图像以一定的加权比例融合。然后利用YOLOv3 网络提取烟雾和火焰的深层次特征,其结构示意图如图3所示,从相邻RGB图像中提取出光流之后,火灾区域有别于背景区域,显示出不同的色彩纹理。
图3 网络结构示意图
迁移学习是一种机器学习方法,从目标检测任务的相关性出发,能够将在大型数据集中学习到的知识迁移到数据量偏小的数据集中[19]。建立深度学习下的火灾检测模型需要庞大的数据以及与之对应的人工标注,但是现有的火灾数据集没有统一标准,数据量偏小,很容易过拟合,影响模型的检测能力。现有的目标检测任务以大型数据集作支撑,如ImageNet 数据集、COCO 数据集等。这些数据集中的各种目标类别丰富、数量庞大。虽然这些数据和火灾的表征特征不是完全一样,但是深度学习是针对图片本身提取边缘、纹理等特征,这种特征提取的能力具备普适性,对于火灾检测有借鉴的空间。
利用仿建的船舶舱室,分别点燃木材、电缆等船用物品,模拟单个船舶舱室发生火灾的情形,同时使用摄像机记录过程。由于数据量偏少,还使用了网络上公开的火灾视频数据,虽然其场景与船舶舱室不同,但是火灾表现出的特征是一样的,仍可用于训练。本文实验中使用的其余视频数据,分别来自土耳其比尔肯特大学数据集、意大利萨莱诺大学数据集、韩国启明大学数据集、中国科学技术大学火灾科学国家重点实验室数据集[20]以及部分在网络上搜集的火灾视频数据。
从视频数据集中挑选不同场景下的火灾视频80 段,分别提取含有火灾目标的部分视频帧,每隔五帧进行光流提取,最终共获得3000 张的RGB 图像以及相应的光流图像。在训练模型之前进行RGB图像与光流图像的融合,为了增加模型的鲁棒性,加权融合比例在0.3~0.7 内随机选取。经处理后采用LabelImage 软件对数据集进行标记,并随机选取80%作为训练集,其余20%作为测试集。由于数据集容量偏小,为了防止过拟合问题,采用随机缩放、翻转、色域扭曲等数据增强方法对原始数据集进行扩展。同时在训练过程中采用迁移学习方法,利用YOLOv3 在COCO 数据集上的预训练模型作为源域,迁移到火灾检测领域,冻结YOLOv3 网络的前端参数进行再训练。
本文的实验环境为Ubuntu 18.04系统、内存Intel Core i7-8700K、图形处理器GeForce GTX 1080、深度学习框架Keras。
本文采用平均精度均值(mean Average Precision,mAP)衡量模型性能,此外,计算了对于单张图片的处理时间,以原始视频帧为处理对象,计算单张图像的处理时间,对火灾的实时检测有一定的借鉴意义。
分别使用YOLOv3、Faster R-CNN[21]以及本文算法进行火灾检测。实验结果如表1 所示。本文算法相较于原始的YOLOv3 算法,模型检测能力没有明显区别,对于烟雾的检测性能略好一些。Faster R-CNN 在烟雾检测模型上表现最优,但是速度远远落后于另外两种算法。本文算法由于需要进行光流的处理占据了一定的计算资源,因此耗费时间略长。在火灾的发展过程中,火灾区域是随着时间不断变化的,对视频进行近距离的抽帧检测并不影响对火灾结果的判断,因此可以满足实时检测的需求。
表1 不同算法的对比结果
部分图像的检测效果如图4 所示,图4(a)、(b)、(c)分别为使用YOLOv3 算法、Faster R-CNN算法以及本文算法的检测效果,都能够准确地检测火灾区域。在本文算法中,由于烟雾和火焰在图像上的流动性,使得捕获的火灾图像中增添了颜色的多样性。考虑以上信息,在火灾检测中使用YOLOv3是比较好的方式。
图4 三种算法下的检测效果
为验证算法在实际视频处理中的性能,另取6段与训练集数据不同的视频,进行进一步的分析,所取视频如图5 所示。图5(a)、(b)为烟雾视频,图5(c)、(d)为火焰视频,图5(e)、(f)则为人员灯光干扰、车辆干扰下的干扰视频。此处仅采用YOLOv3算法和本文算法进行验证。
图5 检测视频
对视频均选取部分片段并以每两帧的方式进行检测,利用真阳性率TPR(True Positive Rate)以及真阴性率TNR(True Negative Rate)来评判算法性能,检测结果如表2 所示,不可获得的数据用“-”表示。从对比结果来看,本文算法的检测率和误报率综合较优。相较于原始的YOLOv3 算法,本文算法针对烟雾部分有明显的改善作用。烟雾在RGB模式下有不同的颜色形式,多为灰白色、灰黑色,增加了光流的比例后,增强了目标区域的特征表达,使之更容易被检测出。一般情况下占据视频画面较大的火焰本身颜色较为突出,增加光流的部分对于此类火焰没有大的提升空间,但是针对于小区域颜色不明显的火焰有一定的增强特征表达的作用。本文算法能有效识别火灾目标,抗干扰能力强,不易受人员、灯光、车辆等干扰影响。
表2 视频检测结果对比
船舶的消防安全是重要问题,一旦发生火灾,要尽早发现火情。图像检测方案专注于图像本身所表达的信息,而视频检测方案额外增添了运动信息,烟雾和火焰初期在小范围内蔓延,具有丰富的运动信息。基于YOLOv3 网络,提出了一种融合静态信息和运动信息的火灾视频检测方法。建立火灾视频数据集,提取帧内特征来获取静态信息,提取光流特征来寻找帧间目标运动信息,并利用迁移训练方法,采用YOLOv3 算法达成目标检测。实验结果表明,该方法能够有效减少视频检测中烟雾和火焰的误检,保证火灾的识别精度,抽帧检测时能够满足实时检测的需求,综合性能较优。