APP下载

基于光流改进与YOLOv3的烟雾检测方法

2021-01-23李澎林章军伟

浙江工业大学学报 2021年1期
关键词:光流烟雾动态

李澎林,章军伟,李 伟

(浙江工业大学 计算机科学与技术学院,浙江 杭州 310023)

火灾是一种频发灾害,对人们的生产生活构成严重的威胁和破坏,而早期烟雾实时检测与报警对火灾救援极为重要。传统的火灾检测装置探测范围小、设备成本高,且极易受天气光照等影响,火灾误报率较高。随着图像识别技术的发展和视频监控设施的广泛应用,基于视频的烟雾识别方法成为国内外学者的研究热点。

烟雾特征主要由色彩、纹理等静态特征和湍流、飘动等动态特征组成[1],对烟雾识别的研究也主要集中在烟雾特征提取算法上。李笋等[2]提出了一种基于烟雾色彩图像增强和MSER检测的烟雾算法,通过增强色彩变换突出烟雾区域用于图像分割并检测。Yuan等[3]通过分析烟雾的亮度和饱和度,利用积分图提取Haar特征进行烟雾检测。Qureshi等[4]采用静态背景模型通过差分的方法提取前景目标检测和分割移动区域。董兰芳等[5]提出了一种基于图像分离检测方法,通过混合高斯模型和统计非参数方法结合暗通道得到候选烟雾区域,并进一步提取局部二值模式特征使用支持向量机进行分类和判别。Dimitropoulos等[6]提出了使用HSV颜色模型中的3 个通道以及HOG特征形成4维3D块组成一个张量,然后提出高阶线性动态系统(h-LDS)进行分析,通过大量特征提取和分类的文献表明:提取单独一个或者多个特征和图像预处理方面的增强并不能满足综合复杂环境的烟雾检测,随着深度学习方法在目标识别领域的广泛应用,通过大数据样本训练、自学习,以实现特征提取和分类器的联合优化,弥补了目标复杂特征刻画带来的不足。陈俊周等[7]采用时空卷积网络进行烟雾检测,其中空域CNN和时域CNN分别关注静态纹理和动态纹理,后者基于前者二次识别。Yin等[8]提出了基于循环神经网路的烟雾检测网络。高丰伟等[9]采用均滤波的方法先对视频帧进行过滤,结合卷积神经网络和动态纹理特征提出了一种混合矩阵的判定方法。文献实验结果表明:深度学习方法相较于特征提取方法有着更好的准确性,但检测效率还有待提升;同时,端对端的网络结构忽略了连续帧间的联系,也忽略了烟雾的动态特征。

综上所述,笔者提出一种基于光流改进和YOLOv3[10]的烟雾检测方法。该方法通过实时性网络YOLOv3网络进行烟雾样本训练,得到烟雾检测模型。在具体烟雾检测过程中,通过改进光流算法,建立连续视频帧间联系,实现对烟雾动态前景的第一次初筛;进而结合已得到的烟雾检测模型,进入YOLOv3网络进行二次烟雾检测。实验证明:运用笔者方法进行烟雾检测,检测的精度及效率均有一定的提升。

1 整体算法流程

基于光流改进和YOLOv3的烟雾检测方法包括改进光流算法动态前景提取和YOLOv3网络检测两个部分:第一部分通过改进的光流算法对运动区域图像进行捕捉和分割,去除不符合烟雾动态特征的区域完成第一次筛选;第二部分对于处理好之后的视频帧通过YOLOv3模型对烟雾区域进行二次筛选,检测出视频帧中的烟雾。整体流程图如图1所示。

图1 烟雾检测流程图

2 YOLOv3模型与训练

2.1 YOLOv3模型

基于烟雾检测实时性要求,在烟雾检测算法上选择了实时性强且准确率较好的YOLOv3目标检测算法。该算法是一种单步法检测算法,通过在一个神经网络模型中进行预测目标区域和目标类别进行测算。相较于Faster R-CNN和Marsk R-CNN等两步法的网络,其具有相近的准确性,又有这些网络所不具备的实时性优势。

