谢 宏,陈祎婧,袁小芳,陈海滨,王立宸
湖南大学 电气与信息工程学院,长沙 410082
随着计算机技术和电子技术的发展,利用机器视觉技术结合智能监控设备进行火灾检测,解决了很多大空间、室外等场所的火灾探测难题,且具有响应快,不受环境因素影响、适用面广、成本低等优点[1]。现有的视频烟雾监测系统取得了一定的成绩,但仍存在误报、漏报情况,提高检测准确度,降低误报率,是目前视频烟雾检测研究的关键。
疑似烟区分割是视频烟雾检测中非常重要的一步,该过程往往通过运动检测来将可能是烟雾的区域从视频中提取出来作为后续烟雾识别的输入,疑似烟区的准确性可以加快后续处理速度,其完整性将直接影响到烟雾分类识别的性能。背景减除法因其对固定设备视频中复杂背景的动态变化具有良好的适应性而被广泛应用于烟雾检测中。Kim等[2]单独使用混合高斯模型并不能提取到完整的疑似烟区。董兰芳等[3]通过混合高斯建模和统计非参数方法建立背景模型,并结合暗通道提取疑似烟区图像,但该方法对黑烟效果较差。针对烟雾在场景中缓慢扩散的特性,Ye等[4]将缓慢运动区域与三帧差法得到的前景相结合,得到疑似烟区,改善了疑似烟区内部空洞问题。以上方法基本可实现疑似烟区分割,但对于一些特殊场景下的运动不明显的烟雾运动检测还需要进一步的改进。
在烟雾识别方面,传统的烟雾检测方法主要是通过人工提取多种烟雾特征并融合,训练简单的分类器进行烟雾检测[5-7]。Appana 等[8]利用烟雾的光流运动纹理结合空间频率能量谱,通过支持向量机进行烟雾检测,然而该方法依靠手工设计提取特征往往需要较强的先验知识,泛化能力较弱。近年来,卷积神经网络(CNN)在目标检测领域取得了非凡的成就,部分学者将其引入到烟雾检测中[9]。陈俊周等[10]将2D CNN网络用于烟雾检测中,提出了一种级联的卷积神经网络烟雾纹理识别框架,融合动静态纹理信息,取得了较好的效果。而Hu等人[11]则提出一种双流卷积网络,将RGB图像和光流轨迹作为输入,分别提取时空特征,通过SVM进行融合后对烟雾视频进行识别。相比于采用2D CNN 网络独立提取时空域信息再进行决策级融合,3D CNN 网络[12-13]在像素级融合时空域信息能够更好地表达时空特性。为了克服3D CNN 网络参数庞大,计算时效性低的问题,Qiu 等人[14]提出一种 Pseudo-3D ResNet(P3D)网络结构,将3D CNN分解为两个伪3D CNN,实现了2D CNN到3D CNN的拓展,保证了网络的分类识别能力的同时缩小了网络参数量。为了提高网络检测效率,常在网络中引入注意力机制,对网络进行优化,提高网络的性能[15-16]。
基于以上存在的问题,本文提出几个改进点:
(1)一种改进的疑似烟区分割方法,基于混合高斯模型建立的背景模型与原始视频帧的小波低频分量差进行前景提取,改善了烟区内部空洞的问题,得到更为完整的疑似烟区。
(2)受Pseudo-3D ResNe(tP3D)网络结构启发,提出时空双路3D 残差卷积神经网络融合烟雾时空域特征,引入注意力机制,对时空域网络特征通道进行重标定后再融合,筛选出对分类结果影响较大的特征,提高网络检测效率,并将固定长度的连续视频帧作为网络输入,实现端对端的烟雾识别。
经过实验验证,本文方法在提高烟雾检测准确率,降低误检率上均取得了一定的效果。
本文采用背景减除法进行烟雾视频的运动分割,通过对一定长度的视频帧图像建立动态数学背景模型,再将背景模型与原视频帧图像进行差分,从而得到前景图象,同时根据视频序列中的原始帧图象的变化对背景模型进行实时更新。
本文采用文献[17]中提出的自适应混合高斯模型对背景进行建模,利用像素点与背景模型中K个高斯分布的关系来对背景模型进行动态更新。
混合高斯背景模型中每个像素点由K个高斯分布加权而成,在t时刻像素点xt的混合高斯模型概率分布公式为:
其中,xt是像素点在t时刻的颜色值,包括红绿蓝三分量,αk,t是权重系数,表示像素点属于第k个高斯模型的可能性,Φ(xt|θk,t)表示第k个高斯模型的密度分布,θk,t=(μk,t,σk,t2)为时刻t混合高斯模型中第k个高斯分布的均值向量和协方差矩阵。
当t时刻像素点xt的值与t-1 时刻的K个高斯函数中的某一个函数相匹配,则认为该像素归为背景点,否则将其归为前景点,前景图像像素点Ft(i,j)满足
其中,i,j为像素点的位置。根据文献[17]中的公式对背景模型参数进行更新。该方法在权值更新公式中引入了常量cT:
其中,r为学习率,为分布模型的归属因子,最符合像素值分布模型的归属因子为1,其他分布模型为0。随着像素点的更新,当某个高斯分布的权值为负时将其舍弃,因此,针对视频帧中像素点变化速度不一致的区域,权值更新幅度也会产生差异,实现了高斯分布数量的自适应,减少了算法运行时间。
t时刻的背景模型Bt由每个像素点中权重较大的前B个高斯背景模型组成,满足:
其中,T1表示像素点被归为前景点且不影响背景模型的最小比率。
由于烟雾为形态不固定的流体,其运动特征在边缘运动幅度较内部运动幅度要明显,且扩散需要一定的时间,尤其是过于稀薄和浓厚的烟雾,由于上述混合高斯背景建模方法往往依赖于像素点与多个高斯分布之间的方差阈值,而烟雾内部变化不明显的像素点常常被归为背景模型,对于尤其是过于稀薄和浓厚的烟雾,通过上述混合高斯背景模型难以得到完整烟区。本文列举了4种烟雾情况,图1(a)从上至下分别为扩散范围较大的稀薄烟雾、运动迟缓的浓厚烟雾和两个普通场景下烟雾视频的原始图像。图1(b)为直接采用上述混合高斯模型由公式(2)获取的前景,该前景图像中往往只包括烟雾的边缘图像,烟雾内部存在一定的空洞,尤其是前2种情况的烟雾几乎检测不到。
本文将由公式(4)得到的t时刻的混合高斯背景模型图像Bt和当前帧图像It进行二维离散小波分解,选用db2小波函数作为基函数,得到背景模型图像的低频近似分量LLB和原始视频帧图像的低频近似分量LLI,将二者进行差分,得到差分图像Dt作为前景图像,差分图像像素点Dt(i,j)满足:
其中,T2为阈值,实验验证将其设置为20时效果较好,i,j为像素点的位置。
该方法借助二维小波分解,提取背景模型和当前视频帧的低频近似分量,滤除了部分高频噪声,保留了背景图像和当前视频帧的基本内容,由二者直接差分得到完整的运动前景图像且减少了噪声干扰,解决了部分烟雾内部的微小运动难以检出的问题,取得了不错的效果,得到了较直接采用上述混合高斯模型方法更为完整的疑似烟区。
图1(c)为4 种情况的背景图像与视频帧图像的小波低频差分图像,与图1(b)相比,不仅包括了运动幅度较大的烟雾边缘,对于不同场景中的烟雾都能得到内部较为完整的疑似烟区,有利于后续的烟雾识别过程,降低漏报的概率。为了去除差分图像中的噪点,对前景图像进行了中值滤波和形态学处理中的膨胀和腐蚀操作,最终提取到的前景图像如图1(d)所示。
图1 前景提取
由于烟雾整体各处性质相似,为了提高检测效率,本文采用分块检测的方法。将连续N帧视频划分成固定大小为m×m的互不重叠的小视频块,滤除视频图像中运动微小的视频块,仅将前景图像掩膜中所对应的那些视频块作为后续双路3D残差卷积烟雾识别网络的输入。
烟雾特征因其所在环境不同而存在较大差异,人工设计提取的烟雾特征往往受到某些与烟雾外观或者运动相似物体的干扰,难以适应复杂场景下的烟雾分类识别。为了实现端对端的烟雾分类识别,通过3D CNN网络融合烟雾的颜色、纹理等时域特征和烟雾的运动方向、幅度等空域特征。本文提出一种时空双路3D 残差卷积网络结构,将3D 卷积层分解为两个伪3D 卷积层,分别提取视频的时域特征与空域特征,并引入注意力机制,对时空域网络特征通道进行重新标定,分别对时空域网络进行加权,筛选出对分类结果有利的特征,再将时空域特征融合得到最终的分类识别网络,以视频块为输入,直接得到分类结果。
本文提出的双路3D残差卷积网络结构是受Pseudo-3D ResNe(tP3D)网络结构[14]的启发,用伪3D思想实现了新的3D残差卷积网络结构。
Pseudo-3D ResNet(P3D)网络结构将卷积核时域深度为dk,空域大小为k的dk×k×k的3D残差网络结构,用大小为dk×1×1 的时间卷积核和大小为1×k×k的空间卷积核两个伪3D 网络结构来代替,在保证同等分类能力的情况下减少了网络的参数量。对于d×w×h×c的输入特征图,其中d为视频帧长度,w为视频宽度,h为视频高度,c为视频帧输入特征维度,经过大小为dk×k×k的3D卷积核的计算参数量为:
而对于分解后的伪3D卷积核的计算参数量为:
由此可见,伪3D卷积核计算参数量是3D卷积核的dkk2/(dk+k2),极大地减少了网络参数个数,同时能够保证良好的分类能力。
本文提出的时空双路网络结构,是将P3D网络块串联的1×3×3 的空间卷积核和3×1×1 的时间卷积核,如图2(a),拆分为单独的包含1×3×3 的空间卷积核的S-P3D 卷积层和单独包含3×1×1 的时间卷积核的T-P3D卷积层,分别构造时空网络。由此得到时空双路3D残差卷积网络的基础结构:S-P3D网络块,如图2(b),和T-P3D网络块,如图2(c)。
为了增加网络的非线性表达能力,在S-P3D 卷积层/T-P3D卷积层后加入ReLU激活函数层[18]。有无ReLU激活层的网络训练精度对比结果如图3 所示。可以看出使用ReLU 激活层后,网络的训练精度更高,模型的拟合能力更强。同时,在ReLU 层前面引入BN(Batch Normalization)层[19]对卷积层网络的输出进行批归一化,使其规范化为正态分布作为激活函数的输入,有助于解决了不同层数据分布不一致和梯度弥散的问题。将多个T-P3D网络块连接和多个S-P3D网络块连接,构造时空双路网络,用来分别提取烟雾的时空特征。
图2 P3D网络块和时空双路网络基础结构
图3 ReLU激活层对训练精度的影响
为了提高检测效率,引入注意力机制,自动学习时域网络和空域网络中提取特征的重要程度,提升对分类有利的特征,抑制对分类无用的特征。文献[20]提出了一种注意力模型Squeeze-and-Excitation Network(SE Net),在网络训练过程中可以自动对特征进行重新标定,本文将其拓展应用于3D 卷积网络中,分别对时空双路网络的特征通道进行加权,提高网络的分类识别能力。该网络结构包括以下三步操作:
(1)Squeeze 操作:将大小为d×w×h×c的输入,通过一全局池化层,对输入张量中除特征通道维度c之外的所有维度进行压缩,使其转化为一特征通道数大小的实数向量,大小为1×c。
(2)Excitation 操作:通过一个全连接层对转换的特征向量进行压缩,使其维度降低到c/r,大小为1×c/r,再经过ReLU函数激活后通过一个全连接层,得到一个输出维度与输入特征通道数相匹配的特征权重向量,大小为1×c。
(3)Reweight操作:再通过Sigmoid函数将权重归一化,最后将Excitation 操作得到的权重对特征通道进行加权,从而实现对特征的重标定。
本文在时空两路网络中接入3D-SE层,分别得到时域注意模型T-3D-SE 和空域注意模型S-3D-SE,如图4(a)和(b)。
图4 引入注意力机制的时空域网络
图5 为时域与空域权重随着网络训练步数的变化情况,其中横坐标为训练步数,纵坐标为特征权重值,即3D-SE层的Reweight操作中归一化后的特征通道权值,范围为(0,1),越接近于0 表示该特征几乎对分类结果无影响,越接近为1 表示该特征对分类结果影响颇大。图5(a)、(b)中的12 条曲线分别为时空域网络中 P-3D卷积层在加入3D-SE注意力层后的12个特征通道的权重变化趋势,可以看出,加入了3D-SE层后,在训练的过程中,时空两路网络的特征通道重要性也在逐步发生变化,筛选出了对分类结果有用的特征并抑制用处不大的特征。
图5 时域与空域权重变化图
本文提出的时空双路网络借助P3D 网络的思想采用伪3D卷积结构替代3D卷积提取时空特征,通过将串联的时间卷积层和空间卷积层拆分为时空双路网络,并引入注意力机制,分别对时空特征通道进行加权后融合,提高了网络的检测性能。本文提出的时空双路3D残差网络结构整体框架如图6所示。
输入网络:将大小为d×w×h×c的小视频块作为网络的输入,通过一层含有16 个卷积核大小为1×1×1的3D卷积层,对输入进行升维并提取低层时空域特征。
时域和空域网络:将大小为d×w×h×16 的输入,分别通过由S-P3D-SE 网络结构块和T-P3D-SE 网络结构块与3D 池化网络结构块组成的时空域网络,得到两个大小为的时域特征层和空域特征层。
图6 时空双路3D残差卷积网络
S-P3D-SE/T-P3D-SE 网络块分别由两层S-P3D-SE/T-P3D-SE网络层和一层3D池化网络块连接而成,其中的3D残差卷积层卷积核个数为12,输出大小为d×w×h×40。3D 池化网络结构块包括一层含有32 个大小为1×1 ×1 的卷积核的3D 卷积层,用于调整特征维度,和一层池化核大小为2×2×2 的3D max pool层,进一步对特征进行压缩,扩大感受野,输出大小为
输出网络:将时空双路网络提取的特征在特征通道维度进行连接,得到大小为的时空联合特征,再通过一层含有64 个卷积核,卷积核大小为1×1 ×1 的3D卷积层对融合后的时空特征进行归一化,最后接入全局池化层,通过softmax 层评估得到最终的分类结果。
由于目前还未有统一的烟雾视频数据库,本文实验数据来源于网络上公开发表的数据集[21-22]。本文共采用了30 段视频,视频图像大小为320×240。将视频分为长度为8 帧,大小为36×36 的互不重叠的小视频块,将其R、G、B 三个分量作为初始输入特征,得到19 940 个烟雾视频块样本,22 387个非烟雾视频块样本用于网络的训练,其中60%作为训练集,40%作为测试集。本文基于Python 的深度学习库TensorFlow 框架对网络进行训练和测试,利用GPU 进行加速,采用Adam 优化算法进行训练,训练批大小设为256。测试视频的帧速率大多为25 帧/s,平均检测速率为10 帧/s,可以满足实时检测要求。测试视频包括了颜色、距离、浓度、运动速度、场景光照存在差异的烟雾与部分类烟物体。
本文将大小为8×36×36×3 的视频块(RGB 图像)作为输入,送入本文提出的时空双路烟雾识别网络,当被检测图像帧所对应的视频块有一个被识别为烟雾,则认为该帧存在烟雾。对10 段测试视频进行检测,计算得到准确率(ACC)、虚警率(FPR),正确率(TPR),对应的计算公式如下:
式中,N为总样本数,TP为被检测为正的正样本数,TN为被检测为负的负样本数,FP为被检测为正的负样本数,FN为被检测为负的正样本数。
表1列出了实验采用的测试视频的具体内容。图7为测试视频的检测结果,图中绿色圆圈圈出的部分为被检出的烟雾。实验结果表明,采用本文提出的算法在多个测试视频中都取得了很好的效果。无论是不同颜色的烟、不同浓度的烟、不同速度的烟都能够很好地被检测到,而对于人、车子、云等类烟运动物体、白色背景的干扰和不同程度的遮挡都具有良好的鲁棒性,尤其对于一些扩散范围广,密度较为稀薄的烟(视频1、2、3、7)和运动缓慢,密度浓厚的烟(视频5),检出效果优势明显。
表1 测试视频描述
图7 测试视频检测结果
为了验证时空双路网络的有效性,本文将提出的双路网络结构与P3D网络结构进行了对比,共测试了三种网络结构:文献[11]提出的P-3D 网络结构,本文中提出的单独双路网络(T/S-3D 网络)和加入注意力机制的双路网络(T/S-3D-SE网络)。
表2 列出了三种网络结构的网络大小和网络检测速率,本文实验采用的双通路网络(T/S-3D网络)网络结构与P-3D网络结构整体结构类似,网络参数略微减少,而加入3D-SE 层的T/S-3D-SE 网络只在T/S-3D 网络上增加了非常小的参数量,并不影响网络的检测速率。
表2 三种网络结构的大小与检测速率
图8 为三种网络结构的综合检测性能对比,其中AACC为平均准确率,ATPR为平均正确率,为了让结果更加直观,图中将平均虚警率AFPR 转为平均真负率ATNR,其与AFPR 之和为1。可以看出,在网络大小近似相同的情况下,相比于P-3D网络结构,本文提出的双路网络的平均准确率、平均正确率都得到了一定的提高,且平均虚警率减小,即误报的概率降低了。图9 为三种网络结构对不同视频的检测准确率对比结果。对于大部分视频,T/S-3D双路结构要优于P-3D结构,且加入注意力机制的T/S-3D-SE 结构的检测准确度得到了明显的提升,特别是对于无烟视频8,检测准确率由85.4%提高到96.7%,且对于运动不明显、烟雾与背景颜色相似的有烟视频5和运动范围大,密度低的有烟视频7,检测准确率分别提高了5.2%和4.5%。
图8 三种网络结构的检测性能
本文还将提出的方法与基于传统手工设计提取烟雾特征,采用简单分类器进行烟雾检测的文献[8](算法1)和基于2D CNN的双流网络烟雾检测的文献[11](算法2)进行了比较,得到的实验结果如图10所示。
图10 不同算法的检测性能
通过图10 的数据可以看出本文提出的方法在有烟视频的识别准确率上要明显优于其他两种算法,具有良好的适应性。相比于算法1,通过人工设计分类特征对烟雾进行分类识别,本文建立端对端网络,自动筛选分类特征,得到了最优的烟雾分类器,平均准确率提高了3.13%,平均虚警率降低了0.73%。算法2 采用两个2D CNN网络组成的双流卷积网络,分别提取时域和空域特征进行决策级融合,实现烟雾的实时检测。本文算法采用3D CNN结构在像素级融合时空域特征相比于双流的2D CNN结构在时空结合上取得的效果更好,且采用分块检测的策略,避免了不同尺寸大小的烟雾的检测效率不一致。本文算法在算法2的基础上,平均准确率提高了1.75%,且极大降低了虚警率,达到了1.18%。
图9 三种网络结构的检测准确率
本文为了解决部分烟雾内部难以检测到的问题,利用背景模型和被检测烟雾图像的小波低频分量差,得到了相对较完整的烟区图像,有利于后续的烟雾识别,其次提出了一种时空双路3D 残差卷积网络结构,引入注意力机制对时空网络提取的时域、空域特征进行重标定,并将其用于视频烟雾分类识别,该算法同时学习时域和空域特征,在不同场景中的视频中均取得了较好的效果,平均检测准确率达到了98.36%,平均虚警率只有1.18%。由于目前网络上公开发布的烟雾检测视频数据库未能统一,且场景变化较大,数量较少,难以对算法进行很好的对比。未来将进一步改进网络结构,完善训练数据集,降低网络大小以提高检测效率。