曹仲康
(南京信息工程大學(xué)電子與信息工程學(xué)院,江蘇南京,210044)
本文利用圖像處理技術(shù)對火點(diǎn)進(jìn)行識(shí)別,利用FPGA并行運(yùn)算的特點(diǎn),可以在實(shí)時(shí)監(jiān)控的同時(shí),對火點(diǎn)進(jìn)行識(shí)別。當(dāng)識(shí)別到火點(diǎn)信息的時(shí)候,可以通過路由器發(fā)放警報(bào)信息周圍的人群,同時(shí)可以通過接入的揚(yáng)聲器發(fā)出警報(bào)聲。
系統(tǒng)的總體架構(gòu)分成八個(gè)部分,分別是FPGA模塊、定位模塊、WIFI模塊、圖像采集模塊、以太網(wǎng)模塊、音頻解碼模塊、路由器、客戶端。系統(tǒng)架構(gòu)設(shè)計(jì)框圖如圖1所示。
圖1 系統(tǒng)架構(gòu)設(shè)計(jì)框圖
圖像采集模塊實(shí)時(shí)傳輸現(xiàn)場的圖像信息,F(xiàn)PGA模塊將傳輸?shù)膶?shí)時(shí)圖像信息先存儲(chǔ)在sdram中,然后提取出來進(jìn)行圖像處理,傳輸至顯示模塊顯示出處理后帶框選信息的圖像,通過以太網(wǎng)傳輸帶有框選信息的實(shí)時(shí)圖像至客戶端。與此同時(shí),定位模塊接收衛(wèi)星的定位信號,將定位信息傳輸至FPGA模塊。當(dāng)判斷出實(shí)時(shí)圖像中有火點(diǎn)的時(shí)候,就將定位信息通過WIFI模塊發(fā)送到路由器,借助路由器分發(fā)到連接到其上的網(wǎng)絡(luò)設(shè)備,同時(shí)向音頻解碼模塊發(fā)送警報(bào)音頻信息,連接到音頻解碼模塊接口的揚(yáng)聲器將會(huì)發(fā)出警報(bào)聲。
在系統(tǒng)工作過程中,F(xiàn)PGA模塊針對圖像處理主要執(zhí)行的是中值濾波算法、二值化算法、腐蝕算法、膨脹算法、加框算法。識(shí)別效果如圖2所示。
圖2 火點(diǎn)識(shí)別算法二值化圖像
中值濾波是一種非線性平滑技術(shù),主要原理是通過歸一將區(qū)域內(nèi)的像素點(diǎn)的差別消除。這種濾波方法可以很好地濾除脈沖噪聲,降低圖像信息的噪點(diǎn)。
具體實(shí)現(xiàn)方法是通過輸出端點(diǎn)間隔行圖像數(shù)據(jù)長度的三輸出通道的移位寄存器逐個(gè)取出三行三列像素點(diǎn),先比較得出行中間值,然后在行中間值中取中間值,覆蓋三行三列像素點(diǎn)。
示意圖如圖3所示。
圖3 中值濾波算法實(shí)現(xiàn)示意圖
在圖像處理中,將圖像進(jìn)行二值化可以大大減少圖像處理的數(shù)據(jù)量,便于利用數(shù)學(xué)方法進(jìn)行運(yùn)算。二值化算法是對RGB565的圖像進(jìn)行閾值分割,考慮到火點(diǎn)大都是紅黃色,將圖像分成R、G、B三個(gè)通道,對R通道進(jìn)行閾值分割,將R=31的圖像像素變?yōu)?5535(即十六進(jìn)制FFFF),后來進(jìn)行實(shí)驗(yàn)發(fā)現(xiàn),單一通道進(jìn)行閾值分割很容易受外界光源的影響。所以有必要進(jìn)行多個(gè)通道的閾值分割,經(jīng)過多次實(shí)驗(yàn)驗(yàn)證得到,當(dāng) R=31(即十六進(jìn)制 1F)、G<60(即十六進(jìn)制 3C)、B<24(即十六進(jìn)制18)三個(gè)通道條件同時(shí)滿足時(shí),該圖像像素大概率是火點(diǎn)信息,可以很好地將其從環(huán)境中提取出來。二值化算法處理效果如圖4所示。
圖4 二值化算法
腐蝕算法是形態(tài)學(xué)濾波的基本運(yùn)算,可以將二值化圖像地離散點(diǎn)減少,使圖像更加集中,同時(shí)可以減少不相關(guān)信息的圖像像素點(diǎn)。腐蝕算法的實(shí)現(xiàn)原理是三行三列圖像像素點(diǎn)中有一個(gè)為0(即十六進(jìn)制0000),就將三行三列像素點(diǎn)全部變?yōu)?,縮小有用信息的面積的同時(shí)也減少了無用的信息。腐蝕算法實(shí)現(xiàn)原理示意圖如圖5所示。
圖5 腐蝕算法
膨脹算法也是形態(tài)學(xué)濾波的基本運(yùn)算,可以將二值化圖像的孤立點(diǎn)減少,與腐蝕算法不同的是,膨脹算法可以將相近的孤立點(diǎn)連接一起,從而減少圖像邊緣的毛刺。膨脹算法的實(shí)現(xiàn)原理是三行三列中有一個(gè)為65535,就將三行三列像素點(diǎn)全部變?yōu)?5535,將有用信息面積增大的同時(shí),也將無用信息變?yōu)橛杏眯畔⒌囊徊糠?。膨脹算法?shí)現(xiàn)原理示意圖如圖6所示。
圖6 膨脹算法
加框算法的功能是將有用信息區(qū)域加框,從而能夠在圖像上凸顯出有用信息區(qū)域的信息。加框算法的基本實(shí)現(xiàn)原理是在圖像傳輸過程中,有用圖像區(qū)域是連續(xù)的,將第一次出現(xiàn)圖像有用信息的行記為框圖的頂點(diǎn),將最后一次出現(xiàn)圖像有用信息的行記為框圖的底部,將圖像有用信息的最左點(diǎn)記為框圖的左端邊,將圖像有用信息的最右點(diǎn)記為框圖的右端邊,從而得到圖像有用信息區(qū)域的邊界,將邊界區(qū)域替換成紅色像素點(diǎn)信息。加框算法主要代碼如圖7所示。
圖7 加框算法
使用UDP協(xié)議來傳輸圖像,UDP協(xié)議的特點(diǎn)是無連接通信,不保證每次發(fā)送數(shù)據(jù)的可靠性。由于實(shí)時(shí)圖像傳輸?shù)臄?shù)據(jù)量大,丟包率便可以忽略不計(jì)。
以太網(wǎng)模塊通過網(wǎng)線直接與電腦相連。以太網(wǎng)傳輸圖像效果如圖8所示。
圖8 以太網(wǎng)傳輸圖像
定位模塊采用NMEA-0183 協(xié)議接收衛(wèi)星定位信號,設(shè)置為只輸出GPRMC 定位信息,通過串口通信協(xié)議與FPGA模塊連接傳遞定位信息。
GPRMC 定位信息包括UTC時(shí)間、定位狀態(tài)、緯度、緯度半球、經(jīng)度、經(jīng)度半球、地球速率、地球航向、UTC日期、磁偏角、磁偏角方向、模式指示這些信息,顯示示例如下:“$GNRMC,04 0226.800,A,0000.0000,N,00000.0000,E,000.0,000.0,260 121,,,A*79”。
由顯示示例可以發(fā)現(xiàn),對于定位有用的坐標(biāo)信息只有定位信息的第21位到第44位,所以需要將FPGA接收的GPRMC定位信息進(jìn)行提取。
GPRMC定位信息的提取是通過對數(shù)據(jù)格式特征的提取進(jìn)行的。如果使用位數(shù)作為輸出信息范圍的依據(jù),當(dāng)數(shù)據(jù)長度發(fā)生變化的時(shí)候容易造成信息傳遞的錯(cuò)位。本裝置將每次傳輸?shù)臄?shù)據(jù)進(jìn)行存儲(chǔ),由于接收的衛(wèi)星信息的速率較快,可以認(rèn)為在一段次數(shù)內(nèi)定位信息的內(nèi)容不變;使用換行符的ASCII碼值作為一次數(shù)據(jù)結(jié)束的依據(jù),使用逗號的ASCII碼值作為數(shù)據(jù)內(nèi)容的判斷的依據(jù),使用標(biāo)記符對每次數(shù)據(jù)的位數(shù)進(jìn)行記位,格式中的第三個(gè)逗號后到第七個(gè)逗號之前是定位坐標(biāo)的內(nèi)容,將其對應(yīng)的位數(shù)記位值對應(yīng)的數(shù)據(jù)發(fā)送出去就是提取后的定位信息。
具體實(shí)施流程如下:
(1)將每次衛(wèi)星傳輸?shù)亩ㄎ恍畔?shù)據(jù)存儲(chǔ),同時(shí)對接收到的信息位數(shù)進(jìn)行計(jì)數(shù)、對接收到的逗號個(gè)數(shù)進(jìn)行計(jì)數(shù)。
(2)若逗號個(gè)數(shù)計(jì)數(shù)值為3,記錄下此時(shí)的位數(shù)計(jì)數(shù)值作為起始標(biāo)志;若逗號個(gè)數(shù)計(jì)數(shù)值為7,記錄下此時(shí)的位數(shù)計(jì)數(shù)值作為結(jié)束標(biāo)志。將起始標(biāo)志和結(jié)束標(biāo)志映射到存儲(chǔ)定位信息的數(shù)組相應(yīng)的位置,作為提取后的定位信息區(qū)域。
(3)當(dāng)接收到發(fā)送定位信息的指令時(shí),將定位信息區(qū)域的內(nèi)容傳輸出去。
WIFI模塊通過串口通信協(xié)議與FPGA芯片交換信息,利用串口無線STA模式通過路由器與其他無線設(shè)備進(jìn)行信息的互傳。圖9是客戶端接收到WIFI模塊發(fā)送的定位信息。
圖9 客戶端接收的定位信息
FPGA芯片首先通過IIC傳輸協(xié)議對音頻解碼模塊進(jìn)行寄存器配置,之后通過pll分頻產(chǎn)生輸入音頻數(shù)據(jù)的時(shí)序,根據(jù)時(shí)序?qū)A音頻數(shù)據(jù)輸出到音頻解碼模塊。音頻解碼模塊可以將DA音頻數(shù)據(jù)轉(zhuǎn)換成可以被揚(yáng)聲器播放的電壓信號。相比于蜂鳴器,音頻解碼模塊的優(yōu)勢是可以連接到揚(yáng)聲器,發(fā)出的警報(bào)聲更加大,警報(bào)聲更加柔和。
首先FPGA對音頻解碼模塊進(jìn)行寄存器的配置;定位模塊不斷地接收衛(wèi)星的定位信息,F(xiàn)PGA進(jìn)行坐標(biāo)信息的提??;圖像采集模塊不斷地采集圖像信息。然后FPGA通過火點(diǎn)識(shí)別算法對圖像信息地內(nèi)容進(jìn)行分析,并將實(shí)時(shí)的圖像信息和火點(diǎn)位置傳送到以太網(wǎng)模塊,以太網(wǎng)模塊將圖像信息打包按照UDP協(xié)議發(fā)送到計(jì)算機(jī)客戶端上顯示。當(dāng)分析的結(jié)果是存在火點(diǎn)時(shí),就觸發(fā)WIFI模塊通過路由器分發(fā)坐標(biāo)信息和音頻解碼模塊發(fā)送報(bào)警聲音數(shù)據(jù),否則WIFI模塊和音頻解碼模塊不工作。程序流程圖如圖10所示。
圖10 程序流程圖
本文設(shè)計(jì)的視頻監(jiān)控裝置利用了FPGA硬件化運(yùn)算的特征,提升了運(yùn)行速度和穩(wěn)定性。實(shí)現(xiàn)了對常規(guī)環(huán)境下對火點(diǎn)的圖像識(shí)別,可以及時(shí)地做出報(bào)警。報(bào)警聲音可以及時(shí)疏散周圍人群,報(bào)警的坐標(biāo)定位信息可以幫助周圍人群及時(shí)地發(fā)現(xiàn)火點(diǎn)位置并輔助消防。
在未來可以繼續(xù)完善火點(diǎn)識(shí)別算法,使得火點(diǎn)在大霧、有雨等環(huán)境下的識(shí)別準(zhǔn)確性進(jìn)一步提升。并且通過更加先進(jìn)的濾波算法對干擾進(jìn)一步濾除,進(jìn)一步提高工作的可靠性。