YOLOv3采用了新的resnet思想的darknet-53网络结构,如图2所示。在网络中加入残差模块,并采用3 个不同尺度的特征图来进行对象检测,能够检测到更加细粒度的特征。网络的最终输出3 个尺度分别为1/32,1/16和1/8的特征图。在第79层之后经过几个卷积操作得到的是1/32(13×13)的预测结果,下采样倍数高,这里特征图的感受视野比较大,因此适合检测图像中尺寸比较大的对象,这个结果通过上采样与第61层的结果进行张量拼接,再经过几个卷积操作得到1/16的预测结果,适合检测中等尺度的对象,第91层的结果经过上采样之后在于第36层的结果进行张量拼接,经过几个卷积操作之后得到的是1/8的结果,它适合检测小尺寸的对象。最后,相对于YOLOv2预测对象类别时不再使用softmax而是改成使用logistic的输出进行预测。这样的操作能够支持多标签对象。

图2 YOLOv3 结构图

2.2 模型训练

通过对常见的火灾场景进行数据采集和检测实验,最终选定4 个场景的烟雾视频进行切分成帧、标定并制作成烟雾数据集。本次数据集中共有6 000 张不同分辨率且场景各异的烟雾图片,然后输入到YOLOv3网络模型中进行训练。具体步骤为

1)数据集制作。首先,在不同场景进行烟雾的视频录制,对录制完成的视频进行视频帧抽取;其次,对数据集图片进行图片预处理包括图像增强、滤波去噪和图片筛选等操作;最后,对数据集图片的烟雾区域标定和对应的烟雾坐标信息作为训练模型的输入。

2)模型训练。反复多次训练模型和参数调整,结合同步训练结果和网络本身结构最后设定初始学习率为0.001,单位轮数为8,最大迭代次数为100 次。损失函数如图3所示。由图3可知:训练轮越多,损失函数越小,跟期望输出也就越接近。

图3 平均损失函数图

3 疑似烟雾区域筛选

对疑似烟雾的区域筛选:首先利用改进光流算法完成对动态区域的一次筛选,然后将框定的动态区域输入到YOLOv3网络完成二次筛选并最终检测烟雾。

3.1 改进光流算法一次筛选

3.1.1 LK光流算法

烟雾的产生环境复杂多变,烟雾的特征容易受到周围环境的影响,给单帧图像的识别造成困难。在诸多烟雾特征中,动态特征最为明显,光流法通过分析连续视频帧间的联系可以快速、高效地框定动态区域检测动态特征。同时,通过提取视频中的动态区域,可以有效地减少静态区域的非烟雾图像的识别和错检,从而保证视频烟雾的检测准确和高效。

光流算法是一种基于像素点运算的算法,通过估算两帧图像之间变化捕捉运动像素点,最早由Lucas和Kanade提出[11],故简称为LK光流算法。光流算法适用的条件[12]:1)亮度恒定,一个像素点随着时间变化其亮度值是恒定不变的;2)小运动,在很小的时间内不会引起运动目标的剧烈变化;3)空间一致性,相邻像素点运动一致。

假定t时刻空间中的一点(x,y)亮度值为I(x,y,t),那么该点在一小段时间Δt内运动到新的位置(x+Δt,y+Δt),新的亮度值为I(x+Δt,y+Δt,t+Δt)。由于该点在时间段Δt内其相邻运动像素点之间的亮度值不变∂I(x,y,t)/t=0,由于亮度恒定I(x,y,t)=I(x+Δt,y+Δt,t+Δt)且图像运动微小,通过泰勒展开并忽略其二阶无穷小得约束方程为

IxU+IyV+It=0

(1)

式中:U和V分别为光流沿X轴和Y轴的速度矢量;Ix和Iy分别为像素点(x,y)在t时刻的偏导数。将像素点带入式(1),通过最小二乘法[13]得光流向量为

(2)

通过光流轨迹和边缘轮廓点可以判定烟雾的大致运动区域,有效地分离出动态前景以及静态背景,处理效果如图4所示。由于烟雾的动态运动这一重要特征,可以将静态区域划定为非烟雾区域,从而完成烟雾第一次粗筛。传统LK光流算法可以有效分离出动态前景和静态背景,但由于火灾发生时周围环境因素复杂多变,如风向、风速等因素会影响烟雾的扩散,从而导致烟雾整体轮廓复杂且模糊。同时,烟雾本身的浓度稀薄、扩散速度过快等体态特征也导致了烟雾整体轮廓的复杂模糊、稀薄烟雾区域的漏检以及烟雾区域的缺失。

