基于逻辑回归模型的火焰检测*
2018-10-22官洪运杨益伟欧阳江坤
官洪运,杨益伟,吴 炜,欧阳江坤
(1.东华大学 信息科学与技术学院,上海 201620;2.数字化纺织服装技术教育部工程研究中心,上海 201620)
0 引言
火灾给人们的生产生活带来了巨大的损失,目前比较成熟的火灾探测方法主要运用感温式、感烟式、感光式传感器,但其在大空间场所的探测效果欠佳。随着机器视觉技术的发展,基于视频监控的图像型火灾识别技术越来越引起人们的重视。
在已有研究中,YAMAGISHI H和YAMAGUCHI J[1]在HSV颜色空间分割出火焰区域,分析火焰区域的边缘抖动信息,运用神经网络进行火焰探测。KO B C等[2]利用图像的亮度信息移除非火焰素,在最终的识别过程中引入两层支持向量机(SVM)进行火焰识别。TRUONG T X等[3]通过高斯混合模型(GMM)提取运动目标,然后根据火焰颜色模型利用模糊C均值(FCM)聚类算法分割出火焰疑似区域,最后提取面积变化率、表面粗糙度等特征通过支持向量机分类进行火焰识别。Li Tao等[4]利用颜色特征分割火焰疑似区域,再通过光流法计算火焰疑似区域每个像素点的运动方向,提取方向特征训练SVM进行火焰识别。KANG M等[5]通过模糊C均值聚类算法从运动区域中提取火焰疑似区域,利用灰度共生矩阵提取纹理特征,训练BP神经网络用于火焰识别。以上算法都主要提取火焰的动、静态特征,再利用人工神经网络和SVM完成火焰识别,获得了较好的实验效果。
然而人工神经网络通过调整内部大量节点之间的关系完成分类过程,SVM需要将样本数据通过核函数映射到高维空间完成分类过程。这两种算法均具有较高复杂度,带来了较大的运算量。在保证识别率的前提下,为了降低算法复杂度,在对火焰颜色、动态特征的研究基础上,本文设计了一种基于逻辑回归(LR)模型的火焰识别算法用于火焰检测。对于输入的视频图像,首先根据运动和颜色检测提取火焰疑似区域;若存在火焰疑似区域,则提取火焰疑似区域的颜色及动态特征;最后将提取到的特征值输入LR模型中完成火焰识别过程。
1 可疑目标提取
火焰具有运动特性和颜色特性,可疑目标提取过程主要是通过运动检测和颜色检测提取出画面中的疑似火焰区域。
1.1 运动目标检测
火焰具有运动特性,运动目标检测是火焰区域提取的第一步。使用高斯混合背景建模提取运动目标,该算法的特点是将图像中每个像素点的值看作多个高斯分布的叠加。对于t时刻,当前帧图像中点Xt的像素值的概率分布如下[6-7]:
(1)
对新来的一帧图像像素值Xt,将其与当前K个高斯分布的均值进行比较,按照式(2)所示的规则寻找匹配的高斯分布:
|Xt-μi,t-1|≤E×σi,t-1
(2)
其中,E为置信系数,一般取2.5。若寻找到满足要求的高斯分布,则该像素点属于背景点,否则认为其属于前景点。若未找到满足要求的高斯分布,则生成一个新的高斯分布,均值取当前像素值,初始化一个较大的标准差和较小的权值,使用该分布替换掉当前权值最小的高斯分布。对于匹配到的高斯分布对其参数按式(3)进行更新:
同时,对各个高斯分布的权值按照式(4)进行更新:
ωk,t=(1-α)×ϖk,t-1+α×Mk,t
(4)
其中,α为学习速率,对于匹配的高斯分布Mk,t取值为1,否则取值为0。所有的参数更新完毕后,将各高斯分布按ωi,t/σi,t进行降序排列,取前N个高斯分布作为背景模型,N满足式(5)的条件:
(5)
通过高斯混合背景分离算法,可以有效地提取到画面中的运动目标。
1.2 火焰颜色模型
火焰具有明显的颜色特征,其颜色分布呈现一定规律,通过合理的颜色分割可进一步确定火焰疑似区域,排除不具备火焰颜色特征的运动目标的干扰。通过大量实验,在HSV颜色空间内建立火焰颜色模型,如式(6)所示:
(6)
图1显示了两张火焰图片及运用火焰颜色模型对其分割获得的二值图片。
图1 颜色模型检测火焰区域
图2中显示了火焰疑似区域提取的全过程,首先通过运动检测提取运动前景二值图像;然后对运动区域进行颜色检测分割出满足火焰颜色特征的二值区域;最后对该区域进行闭操作,连接邻近区域,平滑边界,获得火焰疑似区域的二值图像。其中,图2(b)为经运动检测得到的前景二值图,图2(c)为再经颜色模型检测得到的二值区域,图2(d)为再经闭操作获得的火焰疑似区域二值图像。
图2 火焰疑似区域提取
2 火焰颜色与动态特征提取
通过运动及颜色检测提取出的火焰疑似区域仍然可能存在非火焰目标的干扰,如行驶中汽车的车灯、闪烁的路灯等。在火焰具有的特征中,其颜色和动态特征最为明显。为了更好地区别火焰与疑似火焰的干扰物,提取疑似区域的颜色特征及动态特征量作为火焰识别的依据。
2.1 颜色特征
火焰的颜色特征是火焰最明显的特征之一,资料显示火灾早期的火焰颜色都分布在红到黄的范围内[8],且具有较高的饱和度。考虑到RGB颜色模型无法直观地表现出火焰的亮度及色度信息,因此在HSV颜色空间内提取火焰的颜色特征。在对火焰进行检测时易受到灯光、光线变化带来的影响,而火焰区域相对于强光照射区域一般具有更高的饱和度及明度。因此统计疑似火焰区域以H、S、V三个通道内的一阶矩μH、μS、μV作为特征值。它们的计算公式如式(7)所示:
(7)
其中,A为火焰疑似区域,N为火焰疑似区域像素点的个数。通过计算,可以获得火焰疑似区域在HSV颜色空间中H、S、V颜色分量的均值,得到关于火焰颜色的特征量μH、μS、μV。
2.2 动态特征
2.2.1面积变化率
火焰在燃烧过程中,其形状变化不规则,面积呈现不断变化的特点。在燃烧初期,火焰面积会呈现增长的趋势,另外受空气扰动等其他因素的影响,火焰面积也会明显变化。利用火焰的面积动态变化特征可以区分出具有火焰颜色特征但面积不变的干扰物,如环形灯等。面积变化率的计算如式(8)所示[9]:
(8)
式中Sk和Sk+1分别为第k帧和k+1帧的火焰疑似区域面积;eps为极小值,用来防止出现相邻两帧中没有火焰疑似区域时,式(8)中分母为0的情况。
2.2.2帧间相似度
火焰燃烧时其燃烧面积、空间位置在短时间内的变化呈现一定相关性,火焰区域在图像前后两帧之间会存在一定的重叠区域。因此考虑利用相邻帧间图像的相似度来区别真实火焰与干扰,帧间相似度可根据式(9)确定[10]:
(9)
式中αn(x,y)、αn+1(x,y)分别表示第n帧和第n+1帧的火焰疑似区域二值图。火焰燃烧时相邻帧间相似度β∈[TL,TH],相似度低于阈值TL时可以看作是快速移动疑似目标的干扰,相似度高于阈值TH可以看作为静止干扰源的干扰。
2.2.3质心偏移率
火焰燃烧时受风力或热浪的影响会呈现循环往复不规则跳动的运动形式,火焰的质心运动也会呈现闪烁特性。在很短的时间内,火焰质心位置的变化在一定的范围内。而其他干扰物如行驶中的汽车车灯,其运动在短期内呈现整体移动的特点,质心移动的幅度大。通过计算质心偏移率来表明火焰疑似区域的质心偏移幅度,用以区别火焰与其疑似干扰物。若出现疑似火焰区域S,其质心坐标(xc,yc)由式(10)计算得到:
(10)
相邻两帧前后的质心坐标为(xck-1,yck-1),(xck,yck),则相邻两帧间的质心位移如式(11)所示:
(11)
选用质心偏移率来表现火焰的质心移动程度,相邻两帧质心偏移率由式(12)计算得到:
(12)
2.2.4闪频特征
火焰具有明显的闪烁特性,闪烁频率为火焰最为重要的动态特性之一,火焰的主要闪烁频率范围为7~12 Hz[11]。火焰的闪烁频率不随环境的变化而改变,利用火焰的闪烁特征可以排除车灯、行人等干扰物。根据视频中第i帧相对前一帧疑似火焰区域中像素点分布变化率,利用过零检测法可以求得火焰闪烁次数,从而获得闪烁频率[12]:
(13)
使用单一特征对火焰进行识别,由于现场环境的多变性,容易出现误判现象。为了提升识别率,采用LR算法对火焰颜色及动态特征量进行分析,获得模型的偏斜率及每项特征量的权重参数,得到关于火焰颜色和动态特征的火焰概率模型,应用于火焰识别。
3 LR模型火焰识别的实现
LR是机器学习领域一种常用的有监督学习分类算法,常用于二分类问题。根据LR模型可以预测在不同的自变量情况下,发生某种情况的概率,再利用概率完成二分类过程。在模型的训练和识别时间上,LR相较于SVM和人工神经网络均占有很大优势。
LR与线性回归同属于广义线性模型,在线性回归中y=ωTx=ω0+ω1x1+,…,+ωtxt,y的值域范围为[-∞,+∞],其中x=(x1,x2,…,xt)为输入向量,样本x中包含了t个相互独立的自变量,ω为回归系数。LR在线性回归的基础上嵌套了逻辑函数,LR模型表示为:
(14)
hω(x)的值表示的是对于样本x,分类结果y=1的概率。当hω(x)≥0.5 时,分类结果y=1,样本属于类别1;当hω(x)<0.5 时,分类结果y=0,样本属于类别0。
对于训练数据集,样本数据x={x1,x2,…,xN},相应的分类标签y={y1,y2,…,yN}。其极大似然函数对数形式为:
(15)
得到损失函数为:
(16)
利用梯度下降法对损失函数J(ω)求解获得使误差函数最小的ω,梯度函数为:
(17)
在机器学习中,常见的梯度下降算法有批量梯度下降法(BGD)、随机梯度下降法(SGD)和小批量梯度下降法(MBGD)。综合考虑准确率和训练速度,本文使用MBGD算法用于求解模型参数。对应的更新公式为:
(18)
其中α为学习速率,x为每次迭代取的样本数量,文中取10。通过MBGD算法寻找合适的ω使得梯度函数收敛,得到最佳的回归系数。
利用上文中的区域分割及特征提取方法获得火焰疑似区域的颜色及动态特征量,将其作为一组特征向量,按以下步骤完成LR的分类过程:
(1)根据训练样本集,获得训练数据集{(X1,y1),(X2,y2),…,(Xn,yn)};
(2)对训练数据集里样本的每项特征值进行标准化,使得每项特征值的方差为1,均值为0,使得预测结果不会受到数值较大的特征项的影响;
(3)将训练数据集输入到LR分类器完成训练过程,通过梯度下降法求解得到最佳回归系数ω,获得关于每项特征值的权值;
(4)将测试数据输入训练好的LR分类器中,获得火焰存在的概率,判定是否存在火焰。
4 实验结果与分析
本文的火焰识别算法是在VS2017环境下,结合OpenCV库,利用C++语言编写实现的。实验使用的视频部分为从http://www.ultimatechase.com/Fire_Video.htm以及http://signal.ee.bilkent.edu.tr/VisiFire/Demo/下载的火焰视频、疑似火焰干扰视频。通过视频捕获的方法选取了767帧有火图像作为正样本、702帧疑似火焰图像作为负样本进行参数学习,选取8段视频共2 870帧进行算法识别检验。测试库视频及检测结果如表1所示,其中视频1~6为火焰视频,视频7~8为火焰疑似物视频。
从表1中可以看出,由于本文算法提取了颜色分量作为特征量进行了参数学习,对视频3、视频4这样颜色特征明显的森林大火检测效果好;对视频1、视频2也有着较理想的检测率,没有受到环境中行人和车辆等运动目标的的干扰;对视频5室内装饰树燃烧也有着较高的检测率;对于视频6由于室内光照较强,且受地板反光的干扰,导致算法的检测率偏低;视频7中运动场景较为复杂,存在迎面而来汽车车灯的干扰,造成了一定的误报率;视频8中行驶在隧道中的汽车车灯并未造成任何干扰。
通过对文中8段视频的检测准确率取平均,得到本文算法平均准确率为93.2%,优于文献[13]和文献[14]算法。不同算法的对比结果如表2所示。
表1 视频火焰识别结果
表2 不同算法的平均准确率
实验结果表明,本文算法选用的火焰特征具有代表性,对森林、室内室外场景的火焰均有着较好的检测效果,平均每帧处理用时51.9 ms,识别速度可达20 f/s。
5 结论
为了提高图像型火焰检测的识别准确率,提高算法运行效率,提出了一种基于LR的图像型火焰识别算法。通过运动和颜色检测提取火焰疑似区域,再提取火焰疑似区域的颜色特征、动态特征量输入到LR分类器中进行二分类,输出识别结果。实验表明该算法识别平均准确率达93.2%,识别速度可达20 f/s,对于森林、室内外火焰均有着良好的检测效果,在视频火焰检测上具有一定的使用价值。