基于图像噪点去除的微波设备火情预警系统
2018-07-27,,2,,,
,,2,,,
(1.上海工程技术大学 机械工程学院,上海 201600;2.上海交通职业技术学院,上海 200431;3.上海工程技术大学 材料工程学院,上海 201600)
0 引言
火情的预警和报警已经从传统的采用感温探测器,感烟探测器,感光探测器,气体探测器以及复合型探测器慢慢的开始转向图像型探测技术,此技术克服了传统的由于单纯的环境因素带来的弊端,提高了火情预警的准确性而且实现了更加宽广的范围和更加复杂环境的监测,由于配套的各项科学技术的发展而趋于稳定和成熟,必将带来更好的发展前景[1-5]。目前来说在火情的图像获取和监控方面主要是采用红外的处理技术,由于图像长时间在不断地进行传输而且实际环境可能存在个人习惯或者习俗所带来的短时间存在的小火苗造成的误报情况而这样会慢慢地损耗监测人员的耐心,长时间可能会造成实际发生火情的时候,监测人员的认知惯性而造成不必要的财产损失[6]。
对于上述问题,采用CCD摄像头拍摄图像,有线进行稳定传输图像到NI myRIO硬件借助于内嵌的LabVIEW软件编制的程序进行火焰图像灰度化处理,颗粒过滤,提取颜色区域,区域选择,面积计算[7-8]。通过像素的多少得到火焰的大小与阈值比较,以此形成预警和报警的二级处理机制,方便监控人员了解和掌握火情的危急程度和采取相应的处理方式[6,9]。
1 软件系统
1.1 系统总体设计
软件的设计主要是通过图像采集程序,图像的灰度化处理程序,图像的二值化处理程序,火焰的提取程序,颗粒的过滤程序,火焰的面积计算程序,图像处理得到是否有火情的一级警示作用和二级的火情报警并通过硬件NI myRIO上的LED指示灯进行结果的展现[10-11]。
结合我们遇到的实际情况由于在大型微波设备加热中加热的物质多式多样,其色彩、颗粒大小、反光程度都有很大的不同。其次,由于微波设备的特殊性,在工作期间由于被加热的物料一直处于运动状态,起火时,容易造成火苗或闪光的光源变得模糊,使得观察火焰的形状变得困难。因此,在对图像的处理中,采用如图1所示方法。
图1 软件部分设计框图
采用CCD摄像头采集实时的环境图像以为了解决传统的探测器或者红外传感器采集信息受复杂环境影响的问题。彩色图像进行灰度化处理得到灰度图。然后将整个图像转换成对应的二维灰度值数组,即将图片上的所有的点转化为一个一个的坐标,我们在处理图像的时候会通过肉眼提前去除大部分的无关区域,留下火焰区域。
为了去除得到的火焰的无关边缘区域,我们可以通过调整相应色值参数来过滤掉上述数组中的某些行和列的灰度值,这样就得到待处理的区域的二维灰度值数组,对待处理二维灰度值数组中每一个灰度值与预设火焰的对应灰度值范围进行比较,当处理中的灰度值处于预设火焰的对应灰度值范围时,则可以将其记作一个有效的单位火焰面积,将所有单位火焰面积累加起来就得到实际火焰面积。
接下来需要解决的是在图像中产生的一些噪点的影响,由于这些噪点会被作为像素点而当成火焰,这里我们采用设置一个火焰面积阈值解决有限的噪点问题,只有超过这一阈值才会被当成有火情的状况,否则就被舍弃。通过设置不同的三原色值范围,选出特定火焰的颜色范围,以及对其背景进行处理。
为了解决由于不同的物质在微波设备中所具有的颜色可能是五颜六色的问题,怎样智能识别和处理,我们基于各种物质有所不同但是各种不同的物质在燃烧时可能的火焰颜色都常常接近于红色和黄色之间。因此采用通过三原色设置不同的范围值,选出特定火焰的颜色范围,对火焰以及背景进行二值化处理。
为了解决由于物料自身的颜色有时接近火焰颜色,而可能造成处理中火焰面积的错误累加问题,我们发现物料造成的接近火焰颜色的区域在图像中比较分散,而且这些由于物料造成的影响的范围一般面积非常小,因此编程上可以通过对每个接近火焰颜色的连通域进行颗粒大小的分析和校对,对小于预设大小的颗粒进行过滤,得到相对比较完整的火焰图像,接下来对二值化图像中的火焰区域进行面积计算时为了便于计算和统计可以用一个像素点记为一个单位面积,于是可以得到火焰的实际面积,将这个面积与针对当前算法而预设的火焰面积报警阈值进行比较,确定是否存在火情会不会造成火灾。
该中心累计获得知识产权1500余项,筹建6个众创空间。园区入驻企业中,信息技术企业占三分之二强。截至今年10月末,中心已实现主营业务收入19.5亿元,有3家企业跻身规模以上企业行列。
为了解决处理以后所得到的数据和资料,方便以后进行查找和对比归档,因此图像处理以后需要进行的是数据的存储与回放操作来解决这个问题,其中包括处理后的图片显示,参数设置,还有预警和报警的阈值设置。
现如今要求报警系统更具人性化和智能化需求,采用以上几种方式对图像进行处理,得到相应的火焰的面积,参考相关标准划定几个火险等级,以及需要采取的相应的措施相互配合,以达到进行预警和报警的目的。
鉴于人的长时间监控带来的身体健康问题或者是处理流程时间较长,为了最大程度的减少财产损失,采取直接将NI myRIO 的接口和PLC相连将是否有火情或者火灾的信号输出到PLC控制微波设备进行实时控制。
1.2 主程序
为了解决后台程序对于着火图像的处理报警结果与消费者(火情监控人员)能够理解的用户界面之间能够更好的进行衔接,采用生产者和消费者结构进行处理,生产者即程序自身对于得到的火焰图像进行处理得到是否有火情的结果反应给作为消费者的用户进行查看和采取相应的措施。
1.3 图像的预处理程序
由于在复杂的环境中传统的探测器技术存在信息采集受环境影响停机问题,这里采用加装过防护装置的CCD摄像头克服了复杂的拍摄环境带来的诸多问题,图像采集程序描述如下。图像的采集程序通过调用摄像机的程序IMAQ Open camera打开摄像头通过IMAQ configure Grab来抓取图像之后将图像的特征拷贝到队列中然后进行图像的条件判断决定是否需要下一步的图像处理还是直接按照错误输出。同时在图像的特征成功抓取之后用一个Image Display控件显示采集到的原始图像[9]。
由于采集到的图像是24小时实时进行监测的,当然不可能24小时着火,故对于采集到的有火情的图像和无火情的图像首先要进行图片的信息提取判断,之后进入处理程序和删除程序,针对以上问题具体采用图像的打开关闭和图像的读写删除操作,具体程序描述如下:通过Obtain Queue 函数打开图像文件并命名为001,之后通过函数IMAQ Create函数创建多个不同处理阶段的图像为其保留原始图像并对Image Type进行设置为Grayscale(U8)(8位)之后通过IMAQ Grab的Image In输入接口将图像输入之后拷贝图像特征通过Enqueue Element函数将元素加入队列通过条件判断循环进行条件判断后通过Release Queue函数释放队列读取和删除读取的图像内容,并进行错误输出。
图2 图像的噪点面积去除和计算
1.4 图像噪点面积去除和火焰面积计算
1.4.1 图像的灰度化处理
为了减少后台的程序计算量将软件的处理和反应速度更加的迅速,减少反应时间,解决识别RGB图片处理耗费大量的时间问题,进行图片的灰度化处理将图片转化为黑白图片以便于更好的快速运行和计算操作,具体程序是将最初的32bit的图片通过函数IMAQ Cast Image转化为8bit的图片之后通过图像的灰度化程序,将拍摄到的彩色图像经 IMAQ BCGLookup 函数转换为灰度化图像,在转换过程中,可对原彩色图像的Brightness Contrast Gamma等进行调整。转换后的灰度图经 IMAQ Image To Array 函数再将灰度图转换为相应的二维灰度值数组。之后将二维灰度值数组加入到二维索引数组中。BCG Values的三个值依次是Brightness37.0,Contrast54.40,Gamma8.52这些数值是基于室内白天正常光照的情况下调试的数值。具体处理程序如图2(a)所示。
1.4.2 颗粒过滤与提取颜色区域
微波处理的物质存在点状色点对于系统计算增加负担和火情预警带来误差而不具有实际价值,同时还有对于火焰区域的提取存在问题。采用了颗粒过滤和提取颜色区域以解决上述问题[13-14]。具体实施步骤是将采集到的彩色图像经 IMAQ Color Threshold 函数转换为黑色和红色两种颜色的二值化图像,然后再利用 IMAQ Particle Filter 函数对图像中的细小的噪点造成的颗粒区域进行过滤,采用对于纳入统计的区域设定阈值,接着利用 IMAQ Image To Array 函数将图像转换为对应的二值化数组。具体的过滤和提取程序如图2(b)所示。
对于不同的燃烧的物质具有不同的挥发特性和燃烧属性,不同的场地所存在的光的强度不同而传统的处理方法只针对自身属性而只具有单一的特性检测容易受到不同物质挥发和摩擦生热的影响。为解决上述问题采用了在不同环境进行动态的参数设置以适应于复杂的环境。具体程序实现采用设定RGB的火焰阈值范围通过这个范围内测量到的火焰图像像素的多少设定一个阈值达到设定值就实施报警。参数值设定在正常的室内光照情况下。
1.4.3 火焰面积计算
为了解决传统的报警机制所产生的报警结果过于单一,不利于对于火情的严重程度的掌握和扑灭的方案选择,为解决以上问题采用火焰面积计算程序解决火焰的分级问题,在此功能的实现中,通过两个 for 循环,以及条件结构函数可以将图像中不需要处理的区域剔除掉,同时,利用两个寄存器通过累加手段分别存储灰度图以及根据火焰颜色得出的二值化图像中的火焰面积大小[15]。如图2(c)所示。
1.5 报警设置与图像回放
1.5.1 预警与报警程序
由于现存的传统的探测技术得到的存在火情的结果显示缺乏智能化和人性化,报警显示不具有分级特性和扑灭的紧急程度显示。针对这个问题采用程序分级报警机制来解决[12-13]。显示的报警信号的逻辑输出程序主要是当出现仅仅发生在图像灰度化处理中测量出来的火焰的面积满足根据实际环境设定的灰度值的阈值时才会显示报警。而采用另外一种三原色法所进行图像处理的颜色范围值,当实际的火焰图像统计超过这个阈值时就会报警,采用条件循环语句使两种方式的图像处理方式都表明有火焰的情况下则会在NI myRIO的硬件的LED的灯上显示为三个灯亮[14]。而只有其中一种则会只有其中一个指示灯亮。通过add Array Elements右边的B噪点在实际的环境中对于不同的关照强度图片的处理数量确定实际所需要B报警阈值。下面原理相同通过add Array Elements右边实时的图像处理中的R噪点数量确定R报警阈值。
1.5.2 处理结果图像显示程序
由于传统的图像型红外探测技术处理方式只显示最后的报警红灯结果出现误报情况无法通过人工进行检查造成财产的损失和人员的浪费[12-13]。不利于编程人员或者程序维护人员的程序自查和纠正,为此设立处理结果显示程序,显示处理后的图像是否符合要求存不存在程序缺陷造成误报。
2 系统测试
利用CCD传感器对实验环境进行图像拍摄,图像信号传输至NI myRIO,然后利用LabVIEW对图像进行处理,识别是否有火情并自动报警以模拟在实际的微波设备中的着火情况进行参数的调节,实现测试系统的最优化。
测试结果:
首先通过不断地模拟训练和调试,找到合适的阈值。将根据B噪点值和RGB噪点值调节报警阈值的具体参数填入软件模块IMAQ Color Threshold 参数设置和IMAQ BCGLookup参数设置中。如图3所示是拍摄的火焰图片经过类型转换而生成的图片处理结果和测试进行中的LabVIEW软件的前面板运行情况如图(a)~(c)所示,如图4所示是现场的火焰图片(d)和实际测试的报警情况(e),(f)。
图3 图像的测试过程
图4 火情的报警显示
在不同的测试环境下进行灰度化处理后进行二值化处理最后对特定的参数不断调试得到Brightness37.0,Contrast54.40,Gamma8.52三个值能适用大部分的有光照环境火焰识别,使用该程序需在特定的环境配备特定的参数,进行现场的参数调试,但是优点是程序不需要做修改,从这个角度来看程序具有普遍的环境适应性,而在程序的第二部分采用的基于三原色原理对于火焰的三色范围设定了达到报警的特定值,在特定的着火环境需要设定不同的阈值。因此,程序在参数方面也具有较好的灵活性。
在测试中,采用A4白色的纸张燃烧模拟着火环境进行测试,软件部分的参数设置为:图像的处理区域为全部区域;IMAQ BCGLookup 的 Brightness 值为 37.00、Contrast 值为 54.40、 Gamma 值为8.52;火焰颜色提取中 IMAQ Color Threshold 函数的参数 Red的值为 201~255、Green 的值为 169~243、Blue 的值为 177~226;火焰颜色颗粒大小过滤函数 IMAQ Particle Filter 中的范围值设置为 50~50000;最终的灰度图报警阈值为 200;火焰颜色图中的报警阈值为 20。
实际的测试数据分析中对于传统的探测技术具有明显的优势,针对复杂环境采用的CCD拍摄图像清晰,程序在干扰条件下的火焰提取准确克服了传统的技术误报率高的情况,最后的两条路线分级机制克服了传统技术结果显示不够智能化和人性化的缺陷。
3 总结
实验试样的测试显示:内嵌于硬件系统的软件编程处理系统对于微波设备的火情预警报警具有显著的效果;采用带有防护装置的摄像头对于复杂的工作环境具有较好的适应性,编程中采用两种图像处理方式处理的图像形成的二级处理机制防止了误报;测试得到IMAQ BCGLookup 的 Brightness 值为 37.00、Contrast 值为 54.40、 Gamma 值为8.52;火焰颜色提取中 IMAQ Color Threshold 函数的参数 Red的值为 201~255、Green 的值为 169~243、Blue 的值为 177~226;火焰颜色颗粒大小过滤函数 IMAQ Particle Filter 中的范围值设置为 50~50 000;采用的特定的图像噪点过滤程序最后经过实际的环境测试得到测试值灰度图报警阈值为 200;火焰颜色图中的报警阈值为 20。