发明名称 一种基于多特征融合技术的视频火焰探测方法
摘要 本发明提供一种基于多特征融合技术的视频火焰探测方法,该方法首先采用累积快速GICA(Cumulative Geometrical Independent Component Analysis,C‑GICA)方法结合火焰的颜色决策模型对运动目标实现捕获,同时结合基于运动目标区域的多目标跟踪技术实现对当前和历史帧内的目标跟踪,提取目标的颜色特征、边缘特征、圆形度以及纹理特征,将这些特征输入到训练好的BP神经网络,经过BP神经网络决策,进而实现火焰的探测。本发明综合运用火焰的运动特征、颜色特征、纹理特征等时空特征,克服现有视频火焰探测技术算法不足,实现有效提高视频火焰探测方法的可靠性和适用性。
申请公布号 CN103116746B 申请公布日期 2016.08.03
申请号 CN201310075237.1 申请日期 2013.03.08
申请人 中国科学技术大学 发明人 汪箭;荣建忠;王世东
分类号 G06K9/00(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 北京科迪生专利代理有限责任公司 11251 代理人 杨学明;李新华
主权项 一种基于多特征融合技术的视频火焰探测方法,其特征是:该方法包括如下步骤:步骤(1)、首先采用累积快速几何独立分量分析算法C‑GICA(Cumulative Geometrical Independent Component Analysis,C‑GICA)结合火焰的颜色决策模型对运动目标实现捕获;步骤(2)、同时结合基于运动目标区域的多目标跟踪技术实现对当前和历史帧内的目标跟踪,提取目标的颜色特征、边缘特征、圆形度以及纹理特征;步骤(3)、将这些特征输入到训练好的BP神经网络,经过BP神经网络决策,进而实现火焰的探测;该方法包括如下步骤:其中,结合C‑GICA与颜色决策获取火焰候选区域具体为:累积快速几何独立分量分析算法C‑GICA的基本原理是将观察信号组成散布图,并对散布图进行一系列的几何变换,变换的结果是将独立的源信号进行分离,针对火焰的脉动特性,通过累积的方法,并设置阈值实现动态火焰的准确获取;累积快速几何独立分量分析算法C‑GICA运动目标获取:认为每一帧是由背景和运动目标融合而成的图像,背景和运动目标是两类相互独立的分量,利用简化的累积几何独立分量分析算法实现对运动目标和背景的分离,将每次采用快速几何独立分量分析算法获取的运动目标图像的灰度值进行累积求和,选取连续11帧,即累积10帧监测场景的图像,累积矩阵的累积帧达到10帧时,采用固定阈值进行判定,阈值取500,超过阈值的像素认为是疑似火焰点,低于阈值的认为是静态目标;简化的GICA算法也称为快速GICA算法;快速几何独立分量分析算法的简化形式表达如下,<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>G</mi><mi>t</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mo>-</mo><msub><mi>T</mi><mn>0</mn></msub><mo>&lt;</mo><mi>G</mi><mi>I</mi><mi>C</mi><mi>A</mi><mrow><mo>(</mo><msub><mi>f</mi><mi>t</mi></msub><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mo>)</mo><mo>,</mo><msub><mi>f</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mo>)</mo><mo>)</mo></mrow><mo>&lt;</mo><msub><mi>T</mi><mn>0</mn></msub></mrow></mtd></mtr><mtr><mtd><mrow><msup><mi>GICA</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><msub><mi>f</mi><mi>t</mi></msub><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mo>)</mo><mo>,</mo><msub><mi>f</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>(</mo><mrow><mi>x</mi><mo>,</mo><mi>y</mi></mrow><mo>)</mo><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mi>o</mi><mi>t</mi><mi>h</mi><mi>e</mi><mi>r</mi></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000978628070000011.GIF" wi="1334" he="127" /></maths>其中,GICA(f<sub>t</sub>(x,y),f<sub>t+1</sub>(x,y))表示GICA变换的过渡矩阵,GICA'(f<sub>t</sub>(x,y),f<sub>t+1</sub>(x,y))表示运动目标的C‑GICA变换结果,G<sub>t</sub>(x,y)表示经过阈值选取连续两帧的GICA变换结果,运动目标变换后的数值为灰度值,背景变换后的数值为0;T<sub>0</sub>表示变化过程中的阈值,取10,即认为在简化GICA方法的散布图中,超过[‑10,10]范围的数据,认为是动态目标点,在[‑10,10]范围内的点属于背景像素点;火焰颜色决策模型C<sub>m</sub>采用以下三个不等式:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>C</mi><mi>m</mi></msub><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>R</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow><mo>&GreaterEqual;</mo><msub><mi>R</mi><mi>T</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><mi>R</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow><mo>&GreaterEqual;</mo><mi>G</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow><mo>&GreaterEqual;</mo><mi>B</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>S</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow><mo>&le;</mo><mi>a</mi><mo>*</mo><mi>R</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>,</mo><mi>t</mi><mo>)</mo></mrow><mo>+</mo><mi>b</mi></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000978628070000021.GIF" wi="1277" he="222" /></maths>其中,R(x,y,t),G(x,y,t),B(x,y,t),S(x,y,t)分别在表示时刻t彩色图像的红色分量,绿色分量,蓝色分量以及饱和度;R<sub>T</sub>表示红色分量阈值,取145,a,b为系数,分别取‑0.0023,0.88;颜色决策过程如下:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>C</mi><mi>t</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mrow><msub><mi>f</mi><mi>t</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&Element;</mo><msub><mi>C</mi><mi>m</mi></msub></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><msub><mi>f</mi><mi>t</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&NotElement;</mo><msub><mi>C</mi><mi>m</mi></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000978628070000022.GIF" wi="1142" he="143" /></maths>C<sub>t</sub>(x,y)表示时刻t的彩色图像经过颜色决策生成的二值化矩阵,1表示火焰的像素,0表示非火焰像素;累积矩阵的计算如下:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><msub><mi>G</mi><mrow><mi>a</mi><mi>t</mi></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>t</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><mo>{</mo><msub><mi>G</mi><mi>t</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><msub><mi>C</mi><mi>t</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>}</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000978628070000023.GIF" wi="1189" he="126" /></maths>其中,N=10;·表示矩阵相同位置的元素进行乘法运算;如果一个像素它既属于运动像素,又属于火焰的颜色,则被计入累积矩阵G<sub>a t</sub>(x,y)中,在计算机进行处理时,累积矩阵最多累积10帧,超过10帧,采用先进先出的列队思想,进行运算;通过累积矩阵,可以得到匹配矩阵M<sub>t</sub>(x,y),其计算采用如下表达式:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>M</mi><mi>t</mi></msub><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mrow><mi>G</mi><mi>a</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&GreaterEqual;</mo><msub><mi>T</mi><mn>1</mn></msub></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mrow><mi>G</mi><mi>a</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>&lt;</mo><msub><mi>T</mi><mn>1</mn></msub></mrow></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000978628070000024.GIF" wi="1134" he="143" /></maths>其中,T<sub>1</sub>为阈值,取500,经过阈值对累积矩阵进行处理后,生成二值化的匹配矩阵M<sub>t</sub>(x,y),其数值为1代表该像素在时间序列上满足火焰脉动特征,在颜色空间上满足颜色特征;候选区域的特征选取具体为:亮度和红色分量的统计特征提取:由于火焰通常表现为亮而且发红,亮度和红色分量在火焰颜色空间占有主要的作用,因而亮度和红色分量特征可以提取作为火焰识别的一个判据;采用均值,方差,偏斜度和翘度的统计参量对亮度和红色分量进行计算,这些参量反映了火焰面的粗糙度特征;由于火焰的亮度会随着背景光照强度的变化而变化,因而对亮度的均值不做统计分析,只统计其二阶矩、三阶矩和四阶矩;边界粗糙度B<sub>R</sub>:采用候选区域的凸包(Convex Hull)周长与火焰周长的比值来描述边界粗糙度:B<sub>R</sub>=P<sub>C</sub>/P    (6)其中,P<sub>C</sub>是候选区域凸包的周长,P是候选区域的周长;凸包周长计算采用凸包快速求解算法以得到凸包的边界坐标,周长采用对相邻边界像素进行欧氏距离计算;圆形度:圆形度C表征物体形状的复杂程度,圆形度采用边界周长的平方与面积的比值来表示,对圆形物体取最小值4π,物体形状越复杂其值越大;采用C的倒数,并除以4π来表征圆形度,将其归一化为0到1之间的数,以方便目标识别算法计算,即:<img file="FDA0000978628070000031.GIF" wi="414" he="118" />其中P为边界周长,A为面积;改进的统计地形特征纹理:计算实体表面积时,只需在灰度图上判断当前点与4领域的每个点的大小关系即可实现对表面积计算;计算当前点的灰度值与左侧点的灰度差值D<sub>l‑4i</sub>,若D<sub>l‑4i</sub>大于0说明当前点对于左侧来说是个突出的高地,反之则说明该点处于较低的地形位置;遍历z=f(x,y)所有的点以及相应的4领域点,并对所有的正的D<sub>l‑4i</sub>求和,最后加上实体地面即可求出上实体的表面积;计算实体的体积时,只需将实体<img file="FDA0000978628070000032.GIF" wi="53" he="59" />对应的z=f(x,y)所有点的灰度值减去分割面z=α的数值,累积求和,便可以计算出实体<img file="FDA0000978628070000033.GIF" wi="54" he="59" />的体积;平均高度的改进:由于实体<img file="FDA0000978628070000034.GIF" wi="52" he="65" />不存在中空点,计算平均高度时,不必统计所有的点,只需统计<img file="FDA0000978628070000035.GIF" wi="54" he="67" />表面的点就可以得到平均高度;即将z=f(x,y)的灰度数值减去切割平面z=α,累积求和再除以底面积,<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msubsup><mi>h</mi><mi>A</mi><mi>&alpha;</mi></msubsup><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msubsup><mi>n</mi><mi>A</mi><mi>&alpha;</mi></msubsup></munderover><msub><mi>&lambda;</mi><mi>i</mi></msub><msubsup><mi>h</mi><msubsup><mi>A</mi><mi>i</mi><mi>&alpha;</mi></msubsup><mi>&alpha;</mi></msubsup><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000978628070000036.GIF" wi="838" he="119" /></maths><maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msubsup><mi>h</mi><msubsup><mi>A</mi><mi>i</mi><mi>&alpha;</mi></msubsup><mi>&alpha;</mi></msubsup><mo>=</mo><mfrac><mrow><mi>s</mi><mi>u</mi><mi>m</mi><mo>{</mo><mi>C</mi><mi>o</mi><mi>v</mi><mi>e</mi><mi>r</mi><mo>{</mo><msubsup><mi>A</mi><mi>i</mi><mi>&alpha;</mi></msubsup><mo>}</mo><mo>}</mo></mrow><mrow><mi>c</mi><mi>a</mi><mi>r</mi><mi>d</mi><mo>{</mo><mi>B</mi><mi>a</mi><mi>s</mi><mi>e</mi><mo>{</mo><msubsup><mi>A</mi><mi>i</mi><mi>&alpha;</mi></msubsup><mo>}</mo><mo>}</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>9</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000978628070000037.GIF" wi="838" he="144" /></maths><maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msub><mi>&lambda;</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><mi>c</mi><mi>a</mi><mi>r</mi><mi>d</mi><mo>{</mo><mi>B</mi><mi>a</mi><mi>s</mi><mi>e</mi><mrow><mo>(</mo><msubsup><mi>A</mi><mi>i</mi><mi>&alpha;</mi></msubsup><mo>)</mo></mrow><mo>}</mo></mrow><mrow><mi>c</mi><mi>a</mi><mi>r</mi><mi>d</mi><mo>{</mo><mi>B</mi><mi>a</mi><mi>s</mi><mi>e</mi><mrow><mo>(</mo><msup><mi>A</mi><mi>&alpha;</mi></msup><mo>)</mo></mrow><mo>}</mo></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>10</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000978628070000038.GIF" wi="958" he="119" /></maths>其中,sum{}表示求和,Cover{}表示实体的突出面,Base{}表示实体的底平面,λ<sub>i</sub>为比例因子,其数值通过式子(10)计算出来,这样做的目的是的作用是去除掉切割过程中形成的畸点对整体表面积的影响;这里的畸点是指<img file="FDA0000978628070000039.GIF" wi="53" he="57" />为一个或者几个单点的实体;分别对一幅图的灰度和色调进行统计地形特征纹理描述能够得到2×6×256=3072个纹理指标,对每条纹理曲线分别提取均值,方差,偏斜度和翘度来进行简化,简化后只得到48个纹理指标;此外,没必要对灰度和色调所有等级进行分割,同时,由于已知的颜色模型限定了红色分量的阈值145,最极端的情况灰度至少也会超过150×0.2989≈43,其中0.2989是RGB转化灰度的比例因子,据此,在43‑255灰度上进行15个灰度等级分割,即α取值分别为[45、60、75、90、105、120、135、150、165、180、195、210、225、240、255],α在色调图0°‑60°上进行15个色调等级分割,即α取值分别为[4、8、12、16、20、24、28、32、36、40、44、48、52、56、60],简化计算过程,实现对火焰候选区域纹理的提取;其中,基于运动区域的多目标跟踪具体为:多目标跟踪的数据结构:定义了一个动态三维矩阵用来存放多个目标的信息,矩阵的大小为M*N*H,M为62,其中前4个代表运动目标矩阵区域的坐标,H取10,代表可以对历史10帧的数据进行保存,动态三维矩阵包含了目标的位置和特征,M方向用来区分不同的特征,N方向区分不同的目标,H方向区分不同的帧,由于不同的场景的运动目标的数量不同,所以此三维矩阵根据运动目标的数量动态地确定N的数值,即N的数值与场景中的运动目标数量一致;为了方便表述,把具有相同H方向的坐标的点的集合定义为层,每层有M*N个数值,M方向定义行,N方向定义为列;多目标跟踪的基本原则,采用目标外边缘的矩形框进行匹配,不涉及目标的特征;多目标跟踪的实现:对于数据流流动,采用先进先出的列队思想;所述的多目标跟踪的实现:对于数据流流动,采用先进先出的列队思想,当前帧的目标数据要存入动态三维矩阵中,需要将当前动态三维矩阵的第10层数据踢掉,第9层的存入第10层,第8层存入第9层,依次类推,第一层存入第2层,当前帧的数据存入第一层,在移动过程中,第一层的存放坐标区不进行任何移动;相邻两帧区域变化定义图像的出现、消失、合并,分解四种行为,不考虑分解;根据动态三维矩阵第一层的坐标,能够恢复出一幅独立图P1,当前图像也可以形成另一幅独立图P2,认为这两幅独立图是相邻两帧图像,进行多目标的跟踪;将这两幅独立图进行融合形成一幅新的图,新图继续独立化形成第三幅图P4,通过第三幅图P4能够形成带有坐标的新动态三维矩阵,新的动态三维矩阵只有坐标,没有特征数值;根据新动态三维矩阵的坐标,依次和P1,P2进行匹配,得到匹配的目标数量k1和k2,匹配的同时,将k2个目标进行融合得到融合矩阵P4,对k2进行判断,如果k2&gt;0,则寻找P4中非0元素的横纵坐标的最大最小值,通过最大最小值形成的矩形更新P3的坐标,能够直接显示在当然帧的图像上,实现对当前图像的标记,根据k2的值以及特征的属性进行合并,k2个小目标的特征值采用求平均的方法,接着对k1进行判断,如果k1大于0,根据k1以及特征的属性,再继续合并;如果k2为0,判断k1是否大于0,如果大于0,说明这个目标是当前消失目标;将其对应的特征转移到新动态三维矩阵的对应列,转移的方法是旧的动态三维矩阵中的第一层到第9层的特征转移到新动态三维矩阵的第二层到第10层;直到新动态三维矩阵的每个坐标进行了匹配,这样就实现了多目标的跟踪技术;其中,火焰的识别具体为:采用BP神经网络做火焰识别的分类器,隐含层节点数为18,隐含层神经元采用Matlab神经网络工具箱中的tansig函数,输出层采用2个Matlab神经网络工具箱中的logsig函数,选取了50个不同燃料,不同环境下的燃烧火焰作为正面训练信号,40个具有类似火焰的纹理的物体作为负面训练信号,得到了火焰识别的分类器;把动态三维矩阵中的特征值,输入到BP神经网络分类器中,经过分类器的计算,便可以判断火焰的有无。
地址 230026 安徽省合肥市包河区金寨路96号