图4 LK光流法处理结果

3.1.2 改进光流算法动态区域提取

对不同场景的烟雾进行对比和分析得出传统的LK光流算法提取前景的不足,通过分析光流特征点的分布建立二维坐标系并记录离坐标轴最远的光流特征点。在通过传统光流法得到的特征点的基础上,对动态区域进行扩大和矩形框定。通过改进光流算法对动态前景的提取和粗筛,可以有效减少检测的运算量和对静态场景区域的误检情况。具体改进步骤如下:

1)输入视频帧,以左上角为原点O对视频中的图象建立直角坐标系[14],如图5(b)所示。计算超定方程组式(2)并记录每一个特征点横坐标放入特征点坐标集合X:{x1,x2,x3,…,xn},纵坐标放入Y:{y1,y2,y3,…,yn},进而估算光流的运动轨迹,显示光流的运动轨迹。

图5 动态前景区域图

2)通过集合X计算出相对于y轴的最近距离xmin和最远距离xmax。同理,计算出相对于x轴的最近距离ymin和最远距离ymax。

3)通过(xmin,ymin)和(xmax,ymax)两组坐标划定动态区域[xmax∶xmin,ymax∶ymin]为烟雾动态前景区域。考虑到由于烟雾本身如浓度、速度等形态学特征导致光流算法特征点的漏检等情况,引进α和β两个调节量用于扩大动态前景区,改进后的动态前景区域为[xmax+β∶xmin-β,ymax+α∶ymin-α],如图5(b)虚线区域所示。当烟雾应用场景为室外等受风影响较大烟雾变化较快的场景α和β需设定较小,动态区域明显。当烟雾检测应用场景为室内等受风影响较小烟雾变化缓慢的场景α和β需设定较大来防止前景区域过小来带的检测不准的情况。实验表明:根据α和β两个调节量的改变可以更好地适应不同烟雾场景下的检测。

4)将划定后的区域作为第一次烟雾的疑似区域进行图像分割。在原图的基础上提取出图片的动态前景区域。大量实验表明:改进的光流算法可以有效、准确地完成图片的动态前景提取。针对操场、竹林和大楼这3 个不同的场景进行实验对比,实验结果如图6所示。图6(a)为不同场景下没有处理的原图;图6(b)为光流法处理后带有烟雾轮廓的效果图;图6(c)为改进光流算法处理过后的效果图。由图6可知:在不同场景下,改进的光流算法可以有效地提取出动态前景所覆盖的大部分范围,同时对动态前景轮廓进行适当扩大。

图6 光流法改进前后效果对比图

3.2 YOLOv3模型二次筛选

将一次筛选框定的动态前景区域输入YOLOv3模型完成烟雾的二次筛选,如图7所示。YOLOv3通过特征提取网络对输入的图像提取特得到一个N×N的维度为N×N×(B×(5+C))的特征图,其中N为网格的数目;C为网格类别数目;B为网格负责目标数目。在特征图上确定先验框(cx,cy,pw,ph),如图8虚线矩形框所示。其中cx和cy为网格中心到图像左上角的距离;ph和pw分别为先验框的高和宽。通过输入的特征图预测输出的(tx,ty,th,tw,to),其中tx和ty用来偏移先验框到中心检测框;pw和ph则用来缩放先验框到检测框大小;to为置信度。通过非极大抑制算法进行处理,得到最后的检测框(bx,by,bw,bh),如图8实线框所示。其中bx和by表示预测目标的坐标;bw和bh表示预测目标的宽和高,具体计算公式为

图7 YOLOv3识别效果图

图8 Bounding box坐标

(3)

4 结果与分析

4.1 实验环境

所有仿真结果基于Inter(R)Core(TM)i7-7700HQ@ 2.80 GHz处理器,16 GB内存,操作系统为Ubuntu 16.04,编程语言使用Python 3.6,使用PyCharm 2018开发环境编写算法,每帧图像分辨率为640×480。

