曹仲康
(南京信息工程大學電子與信息工程學院,江蘇南京,210044)
本文利用圖像處理技術對火點進行識別,利用FPGA并行運算的特點,可以在實時監控的同時,對火點進行識別。當識別到火點信息的時候,可以通過路由器發放警報信息周圍的人群,同時可以通過接入的揚聲器發出警報聲。
系統的總體架構分成八個部分,分別是FPGA模塊、定位模塊、WIFI模塊、圖像采集模塊、以太網模塊、音頻解碼模塊、路由器、客戶端。系統架構設計框圖如圖1所示。

圖1 系統架構設計框圖
圖像采集模塊實時傳輸現場的圖像信息,FPGA模塊將傳輸的實時圖像信息先存儲在sdram中,然后提取出來進行圖像處理,傳輸至顯示模塊顯示出處理后帶框選信息的圖像,通過以太網傳輸帶有框選信息的實時圖像至客戶端。與此同時,定位模塊接收衛星的定位信號,將定位信息傳輸至FPGA模塊。當判斷出實時圖像中有火點的時候,就將定位信息通過WIFI模塊發送到路由器,借助路由器分發到連接到其上的網絡設備,同時向音頻解碼模塊發送警報音頻信息,連接到音頻解碼模塊接口的揚聲器將會發出警報聲。
在系統工作過程中,FPGA模塊針對圖像處理主要執行的是中值濾波算法、二值化算法、腐蝕算法、膨脹算法、加框算法。識別效果如圖2所示。

圖2 火點識別算法二值化圖像
中值濾波是一種非線性平滑技術,主要原理是通過歸一將區域內的像素點的差別消除。這種濾波方法可以很好地濾除脈沖噪聲,降低圖像信息的噪點。
具體實現方法是通過輸出端點間隔行圖像數據長度的三輸出通道的移位寄存器逐個取出三行三列像素點,先比較得出行中間值,然后在行中間值中取中間值,覆蓋三行三列像素點。
示意圖如圖3所示。

圖3 中值濾波算法實現示意圖
在圖像處理中,將圖像進行二值化可以大大減少圖像處理的數據量,便于利用數學方法進行運算。二值化算法是對RGB565的圖像進行閾值分割,考慮到火點大都是紅黃色,將圖像分成R、G、B三個通道,對R通道進行閾值分割,將R=31的圖像像素變為65535(即十六進制FFFF),后來進行實驗發現,單一通道進行閾值分割很容易受外界光源的影響。所以有必要進行多個通道的閾值分割,經過多次實驗驗證得到,當 R=31(即十六進制 1F)、G<60(即十六進制 3C)、B<24(即十六進制18)三個通道條件同時滿足時,該圖像像素大概率是火點信息,可以很好地將其從環境中提取出來。二值化算法處理效果如圖4所示。

圖4 二值化算法
腐蝕算法是形態學濾波的基本運算,可以將二值化圖像地離散點減少,使圖像更加集中,同時可以減少不相關信息的圖像像素點。腐蝕算法的實現原理是三行三列圖像像素點中有一個為0(即十六進制0000),就將三行三列像素點全部變為0,縮小有用信息的面積的同時也減少了無用的信息。腐蝕算法實現原理示意圖如圖5所示。

圖5 腐蝕算法
膨脹算法也是形態學濾波的基本運算,可以將二值化圖像的孤立點減少,與腐蝕算法不同的是,膨脹算法可以將相近的孤立點連接一起,從而減少圖像邊緣的毛刺。膨脹算法的實現原理是三行三列中有一個為65535,就將三行三列像素點全部變為65535,將有用信息面積增大的同時,也將無用信息變為有用信息的一部分。膨脹算法實現原理示意圖如圖6所示。

圖6 膨脹算法
加框算法的功能是將有用信息區域加框,從而能夠在圖像上凸顯出有用信息區域的信息。加框算法的基本實現原理是在圖像傳輸過程中,有用圖像區域是連續的,將第一次出現圖像有用信息的行記為框圖的頂點,將最后一次出現圖像有用信息的行記為框圖的底部,將圖像有用信息的最左點記為框圖的左端邊,將圖像有用信息的最右點記為框圖的右端邊,從而得到圖像有用信息區域的邊界,將邊界區域替換成紅色像素點信息。加框算法主要代碼如圖7所示。

圖7 加框算法
使用UDP協議來傳輸圖像,UDP協議的特點是無連接通信,不保證每次發送數據的可靠性。由于實時圖像傳輸的數據量大,丟包率便可以忽略不計。
以太網模塊通過網線直接與電腦相連。以太網傳輸圖像效果如圖8所示。

圖8 以太網傳輸圖像
定位模塊采用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)當接收到發送定位信息的指令時,將定位信息區域的內容傳輸出去。
WIFI模塊通過串口通信協議與FPGA芯片交換信息,利用串口無線STA模式通過路由器與其他無線設備進行信息的互傳。圖9是客戶端接收到WIFI模塊發送的定位信息。

圖9 客戶端接收的定位信息
FPGA芯片首先通過IIC傳輸協議對音頻解碼模塊進行寄存器配置,之后通過pll分頻產生輸入音頻數據的時序,根據時序將DA音頻數據輸出到音頻解碼模塊。音頻解碼模塊可以將DA音頻數據轉換成可以被揚聲器播放的電壓信號。相比于蜂鳴器,音頻解碼模塊的優勢是可以連接到揚聲器,發出的警報聲更加大,警報聲更加柔和。
首先FPGA對音頻解碼模塊進行寄存器的配置;定位模塊不斷地接收衛星的定位信息,FPGA進行坐標信息的提取;圖像采集模塊不斷地采集圖像信息。然后FPGA通過火點識別算法對圖像信息地內容進行分析,并將實時的圖像信息和火點位置傳送到以太網模塊,以太網模塊將圖像信息打包按照UDP協議發送到計算機客戶端上顯示。當分析的結果是存在火點時,就觸發WIFI模塊通過路由器分發坐標信息和音頻解碼模塊發送報警聲音數據,否則WIFI模塊和音頻解碼模塊不工作。程序流程圖如圖10所示。

圖10 程序流程圖
本文設計的視頻監控裝置利用了FPGA硬件化運算的特征,提升了運行速度和穩定性。實現了對常規環境下對火點的圖像識別,可以及時地做出報警。報警聲音可以及時疏散周圍人群,報警的坐標定位信息可以幫助周圍人群及時地發現火點位置并輔助消防。
在未來可以繼續完善火點識別算法,使得火點在大霧、有雨等環境下的識別準確性進一步提升。并且通過更加先進的濾波算法對干擾進一步濾除,進一步提高工作的可靠性。