基于FPGA的可火灾报警视频监控装置
2021-07-02曹仲康
曹仲康
(南京信息工程大学电子与信息工程学院,江苏南京,210044)
0 引言
本文利用图像处理技术对火点进行识别,利用FPGA并行运算的特点,可以在实时监控的同时,对火点进行识别。当识别到火点信息的时候,可以通过路由器发放警报信息周围的人群,同时可以通过接入的扬声器发出警报声。
1 架构设计
系统的总体架构分成八个部分,分别是FPGA模块、定位模块、WIFI模块、图像采集模块、以太网模块、音频解码模块、路由器、客户端。系统架构设计框图如图1所示。
图1 系统架构设计框图
图像采集模块实时传输现场的图像信息,FPGA模块将传输的实时图像信息先存储在sdram中,然后提取出来进行图像处理,传输至显示模块显示出处理后带框选信息的图像,通过以太网传输带有框选信息的实时图像至客户端。与此同时,定位模块接收卫星的定位信号,将定位信息传输至FPGA模块。当判断出实时图像中有火点的时候,就将定位信息通过WIFI模块发送到路由器,借助路由器分发到连接到其上的网络设备,同时向音频解码模块发送警报音频信息,连接到音频解码模块接口的扬声器将会发出警报声。
2 火点识别算法实现
在系统工作过程中,FPGA模块针对图像处理主要执行的是中值滤波算法、二值化算法、腐蚀算法、膨胀算法、加框算法。识别效果如图2所示。
图2 火点识别算法二值化图像
2.1 中值滤波算法
中值滤波是一种非线性平滑技术,主要原理是通过归一将区域内的像素点的差别消除。这种滤波方法可以很好地滤除脉冲噪声,降低图像信息的噪点。
具体实现方法是通过输出端点间隔行图像数据长度的三输出通道的移位寄存器逐个取出三行三列像素点,先比较得出行中间值,然后在行中间值中取中间值,覆盖三行三列像素点。
示意图如图3所示。
图3 中值滤波算法实现示意图
2.2 二值化算法
在图像处理中,将图像进行二值化可以大大减少图像处理的数据量,便于利用数学方法进行运算。二值化算法是对RGB565的图像进行阈值分割,考虑到火点大都是红黄色,将图像分成R、G、B三个通道,对R通道进行阈值分割,将R=31的图像像素变为65535(即十六进制FFFF),后来进行实验发现,单一通道进行阈值分割很容易受外界光源的影响。所以有必要进行多个通道的阈值分割,经过多次实验验证得到,当 R=31(即十六进制 1F)、G<60(即十六进制 3C)、B<24(即十六进制18)三个通道条件同时满足时,该图像像素大概率是火点信息,可以很好地将其从环境中提取出来。二值化算法处理效果如图4所示。
图4 二值化算法
2.3 腐蚀算法
腐蚀算法是形态学滤波的基本运算,可以将二值化图像地离散点减少,使图像更加集中,同时可以减少不相关信息的图像像素点。腐蚀算法的实现原理是三行三列图像像素点中有一个为0(即十六进制0000),就将三行三列像素点全部变为0,缩小有用信息的面积的同时也减少了无用的信息。腐蚀算法实现原理示意图如图5所示。
图5 腐蚀算法
2.4 膨胀算法
膨胀算法也是形态学滤波的基本运算,可以将二值化图像的孤立点减少,与腐蚀算法不同的是,膨胀算法可以将相近的孤立点连接一起,从而减少图像边缘的毛刺。膨胀算法的实现原理是三行三列中有一个为65535,就将三行三列像素点全部变为65535,将有用信息面积增大的同时,也将无用信息变为有用信息的一部分。膨胀算法实现原理示意图如图6所示。
图6 膨胀算法
2.5 加框算法
加框算法的功能是将有用信息区域加框,从而能够在图像上凸显出有用信息区域的信息。加框算法的基本实现原理是在图像传输过程中,有用图像区域是连续的,将第一次出现图像有用信息的行记为框图的顶点,将最后一次出现图像有用信息的行记为框图的底部,将图像有用信息的最左点记为框图的左端边,将图像有用信息的最右点记为框图的右端边,从而得到图像有用信息区域的边界,将边界区域替换成红色像素点信息。加框算法主要代码如图7所示。
图7 加框算法
3 外部连接设备
3.1 以太网传输图像
使用UDP协议来传输图像,UDP协议的特点是无连接通信,不保证每次发送数据的可靠性。由于实时图像传输的数据量大,丢包率便可以忽略不计。
以太网模块通过网线直接与电脑相连。以太网传输图像效果如图8所示。
图8 以太网传输图像
3.2 定位信息的获取
定位模块采用NMEA-0183 协议接收卫星定位信号,设置为只输出GPRMC 定位信息,通过串口通信协议与FPGA模块连接传递定位信息。
GPRMC 定位信息包括UTC时间、定位状态、纬度、纬度半球、经度、经度半球、地球速率、地球航向、UTC日期、磁偏角、磁偏角方向、模式指示这些信息,显示示例如下:“$GNRMC,04 0226.800,A,0000.0000,N,00000.0000,E,000.0,000.0,260 121,,,A*79”。
由显示示例可以发现,对于定位有用的坐标信息只有定位信息的第21位到第44位,所以需要将FPGA接收的GPRMC定位信息进行提取。
GPRMC定位信息的提取是通过对数据格式特征的提取进行的。如果使用位数作为输出信息范围的依据,当数据长度发生变化的时候容易造成信息传递的错位。本装置将每次传输的数据进行存储,由于接收的卫星信息的速率较快,可以认为在一段次数内定位信息的内容不变;使用换行符的ASCII码值作为一次数据结束的依据,使用逗号的ASCII码值作为数据内容的判断的依据,使用标记符对每次数据的位数进行记位,格式中的第三个逗号后到第七个逗号之前是定位坐标的内容,将其对应的位数记位值对应的数据发送出去就是提取后的定位信息。
具体实施流程如下:
(1)将每次卫星传输的定位信息数据存储,同时对接收到的信息位数进行计数、对接收到的逗号个数进行计数。
(2)若逗号个数计数值为3,记录下此时的位数计数值作为起始标志;若逗号个数计数值为7,记录下此时的位数计数值作为结束标志。将起始标志和结束标志映射到存储定位信息的数组相应的位置,作为提取后的定位信息区域。
(3)当接收到发送定位信息的指令时,将定位信息区域的内容传输出去。
3.3 WIFI模块
WIFI模块通过串口通信协议与FPGA芯片交换信息,利用串口无线STA模式通过路由器与其他无线设备进行信息的互传。图9是客户端接收到WIFI模块发送的定位信息。
图9 客户端接收的定位信息
3.4 音频解码模块
FPGA芯片首先通过IIC传输协议对音频解码模块进行寄存器配置,之后通过pll分频产生输入音频数据的时序,根据时序将DA音频数据输出到音频解码模块。音频解码模块可以将DA音频数据转换成可以被扬声器播放的电压信号。相比于蜂鸣器,音频解码模块的优势是可以连接到扬声器,发出的警报声更加大,警报声更加柔和。
4 系统整体运行流程
首先FPGA对音频解码模块进行寄存器的配置;定位模块不断地接收卫星的定位信息,FPGA进行坐标信息的提取;图像采集模块不断地采集图像信息。然后FPGA通过火点识别算法对图像信息地内容进行分析,并将实时的图像信息和火点位置传送到以太网模块,以太网模块将图像信息打包按照UDP协议发送到计算机客户端上显示。当分析的结果是存在火点时,就触发WIFI模块通过路由器分发坐标信息和音频解码模块发送报警声音数据,否则WIFI模块和音频解码模块不工作。程序流程图如图10所示。
图10 程序流程图
5 结语
本文设计的视频监控装置利用了FPGA硬件化运算的特征,提升了运行速度和稳定性。实现了对常规环境下对火点的图像识别,可以及时地做出报警。报警声音可以及时疏散周围人群,报警的坐标定位信息可以帮助周围人群及时地发现火点位置并辅助消防。
在未来可以继续完善火点识别算法,使得火点在大雾、有雨等环境下的识别准确性进一步提升。并且通过更加先进的滤波算法对干扰进一步滤除,进一步提高工作的可靠性。