4.2 准确率对比

为了验证笔者模型的可行性,选取了特征提取算法Haar[15],YOLOv3算法和笔者算法进行烟雾检测和对比分析。选取操场、车内、住宅和工厂这4 类火灾易发点进行实验。针对烟雾检测的准确效果好坏,采用了查全率recall和误检率N两个评价标准对实验结果进行分析评价,表达式为

recall=TP/(TP+FN)

(4)

N=FN/(TP+FN)

(5)

式中:TP为正确检测为烟雾的视频帧数;FN为错误检测为烟雾的视频帧数。笔者从查全率和误检率两个方面对烟雾检测的效果进行评价,可知在不同场景下的烟雾检测效果有较大的差异。但是笔者算法相较于Haar和YOLOv3两种算法,有效提高了烟雾检测的准确率,降低了误检率,具有较好的鲁棒性。不同算法在各场景中的查全率和误检率如表1所示。

表1 不同算法在烟雾视频检测中的查全率和误检率

不同算法在各场景下的烟雾检测效果如图9所示。由图9可知:相同算法在不同场景中识别效果亦有差异。由于烟雾特征极易受到周边环境因素的影响,如操场和住宅这两处代表场景,容易受到风的影响导致烟雾的稀薄程度变化迅速。Haar算法未能对稀薄特征的烟雾区域进行完整的框定仅提取出部分烟雾,在工厂这一场景中Haar算法对于非灰白色烟雾场景提取效果也较差。因早期烟雾检验烟雾范围小等特点,Haar算法和YOLOv3算法对烟雾检测的效果并不理想,对中期烟雾检验烟雾特征则较明显、透明度较小。YOLOv3算法和笔者算法可以准确地完成烟雾框,但是相对于YOLOv3算法,笔者算法在框定范围上更为精确,漏检和误检率相对较小。

图9 不同算法在各场景下的烟雾检测效果图

4.3 检测速度对比

笔者算法通过对烟雾动态特征进行捕捉,选取实时性较好且目标识别高效的YOLOv3网络,可以很好地完成早期烟雾的检测。火灾前期烟雾实时检测对火灾发生时的及时报警扑救有重大意义,因此,可选取从第一帧烟雾出现至第一次检测到烟雾的时间作为烟雾检测的一个评价指标,称为初次烟雾检测时间指标,记为ts。现选取户外、室内和车内等3 处场景,对Haar,YOLOv3和笔者算法进行分析对比实验,具体实验结果如表2所示。

表2 不同算法的初次烟雾检测时间

由表2可知:因早期烟雾体积小、烟雾稀薄等特征[16]相对不明显,传统人工特征提取算法Haar对烟雾早期目标的检测效果较差,只能检测中期较大烟雾的情况。YOLOv3和笔者算法可以及时、有效地检测烟雾,二者在实时性上效果相当。不同场景对烟雾实时性检测的效果也不尽相同,风况、光照等因素对户外首次检测到烟雾时间的影响要明显大于室内、车内等场景。

5 结 论

通过对烟雾数据的研究,提出了一种基于传统光流算法改进与YOLOv3的烟雾检测模型。该模型首先改进了传统光流算法,完成了视频帧图像动态前景的框定,有效地降低了静态区域的烟雾错检和漏检的概率;进而利用训练好的端对端网络YOLOv3进行二次筛选;最终框定烟雾的具体区域和位置,将传统的特征提取识别问题转化为线性回归问题,有效地避免了因有限特征不足带来的识别上的弊端。实验结果表明:该模型具有较高的准确性和鲁棒性。但是,实验中也反映出了笔者算法存在的不足,如烟雾距离视频采集点较远,烟雾边缘变化缓慢引起前景提取困难,从而导致识别效率的降低,后续的研究将针对该问题进行算法优化。

猜你喜欢

光流烟雾动态
利用掩膜和单应矩阵提高LK光流追踪效果
国内动态
基于改进Cycle-GAN的光流无监督估计方法
国内动态
国内动态
一种多尺度光流预测与融合的实时视频插帧方法
薄如蝉翼轻若烟雾
基于自适应纹理复杂度的仿生视觉导航方法研究
影视剧“烟雾缭绕”就该取消评优
动态