发明名称 一种适用于识别和检测大空间火灾火焰的方法
摘要 本发明提供了一种适用于大空间火灾火焰识别和检测的方法,包括对输入的视频流进行预处理;对视频流进行运动检测,获得运动像素;对视频流进行颜色检测,获得具有火焰特征颜色的像素;对所有符合运动检测和颜色检测火焰特征的像素点进行频域分析;搜索把所有符合相同特征且相互连接的像素组成的连通区域;对所得的连通区域计算其周长和面积,进行形状分析;对每个连通区域,进行面积改变量分析,最后判断火灾是否发生。通过本发明方法可以把大空间中真实的火焰和闪烁的车灯区分开来,不仅可适应隧道火焰检测,也可以应用到各种大空间火灾火焰检测场所,如体育馆、博物馆、仓库等。
申请公布号 CN101515326B 申请公布日期 2012.02.22
申请号 CN200910096854.3 申请日期 2009.03.19
申请人 浙江大学 发明人 谢迪;廖胜辉;童若峰
分类号 G06K9/00(2006.01)I;G06T7/00(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 浙江杭州金通专利事务所有限公司 33100 代理人 徐关寿
主权项 1.一种适用于识别和检测大空间火灾火焰的方法,其特征在于包括以下步骤:1)对输入的视频流进行预处理:对于各种情况下由摄像机拍摄下来的视频画面,使用高斯平滑的方法来消除噪音的干扰;2)对视频流进行运动检测,获得运动像素:对于上一步中所获得的预处理后的图像,使用带有固定阈值的时域差分方法来进行运动检测;首先初始化背景图像,然后根据当前帧利用帧与帧之间的关联性来更新背景图像和前景图像;具体方法为:①使用时域差分的方法来判定运动像素和运动区域:把第i+1帧中位于坐标(x,y)上的像素的灰度值记为g<sub>i</sub>(x,y),把第一帧中(x,y)坐标上的背景像素值记为B<sub>0</sub>(x,y);②初始情况B<sub>0</sub>(x,y)=g<sub>0</sub>(x,y);之后对于每一帧,所预测的下一帧背景像素值根据当前帧背景像素值和当前实际像素值进行更新:<maths num="0001"><![CDATA[<math><mrow><msub><mi>B</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>&alpha;B</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>+</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&alpha;</mi><mo>)</mo></mrow><msub><mi>g</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mtd><mtd><mi>if</mi><mo>|</mo><msub><mi>g</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>-</mo><msub><mi>g</mi><mrow><mi>i</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>|</mo><mo>&lt;</mo><mi>T</mi></mtd></mtr><mtr><mtd><msub><mi>B</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mtd><mtd><mi>else</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中α为一比例系数,表示背景更新的速率,通常情况下其值接近1;③最后,如果满足下列不等式,则认为坐标位置(x,y)上的像素为运动像素:|g<sub>i</sub>(x,y)-B<sub>i</sub>(x,y)|>T3)对视频流进行颜色检测,获得具有火焰特征颜色的像素:通过在训练视频和图片中提取具有火焰颜色的像素,分析其强度值或者RGB分量值;假如当前像素的颜色值位于符合火焰颜色特征的像素区间内部,则此像素被判断为具有火焰颜色的像素,进入下一阶段的检测;4)对所有符合运动检测和颜色检测火焰特征的像素点进行频域分析:时域特征分析包括火焰抖动特征的分析、火焰像素傅里叶变换和小波变换的分析;抖动程度分析:记当前帧中的样本值为I<sub>k</sub>,前一帧中同一位置上的样本值为I<sub>k-1</sub>,后一帧中同一位置上的样本值为I<sub>k+1</sub>,则可以使用如下的公式度量火焰的抖动程度:<img file="FDA0000083008570000021.GIF" wi="682" he="130" />其中T<sub>1</sub>为一个自定义的阈值常数;如果计算上式所得的值为负数,则说明这三个连续样本发生了抖动,而当火焰抖动次数落在一个特定的区域中时,可以认为此位置上的候选像素满足火焰的抖动特征,为火焰的抖动特征点;然后通过快速傅里叶变换提取输入信号的频率谱;最后通过小波变换分离输入信号的高低频,提取高频部分计算其过零率;5)搜索所有符合相同特征且相互连接的像素组成的连通区域:对于运动检测和颜色检测后的图像,进行连通区域的搜索;连通区域搜索包括区域标记和区域搜索两个步骤;首先使用掩模方法分别对运动像素区域、火焰颜色像素区域和属于火焰边缘的像素区域进行标记;然后使用广度优先搜索算法来进行连通区域的搜索;6)对所得的连通区域计算其周长和面积,进行形状分析:形状分析包括:使用深度优先搜索方法提取连通区域的边界;分别计算各个连通区域边界的周长;计算各个连通区域的面积;计算各个连通区域的圆形度,计算运动火焰颜色区域与相应运动区域的面积比;具体方法为:①提取各个连通区域的边界:使用深度优先搜索方法提取连通区域的边界;记一个连通区域的边界点集合为E,记一帧中所有像素集合为V,<img file="FDA0000083008570000022.GIF" wi="154" he="55" />所有边界像素的集合记为V<sub>e</sub>;初始状态:<img file="FDA0000083008570000031.GIF" wi="192" he="62" />属于连通区域边界的一个像素点v<sub>i</sub>;第一步:E=E+{v<sub>i</sub>},V<sub>e</sub>=V<sub>e</sub>-{v<sub>i</sub>};第二步:对<img file="FDA0000083008570000032.GIF" wi="279" he="70" />如果<img file="FDA0000083008570000033.GIF" wi="252" he="58" />且<img file="FDA0000083008570000034.GIF" wi="163" he="69" />则E=E+{v<sub>j</sub>},V<sub>e</sub>=V<sub>e</sub>-{v<sub>j</sub>};之后每次重复这两个步骤,直到满足下列终止条件:<img file="FDA0000083008570000035.GIF" wi="170" he="52" />②分别计算各个连通区域边界的周长:在第①步深度优先搜索连通区域时,使用的是递归算法,递归树每增加一层,用来存放连通区域周长值的变量也自增1,当递归结束时,得到的就是该连通区域的周长值;③计算各个连通区域的面积:在广度优先搜索连通区域时,使用队列来存储待处理的像素,每次一个像素进队,用来存放连通区域面积值的变量也自增1,当满足终止条件时,得到的就是该连通区域的面积值;④计算各个连通区域的圆形度:记所计算出的连通区域周长为C,面积为S,则圆形度可计算为:D<sub>circle</sub>=C<sup>2</sup>/4πS所计算出的圆形度越接近1,说明连通区域的形状越规则,则其为火焰的概率越低;⑤计算既符合火焰颜色特征又符合运动特征的区域与对应运动区域面积之比:记所计算出的既为火焰颜色又为运动的区域面积为S<sub>mc</sub>,所对应的运动区域面积为S<sub>m</sub>,比值可如下计算:<maths num="0002"><![CDATA[<math><mrow><mi>r</mi><mo>=</mo><mfrac><msub><mi>S</mi><mi>mc</mi></msub><msub><mi>S</mi><mi>m</mi></msub></mfrac></mrow></math>]]></maths>如果r位于某个区域中,则认为此区域为火焰区域;7)对每个连通区域,对其进行面积改变量分析,最后判断火灾是否发生:这一步中包括标记属于火焰边缘区域的像素;使用广度优先搜索算法搜索属于火焰边缘区域的像素所组成的连通区域;建立数据结构来存储找到的连通区域;使用先到先处理的顺序匹配前后帧对应的连通区域;计算对应连通区域的面积改变量,<maths num="0003"><![CDATA[<math><mrow><mi>&Delta;A</mi><mo>=</mo><mfrac><mi>dA</mi><mi>dt</mi></mfrac><mo>=</mo><mfrac><mrow><msub><mi>A</mi><msub><mi>R</mi><mi>i</mi></msub></msub><mo>-</mo><msub><mi>A</mi><mi>R</mi></msub></mrow><mrow><msub><mi>t</mi><mrow><mi>i</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>t</mi><mi>i</mi></msub></mrow></mfrac></mrow></math>]]></maths>其中<img file="FDA0000083008570000042.GIF" wi="56" he="59" />表示上一帧中所对应的连通区域的面积,而A<sub>R</sub>表示当前所比较的连通区域的面积;最后,假如T<sub>low</sub><ΔA<T<sub>high</sub>,那么此连通区域可能为火焰区域。
地址 310027 浙江省杭州市浙大路38号