具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明进一步详细说明。
图1表示按照本发明的视频图像序列中烟雾的检测方法的总体流程图。如图1所示,按照本发明的视频图像序列中烟雾的检测方法可以包括以下步骤:
第一步骤101,计算视频图像帧的帧间差分图像中各像素的光流方向;
第二步骤102,根据各像素的光流方向与相同像素位置上的背景方向之间的偏离量确定各像素光流方向的类别,并基于各像素光流方向的类别,计算各像素对应的积分值;
第三步骤103,根据各像素对应的积分值确定各像素是否是烟雾点;
第四步骤104,获取由所有烟雾点构成的初始检测区域;和
第五步骤105,判断所获取的初始检测区域是否为烟雾区域。
下面将详细介绍上述各个步骤。为了减少光照等的影响,本发明计算的是帧间差分图像的光流。
第一步骤:
图2示出了按照本发明的视频图像序列中烟雾的检测方法的第一步骤的流程图。如图2所示,该第一步骤包括:
步骤201,计算相邻两帧视频图像的帧间差分图像。
步骤202,根据帧间差分图像计算各个像素相应的光流方向。
本步骤中假设t时刻的帧间差分图像中像素点m(x,y)的像素值为I(x,y,t),其对应的光流方向为 其中ut表示光流x方向分量,vt表示光流y方向分量。设在很短的时间间隔dt内,像素点m(x,y)的像素值不变,则有:
I(x+utdt,y+vtdt,t+dt)=I(x,y,t)
展开得:
上述方程是光流的约束方程。
计算满足光流的约束方程,同时使S+λC达到最小值的ut、vt,便可得到t时刻光流的方向 其中S和C来自Horn &Schunck的光流算法(参见Berthold K.P.Horn和Brian G.Schunck所著的《Determining Optical Flow》(Artificial Intelligence,17,pp.185-203,1981)),S表示光流方向的平滑约束,C表示ut、vt的解与约束方程的偏差。S和C的计算公式分别如下:
λ表示控制平滑约束和偏差的权重,可根据平滑约束和偏差的需求设置。
通过上述算法,就可以得出帧间差分图像中各个像素m(x,y)对应的t时刻光流的方向
第二步骤:
一.确定各像素光流方向的类别
在第二步骤中,对于像素点m(x,y),设其第一次的光流方向 为背景方向VBm,计算 与背景方向VBm的夹角,再根据夹角与第一阈值T1的比较来判定当前的状态(state),其公式如下:
其中,第一阈值T1可以选为30~50内一值,即,30≤T1≤50。在每一帧帧间差分图像中,开始逐个统计每个像素点m(x,y)所对应的状态为1的数目numx,y,该数目numx,y是方向判定值。即,在处理开始时,令numx,y的初始值为0,随着该处理的进行,在判定像素点m(x,y)所对应的状态state的同时,每当对于state=0的点,若numx,y大于0,则numx,y自减1,同时更新背景方向:
VBm(K)=0.9×VBm(k-1)+0.1×Vm t
每当state=1时,若numx,y小于第二阈值T2,则numx,y累加1,否则numx,y的值保持不变。而且,随着处理的进行,根据numx,y的值判定各个像素点m(x,y)的方向:当numx,y≤第三阈值T3时,判定像素点m(x,y)的方向为同向;当numx,y>第三阈值T3且numx,y<第四阈值T4时,判定方向为混乱;当numx,y≥第四阈值T4时,判定方向为反向。在判定像素点m(x,y)的方向为反向时,将其背景方向更改为等于此时该像素点m(x,y)的光流方向,即 随后基于这一背景方向继续进行后续处理。在该处理过程中或者该处理完成之后,可以将各帧图像中各像素对应的方向判定值numx,y以按时间顺序与图像帧对应并且按空间位置与像素点对应的方式暂存在内存中或者以文件的形式记录在存储装置中,例如,可以以多维数组的方式暂存在内存中或者以包含该多维数组的文件的形式记录在存储装置中。或者,也可以记录代表像素点方向的方向指示符,例如,1代表同向,0代表混乱,-1代表反向,这些方向指示符的记录同样是按时间顺序与图像帧对应并且按空间位置与像素点对应的方式记录的。以供后续处理使用。优选地,第二阈值T2可以取值8、9、10、11或12,第三阈值T3可以取值2或3,第四阈值T4可以取值6、7或8,第二阈值T2的取值应大于第四阈值T4的取值。
二.计算各像素对应的积分值
假设所要处理的图像帧序列包括2n帧。首先选择当前帧图像为第1帧图像,设其像素点m(x,y)的积分值为0,对之后的n2-1帧图像进行分析,基于判定各像素光流方向的类别的处理中所得出的方向判定值或方向指示符,从第2帧开始,按照n2帧图像的时间顺序进行处理,若图像中像素点m(x,y)的方向为同向,则将该像素点m(x,y)对应的积分值加第一固定值D1(若像素点m(x,y)对应的积分值大于255,则令该积分值为255);若图像中像素点m(x,y)的方向为反向,则将该像素点m(x,y)对应的积分值减第二固定值D2(若像素点m(x,y)对应的积分值小于0,则令该积分值为0)。
第三步骤:
将这n2帧图像中各个像素m(x,y)对应的积分值与第五阈值T5进行比较,若某一像素点m(x,y)对应的积分值大于第五阈值T5,则认为该像素点m(x,y)为烟雾点。
第四步骤:
所得出的所有烟雾点构成的区域为初始检测区域。
按照一种实施方式,可以这样来确定初始检测区域的边界:首先提取烟雾点区域图像,即将烟雾点以外的点的像素值全置为0;然后利用公知的边缘检测算法获取烟雾点区域的边缘轮廓,该边缘轮廓即为初始检测区域的边界,边缘轮廓所围绕的区域即为初始检测区域。所述边缘检测算法可以包括梯度法、Roberts梯度法、Sobel算法、Laplace算法、Canny算法等算法中的任何一种。其中,第五阈值T5可以选取150~200内的任何一个值,即,150≤T5≤200且T5为整数。固定值D1可以选取8~20内的任何一个值,即8≤D1≤20且D1为整数。固定值D2可以选取8~20内的任何一个值,即8≤D2≤20且D2为整数。
第五步骤:
图3示出了按照本发明的视频图像序列中烟雾的检测方法的第五步骤的流程图。如图3所示,第五步骤包括:
步骤301,计算初始检测区域的光流方向的直方图;
步骤302,搜索直方图中的同值像素个数的最大值。即,针对每个初始检测区域,搜索其光流方向的直方图中的同值像素个数的最大值。此处所述同值像素指的是像素值相同的像素。
步骤303,计算所搜索到的同值像素个数的最大值的周边范围在直方图中所占的比例。在步骤302的基础上,获取所搜索到的同值像素个数的最大值的周边范围[同值像素个数的最大值-T6,同值像素个数的最大值+T6],计算初始检测区域的直方图中属于该周边范围的同值像素个数的总和,计算初始检测区域的直方图中全部像素的个数,然后计算属于所述周边范围的同值像素个数的总和与全部像素个数之间的比值,该比值即为所述最大值的周边范围在直方图中所占的比例。其中,T6可以选取20~40内的任何一个值,即20≤T6≤40且T6为整数。
步骤304,获取烟雾区域。设定一个比例阈值第七阈值T7(0~1之间,即0<T7<1),若所述最大值的周边范围在直方图中所占的比例大于第七阈值T7,则认为该直方图所对应的初始检测区域是烟雾区域并输出这一判断结果、烟雾区域的位置信息或报警信息。优选地,第七阈值T7可以选取0.6~0.8内的任何一个值,即,0.6≤T7≤0.8。
相应地,如图4所示,按照本发明的视频图像序列中烟雾的检测装置包括:光流方向计算单元1,用于计算视频图像帧的帧间差分图像中各像素的光流方向;积分值计算单元2,用于根据各像素的光流方向与相同像素位置上的背景方向之间的偏离量确定各像素光流方向的类别,并基于各像素光流方向的类别,计算各像素对应的积分值;烟雾点确定单元3,根据各像素对应的积分值确定各像素是否是烟雾点;初始检测区域获取单元4,用于获取由所有烟雾点构成的初始检测区域;和烟雾区域判定单元5,用于判断所获取的初始检测区域是否为烟雾区域并输出与烟雾区域相关的信息。
前面介绍了本发明的视频图像序列中烟雾的检测方法和装置的实施方式。下面将介绍本发明的视频图像序列中烟雾的检测方法和装置的优选实现方式。
第一优选实现方式
图5示出了按照本发明的第一优选实现方式的视频图像序列中烟雾的检测方法的流程图。
如图5所示,按照本发明的第一优选实现方式,本发明的视频图像序列中烟雾的检测方法的第一步骤101可以包括:a)依次计算所述视频图像序列中每两个相邻视频图像帧之间的帧间差分图像,得出帧间差分图像序列;b)计算帧间差分图像序列中各帧间差分图像中各像素m(x,y)的光流方向Vm(x,y) p,其中p为大于0的整数且p代表帧间差分图像的序号。每一个帧间差分图像中各像素的光流方向构成一个光流方向图像。这里,第一步骤101计算出了p个光流方向图像。下文中,所提到的“帧间差分图像”具有对应的“光流方向图像”,并且“帧间差分图像中各像素的光流方向”指的是该帧间差分图像对应的光流方向图像。并且在下文中,各个步骤或单元、模块之间传递的是光流方向图像而不是帧间差分图像,使用“帧间差分图像中各像素的光流方向”来表达“光流方向图像中各像素的光流方向”仅仅是为了表明光流方向图像中各像素位置与帧间差分图像中各像素位置的一致性,而且也是为了表明光流方向在各步骤或单元、模块之间的传递并不一定是以完整光流方向图像的形式进行的,而是也可以以光流方向图像的一部分的形式传递的。此外,需要注意的是,除了其它数据或信息之外,本发明的方法的各步骤和装置的各单元之间传递的是光流方向图像,而非帧间差分图像。
按照本发明的第一优选实现方式,本发明的视频图像序列中烟雾的检测方法的第二步骤102可以包括:c)以帧间差分图像序列中的第n个帧间差分图像中各像素的光流方向Vm(x,y) n作为第n+1个帧间差分图像中对应的各像素位置上的背景方向VBm(x,y) n,即确定初始背景方向,换句话说,是以第n个光流方向图像作为第n+1个光流方向图像的背景光流方向图像,这里0<n<p,并且令各像素位置对应的方向判定值numx,y等于方向判定值初始值,例如,令方向判定值numx,y等于零,令各像素位置对应的积分值Ex,y等于积分值初始值,例如,令积分值Ex,y等于零;d)从第n+1个帧间差分图像开始直到最后一个帧间差分图像,针对每一个帧间差分图像,基于帧间差分图像中各像素的光流方向Vm(x,y) n+i和对应像素位置上的背景方向VBm(x,y) n+i-1之间的夹角大小,其中i为大于0的整数,即,基于从第n+1个到最后一个光流方向图像中的每一个光流方向图像中各像素的光流方向与其对应的背景方向之间的夹角大小,计算第n+i个帧间差分图像(第n+i个光流方向图像)中各像素对应的方向判定值numx,y的值,基于所计算出的方向判定值numx,y的值判定第n+i个帧间差分图像(第n+i个光流方向图像)中各像素光流方向的类别,并且确定下一帧间差分图像(下一光流方向图像)中各像素位置上的背景方向;和e)从第n+1个帧间差分图像开始直到最后一个帧间差分图像,针对每一个帧间差分图像,基于帧间差分图像中各像素光流方向的类别,即,基于从第n+1个到最后一个光流方向图像中的每一个光流方向图像中各像素的光流方向的类别,计算各像素对应的积分值Ex,y的值。
其中,优选地,步骤d)可以包括:从第n+1个帧间差分图像开始直到最后一个帧间差分图像,针对每一个帧间差分图像,按照下式将帧间差分图像中各像素的光流方向Vm(x,y) n+i和所述各像素位置上的背景方向VBm(x,y) n+i-1之间的夹角大小与预定的第一阈值T1相比较来判定各像素光流方向的状态state,即按照下式比较每个光流方向图像中各像素位置上的光流方向与其对应的背景方向来判定各像素的光流方向的状态state:
state=1
state=0
如果state=0,则将下一帧间差分图像中相同像素位置上的背景方向(即,下一光流方向图像中相同像素位置上的背景方向)更新为 并且若numx,y大于0,则numx,y=numx,y-1;若numx,y等于0,则使numx,y的值保持为0;如果state=1,若numx,y小于第二阈值T2,则numx,y=numx,y+1,否则numx,y保持不变。当numx,y≤预定的第三阈值T3时,判定像素点m(x,y)的光流方向Vm(x,y) n+i的类别为同向,且下一帧间差分图像中相同像素位置上的背景方向(即,下一光流方向图像中相同像素位置上的背景方向)与当前帧间差分图像(当前光流方向图像)中该像素位置上的背景方向相同。当numx,y>第三阈值T3且numx,y<预定的第四阈值T4时,判定像素点m(x,y)的光流方向Vm(x,y) n+i的类别为混乱,且下一帧间差分图像(下一光流方向图像)中相同像素位置上的背景方向与当前帧间差分图像(当前光流方向图像)中该像素位置上的背景方向相同。当numx,y≥第四阈值T4时,判定像素点m(x,y)的光流方向Vm(x,y) n+i的类别为反向,且将当前帧间差分图像(当前光流方向图像)中该像素点的光流方向确定为下一帧间差分图像(下一光流方向图像)中相同像素位置上的背景方向: 其中VBm(x,y) n+i为下一帧间差分图像(下一光流方向图像)中像素点m(x,y)的像素位置上的背景方向。其中T3<T4≤T2。
此外,优选地,其中步骤e)可以包括:从第n+1个帧间差分图像开始直到最后一个帧间差分图像,针对每一个帧间差分图像(即,针对每个光流方向图像),如果像素点m(x,y)的光流方向的类别为同向,则将该像素点m(x,y)对应的光流方向积分值Ex,y加上第一固定值D1;如果像素点m(x,y)的光流方向的类别为反向,则将该像素点m(x,y)对应的光流方向积分值Ex,y减去第二固定值D2;如果像素点m(x,y)的光流方向的类别为混乱,则该像素点m(x,y)对应的光流方向积分值Ex,y保持不变。
按照本发明的第一优选实现方式,本发明的视频图像序列中烟雾的检测方法的第三步骤103可以包括:f)根据步骤e)得出的所述积分值Ex,y的值确定各像素是否是烟雾点。优选地,如果像素点m(x,y)对应的光流方向积分值Ex,y大于预定的第五阈值T5,则该像素点m(x,y)为烟雾点。
需要注意的是,按照本发明的第一优选实现方式,本发明的视频图像序列中烟雾的检测方法的第四步骤104中获取的初始检测区域是在最后一个光流方向图像中获取的。
按照本发明的第一优选实现方式,本发明的视频图像序列中烟雾的检测方法的第五步骤105可以包括:计算初始检测区域的光流方向的直方图;针对所述初始检测区域,统计其光流方向的直方图中的同值像素的个数并且确定出这些个数中的最大值;计算所述初始检测区域中同值像素个数的最大值的周边范围所包含的同值像素个数在直方图中的所有像素个数中所占的比例;判断所述同值像素个数的最大值的周边范围所包含的同值像素个数在直方图中的所有像素个数中所占的比例是否大于预定的第七阈值T7,如果所述比例大于第七阈值T7,则将所述初始检测区域判定为烟雾区域并且输出与烟雾区域相关的信息。按照一种实施方式,所述与烟雾区域相关的信息可以是烟雾区域的顶点坐标,或者是其它与烟雾区域的位置相关的信息。需要注意的是,由于各步骤之间传递的是光流方向图像,因此第五步骤中所涉及的“像素”指的是光流方向图像中的像素。
在实际应用中,n个视频图像的获取可以是连续的、间歇的、重叠的或随机的。连续地获取视频图像序列是指,可以首先获取一定时长的视频图像来加以处理,处理完成之后再获取时间上连续的下一段一定时长的视频图像进行处理,当然,在这种情况下就需要有供缓存或保存视频图像的部件或装置。重叠地获取视频图像是指,在获取了一定时长的视频图像来加以处理之后,下一段一定时长的视频图像的起始点在前一段视频图像的起始点与结束点之间,且该下一段一定时长的视频图像的结束点在前一段视频图像的结束点之后。当然,在重叠地获取视频图像的情况下,也需要缓存或保存视频图像的部件或装置。间歇地获取视频图像序列是指,按照一定的时间间隔来获取视频图像序列来加以处理。随机地获取视频图像序列是指,无规律地获取一段一定时长的视频序列来加以处理。
图6示出了按照本发明的第一优选实现方式的视频图像序列中烟雾的检测装置的示意框图。
如图6所示,按照本发明的第一优选实现方式,本发明的视频图像序列中烟雾的检测装置的光流方向计算单元1可以包括:帧间差分图像计算模块,用于依次计算所述视频图像序列中每两个相邻视频图像帧之间的帧间差分图像,得出帧间差分图像序列;光流方向计算模块,用于计算帧间差分图像序列中各帧间差分图像中各像素m(x,y)的光流方向Vm(x,y) p,其中p为大于0的整数且p代表帧间差分图像的序号。每一个帧间差分图像中各像素的光流方向构成一个光流方向图像。
按照本发明的第一优选实现方式,本发明的视频图像序列中烟雾的检测装置的积分值计算单元2可以包括:输入端模块,用于接收第n个到最后一个帧间差分图像中各像素的光流方向(即,接收第n个到第p个光流方向图像),并且以帧间差分图像序列中的第n个帧间差分图像中各像素的光流方向Vm(x,y) n作为第n+1个帧间差分图像中对应的各像素位置上的背景方向VBm(x,y) n,换句话说,是以第n个光流方向图像作为第n+1个光流方向图像的背景光流方向图像,这里0<n<p,即,确定初始背景方向,并且令各像素位置对应的方向判定值numx,y等于方向判定值初始值,令各像素位置对应的积分值Ex,y等于积分值初始值;光流方向类别判定模块,用于从输入端模块接收第n+1个到最后一个帧间差分图像中各像素的光流方向以及背景方向VBm(x,y) n,针对每一个帧间差分图像,基于帧间差分图像中各像素的光流方向Vm(x,y) n+i和对应像素位置上的背景方向VBm(x,y) n+i-1之间的夹角大小,其中i为大于0的整数,即,基于从第n+1个到最后一个光流方向图像中的每一个光流方向图像中各像素的光流方向与其对应的背景方向之间的夹角大小,计算第n+i个帧间差分图像中各像素对应的方向判定值numx,y的值,基于方向判定值numx,y的值判定第n+i个帧间差分图像中各像素光流方向的类别,并且确定下一帧间差分图像中各像素位置上的背景方向;积分值计算模块,用于从第n+1个帧间差分图像开始直到最后一个帧间差分图像,基于帧间差分图像中各像素光流方向的类别,即,基于从第n+1个到最后一个光流方向图像中的每一个光流方向图像中各像素的光流方向的类别,计算各像素对应的积分值Ex,y的值。
其中,优选地,光流方向类别判定模块进行以下操作:从输入端模块接收第n+1个到最后一个帧间差分图像中各像素的光流方向以及背景方向VBm(x,y) n,按照下式从第n+1个帧间差分图像开始将一个帧间差分图像中各像素的光流方向Vm(x,y) n+i和所述各像素位置上的背景方向VBm(x,y) n+i-1之间的夹角大小与预定的第一阈值T1相比较来判定各像素光流方向的状态state,即按照下式比较每个光流方向图像中各像素位置上的光流方向与其对应的背景方向来判定各像素的光流方向的状态state:
state=1
state=0;
如果state=0,则将下一帧间差分图像中相同像素位置上的背景方向(即,下一光流方向图像中相同像素位置上的背景方向)更新为 并且若numx,y大于0,则numx,y=numx,y-1;若numx,y等于0,则使numx,y的值保持为0。如果state=1,若numx,y小于第二阈值T2,则numx,y=numx,y+1,否则numx,y保持不变。当numx,y≤预定的第三阈值T3时,判定像素点m(x,y)的光流方向Vm(x,y) n+i的类别为同向,且下一帧间差分图像中相同像素位置上的背景方向(即,下一光流方向图像中相同像素位置上的背景方向)与当前帧间差分图像(当前光流方向图像)中该像素位置上的背景方向相同。当numx,y>第三阈值T3且numx,y<预定的第四阈值T4时,判定像素点m(x,y)的光流方向Vm(x,y) n+i的类别为混乱,且下一帧间差分图像(下一光流方向图像)中相同像素位置上的背景方向与当前帧间差分图像(当前光流方向图像)中该像素位置上的背景方向相同。当numx,y≥第四阈值T4时,判定像素点m(x,y)的光流方向Vm(x,y) n+i的类别为反向,且将当前帧间差分图像(当前光流方向图像)中相同位置像素点的光流方向确定为下一帧间差分图像(下一光流方向图像)中相同像素位置上的背景方向: 其中VBm(x,y) n+i为下一帧间差分图像(下一光流方向图像)中像素点m(x,y)的像素位置上的背景方向。其中T3<T4≤T2。
其中,优选地,积分值计算模块可以进行以下操作:接收光流方向类别判定模块输出的第n+1个到最后一个帧间差分图像中各像素光流方向(即,第n+1个到最后一个光流方向图像)以及各像素光流方向的类别,并且从第n+1个帧间差分图像开始到最后一个帧间差分图像,针对每一个帧间差分图像(即,针对每一个光流方向图像),如果像素点m(x,y)的光流方向的类别为同向,则将该像素点m(x,y)对应的光流方向积分值Ex,y加上第一固定值D1;如果像素点m(x,y)的光流方向的类别为反向,则将该像素点m(x,y)对应的光流方向积分值Ex,y减去第二固定值D2;如果像素点m(x,y)的光流方向的类别为混乱,则该像素点m(x,y)对应的光流方向积分值Ex,y保持不变。
按照本发明的第一优选实现方式,本发明的视频图像序列中烟雾的检测装置的烟雾点确定单元3进行以下操作:接收积分值计算单元输出的第n+1个到最后一个帧间差分图像中各像素的光流方向(即,第n+1个到最后一个光流方向图像)以及这些帧间差分图像(光流方向图像)中各像素对应的积分值Ex,y,根据积所述积分值Ex,y的值确定各像素是否是烟雾点。优选地,烟雾点确定单元进行以下操作:如果像素点m(x,y)对应的光流方向积分值Ex,y大于预定的第五阈值T5,则该像素点m(x,y)为烟雾点。
需要注意的是,按照本发明的第一优选实现方式,本发明的视频图像序列中烟雾的检测装置的初始检测区域获取单元4接收最后一个帧间差分图像中各像素的光流方向(即,最后一个光流方向图像)和所有烟雾点的信息,并且从最后一个光流方向图像中获取初始检测区域。
按照本发明的第一优选实现方式,本发明的视频图像序列中烟雾的检测装置的烟雾区域判定单元5接收最后一个光流方向图像以及初始检测区域的位置信息,并且可以进行以下操作:计算初始检测区域的光流方向的直方图;针对所述初始检测区域,统计其光流方向的直方图中的同值像素的个数并且确定出这些个数中的最大值;计算所述初始检测区域中同值像素个数的最大值的周边范围所包含的同值像素个数在直方图中的所有像素个数中所占的比例;判断所述同值像素个数的最大值的周边范围所包含的同值像素个数在直方图中的所有像素个数中所占的比例是否大于预定的第七阈值T7,如果所述比例大于第七阈值T7,则将所述初始检测区域判定为烟雾区域并且输出与烟雾区域相关的信息。按照一种实施方式,所述与烟雾区域相关的信息可以是烟雾区域的顶点坐标,或者是其它与烟雾区域的位置相关的信息。需要注意的是,由于各单元之间传递的是光流方向图像,因此烟雾区域判定单元5中所涉及的“像素”指的是光流方向图像中的像素。
优选地,其中,150≤T5≤200且T5为整数。优选地,第一固定值D1的取值范围为8≤D1≤20且D1为整数,第二固定值D2的取值范围为8≤D2≤20且D2为整数。优选地,第七阈值T7的取值范围为0.6≤T7≤0.8。优选地,30≤T1≤50。优选地,第二阈值T2的值为8、9、10、11或12,第三阈值T3的值为2或3,第四阈值T4的值为6、7或8,并且第二阈值T2的值大于第四阈值T4的值。优选地,所述方向判定值初始值和积分值初始值均为0。
第二优选实现方式
图7示出了按照本发明的第二优选实现方式的视频图像序列中烟雾的检测方法的流程图。
如图7所示,按照本发明的第二优选实现方式,本发明的视频图像序列中烟雾的检测方法可以是实时进行的。按照本发明的第二优选实现方式,本发明的视频图像序列中烟雾的检测方法中的第一步骤101可以包括:a)计算当前视频图像帧与前一视频图像帧之间的帧间差分图像;b)计算所述帧间差分图像中各像素m(x,y)的光流方向Vm(x,y)。帧间差分图像中各像素的光流方向构成一个光流方向图像。
按照本发明的第二优选实现方式,本发明的视频图像序列中烟雾的检测方法中的第二步骤102可以包括:c)如果所述帧间差分图像中的各像素位置不存在相应的背景方向,即,如果光流方向图像不存在相应的背景光流方向图像,则将所述各像素m(x,y)的光流方向Vm(x,y)作为相同像素位置上的背景方向VBm(x,y),换句话说,是以当前光流方向图像作为背景光流方向图像,即确定初始背景方向,且令各像素位置对应的方向判定值numx,y等于方向判定值初始值,令各像素位置对应的积分值Ex,y等于积分值初始值,并且返回到步骤a),否则执行步骤d);d)基于所述帧间差分图像中各像素的光流方向Vm(x,y)和相同像素位置上的背景方向VBm(x,y)之间的夹角大小,即,基于光流方向图像中各像素的光流方向与其对应的背景方向之间的夹角大小,计算所述帧间差分图像(光流方向图像)中各像素对应的方向判定值numx,y的值,基于方向判定值numx,y的值判定所述帧间差分图像(光流方向图像)中各像素光流方向的类别,并且重新确定各像素位置上的背景方向;e)根据帧间差分图像(光流方向图像)中各像素光流方向的类别,计算各像素对应的积分值Ex,y的值。
优选地,其中,其中步骤d)可以包括:按照下式将帧间差分图像中各像素的光流方向Vm(x,y)和所述各像素位置上的背景方向VBm(x,y)之间的夹角大小与预定的第一阈值T1相比较来判定各像素光流方向的状态state,即按照下式比较光流方向图像中各像素位置上的光流方向与其对应的背景方向来判定各像素的光流方向的状态state:
|Vm(x,y)-VBm(x,y)|>T1,state=1
|Vm(x,y)-VBm(x,y)|≤T1,state=0
如果state=0,则将该像素位置上的背景方向VBm(x,y)更新为0.9×VBm(x,y)+0.1×Vm(x,y),并且若numx,y大于0,则numx,y=numx,y-1;若numx,y等于0,则使numx,y的值保持为0。如果state=1,若numx,y小于第二阈值T2,则numx,y=numx,y+1,否则numx,y保持不变。当numx,y≤预定的第三阈值T3时,判定像素点m(x,y)的光流方向Vm(x,y)的类别为同向,且使背景方向保持不变。当numx,y>第三阈值T3且numx,y<预定的第四阈值T4时,判定像素点m(x,y)的光流方向Vm(x,y)的类别为混乱,且使背景方向保持不变。当numx,y≥第四阈值T4时,判定像素点n(x,y)的光流方向Vm(x,y)的类别为反向,且将背景方向更新为该像素点的光流方向:VBm(x,y)=Vm(x,y)。其中T3<T4≤T2。
优选地,其中,其中步骤e)可以包括:如果像素点m(x,y)的光流方向的类别为同向,则将该像素点m(x,y)对应的光流方向积分值Ex,y加上第一固定值D1;如果像素点m(x,y)的光流方向的类别为反向,则将该像素点m(x,y)对应的光流方向积分值Ex,y减去第二固定值D2;如果像素点m(x,y)的光流方向的类别为混乱,则该像素点m(x,y)对应的光流方向积分值Ex,y保持不变。
按照本发明的第二优选实现方式,本发明的视频图像序列中烟雾的检测方法中的第三步骤103可以包括:f)根据步骤e)得出的所述积分值Ex,y的大小确定所述帧间差分图像(光流方向图像)中各像素是否是烟雾点,如果存在烟雾点,则执行步骤g),如果不存在烟雾点,则返回步骤a);g)如果判定为烟雾点的像素个数大于预定的第八阈值T8,则执行第四步骤,否则返回到步骤a)。优选地,其中步骤f)包括:如果像素点m(x,y)对应的光流方向积分值Ex,y大于预定的第五阈值T5,则该像素点m(x,y)为烟雾点并执行步骤g),如果所有光流方向积分值Ex,y都小于预定的第五阈值T5,则返回到步骤a)。此处,第八阈值T8的取值范围可以是16≤T8≤24。按照一种优选实施方式,可以这样来判定为烟雾点的像素个数是否大于预定的第八阈值T8:通过连通区域标记将检测出的烟雾点标记成不同的区域,然后统计各个区域内属于烟雾点的个数,若该个数大于第八阈值T8,则执行第四步骤,否则将该区域内的烟雾点全设为非烟雾点,即,将该区域内像素的像素值设置为0。需要注意的是,虽然某一像素点是否是烟雾点是由光流方向积分值决定的,而且在判定烟雾点个数过少的情况下,流程会返回到步骤a),但是,一帧图像中有可能存在1个以上的连通区域,在判断某一区域内烟雾点过少的情况下,只能说明图像内该区域不属于烟雾目标,但图像内也有可能存在其他区域属于烟雾目标,需要将图像内所有连通区域都判断完,因此,在某一区域内烟雾点过少的情况下,需要将该区域内的烟雾点全设为非烟雾点,以避免在有另一区域内的烟雾点个数超过第八阈值的情况下,在后续处理中出现对烟雾区域的误判。在针对该帧图像内的所有连通区域都进行了烟雾点个数与第八阈值的比较之后,若该帧图像内不存在烟雾点个数超过第八阈值的区域,则流程返回步骤a)。连通区域标定方法可以通过四连通域方法或八连通域方法实现。可以这样进行四连/八连通域的连通标记:首先,对二值化图像(烟雾点判断后的二值图像,即标识烟雾点(例如设定其像素值为“1”)和非烟雾点(例如设定其像素值为“0”)的二值图像)施行逐行扫描,找到一个未标记区域的第一点,标记该点;检查该点的四连/八连域点并标记满足连通性要求的,且尚未被标记的点,同时将新增的标记点记录下来作为“区域增长”的种子点;在后续的标记过程中,不断地从记录种子点的数组中取出一个种子,施行上述的操作,如此循环,直到记录种子点的数组为空,一个连通区域标记结束;接着再标记下一个未标记的区域,直到二值化图像(烟雾点判断后的二值图像,即标识烟雾点(例如设定其像素值为“1”)和非烟雾点(例如设定其像素值为“0”)的二值图像)内所有连通区域都被标记。
需要注意的是,按照本发明的第二优选实现方式,本发明的视频图像序列中烟雾的检测方法的第四步骤104中获取的初始检测区域是在光流方向图像中获取的。
按照本发明的第二优选实现方式,本发明的视频图像序列中烟雾的检测方法的第五步骤105可以包括:计算初始检测区域的光流方向的直方图;针对所述初始检测区域,统计其光流方向的直方图中的同值像素的个数并且确定出这些个数中的最大值;计算所述初始检测区域中同值像素个数的最大值的周边范围所包含的同值像素个数在直方图中的所有像素个数中所占的比例;判断所述同值像素个数的最大值的周边范围所包含的同值像素个数在直方图中的所有像素个数中所占的比例是否大于预定的第七阈值T7,如果所述比例大于第七阈值T7,则将所述初始检测区域判定为烟雾区域并输出与烟雾区域相关的信息,如果所述比例小于或等于第七阈值T7,则返回到步骤a)。需要注意的是,由于各步骤之间传递的是光流方向图像,因此第五步骤中所涉及的“像素”指的是光流方向图像中的像素。
按照本发明的第二优选实现方式,本发明的视频图像序列中烟雾的检测方法此外还可以包括:第六步骤,输出所述与烟雾区域相关的信息并清除背景方向。按照一种实施方式,所述与烟雾区域相关的信息可以是烟雾区域的顶点坐标,或者是其它与烟雾区域的位置相关的信息。
图8示出了按照本发明的第二优选实现方式的视频图像序列中烟雾的检测装置的示意框图。
如图8所示,按照本发明的第二优选实现方式,本发明的视频图像序列中烟雾的检测装置中的光流方向计算单元1包括:帧间差分图像计算模块,用于计算当前视频图像帧与前一视频图像帧之间的帧间差分图像;光流方向计算模块,用于计算所述帧间差分图像中各像素m(x,y)的光流方向Vm(x,y)。帧间差分图像中各像素的光流方向构成一个光流方向图像。
按照本发明的第二优选实施方式,本发明的视频图像序列中烟雾的检测装置中的积分值计算单元2包括:背景方向存储器;输入端模块,用于从光流方向计算单元接收帧间差分图像中各像素m(x,y)的光流方向Vm(x,y)(即,光流方向图像)并且从所述背景方向存储器中读取背景方向,如果所述背景方向存储器中不存在各个像素位置上的背景方向,即,如果光流方向图像不存在相应的背景光流方向图像,则将所述各像素m(x,y)的光流方向Vm(x,y)作为相同像素位置上的背景方向VBm(x,y)(换句话说,是以当前光流方向图像作为背景光流方向图像)存储在所述背景方向存储器中,即确定并存储初始背景方向,且令各像素位置对应的方向判定值numx,y等于方向判定值初始值,令各像素位置对应的积分值Ex,y等于积分值初始值,如果所述背景方向存储器中存在各个像素位置上的背景方向,则输出所接收到的帧间差分图像中各像素m(x,y)的光流方向Vm(x,y)(即光流方向图像)以及从所述背景方向存储器中读取的背景方向;光流方向类别判定模块,用于基于所述帧间差分图像中各像素的光流方向Vm(x,y)(光流方向图像)和对应像素位置上的背景方向VBm(x,y)之间的夹角大小,即,基于光流方向图像中各像素的光流方向与其对应的背景方向之间的夹角大小,计算所述帧间差分图像(光流方向图像)中各像素对应的方向判定值numx,y的值,基于方向判定值numx,y的值判定所述帧间差分图像(光流方向图像)中各像素光流方向的类别,并且确定下一帧间差分图像(下一光流方向图像)中各像素位置上的背景方向;积分值计算模块,用于根据帧间差分图像(光流方向图像)中各像素光流方向的类别,计算各像素对应的积分值Ex,y的值。
优选地,其中光流方向类别判定模块接收光流方向图像和各像素位置上的背景方向并且进行以下操作:按照下式将帧间差分图像(光流方向图像)中各像素的光流方向Vm(x,y)和所述各像素位置上的背景方向VBm(x,y)之间的夹角大小与预定的第一阈值T1相比较来判定各像素光流方向的状态state,即按照下式比较光流方向图像中各像素位置上的光流方向与其对应的背景方向来判定各像素的光流方向的状态state:
|Vm(x,y)-VBm(x,y)|>T1,state=1
|Vm(x,y)-VBm(x,y)|≤T1,state=0
如果state=0,则将背景方向存储器中该像素位置上的背景方向VBm(x,y)更新为0.9×VBm(x,y)+0.1×Vm(x,y),并且若numx,y大于0,则numx,y=numx,y-1;若numx,y等于0,则使numx,y的值保持为0;如果state=1,若numx,y小于第二阈值T2,则numx,y=numx,y+1,否则numx,y保持不变,当numx,y≤预定的第三阈值T3时,判定像素点m(x,y)的光流方向Vm(x,y)的类别为同向,且使背景方向保持不变,即,不改变背景方向存储器中该像素点的背景方向;当numx,y>第三阈值T3且numx,y<预定的第四阈值T4时,判定像素点m(x,y)的光流方向Vm(x,y)的类别为混乱,且使背景方向保持不变,即,不改变背景方向存储器中该像素点的背景方向;当numx,y≥第四阈值T4时,判定像素点m(x,y)的光流方向Vm(x,y)的类别为反向,且将背景方向存储器中该像素位置上的背景方向更新为该像素点的光流方向:VBm(x,y)=Vm(x,y),其中T3<T4≤T2。
按照本发明的第二优选实现方式,优选地,本发明的视频图像序列中烟雾的检测装置中的积分值计算单元的积分值计算模块接收光流方向图像和各像素光流方向的类别并且进行以下操作:如果像素点m(x,y)的光流方向的类别为同向,则将该像素点m(x,y)对应的光流方向积分值Ex,y加上第一固定值D1;如果像素点m(x,y)的光流方向的类别为反向,则将该像素点m(x,y)对应的光流方向积分值Ex,y减去第二固定值D2;如果像素点m(x,y)的光流方向的类别为混乱,则该像素点m(x,y)对应的光流方向积分值Ex,y保持不变。
按照本发明的第二优选实现方式,本发明的视频图像序列中烟雾的检测装置中的烟雾点确定单元3包括:烟雾点确定模块,用于接收积分值计算模块输出的光流方向图像和所述积分值Ex,y的大小确定所述帧间差分图像(光流方向图像)中各像素是否是烟雾点,如果存在烟雾点,则输出烟雾点的信息,例如烟雾点的坐标;烟雾点个数统计模块,接收烟雾点确定单元输出的光流方向图像和烟雾点信息并且用于统计所述烟雾点确定模块确定的烟雾点的个数,当烟雾点的个数大于预定的第八阈值T8时,输出光流方向图像和所有烟雾点的坐标。此处,第八阈值T8的取值范围可以是16≤T8≤24。按照一种优选实施方式,可以这样来判定为烟雾点的像素个数是否大于预定的第八阈值T8:通过连通区域标记将检测出的烟雾点标记成不同的区域,然后统计各个区域内属于烟雾点的个数,若该个数大于第八阈值T8,则输出所有的烟雾点的坐标,否则将该区域内的烟雾点全设为非烟雾点,即,将该区域内像素的像素值设置为0。需要注意的是,虽然某一像素点是否是烟雾点是由光流方向积分值决定的,而且在判定烟雾点个数过少的情况下,流程会返回到步骤a),但是,一帧图像中有可能存在1个以上的连通区域,在判断某一区域内烟雾点过少的情况下,只能说明图像内该区域不属于烟雾目标,但图像内也有可能存在其他区域属于烟雾目标,需要将图像内所有连通区域都判断完,因此,在某一区域内烟雾点过少的情况下,需要将该区域内的烟雾点全设为非烟雾点,以避免在有另一区域内的烟雾点个数超过第八阈值的情况下,在后续处理中出现对烟雾区域的误判。在针对该帧图像内的所有连通区域都进行了烟雾点个数与第八阈值的比较之后,若该帧图像内不存在烟雾点个数超过第八阈值的区域,则流程返回步骤a)。连通区域标定方法可以通过四连通域方法或八连通域方法实现。可以这样进行四连/八连通域的连通标记:首先,对二值化图像(烟雾点判断后的二值图像,即标识烟雾点(例如设定其像素值为“1”)和非烟雾点(例如设定其像素值为“0”)的二值图像)施行逐行扫描,找到一个未标记区域的第一点,标记该点;检查该点的四连/八连域点并标记满足连通性要求的,且尚未被标记的点,同时将新增的标记点记录下来作为“区域增长”的种子点;在后续的标记过程中,不断地从记录种子点的数组中取出一个种子,施行上述的操作,如此循环,直到记录种子点的数组为空,一个连通区域标记结束;接着再标记下一个未标记的区域,直到二值化图像(烟雾点判断后的二值图像,即标识烟雾点(例如设定其像素值为“1”)和非烟雾点(例如设定其像素值为“0”)的二值图像)内所有连通区域都被标记。
按照本发明的第二优选实施方式,优选地,本发明的视频图像序列中烟雾的检测装置中的烟雾点确定单元的烟雾点确定模块接收光流方向图像和各像素对应的光流方向积分值并且进行以下操作:如果像素点m(x,y)对应的光流方向积分值Ex,y大于预定的第五阈值T5,则该像素点m(x,y)为烟雾点并输出所有烟雾点的信息,例如所有烟雾点的坐标。
需要注意的是,按照本发明的第二优选实现方式,本发明的视频图像序列中烟雾的检测装置的初始检测区域获取单元4接收帧间差分图像中各像素的光流方向(即,光流方向图像)和所有烟雾点的信息,并且从光流方向图像中获取初始检测区域。
按照本发明的第二优选实现方式,本发明的视频图像序列中烟雾的检测装置的烟雾区域判定单元5可以进行以下操作:计算初始检测区域的光流方向的直方图;针对所述初始检测区域,统计其光流方向的直方图中的同值像素的个数并且确定出这些个数中的最大值;计算所述初始检测区域中同值像素个数的最大值的周边范围所包含的同值像素个数在直方图中的所有像素个数中所占的比例;判断所述同值像素个数的最大值的周边范围所包含的同值像素个数在直方图中的所有像素个数中所占的比例是否大于预定的第七阈值T7,如果所述比例大于第七阈值T7,则将所述初始检测区域判定为烟雾区域并且输出与烟雾区域相关的信息。需要注意的是,由于各单元之间传递的是光流方向图像,因此烟雾区域判定单元5中所涉及的“像素”指的是光流方向图像中的像素。
按照本发明的第二优选实现方式,本发明的视频图像序列中烟雾的检测装置此外还可以包括:输出单元6,用于在接收到烟雾区域判定单元输出的与烟雾区域相关的信息时,清空所述背景方向存储器并且输出所述与烟雾区域相关的信息。
按照一种实施方式,所述与烟雾区域相关的信息可以是烟雾区域的顶点坐标,或者是其它与烟雾区域的位置相关的信息。
优选地,其中,150≤T5≤200且T5为整数。优选地,第一固定值D1的取值范围为8≤D1≤20且D1为整数,第二固定值D2的取值范围为8≤D2≤20且D2为整数。优选地,第七阈值T7的取值范围为0.6≤T7≤0.8。优选地,30≤T1≤50。优选地,第二阈值T2的值为8、9、10、11或12,第三阈值T3的值为2或3,第四阈值T4的值为6、7或8,并且第二阈值T2的值大于第四阈值T4的值。优选地,所述方向判定值初始值和积分值初始值均为0。
按照本发明的视频图像序列中烟雾的检测方法及装置不需要建立背景,能消除光照、噪声以及背景纹理的影响,提高了烟雾检测的可靠性。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,应当理解,本发明并不限于这里所描述的实现方案,这些实现方案描述的目的在于帮助本领域中的技术人员实践本发明。任何本领域中的技术人员很容易在不脱离本发明精神和范围的情况下进行进一步的改进和完善,因此本发明只受到本发明权利要求的内容和范围的限制,其意图涵盖所有包括在由所附权利要求所限定的本发明精神和范围内的备选方案和等同方案。