具体实施方式
随着英伟达NVIDIA公司统一计算设备架构(CUDA)平台的发布,以及随后OpenCL的推出,GPU并行计算技术已经逐步走向了成熟。本发明将GPU超性能计算技术应用于高清视频分析中的烟火检测模块,可实现对高清视频的实时烟火检测。
本发明提出了一种基于视频实时烟火检测方法,本方法使用GPU超性能计算技术,在智能交通系统中实现了基于高清视频的实时烟火检测。
本发明对高清视频图像的所有像素进行小波分析,极大限度利用了高清视频带来的高分辨率优势,使烟火检测精度有了很大的提高。GPU超性能计算技术的引入,使算法在速度上提升了至少2个数量级,速度优势保证了其可以实时地处理高帧率的高清视频,从而避免了由于视频的帧率低所引起的信号混淆。可以说,借助于GPU强大的并行计算能力,本方法使高清视频烟火检测效果有了质的飞跃。
参照图1,本发明提供的一种基于视频图像检测烟火的方法,包括如下步骤:
S01,获取所摄取的视频图像数据并保存;
S02,从所述视频图像数据中提取预定数量的连续的图像帧;
S03,对所述各帧图像的所有像素点位置提取对应的亮度序列,得到序列集合{Y(x,y)},对集合中各个序列Y(x,y)进行并行分析处理;
S04,对亮度序列Y(x,y)进行高通滤波和降采样,得到输出信号Yh(x,y);
S05,根据所述输出信号Yh(x,y)的幅度变化情况检测像素点位置是否具有烟火特性,并综合各像素位置的检测结果确定所述视频图像中的准烟火区域;
S06,判断所述准烟火区域的图像是否为烟火图像。
若所述准烟火区域的图像具有非凸特性,则确定所述准烟火区域为烟火图像。
在步骤S01中,读取视频中每一帧图像,并将数据保存到存储器中。并在存储器上分配2个映射图,记为Map_device、Fire_device,该映射图是和视频图像等尺寸的二值图像,该图像像素只有0,1两种值,0表示该位置非烟火,1表示该位置是烟火。通常,所摄取的视频具有高清晰度和高帧率;根据实验测定,火焰闪烁的频率约为10Hz,为了准确地捕获烟火区域,避免混淆,视频的帧率要不小于20fps。在时域进行分析时,为了获得准确的结果,本发明具体实施例中使用最近1秒内的图像数据进行分析,所以存储器上动态保存最近的20帧连续的高分辨率图像。
在步骤S02中,一般地,所摄取的视频的帧率≥10fps;预定数量至少为10帧,即提取至少10帧连续的图像帧。在具体实施例中通常采用20帧连续的图像帧,这样效果会更好。
更适宜地,采用的帧数量与视频的帧率保持一致,例如,当前的视频图像的帧率为15fps,则采用连续的15帧进行分析处理。
在步骤S03中,本步骤使用时域小波分析计算各个像素点的是否符合烟火闪烁条件。因为烟火信号是非稳定的(非平稳随机过程),而小波分析特别适用于处理非稳定信号的。时域小波分析所用的各像素变化信息相互独立,像素间无需交互操作,因此适合使用GPU并行计算。
根据GPU大规模并行计算特性,采用如下设计:每个线程负责对一个像素点进行小波分析,检测其变化频率是否和焰火闪烁频率相符,即GPU内分配的线程数等于每帧图像的像素数。
本步骤中对提取的所述各帧图像的像素进行并行分析处理,具体包括:
采用N个线程并行对各像素进行处理,N为图像的像素数;
各线程并行读取各像素对应位置的亮度序列Y(x,y)。
所述对提取的所述各帧图像的像素进行并行分析处理采用的是小波分析,通常在支持通用计算的图像处理单元GPU中执行。
其中采用N个线程并行对各像素进行处理,具体包括:
(a)分配线程,各线程以线程块的形式编组,每个线程块内共有22n个线程,线程块内线程采用2n×2n的二维分布;在此,每个块内的线程数要小于等于512;
(b)分配线程块,基于线程块的尺寸及高清图像的尺寸动态分配线程块,并确定线程块的二维地址;
(c)线程与像素一一对应,将各个线程地址与图像中的各像素一一对应。
由于烟火信号是非稳定的,而小波分析特别适用于处理非稳定信号,所以本发明在GPU内使用并行的小波分析对所有像素点进行烟火检测。
本步骤选取YUV颜色空间的亮度分量Y作为输入信号,因为亮度能够准确地体现烟火颜色变化信息,而且还适用于黑白视频的烟火检测。
每个线程读取存储器上20帧图像对应位置(x,y)的亮度值,组成输入信号序列Y(x,y)。如果视频中读出的各帧图像是RGB彩色格式,将RGB值转换成YUV颜色空间的Y分量,组成该像素点位置的亮度序列Y(x,y)。
S04,对所述亮度序列Y(x,y)进行高通滤波和降采样,所述滤波处理所采用一阶滤波器,其中半带高通滤波器的系数为半带低通滤波器的系数为
步骤S05中,对应20Hz的输入信号Y(x,y),经过高通滤波器滤波和降采样,输出信号Yh(x,y)包含了5Hz~10Hz波段的信息。如果|Yh(x,y)|等于或接近于0,则说明此处像素值没有发生明显改变,判断其为背景;如果|Yh(x,y)|中有单峰波形出现,则判定此处是运动的普通物体;如果|Yh(x,y)|多次在一个经验阈值上下大幅度地变化,波形呈多峰分布,则说明该处极有可能是闪烁的烟火。如果出现多峰波形,Map_device(x,y)=1,否则Map_device(x,y)=0。
先使用形态学运算中的开运算和闭运算将Map_device中的非0区域连通并标记,得到平滑的准烟火区域,结果存入图Fire_device。
步骤S06中,在户外监视视频中,往往会出现太阳、车灯等闪烁着的干扰信号,这些干扰信号的特点是区域形状有规律,在图像二维空间上一般满足凸面条件。而相比而言,火焰形状不定,烟火区域在图像二维空间上多为非凸。因此,可以利用烟火区域的非凸特性来排除太阳、车灯等闪烁干扰信号。
从之前确定的准烟火区域边界上水平和垂直方向上各取5条线,检查每条线上的各个像素是否属于准烟火区域。如果有连续3个或者更多的像素属于背景,则认为这个区域违背了凸面条件,即认定其为烟火区域,否则,认定其为非烟火区域。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图2和图3,本发明实施例提供的一种基于视频图像检测烟火的方法,包括如下步骤:
S101,读取视频图像数据,并传送到显卡的存储器中保存;
读取视频中每一帧图像,并将数据保存到显卡的存储器中。并在显卡的存储器上分配2个和输入图像等尺寸的映射图Map_device、Fire_device。所摄取的视频图像的帧率≥20fps;根据实验测定,火焰闪烁的频率约为10Hz,为了准确地捕获烟火区域,避免混淆,视频的帧率要不小于20fps。在时域进行分析时,为了获得准确的结果,本发明具体实施例中使用最近1秒内的图像数据进行分析,所以显卡的存储器上动态保存最近的20帧连续的高分辨率图像。
S102,从显卡的存储器中读取所有像素点对应的亮度序列集合{Y(x,y)};
本实施例中,每个序列是20幅图像在相应的像素位置的亮度值组成的,长度为20。总的序列数等于像素数。S103,对各帧图像的像素对应的亮度序列Y(x,y)进行并行小波分析;
对集合{Y(x,y)}中各个序列Y(x,y)进行GPU并行分析处理;本实施例中,并行分析具体为对序列集合中各个序列进行并行小波分析。
本步骤使用时域小波分析计算各个像素点的是否符合烟火闪烁条件。因为烟火信号是非稳定的(非平稳随机过程),而小波分析特别适用于处理非稳定信号。时域小波分析所用的各像素变化信息相互独立,各个像素间无需信息交互,因此适合使用GPU并行计算。
根据GPU大规模并行计算特性,每个线程负责对一个像素点进行小波分析,检测其变化频率是否和焰火闪烁频率相符,即GPU内分配的线程数等于每帧图像的像素数。线程分配流程如下:
首先,分配线程;
GPU内的线程以线程块(block)的形式编组,线程块内的线程的规格记为threadSize。本发明中每个线程块内线程采用16×16的二维分布,即threadSize.x=1 6,threadSize.y=16,每个线程块内共有256个线程。线程块内线程的二维地址为threadIdx.x,threadIdx.y(取值范围分别为0~threadSize.x-1和0~threadSize.y-1)。
然后,分配线程块;
线程块的尺寸确定后,可根据高清图像的尺寸动态分配线程块,线程块规格为blockSize。设图像宽为Width和高为Height,则
线程块的二维地址为blockIdx.x,blockIdx.y(取值范围分别为0~blockSize.x-1和0~blockSize.y-1)。
最后,将线程与像素一一对应。
如图4所示,GPU内各个线程地址(idx,idy)与图像中的各像素一一对应。idx、idy由以下公式给出:
idx=blockIdx.x×threadSize.x+threadIdx.x
idy=blockIdx.y×threadSize.y+threadIdx.y (2)
由于烟火信号是非稳定的,而小波分析特别适用于处理非稳定信号,所以本发明在GPU内使用并行的小波分析对所有像素点进行烟火检测。
本步骤选取YUV颜色空间的亮度分量Y作为输入信号,因为亮度能够准确地体现烟火颜色变化信息,而且还适用于黑白视频的烟火检测。
每个线程读取存储器上20帧图像对应位置(x,y)的亮度值,组成输入信号序列Y(x,y)。如果视频中读出的各帧图像是RGB彩色格式,则通过公式(3)把RGB值转换成YUV颜色空间的Y分量,组成该像素点位置的亮度序列Y(x,y)。
Y=0.299R+0.587G+0.114B (3)
更适宜地,对亮度序列Y(x,y)进行高通滤波和降采样,得到输出信号Yh(x,y);
本发明采用一阶滤波器如图5所示,其中半带高通滤波器的系数为
半带低通滤波器的系数为
S104,综合各像素位置的检测结果确定视频图像中的准烟火区域;
具体地,根据所述输出信号Yh(x,y)的幅度变化情况检测所述像素点位置是否具有烟火特性;
经滤波和降采样后,得到信号Yh(x,y)和Yl(x,y)。对应20Hz的输入信号Y(x,y),经过高通滤波器滤波和降采样,输出信号Yh(x,y)包含了5Hz~10Hz波段的信息。如果|Yh(x,y)|等于或接近于0,则说明此处像素值没有发生明显改变,判断其为背景;如果|Yh(x,y)|中有单峰波形出现,则判定此处是运动的普通物体;如果|Yh(x,y)|多次在一个经验阈值上下大幅度地变化,波形呈多峰分布,则说明该处极有可能是闪烁的烟火。如果出现多峰波形,Map_device(x,y)=1,否则Map_device(x,y)=0。
本步骤是所有的GPU线程并行地完成,得到Map_device并存储在显卡的存储器中。其计算速度会比基于CPU的算法提高上百倍,这是能够实时地完成高清视频烟火检测的关键。
连通烟火区域,使用形态学运算中的开运算和闭运算将Map_device中的非0区域连通并标记,得到平滑的准烟火区域,结果存入Fire_device。本步也是在GPU上并行完成,线程分配规则不变。
将Fire_device从显卡的存储器拷贝回主机内存,记做Fire_host。
S105,判断准烟火区域的图像是否为烟火图像。
在户外监视视频中,往往会出现太阳、车灯等闪烁着的干扰信号,这些干扰信号的特点是区域形状有规律,在图像二维空间上一般满足凸面条件。而相比而言,火焰形状不定,烟火区域在图像二维空间上多为非凸。因此,可以利用烟火区域的非凸特性来排除太阳、车灯等闪烁干扰信号。
本发明实施例中,通过区域非凸检测进一步识别准烟火区域的图像是否为烟火图像。具体地,在Fire_host中的准烟火区域边界上水平和垂直方向上各取5条线,检查每条线上的各个像素是否属于准烟火区域。如果有连续3个或者更多的像素属于背景,则认为这个区域违背了凸面条件,即认定其为烟火区域,否则,认定其为非烟火区域。
之后,标注烟火区域。如果判定视屏中出现烟火,在视频中出现烟火的各帧图像上标注烟火区域,并发出报警信号,完成高清视频的烟火检测。
本发明实施例还提供一种基于视频图像检测烟火的系统600,如图6所示,包括:
图像获取单元610,用于获取所摄取的视频图像数据并保存;
并行处理单元620,用于从所述视频图像数据中提取预定数量的连续的图像帧;并对各帧图像的所有像素点位置提取对应的亮度序列,得到序列集合{Y(x,y)},对集合中各个序列Y(x,y)进行GPU并行分析处理;
滤波单元630,对所述亮度序列Y(x,y)进行高通滤波和降采样,得到输出信号Yh(x,y);
检测单元640,根据输出信号Yh(x,y)的幅度变化情况检测所述像素点位置是否具有烟火特性;
烟火区域确定单元650,用于综合各像素位置的检测结果确定所述视频图像中的准烟火区域;
判断单元660,用于判断所述准烟火区域的图像是否为烟火图像;
判断单元660识别所述准烟火区域的图像是否满足凸面条件;若所述准烟火区域的图像具有非凸特性,则判断单元660确定所述准烟火区域为烟火图像。
本实施例提供的检测烟火的系统中,所摄取的视频图像的帧率≥10fps;预定数量为10帧。
其中,并行处理单元620包括:
小波分析模块620a,用于对提取的所述各帧图像的所有像素点进行并行小波分析。
其中,滤波单元630包括:
半带高通滤波模块630a,采用的滤波器的系数为
烟火区域确定单元650,包括:
烟火区域连通模块650a,采用形态学运算中的开运算和闭运算将具有烟火特性的像素进行连通并标记,得到准烟火区域。
本发明具体实施例中,并行处理单元620可采用支持统一计算设备架构CUDA技术的英伟达公司NVIDIA的GPU或支持Stream技术的AMD公司的GPU和所有支持OpenCL技术的GPU。
综上所述,本发明通过对高清视频序列的所有像素进行小波分析,极大限度利用了高清视频带来的高分辨率优势,使烟火检测精度有了很大的提高。GPU超性能计算技术的引入,使算法在速度上提升了至少2个数量级,速度优势保证了其可以处理高帧率的高清视频,从而避免了由于视频的帧率低所引起的信号混淆。本发明实施例借助于GPU强大的并行计算能力,本算法使高清视频烟火检测效果有了质的飞跃。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。