改进DeeplabV3+的火焰分割与火情分析方法
2021-11-12杜建超杨传凯
宁 阳,杜建超,韩 硕,杨传凯
(1.西安电子科技大学 通信工程学院,陕西 西安 710071;2.国网陕西省电力公司 电力科学研究院,陕西 西安 710100)
如今火灾事故频发,每年都有大量生命财产因为火灾而遭受巨大损失,且随着社会的不断发展和进步,火灾对人类社会造成的危害也愈来愈大,因此针对火灾的检测与分析研究也显得愈发重要。准确的火焰图像分割是火势发展分析的重要前提,一般传统的分割方法主要基于火焰的颜色、空间结构和纹理信息等火焰特点[1-5]。如文献[1]利用图像的边缘差异作为分割基础,但只适用于简单背景的图像分割。文献[2]结合RGB、YCbCr和区域生长算法,对火焰的面积、周长以及质心运动距离变化等进行了分析,能够快速排除干扰目标。文献[3]提出一种基于主成分分析和伽柏滤波响应的分割方法,引入了一种新的超像素提取方法,可以有效降低噪声影响。文献[4]则采用基于颜色和纹理特征的多尺度火焰图像无监督分割方法,结合了火焰的颜色与小波纹理特征,提高了分割的准确率和速度。另外,为了实现火焰图像的自动分割,一种基于粒子群算法的改进的k-最近邻算法(k-Nearest Neighbor,kNN)的分割算法[5]被提出。该算法采用改进的kNN对图像像素进行分类,并结合欧氏距离定义了一个新的相似度函数来提高分类精度。但是,以上传统方法都存在鲁棒性差、分割速度慢和依赖手工特征的设计等缺点,在复杂场景中难以应用。近年来,计算机视觉与模式识别快速发展,语义分割作为该领域的研究重点,具有极高的研究价值和广泛的应用前景。自全卷积神经网络(Fully Convolutional Network,FCN)之后,学者们相继提出了许多基于卷积神经网络的语义分割算法。如文献[6]使用全卷积网络进行初步粗分割,再使用稠密条件随机场对粗分割结果进行细化,实现最终的目标物分割。文献[7]通过改变原卷积核,引入可形变卷积以适应分割任务,使得卷积操作更集中在目标位置附近,提高了语义分割精度。RONNEBERGER等人提出的Unet网络[8],由收缩路径和扩张路径组成,收缩路径用于获取上下文信息,扩张路径用于精确定位,两条路径相互对称,分割结果的边缘信息更加精细。DeeplabV3+是谷歌开发的语义分割网络[9],该算法吸收了Deeplab系列方法的优点,并采用了编码器解码器结构,被广泛应用于烟雾分割[10]、合成孔径雷达图像分割[11]、道路分割[12]等场景,是目前图像分割领域的优秀框架。由于火焰尺度变化大且边缘极不规则,对分割精度的要求较高,所以笔者在原DeeplabV3+分割网络基础上,增加了高低层特征的融合信息,并采用两倍上采样逐步恢复图像尺寸,实现更为准确的火焰分割。
此外,随着目前信息智能化程度的逐步加深,数据的价值也日益显现,如何将数据分析应用到火情控制中对消防工作具有重要意义。但目前大多数研究只是针对火焰的检测,缺乏对火情的具体分析,因此笔者通过将火焰分割得到的火焰像素数组成火势发展序列,采用基于关键点的序列分段和线性拟合算法寻找火势发展主要趋势,来达到火情分析目的。另外,在序列分段的过程中,提出了一种自动确定关键点的方法,在保证序列拟合准确度的同时使分段数量更加合理。
1 火焰分割
DeeplabV3+网络是建立在DeeplabV1-3的基础上并采用了编码器和解码器结构的语义分割网络。其中编码器主要对图像特征进行提取,获取高级语义信息。在编码器中使用Resnet进行特征提取,具体结构如表1所示。该结构沿“自下而上”的路径依次连接了Conv 1、Conv 2_x~Conv 5_x共5级残差模块,x表示该级要串联的模块的数量。表1中每个中括号表示一个残差块的构成,例如 Resnet 50的Conv 2_x共有3个该模块,其中每个模块包含64个1×1卷积,64个3×3卷积,256个1×1卷积和跳跃连接,用以减轻网络层数较深时的梯度消失问题,加快训练过程。其次,Resnet中的下采样虽然提高了感受野,但太多的下采样会导致图像分辨率过小,边缘信息丢失过多。因此,设置最后一个模块中3×3卷积核的移动步长为1,保证Conv 5_x与Conv 4_x的输出分辨率相同。
表1 Resnet结构
解码器的作用是通过逐步恢复图像空间信息来捕获更清晰的目标边界,并得到密集预测。由于大尺度的低层特征图包含的边缘信息丰富,可以提升分割精度,而小尺度的高层特征图感受野较大,得到的特征更抽象[13]。为了使分割网络适应多尺度目标的检测,一般需要将高低层的特征融合,以提高检测精度,原DeeplabV3+网络就使用输出尺寸为原图像1/4大小的低层特征和编码器输出的高层特征相融合,再直接4倍上采样恢复到原始尺寸,得到最终的密集预测。但对于边缘非常不规则且尺度变化大的火焰目标,仅单次融合没有充分利用其他低层分支的有效信息,得到的分割边界较为粗糙。
针对上述问题,笔者借鉴FPN[14]多尺度目标检测网络的思想,考虑对编码器所有尺度的输出特征图都进行融合,使低层的细粒度特征能够与高层的语义特征充分融合,保留更加丰富的边缘信息。首先,为了融合不同尺度上的特征,将原网络中的上采样倍数从4倍改为2倍,通过4次的2倍上采样来逐步恢复空间尺度,减少网络逐层的信息丢失,并形成解码器中“自上而下”的路径来对应编码器中“自下而上”路径,以便后续进行特征融合。其次,特征融合的方式目前广泛使用的有add和concat,区别在于add融合方式是对每一维下的信息进行叠加,而concat是通道的叠加,即特征维度的增加。需要注意的是,以add方式进行特征融合时,两个特征的维度必须保持一致,即add方式认为叠加的各个特征贡献度是相同的。但对火焰分割结果来说,其语义性更为重要,因此在融合过程中需要考虑到高低层特征融合时的权重问题。低层特征一般具有较多的通道数,如256个或512个,而高层特征输出通道数为256个。使用通道压缩是较好的做法,文献[9]中也已说明48是较好的通道压缩数,将低层特征的通道数进行压缩,使高层特征通道数永远大于低层特征通道数,之后再使用concat方式进行通道叠加,可以大大减小网络的训练难度。网络的具体融合步骤如下:
(1)利用1×1卷积调整编码器的输出通道数为256。
(2)选择Resnet的Conv 2_x,Conv 3_x和Conv 4_x这3个卷积层的输出作为特征融合输入,通过1×1卷积将通道数压缩为48。
(3)与FPN网络中的横向连接类似,从编码器的输出高层特征开始,先采用2倍上采样并将其结果与 Conv 4_x通道压缩结果进行concat,再应用3×3卷积来细化特征,重新将特征数调整为256并作为下次融合的输入,继续使用该操作向下融合Conv 3_x层和Conv 2_x层特征。
(4)最后的一次的融合结果再经过2倍上采样后调整输出特征的通道数为2,输出结果。
网络的整体结构如图1所示,在经过4次上采样与3次特征融合后,输出分辨率逐步恢复到输入图像的分辨率,保留了更多的边缘信息。另外,低层特征与高层特征的结合,一方面增强了细节信息的表征能力,有助于模型进行更精准的预测;另一方面,反复的特征融合也有助于网络在训练过程中始终保持有效的多尺度信息,提升网络分割精度。
图1 网络结构
2 火势发展分析
2.1 序列压缩平滑与异常值处理
对火势发展情况进行分析。首先要统计火焰视频分割结果中每帧得到的火焰像素数,将其组成火势发展初始序列,如图2所示。初始序列一般较为粗糙,并且主要关注的是火势的变化趋势,而不是每帧的局部信息,因此笔者采用每隔3帧取火焰像素平均值的操作对初始序列进行压缩平滑处理,以减轻序列的抖动情况。如图3所示,压缩平滑后的序列毛刺较少,并保留了原有的火势发展趋势。
图2 火势发展初始序列
图3 序列压缩平滑结果
由于火焰的分割过程中偶尔会出现误检与漏检情况,进而导致该帧得到的分割像素数明显区别于其临近帧的像素数。因此在不影响分析结果的前提下,可将某一帧突然增大或骤降的值定义为异常值。通过一个固定长度的滑动窗口进行异常值处理,窗口越小,窗口内的异常值表现越突出。但窗口过小时又无法准确捕捉出该异常值。经过实验,针对序列异常处理,窗口长度为2时可以达到较好的效果,即当某一帧的结果值大于该帧前后各两帧的平均值2倍或低于该平均值的1/10时即视为异常值,将其重新赋为平均值,表达式为
(1)
其中,n为当前序列的总长度,M表示以第i帧为中心的k帧窗口值,f(i)为第i帧的处理结果值,异常值检测窗口的移动步长为1。
图3序列经过异常值处理后的结果如图4所示,虚线圈内为异常值部分处理后的结果。
图4 异常值处理结果
2.2 基于序列分段与线性拟合的火情分析
基于关键点的序列分段算法[15]通过生成一系列关键点达到序列分段的目的,可以有效控制全局误差。如图5所示,该算法首先用直线连接当前序列的首尾两点,通过遍历当前序列,寻找与该直线最远垂直距离[16]的点,若该距离不小于分段阈值,则将其作为一个关键点Ii;然后将序列从Ii处划分为左子序列和右子序列;再利用相同的方法寻找左子序列中的关键点和右子序列中的关键点,继续依次递归地划分左右子序列和寻找关键点,直到所有最远垂直距离小于初始设定的分段阈值时结束。
图5 基于关键点的序列分段
通过上述算法可以得到序列中的所有关键点,这些关键点既是极值点,也是趋势变化的转折点,因此可以作为序列的分段点。在此基础上再加上整个序列的首尾两点,就得到了序列的全部分段点(I0,I1,…,Im),这m+1个分段点就能依次将序列划分为m段(L1,L2,…,Lm)。
由于笔者主要通过获取火势发展的关键趋势来对火情进行分析,序列整体与各分段的线性拟合斜率是关键指标。因此,对整个序列及所有分段(L1,L2,…,Lm)基于最小二乘法做出线性拟合,即利用拟合直线上因变量值与实际值的残差平方和最小作为优化目标,定义如下:
(2)
其中,yj为第j帧的序列值,n为当前需要拟合的序列值总数,(k,b)为拟合直线的斜率与截距。斜率的正负即对应了火势的增长与下降;斜率的大小表示火焰总体的变化大小,该值越大,表示火焰变化越大;当该值较小并接近于0时,说明火焰正处于稳定的燃烧阶段。
当火焰增长没有受到太多外部环境干扰时,会经历“初起—充分发展—衰减”3个主要的阶段。首先,初起阶段体现为火焰像素值从0开始突然持续上升,由于刚开始火焰增长较为缓慢,因此该段对应的斜率值也较小。相比之下,充分发展阶段的斜率值就大得多,该阶段内火焰快速燃烧,到该段的末尾时火势会达到峰值,之后进入衰减阶段。衰减阶段的明显特征就是斜率为负,火焰像素数持续下降,当火焰像素数降低至0且没有再上升时,说明火焰熄灭。但火焰如果受到了风力等外部影响,火情就会变得更加复杂,分段数量也会随之增加。
2.3 关键点的选取
在上述序列分段算法中,分段阈值的设定决定了关键点的选取,也决定了分段序列拟合的结果。分段阈值的设定需要人工估计,难以取得稳定的效果。分段阈值小时,得到较多关键点,分段的数量也越多,但无法提取出火情发展的几个关键趋势。分段阈值太大时,得到的关键点又太少,少的分段数量难以准确反映火势实际发展趋势。因此,分段阈值的设定必须在分段数量与分段拟合准确度之间取得平衡。
当分段阈值从0开始增加时,由上述序列分段算法可知分段数量会不断下降,最大与最小的分段数在量级上相差较大,因此将其归一化到[0,1]范围,以便后续与拟合准确度一同寻找最佳阈值,定义归一化分段率公式为
(3)
其中,Si是阈值为i时的归一化分段率;Xi为阈值为i时的分段数;当阈值取0时得到最大的分段数Xmax;Xmin为最小的分段数,设定为2,即至少将序列划分为2段。
分段拟合准确度的计算主要考虑序列真实值与拟合值之间的关系,由于序列真实值可能为0,因此在其做分母时加1处理,表达式为
(4)
其中,Ai是阈值为i时的分段拟合准确度;m是总分段数;n是序列总长度;yj是第j帧序列真实值;fk(j)是第j帧所处第k段的线性拟合函数值,由式(2)根据其分段内的序列值拟合而来。当分段数Xi减少时,Si相应减小,由于序列总长度是固定值,因此,每个分段的序列长度就会变长,即式(2)中的n变大。基于最小二乘得到的拟合函数值也会相应增大,进而每个分段的误差值增大,总误差增大最终导致分段拟合准确度Ai减小。因此可知Si和Ai之间为正比关系,二者同步减小,但二者差值是变化的,若某一阈值可以取到最大差值,则说明该阈值能够在较高分段拟合准确度和较低分段数量上取得最佳平衡,可以作为最终的分段阈值。
如图6所示,让分段阈值从0开始递增,归一化分段率下降到0时停止,找到其中使得分段拟合准确度Ai与归一化分段率Si之间的差值达到最大的阈值T,作为最终的分段阈值,如式(5)所示。
图6 分段阈值的设定
T=max(|Ai-Si|) 。
(5)
若出现多个T,则取达到最小归一化分段率的第一个阈值。
3 实验结果与分析
3.1 实验数据集与网络训练
收集了来自土耳其比尔肯大学公开的火焰视频库中的10段火焰视频,提取其中的部分视频帧图像,利用labelme软件手工制作了语义分割标签。图像被分为背景和火焰两大类,总共制作1 000张标签图像,从中随机选取800张作为训练集样本图像,剩余200张作为测试集图像。
网络训练采用tensorflow1.9.0深度学习框架,windows10操作系统,cuda 9.0和python 3.6运行环境。在硬件平台CPU:Intel(R)Core(TM)i5-9300H@2.40 GHz;GPU:NVIDIA GeForce 1660Ti上完成网络的训练与测试。由于硬件与内存限制,设置训练中的batchsize为1,使用RMSProp优化器,并设定全局初始学习率为0.000 1。每轮训练800张训练集样本图像,设置100轮次,即共进行80 000次迭代训练。另外,为避免因训练样本集过少产生欠拟合问题,在每轮次的训练过程中随机对图像进行水平翻转、垂直翻转和旋转等操作,提升网络的泛化能力和分割精度。
3.2 评价指标
采用以下指标来评价火焰分割效果和预测性能。TP表示真实值为火焰且被分割为火焰的像素数,FP表示真实值为背景但被分割为火焰的像素数,FN表示真实值为火焰但被分割为背景的像素数。
(1)精确率指标P。计算在所有分割为火焰的像素中,真实值也为火焰像素的占比。
(6)
(2)召回率指标R。计算在所有真实值为火焰的像素中,分割为火焰像素的占比。
(7)
(3)交并比(Intersection Over Union,IOU)是语义分割常用的评价指标,用IOU表示,其计算的是真实值为火焰像素与分割值为火焰像素的两个集合的交集与并集之比,即
(8)
(4)一般情况下,P和R之间会呈现负相关性,考虑指标的平衡性,兼顾火焰分割的完整性与准确度,对以上3个指标进行加权处理,引入综合指标S,表示为
S=0.4IOU+0.3R+0.3P。
(9)
3.3 火焰图像分割结果
对测试集200张图像进行分割,分别采用DeeplabV3+与笔者所提网络。对每个网络结构中编码器使用Resnet 50和Resnet 101时的不同情况进行评估。另外,对网络选用add与concat两种特征融合方式的结果也进行对比,结果汇总如表2所示。表中数据为所有测试图像的结果平均值。
表2 火焰分割性能对比 %
由表2可知,针对火焰图像分割任务,笔者所提网络使用concat融合方式的Resnet 50和Resnet 101结构的S值分别为0.824和0.822,都大于对应的add方式的0.817和0.817,体现了concat方式的有效性。另外,采用concat方式时,从编码器的角度看,DeeplabV3+与笔者所提网络Resnet 50结构的S值分别为 0.822 和0.824,都高于对应Resnet 101结构的0.808和0.822;从网络角度看,笔者所提网络2种编码器结构的S值相对于原DeeplabV3+网络也都得到了提升,其中笔者所提网络Resnet 50_concat结构的S值达到了最高值0.824,证明其具有更好的火焰分割性能。
图7展示了不同网络结构的部分火焰图像分割结果。从图中也可以看出笔者所提网络Resnet 50_concat的分割结果更接近于标签图像。
图7 不同网络的火焰分割结果对比
3.4 火情分析结果
选取3个包含火焰的视频片段进行火势发展分析,表3为实验所用视频描述。
表3 火焰视频描述
将表3中测试视频送入网络Resnet 50_concat结构中进行火焰分割。将视频每帧分割得到的火焰像素数组成火势发展初始序列,进行序列的压缩平滑、异常值处理和分段拟合。用K0表示序列整体的拟合斜率,用Km表示对应第m分段的拟合斜率,最终结果如表4与图8所示。
表4 序列分段和线性拟合结果
从表4与图8可以看出,Fire 1的分段数为3,整体拟合斜率K0为219.8,表明该火焰在快速增长。第1个分段点在第3.6秒,即火焰初现,从第3.6秒到第14.4秒,拟合斜率为98.7,该阶段为火焰燃烧的初起阶段,也是控火、灭火的最佳时期;第2段在第14.4秒到第18秒之间,斜率为655.7,增长速度较快,属于火焰的充分发展阶段,此时燃烧面积迅速扩大,火势最为猛烈,到第18秒时火势达到最大;随后第3段从第18秒直到结束,拟合斜率为-265.6,火势开始下降,但火焰像素数并未降低至0,表明火焰未熄灭。Fire 1的分段数少且分段拟合准确率高,说明该火势发展状态简单,外在因素影响较少。
图8 序列分段与线性拟合结果图
Fire 2的K0为0.7,接近于0,表明该火势整体变化不大。第1个分段从开始到第7.5秒,拟合斜率为8.7,增长速度较为缓慢;第2段从第7.5秒到第11秒,第3段从第11秒到第13.7秒,斜率分别分别为8.7和-12.8,对应火势的短暂增长与下降,最后一段斜率也接近0。该火焰的开始和结束时刻火焰像素数都不为0,即该火焰是火情发展的中间一段时刻,火焰整体变化幅度小,说明其一直处于稳定的燃烧阶段。
Fire 3的K0为-2.7,表明该火焰呈缓慢下降趋势。该火焰初起于第4.8秒,第1段在第4.8秒到第7.6秒之间,拟合斜率为100.6;随后的第7.6秒到第10秒之间火势开始下降,并在第10秒时火焰像素数降低至0,火焰接近熄灭;之后的第10秒到第15.6秒之间,火势又重新快速增长,并在第15.6秒时达到最大值;第4段在第15.6秒到第18.7秒之间,斜率为-136.5,火势开始下降并在末尾时接近熄灭,与第2段相似,火势都在之后一段时间内重新增长,说明这两段并不是火势的衰减阶段,而是受到了外部干扰;最后一段从第21.8秒到第26秒,拟合斜率为-42.3,火焰像素数降低至0,且直到视频末尾持续为0,说明该段才是火势真正的衰减阶段,第26秒是火焰的最终熄灭时间。Fire 3的分段数最多且分段拟合准确度较低,说明该火焰的发展情况较为复杂,可能受到了外界因素影响,符合表3所述的火势实际发展情况。
4 结束语
笔者提出了改进DeeplabV3+的火焰分割与火情分析方法。首先,在火焰分割网络中,采用了Resnet结构对火焰特征进行初始提取,并且针对火焰的多尺度特性,在解码器模块中增加了高低层特征的融合信息并逐步恢复对应的空间维度。通过实验对比,相较于原网络,改进后的模型具有更高的分割精度。其次,将火焰视频每帧分割得到的火焰像素数组成火势发展序列,利用序列分段与线性拟合算法,获得了火势发展的重要转折点与主要的趋势变化,并且通过分段数与分段拟合准确度之间的关系自动寻找分段阈值,省去了用户手动输入参数的操作。实验证明,笔者提出的算法具有较好的性能,可为火情分析与控制提供有效帮助。