刘 恺,刘 湘,常丽萍,陈 滨,吴哲夫∗
(1.浙江工业大学信息工程学院,杭州310023;2.浙江工业大学设计艺术学院,杭州310023)
传统火灾探测器通过分析燃烧物产生烟雾的成分、浓度或火焰周围温度升高等原理进行工作,这类探测器必须靠近火源才能正常工作,限制了其应用范围[1]。随着图像处理技术的日趋成熟,基于视频监控的火灾检测技术受到了广泛关注并进行了相关研究[2]。
火灾发生初期烟雾比火焰更明显,烟气颗粒团聚效应使烟雾区域产生较大的亮度和色度‘突变’,这可作为火灾烟雾检测的判决[3]。因此基于视频的火灾烟雾检测算法得到了广泛关注。Gubbi、Chunyu、Feiniu 等[4-6]分别使用小波变换、灰度共生矩阵、局部二进制模式方法提取烟雾特征,然后支持向量机和神经网络等分类器进行分类识别,这些方法提取的特征单一,在复杂环境中识别效果不是很理想。因此之后的一些研究者,提出了一些多特征融合烟雾检测方法;ByoungChuld等[7]将颜色、小波系数、运动方向和方向梯度直方图等时空特征组成新的融合烟雾特征;Prema等[8]将小波能量衰减、灰度共生对比度等值融合作为烟雾特征提出了种基于图像滤色和多特征的烟雾检测算法;赵亮等人[9]则将烟雾的颜色、旋转不变LBP纹理和HOG特征等特征为新的烟雾特征;这些方法在一定程度上提高了烟雾检测准确性但其特征易被环境影响,因此在复杂环境中依旧存在高误报和高漏报。
近年来,深度学习的算法在人脸识别、朝向检测[10]等领域已经取得了显著成果,同样也被引入到火灾烟雾识别领域。Sebastien等人[11]提出了一种基于卷积神经网(CNN)的火灾识别方法,通过卷积神经网络提取特征并进行分类;ZHIJIAN等人[12]也提出了基于深度归一化和卷积神经网络的图像烟雾检测算法,该方法中传统的卷积层被归一化和卷积层多替代,实现自动特征提取和分类;陈俊周等人[13]在卷积神经网络基础上提出了基于级联的卷积神经网络用于视频动态烟雾检测,可以提取烟雾静态和动态纹理特征,从而最终实现动态烟雾检测。卷积神经网络等深度学习方法进行烟雾检测无需人工选择烟雾特征和分类器,但其需要进行大量卷积和池化计算,大量商场、车站、仓库等场景中已有设备的处理能力较低,这导致基于深度学习的烟雾检测方法应用于这些场景依旧困难。
本文提出一种基于YUV颜色空间和多特征融合的视频烟雾检测算法,相比已有烟雾检测算法,其主要有以下优势:①将高斯混合模型应用于运动物体检测时同时与提出的YUV颜色过滤规则结合确定疑似烟雾区域,减少后续处理数据量同时保证提取的纹理特征仅用来区分疑似烟雾物体;②均匀局部二进制模式提取图像空域的静态纹理,并将其与离散小波变换的频域整体纹理特征融合,使融合后的特征更稳定;③将AdaBoost的改进分类器Real AdaBoost应用于烟雾融合特征分类,有效的提高了分类的准确性,算法流程如图1所示。
图1 视频烟雾检测算法流程
高斯混合模型GMM(Gaussian Mixture Model)是一种基于像素级别的背景建模方法,通过将图像的每一个像素建立若干个高斯分布模式,并对高斯模型进行动态更新,从而可以通过均值和标准差来判定运动像素[14],该方法适合检测缓慢移动物体。设在t时刻,图像帧I的像素点(x,y)处的概率分布估计为P[It(x,y)],可表示为:
式中:K为组成混合高斯的单高斯分布的个数,其取值通常取3~5,该值越大代表模型处理复杂场景的能力就越强,同时运算量也会随之增加;ωi,t、μi,t分别代表了在时刻高斯混合模型中第i个单高斯分布的权重和均值;∑i,t则代表了第i个高斯分布的协方差矩阵;η为高斯分布的概率密度函数,由下式给出:
在RGB颜色空间中,可以认为三个颜色通道像素是独立的,因此有相同的方差,其协方差矩阵可表示为:
高斯混合模型通过更新参数来帮助学习背景图像,背景随着时间的推移而变,符合任何高斯分布的像素被认为是前景像素,所有的前景像素组成该帧图像运动区域。高斯混合模型检测运动物体效果如图2所示。
图2 高斯混合模型检测的运动区域
运动区域检测虽然确定了火灾烟雾的区域,但这些区域通常还会包含由于运动而产生的非烟雾区域,直接将所有运动区域进行特征提取、识别将会耗费大量资源,还可能影响烟雾检测及时性,因此去除这些非烟雾区域是必要的。颜色是识别烟雾的重要属性[15],在低温环境下烟雾的颜色大多为蓝白色与黑色,当温度升高它的颜色从灰黑色到黑色。在火灾发生初期由于温度较低烟雾颜色大多为白色到灰白色,本文针对早期烟雾检测因此仅对白色到灰白色烟雾进行分析检测。在YUV颜色空间中,颜色信息不受照明亮度变化,因此可以对YUV颜色空间执行滤色,RGB转换为YUV颜色空间的标准矩阵为:
YUV颜色空间中,Y是亮度分量,U,V是色度分量。在烟雾区域中,U和V分量之间的差异比其他非烟色区域大得多,非烟雾区域像素值范围被压缩。为此本文提出了YUV颜色空间像素滤色规则:
式中: U(x,y)和 V(x,y)是(x,y)处像素点的 U 分量和V分量值;Irgb(x,y)为(x,y)处像素点在 RGB颜色空间中的像素值;Tmax、Tmin为阈值,在本文中Tmin可取63,Tmax可取178。图 3显示运动区域经YUV颜色空间滤色后确定疑似烟雾区域。
图3 疑似烟雾区域
通过疑似烟雾区域阶段检测,可以消除大部分运动极慢、颜色与烟雾有明显差异等物体的干扰,然而依旧存在例如白色汽车、穿白色衣服的行人等物体的干扰,这类物体理论上可以通过运动速度、方向、形状、面积等特征区分,但这些特征会随风或者拍摄角度影响。纹理体现了物体表面共有的内在特征,被定义为一个区域内的属性,不同物体具有不同的纹理结构[16],因此在复杂环境中通过纹理特征来鉴别烟雾与非烟雾物体具有很大的优势。
疑似烟雾区域一般为不规则的,直接提取纹理特征难度较大,常用的方法是将图像进行分割后再进行纹理特征提取。文献[4]将疑似烟雾区域进行32×32像素大小分割,文献[6]将疑似烟雾区域进行100×100像素大小分割,分割后的图像为处理块。火灾早期疑似烟雾区域面积很小,过大的分割尺寸将可能导致处理块包含大量背景区域,而较小的分割尺寸则将导致纹理信息缺失,本文将疑似烟雾区域分割48∗48像素大小分割。
离散小波变换可以对图像进行多分辨率分析和时频分解,从而获得频域特征;均匀局部二值模式则描述了图像像素的空间纹理特征。因此,将两者融合为增强特征可以更有效表达烟雾特征,从而更好的鉴别烟雾和非烟雾物体。
处理块经过一层离散小波变换DWT(Discrete Wavelet Transform)后分解成四个部分,即处理块图像水平方向细节子图HL1、对角线方向细节子图HH1、垂直方向细节子图LH1和一个低频部分处理块图像的近似子图LL1,随着分解级数增加,将获得更多图像信息,这为特征提取提供有力的条件[17]。离散小波变换分解获得子带系数直接作为烟雾特征会耗费大量时间,通过计算子带系数的派生特征是一个可行的方法,既能保留子带系数的大量信息也能减少特征数量。从样本集中随机选取了同等数量的非烟雾图片和烟雾图片,选取均值、几何均值、峰值、标准差和熵等派生特征进行测试。HH2频带部分测试结果如图4所示,图中显示烟雾图片HH2子带系数的均值、几何平均值、标准偏差和熵均在较小范围波动,而非烟雾图片则较为分散,这说明利用子带系数计算出的派生特征理论上是可以对烟雾图片进行识别。同理,我们分析了烟雾块和非烟雾块的其他高频子带和低频子带,最终选择计算各子带系数的均值、几何平均值、标准差和熵等作为派生特征,将高频部分派生特征组成的小波特征向量:
低频部分派生特征组成的小波特征向量:
式(6)中i取H、V、D分别表示水平、垂直、对角线方向;j=1,2,分别表示一级和二级离散小波分解。
图4 烟雾图片和非烟雾图片小波子带系数的派生特征对比
Ojala等[18]提出的局部二进制模式LBP(Local Binary Pattern)是一种灰度纹理算子,通过比较一个像素与其领域像素灰度值计算该像素的模式值,然后统计每个像素模式值的直方图达到对纹理特征的描述。设图像像素点(x,y)灰度值为ic,其邻域的第p个像素的灰度值为ip,比较ic与ip的值,则有
式中:s()为符号函数。通过逆序计算中心像素点与邻域所有像素的比较结果赋值的2p权值来进行加权求和,其和值则为中心像素点的LBP值:
式中:P表示邻域像素点个数,即中心像素到邻域点的欧氏距离,R为邻域半径。LBP特征维数过高,Ojala等又提出了均匀局部二值模式(ULBP),该模式将LBP的二值模式看作一个首尾相连的环形,当其相邻两位从0/或1/0的跳变次数U不超过2次时称该模式为均匀模式,其余归为非均匀模式。ULBP的U值表示LBP模式中在圆周上相邻两个二元值0/1或1/0转移次数,因此U值能反应局部结构的一种均匀性度量,U值越大表示结构趋向于不均匀且变化频率较高[19]。ULBP直方图比LBP直方图拥有更少的维数,这意味着特征量更少,因此在提取烟雾纹理特征时使用均匀局部二进制模式提取烟雾空间域特征可以提高后续分类效率。ULBP直方图U值可由下式计算:
当P=8,R=1时,ULBP有58种均匀模式和1种非均匀模式,共59种模式,通过统计图像中ULBP的相同U值数量并将其作为对应模式或非均匀模式的特征值,因此ULBP将获取59个烟雾纹理特征。图5(b)和5(d)为烟雾图像和非烟雾图像的ULBP中各模式的概率分布。
图5 均匀局部二值模式值对比结果
AdaBoost算法由Freund等人[20]提出,主要思想是利用一个分量分类器,从而可根据分类器训练后的输出结果自适应改变样本权重,把较大的权值赋给被错分样本。经过反复迭代,最后根据分类器结果加权投票给出最终的判决结果。Hidenori等人[21]将AdaBoost用于烟雾特征分类,由于AdaBoost的输出值为{+1,-1}存在局限性,将 Schapire等人[22]提出的改进的Real AdaBoost算法用于我们的融合烟雾特征分类,该算法将AdaBoost算法从处理二值判定推广到具有连续的置信度[-1,1]输出,使得更精确地刻画分类边界,因此可针对训练样本调整分类阈值,使分类器分类效果最优。将28个二维小波派生特征和59个均匀局部二值模式特征线性融合并输入Real Adaboost训练获取分类模型,分类器训练迭代次数为300次,选用决策树作为弱分类器,该弱分类器最大分支数量为3。
本文实验数据的处理分析基于MATLAB R2016a环境,计算机处理器配置为Intel Core i5-3210M@2.5 GHz,内存为8.00 GB。
首先,实验选取了三种人工提取烟雾特征的检测算法作为参考比较,其描述如表1所示。测试数据集描述如表2。
表1 人工提取烟雾特征的烟雾检测算法描述
表2 测试数据集描述
每个数据集训练图像集和测试图像构建如下(以计算真阳性比值(TPR)为例):
①选定数据集编号m,统计其烟雾图像数量X和非烟雾图像数量Y。
②第n次随机选择烟雾图像X中的70%烟雾图像和非烟雾图像Y中70%非烟雾图像组成数据集m的训练图像集TR,对应数据集剩余的都作为测试图像集TE,将该次训练集用作训练得到分类器模型,之后根据该模型得到测试图像集分类真阳性比值(TPR)TPRn 等值;n∈{1,…,5}。
③重复②步骤,得到 TPR1,…,TPR5等值,之后求其均值记为TPR。
图6 ROC曲线对比结果
根据平均真阳性比值(TPR)和假阳性比值(FPR)制作ROC曲线图。数据集1、2测试结果ROC曲线图如图6(a)和图6(b)所示。ROC曲线越靠近左上角,分类识别准确性就越高,由图6(a)、图6(a)中,很明显观察到本文方法曲线相比文献[8]和文献[5]明显更靠近左上角,这说明我们的烟雾检测算法分类性能比两者更好,从图中局部放大子图中可观察到本文方法相比文献[6]算法分能性能也略靠左上,因此我们的算法比上述三者分类更准确。单一数据集测试可能的偶然性,由图6(b)中可以明显观察到提出的算法识别准确性更高,且对比图6(a)和6(b)可观察到各算法曲线轨迹发生了变化,最靠近左上的位置也发生了变化,但本文方法其曲线包围的面积相比三者依旧大且曲线趋势变化最小,这说明本文方法在数据集改变的情况下,分类效果依旧最好且具有很好的稳定性,从因此本文方法相比已有人工提取烟雾特征的烟雾检测算法更优秀。
另外,选取一些基于深度学习的烟雾检测算法与本文方法进行分类对比,这些算法如表3所示,这些算法均在caffe框架下实现对数据进行特征提取和分类,结果如图7所示。如图7所示,本文提出算法在数据集1和2上都具有比文献[11]和文献[13]准确率更高,与文献[11]准确率略低,但文献[12]的算法提取的特征相当于2 048个,而本文算法提取特征仅仅只有87个,因此计算量更少,设备性能要求更低。
表3 基于深度学习的烟雾检测算法描述
图7 与基于深度学习的算法实验对比结果
更进一步,我们进行了多场景视频的烟雾检测实验,将本文算法与文献[9]烟雾检测算法了对比,视频信息及结果如表4所示。
表4 烟雾视频实验结果
图8为视频序列对应的烟雾物体和非烟雾物体帧,其中视频编号6、11、12来源于江西财经大学袁非牛个人主页 http://staff.ustc.edu.cn/~yfn/vsd.html,其余视频则是实验拍摄所得。实验选择了7个烟雾视频测试首次报警情况,另外选择5个非烟雾视频测试误检情况。从表4可以看出,文献[9]和本文算法都能在风的干扰下检测到视频中的烟雾,烟雾扩散快慢对两种算法干扰较小。由视频编号1、3、4实验结果可以得到文献[9]比本文算法能更快检测到烟雾存在,而视频编号2、6、7实验结果中本文算法比文献[9]能更快检测到烟雾。出现这种情况是因为视频1、3、4中烟雾浓度及其稀薄,而视频 2、6、7 烟雾浓度高,这说明文献[9]能在烟雾较少时进行快速识别,而本文算法则比较适合初始烟雾较浓时的快速检测。另一方面,表5非烟雾视频实验结果显示,文献[9]的算法会把大量的非烟雾物体识别为烟雾,因此导致大量的误检帧,而本文算法几乎不会发生误检。
图8 测试视频编号序列
表5 非烟雾视频实验结果
综上所述,本文算法和文献[9]的算法都能快速检测到烟雾视频中的烟雾,两者都不会把烟雾视频识别为非烟雾视频,发生漏报情况都较低。但是,文献[9]算法的缺点是会将非烟雾物体识别为烟雾,从而导致大量误报;而本文算法拥有极低的误报率,在多种复杂环境中既能快速进行烟雾检测又能防止非烟雾物体的干扰,因此本文算法文献[9]更适合应用于复杂环境。
本文提出了基于YUV颜色空间和多特征融合的视频烟雾检测算法,利用高斯混合模型运动区域检测
与YUV颜色滤色规则确定疑似烟雾区域提高检测效率和抗干扰能力;使用离散小波变化和均匀局部二进制模式上提取烟雾静态纹理特征,保证了烟雾特征有效;使用Real AdaBoost进行特征分类提高特征分类准确性。静态样本分类实验结果表明,本文方法比已有烟雾检测算法具有更低的漏报率和误报率;多场景视频实验结果表明,本文方法可以在火灾场景下准确快速检测出烟雾区域,在非火灾复杂场景中几乎不会产生误报,具有较强的抗干扰能力。