摘 要: 基于火焰縱向燃燒的特性,運(yùn)用圖像處理技術(shù),實(shí)現(xiàn)了一種基于紅外圖像軸向比的火災(zāi)判別算法,通過(guò)設(shè)定火災(zāi)圖像軸向比的閾值,實(shí)現(xiàn)了一種新型的火災(zāi)判別技術(shù)。
關(guān)鍵詞: 紅外圖像;圖像處理;軸向比;火災(zāi)判別
火災(zāi)對(duì)于人類的危害是顯而易見的,對(duì)其進(jìn)行有效的預(yù)防和監(jiān)控,把火災(zāi)所帶來(lái)的損失降到最小的程度是當(dāng)今火災(zāi)防御技術(shù)等領(lǐng)域研究的重中之重。傳統(tǒng)的火災(zāi)探測(cè)器用于對(duì)監(jiān)控現(xiàn)場(chǎng)敏感現(xiàn)象(如煙霧濃度、溫度、火焰等)的實(shí)時(shí)變化進(jìn)行檢測(cè)。由于一些大空間及地下建筑的特殊性,普通的感煙、感溫火災(zāi)探測(cè)報(bào)警系統(tǒng)無(wú)法迅速采集火災(zāi)發(fā)出的煙溫變化信息,傳統(tǒng)檢測(cè)方法存在一定的缺陷。而圖像型火災(zāi)探測(cè)技術(shù)對(duì)于火災(zāi)探測(cè)具有非接觸式探測(cè)的特點(diǎn),不受空間高度、熱障、易爆、有毒等環(huán)境條件的限制,基于此,提供了一種新的火災(zāi)探測(cè)的方法。與傳統(tǒng)的感煙感溫探測(cè)技術(shù)相比,圖像監(jiān)測(cè)快速性的基礎(chǔ)是視覺上所接受的信息以光為傳播媒介,而圖像信息豐富和直觀,從而為早期火災(zāi)的辨識(shí)和判斷奠定了基礎(chǔ)。
1 火焰的縱向燃燒特性
在日常生活中,看到的火焰不論大小,總是向上躥的。這主要是因?yàn)槲矬w在燃燒的過(guò)程中會(huì)散發(fā)出熱量,于是火焰周圍的空氣會(huì)變熱并且膨脹,從而變得稀薄,其浮力也會(huì)增大,于是,熱空氣會(huì)包住火焰逐漸上升,使得火焰向上。之后,冷空氣會(huì)從四面八方來(lái)補(bǔ)充熱空氣上升而留下來(lái)的空缺,補(bǔ)充過(guò)來(lái)的冷空氣又經(jīng)過(guò)加熱、膨脹變得稀薄,浮力變大,緩慢上升,產(chǎn)生循環(huán)。圖1揭示了火焰燃燒時(shí)氣流的上升過(guò)程。
火焰總是向上燃燒的,并且由于在火焰周圍的氣流是自下而上的,在這樣的氣流的影響下,火焰的上方一般會(huì)形成一個(gè)小尖,而下方則會(huì)變?yōu)檩^上方更寬的不規(guī)則形。
因此,可以將火焰的縱向燃燒特性作為判別火災(zāi)的一個(gè)依據(jù)。在火災(zāi)發(fā)生的初期,火焰總是不斷向上躥的,結(jié)合紅外測(cè)溫原理,就可以探測(cè)到火災(zāi)的發(fā)生,達(dá)到早期報(bào)警、早期防護(hù)的目的,對(duì)預(yù)防或減少火災(zāi)的發(fā)生有著重要的現(xiàn)實(shí)意義。
2 基于紅外圖像軸向比的火災(zāi)判別機(jī)理
可燃物在燃燒時(shí)會(huì)釋放出頻率范圍從紫外到紅外的光波,在可見光波段,火焰圖像具有獨(dú)特的色譜、紋理等特征,使之在圖像上與背景有明顯的區(qū)別。但由于可見光波段受干擾的光源很多,造成其識(shí)別算法復(fù)雜度增加,可靠度下降,因而可以借助紅外波段的圖像識(shí)別,利用紅外成像的原理獲取燃燒初期所發(fā)出的紅外圖像進(jìn)行圖像處理,從而達(dá)到監(jiān)控的目的。
由于火焰具有縱向燃燒的特性,因此在紅外圖像上表現(xiàn)出火焰的縱向高度大于其橫向?qū)挾取;鹧孑S向比為其縱向高度與橫向?qū)挾鹊谋戎怠?梢允褂肰C++結(jié)合OpenCV(開源計(jì)算機(jī)視覺庫(kù))對(duì)圖像進(jìn)行灰度化、二值化、輪廓跟蹤等處理,建立外接矩形,計(jì)算出其軸向比設(shè)定閾值,并且結(jié)合紅外測(cè)溫原理判別是否形成火災(zāi)。
如圖2所示,設(shè)定軸向比判別閾值為1,圖2(a)超過(guò)軸向比判別閾值,圖2(b)則沒有超過(guò)設(shè)定的閾值。
3 基于紅外圖像軸向比的火災(zāi)判別系統(tǒng)
紅外圖像軸向比火災(zāi)判別系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,主要由紅外濾光片、攝像頭、PC、顯示屏組成,如圖3所示。
紅外濾光片就是透紅外光而阻止可見光的濾光片,可有效濾除人工照明等因素的干擾。紅外濾光片的選取主要基于維恩位移定律[1],其公式為:
其中,為光譜輻射出射度的峰值波長(zhǎng);a是與溫度無(wú)關(guān)的常數(shù),a的近似值是0.289 cm.K。因此,光譜輻射出射度的峰值波長(zhǎng)與絕對(duì)溫度成反比。根據(jù)式(1)可以求出在某個(gè)溫度下光譜輻射出射度的峰值波長(zhǎng),即可根據(jù)此波長(zhǎng)來(lái)適當(dāng)?shù)剡x擇濾光片[2]。
在圖像型火災(zāi)探測(cè)系統(tǒng)中,攝像機(jī)的選用十分關(guān)鍵,它直接決定了整個(gè)系統(tǒng)的圖像效果[3]。攝像機(jī)選用主要依據(jù)兩個(gè)要素:攝像機(jī)的應(yīng)用場(chǎng)合和攝像機(jī)的主要參數(shù)。
4 基于紅外圖像軸向比的火災(zāi)判別系統(tǒng)軟件設(shè)計(jì)
4.1 編程環(huán)境
本系統(tǒng)使用VC++中的MFC搭建程序框架,并結(jié)合使用OpenCV中的圖像處理函數(shù)。
OpenCV(Open Source Computer Vision Library)是Intel公司支持的開源計(jì)算機(jī)視覺庫(kù)。它輕量級(jí)而且高效,由一系列C函數(shù)和少量C++類構(gòu)成,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法。
4.2 軟件流程
管理員登錄火災(zāi)探測(cè)系統(tǒng)后,首先設(shè)置攝像頭參數(shù)、設(shè)定軸向比判別閾值,然后對(duì)監(jiān)控區(qū)域運(yùn)用軸向比判別算法進(jìn)行火災(zāi)探測(cè),若超過(guò)軸向比判別閾值,則運(yùn)用紅外測(cè)溫原理顯示其溫度及“火災(zāi)隱患”,同時(shí)啟動(dòng)語(yǔ)音報(bào)警及GSM短信報(bào)警。軟件流程圖如圖4所示。
4.3 軸向比判別算法流程
將采集得到的圖像經(jīng)過(guò)平滑處理、灰度化、二值化后進(jìn)行輪廓提取,提取出面積不斷增大的輪廓,對(duì)面積不斷增大的輪廓建立其外接矩形,以所得外接矩形的高寬比值求出當(dāng)前幀的軸向比值。軸向比判別流程圖如圖5所示。
4.4 防誤報(bào)警功能
在實(shí)際火災(zāi)探測(cè)過(guò)程中會(huì)遇到很多干擾,如白熾燈、打火機(jī)等,這就需要系統(tǒng)有一定的健壯性,能夠排除干擾,正確識(shí)別火災(zāi),不給出虛假報(bào)警信號(hào)。因此,在系統(tǒng)中加入了防誤報(bào)警的功能,即當(dāng)所前捕獲的一幀圖像超過(guò)軸向比判別閾值時(shí)并不立即報(bào)警,而是緊接著再多捕獲幾幀圖像,若捕獲到的圖像中10幀內(nèi)有6幀及以上超過(guò)軸向比閾值,則進(jìn)行報(bào)警。防誤報(bào)警流程圖如圖6所示。
4.5 部分程序源代碼
IplImage* gray=cvCreateImage(cvGetSize(image),8,1);
if( capture == NULL ) //判斷攝像頭是否開啟
while(capture != NULL) //判斷幀數(shù)是否到10
{frame = cvQueryFrame( capture );
DrawPicToHDC(image, IDC_STATIC_PIC);
cvSmooth( pic, g_smooth, CV_MEDIAN, 3, 3, 0 );
//平滑處理
cvCvtColor( g_smooth, g_gray, CV_BGR2GRAY );
//灰度圖
cvThreshold( g_gray, g_gray,128,255, CV_THRESH_BINARY);
//二值化
cvFindContours(g_gray,g_storage,&contours,sizeof(CvContour),
cvCvtColor(g_gray,dst,CV_GRAY2RGB); //灰度化
DrawPicToHDC(dst,IDC_STATIC_PIC2); //畫出圖像邊緣
for( ;contours != 0; contours = contours->h_next )
//求出圖片內(nèi)所有輪廓的最大面積
CvRect box = cvBoundingRect(pcontours,NULL);
//計(jì)算矩形邊界
cvCvtColor(g_gray,dst,CV_GRAY2RGB); //灰度圖像
cvRectangle( dst, cvPoint(box.x, box.y), cvPoint(box.x+box.width, box.y+box.height), cvScalar(124, 5, 125), 3, 4, 0 );
//畫出矩形輪廓
DrawPicToHDC(dst,IDC_STATIC_PIC2); //顯示出輪廓
length=(float)box.height;
width=(float)box.width;
b=length/width; //求出軸向比的值
return b;
ro[Count]=p_handle(image);
if(Count==9)
for(int i=0;i<10;i++) //判斷每一幀是否超過(guò)閾值
{if(ro[i]>=nPos)
nu++;}
if(nu>=6)
//如果10幀內(nèi)超過(guò)閾值的幀數(shù)到達(dá)6幀,則顯示超過(guò)閾值
{m_Edit9.SetSel(0,-1);
m_Edit9.ReplaceSel("");
m_Edit8.SetSel(0,-1);
m_Edit8.ReplaceSel("火災(zāi)隱患");
cvMinMaxLoc(gray,&MinValue,&MaxValue,&MinLocation,&MaxLocation);
}
Else
//軸向比判別,如果不超過(guò)閾值,則顯示正常
{m_Edit8.SetSel(0,-1);
m_Edit8.ReplaceSel("");
m_Edit9.SetSel(0,-1);
m_Edit9.ReplaceSel("正常");
}
5 基于紅外圖像軸向比的火災(zāi)判別系統(tǒng)的實(shí)現(xiàn)
根據(jù)以上所述的基于紅外圖像軸向比的火災(zāi)判別算法,設(shè)計(jì)了火災(zāi)探測(cè)軟件,使用一個(gè)采集紅外圖像的攝像頭,若采集到的圖像超過(guò)所設(shè)的軸向比閾值,則顯示此時(shí)的溫度值及“火災(zāi)隱患”,同時(shí)進(jìn)行語(yǔ)音報(bào)警及GSM短信報(bào)警。圖7所示為軸向比閾值設(shè)定為1時(shí)的火災(zāi)探測(cè)系統(tǒng)。
如圖8所示,軸向比閾值設(shè)定為2,經(jīng)過(guò)軸向比判別算法判別后沒有超過(guò)設(shè)定的軸向比閾值,顯示“正常”。
本文基于火焰縱向燃燒的機(jī)理,運(yùn)用圖像處理技術(shù),通過(guò)設(shè)定火災(zāi)圖像軸向比的閾值,設(shè)計(jì)出一種基于紅外圖像軸向比的火災(zāi)探測(cè)系統(tǒng)。實(shí)驗(yàn)表明,該火災(zāi)探測(cè)系統(tǒng)能對(duì)火災(zāi)進(jìn)行實(shí)時(shí)有效的監(jiān)控,從而實(shí)現(xiàn)了一種新型的火災(zāi)判別技術(shù)。
軟件方面,系統(tǒng)基于OpenCV和MFC框架,通過(guò)紅外圖像軸向比判別算法來(lái)判別紅外圖像是否超過(guò)所設(shè)定的軸向比閾值,并結(jié)合紅外測(cè)溫原理對(duì)超過(guò)閾值的圖像進(jìn)行溫度的判斷,能及時(shí)準(zhǔn)確地探測(cè)到火災(zāi)的發(fā)生。硬件方面,采用USB攝像頭、紅外濾光片等簡(jiǎn)單易得且性價(jià)比較高的器材配合數(shù)字圖像處理來(lái)完成對(duì)火災(zāi)的實(shí)時(shí)監(jiān)控。該系統(tǒng)基本實(shí)現(xiàn)了預(yù)期的功能。
參考文獻(xiàn)
[1] 陸峰.基于紅外圖像識(shí)別的火災(zāi)探測(cè)系統(tǒng)[D].上海:東華大學(xué),2009.
[2] 鄔曉琳.紅外圖像型智能火災(zāi)探測(cè)系統(tǒng)的研究與實(shí)現(xiàn)[D].上海:東華大學(xué),2013.
[3] 王本西.基于圖像處理的火災(zāi)探測(cè)技術(shù)的研究[D].上海:東華大學(xué),2006.