熊正,朱沛杰,左冠中
(1.東北林業(yè)大學,黑龍江 哈爾濱 150040;2.西北工業(yè)大學,陜西 西安 710129)
科學技術(shù)的進步大大推進了火災(zāi)預防和救援質(zhì)量的提升,有效識別火災(zāi)將會為及時、高效地防控火災(zāi)提供巨大幫助?,F(xiàn)階段,火災(zāi)識別技術(shù)已經(jīng)逐漸從感煙、感溫探測發(fā)展為火災(zāi)圖像視頻探測,火災(zāi)識別的高效性、準確性和實用性都得到了大幅提升。為進一步優(yōu)化火災(zāi)視頻識別方法,可將OpenCV融入其中。
OpenCV是一種由C++語言編寫,基于BSD許可發(fā)行的跨平臺計算機視覺與機器學習軟件庫,可以在Windows、Android、Mac OS等系統(tǒng)當中運行。目前,OpenCV已經(jīng)被廣泛應(yīng)用在多個領(lǐng)域當中,人機互動、人臉識別、機器視覺、運動追蹤和分析、動作識別、圖像分割等領(lǐng)域都可見其身影[1]。它具有強大的跨平臺性,屬于開源的開發(fā)工具,可以被免費應(yīng)用在各個領(lǐng)域當中。
在實際應(yīng)用環(huán)節(jié),OpenCV有著運行速度快、開發(fā)目的明確、運行獨立性高、圖像視頻輸入輸出效率高且程序底層與高層開發(fā)包完善的特點。而且,利用OpenCV能夠為深度開發(fā)計算機視覺市場提供巨大輔助,它一直致力于成為標準API。應(yīng)用OpenCV可以快速完成圖像數(shù)據(jù)的分配、釋放、復制和轉(zhuǎn)換;能夠快速獲取文件與攝像頭中的圖像或視頻并完成二者輸出;可以基于奇異值算法、解方程算法或矩陣積算法處理矩陣和向量;還能夠開展多元結(jié)構(gòu)分析和數(shù)字圖像的基本處理,更能有效開展動物體圖像的追蹤分析與運動分割??傊琌penCV與視頻監(jiān)控領(lǐng)域的適配度極高,將其應(yīng)用在火災(zāi)視頻識別和監(jiān)控領(lǐng)域,可以提高火焰圖像采集效率、優(yōu)化火災(zāi)視頻探測功能,完善火災(zāi)視頻識別系統(tǒng)奠定基礎(chǔ)。
火災(zāi)發(fā)生后,燃燒過程會失控,這是導致火場情況危險而復雜的根本原因?;馂?zāi)發(fā)生伊始,火焰特征將會發(fā)生明顯變化,而識別和掌握變化規(guī)律就是實現(xiàn)火災(zāi)視頻識別的有效方法。在實際作業(yè)環(huán)節(jié),技術(shù)人員需要合理運行OpenCV,為提高火焰圖像采集和預處理效果奠定基礎(chǔ)。
技術(shù)人員可基于VC6.0開發(fā)平臺運行OpenCV,并依托于OpenCV與DirectShow的有機結(jié)合完成圖像采集。后者屬于流媒體處理的開發(fā)包,能夠?qū)崿F(xiàn)高分辨率圖像采集,當攝像頭分辨率較高時采集到圖像分辨率也會相對較高。采集火焰圖像時,將快速完成圖像信號與數(shù)字信號的轉(zhuǎn)換,進而實現(xiàn)圖像信息的輸出和儲存,為有效檢測后續(xù)目標做好充足準備。
火焰圖像預處理則屬于圖像處理前的準備性和輔助性工作,該項工作的主要目的是消除火焰圖像受到的噪聲污染、失真問題,從而讓圖像的可用性得到提升[2]。在此環(huán)節(jié),最為主要操作有兩種,其一為圖像增強,其二為圖像復原。開展圖像預處理工作時,相關(guān)工作人員應(yīng)該有效開展位圖與YCbCr圖之間的轉(zhuǎn)化、灰度化與二值化的調(diào)整和圖像的增強。比如,可基于分量法、平均值法、最大值法、加權(quán)平均值法開展彩色圖像的灰度化處理;以均值濾波、高斯平滑濾波、中值濾波等方法實現(xiàn)圖像增強。
為了真正地發(fā)揮基于OpenCV的火災(zāi)視頻識別方法的價值,相關(guān)工作人員需要合理設(shè)計基于OpenCV的火災(zāi)視頻識別系統(tǒng)。而且,在實踐工作中,不僅需明確系統(tǒng)開發(fā)設(shè)計的工具和運行環(huán)境要求,科學規(guī)劃系統(tǒng)的火災(zāi)探測流程;更要明確運動目標檢測與火災(zāi)圖像特征之間的關(guān)系和火災(zāi)圖像的形態(tài)特征處理要點。
設(shè)計基于OpenCV的火災(zāi)視頻識別系統(tǒng)時,需要應(yīng)用OpenCV、Microsoft Visual C++以及MATLAB等開發(fā)工具,并使其在Windows系統(tǒng)當中運行。為保證系統(tǒng)運行質(zhì)量,還應(yīng)該為該系統(tǒng)匹配超高分辨率和幀速率可達30幀/秒的USB2.0攝像頭,以及良好的運行環(huán)境。在設(shè)計環(huán)節(jié),Microsoft Visual C++的應(yīng)用,能進一步提升圖像處理效率,它與OpenCV的融合可以實現(xiàn)高質(zhì)量的圖像采集、處理、可視化編程。而MATLAB的應(yīng)用,則可以提升數(shù)值計算效率,讓系統(tǒng)的計算機算法更為優(yōu)越。經(jīng)過合理設(shè)計,基于OpenCV的火災(zāi)視頻識別系統(tǒng),在讀取視頻文件后將會完成如下操作:
第一,系統(tǒng)將會自動完成差影圖處理和視頻圖像變化預判操作;第二,在確定發(fā)生變化后,將基于視頻圖像的變化閾值,對其進行灰度化、二值化、去噪音處理和火焰面積分析;第三,經(jīng)過上述分析,將基于火焰面積變化情況、火焰圖像色彩分析情況開展RGB色彩分布判斷和YCbCr火焰顏色與色彩分布判斷;第四,基于灰度梯度分布狀況以及火焰尖角分布情況判斷是否發(fā)生火災(zāi)。
火災(zāi)現(xiàn)場的情況十分復雜,在開展火災(zāi)視頻檢測與識別的過程中將會受到多種因素干擾,所以有效檢測運動目標、消除背景干擾成為了提高檢測火焰準確度的必然要求[3]。在此環(huán)節(jié),相關(guān)工作人員可以基于三種算法完成運動目標檢測。其一為幀間差分法;其二為背景圖像差分法;其三為光流法。在實際應(yīng)用環(huán)節(jié),前兩者適用于自然場景,而后者適用于運動的攝像機;三種算法中,幀間差法能夠快速完成運動目標檢測,但目標大多大于實際情況;背景圖像差分法可能高質(zhì)量提取運動目標,但易受到外界環(huán)境干擾;而光流法則有利于獨立運動對象的檢測,但由于算法過于復雜所以并不適用于實際檢測。
火災(zāi)圖像的形態(tài)特征處理,是實現(xiàn)火災(zāi)視頻識別的基礎(chǔ),處理工作的有效性將會直接影響基于OpenCV的火災(zāi)視頻識別系統(tǒng)運行質(zhì)效。當火災(zāi)發(fā)生時,現(xiàn)場的整體反應(yīng)過程都極為復雜多變,所以火焰的視覺特征也會跟隨火場情況而發(fā)生變化,那么在掌握這些變化的規(guī)律以及節(jié)點后,火災(zāi)檢測人員就能夠基于火焰圖像狀態(tài)合理判斷火災(zāi)情況,進而對火災(zāi)進行有效識別。為此,基于OpenCV的火災(zāi)視頻識別系統(tǒng)設(shè)計人員應(yīng)該設(shè)計出完善的算法,全面處理從火災(zāi)現(xiàn)場采集到的視頻圖像,為真實、準確地判斷是否存在火災(zāi)奠定基礎(chǔ)[4]。
3.3.1 差影圖處理
目前,求出差影圖是實現(xiàn)多圖像高效處理的常見準備方法。在處理差影圖的過程中,可以從直接差影圖和閾值差影圖兩個角度出發(fā)。實際上,求差影圖就等同于基于差分法求運動目標,十分有利于檢測圖像的變化情況。通常,攝像頭拍攝的環(huán)境圖像變化幾率極小,此時利用火災(zāi)探測儀進行實時監(jiān)控會造成資源浪費。但發(fā)生火災(zāi)時,環(huán)境圖像必然出現(xiàn)變化,利用算法較小的差影圖來判斷變化情況既能夠保證火災(zāi)檢測的及時性,又能夠避免資源浪費和設(shè)備損耗。
若圖像序列幀數(shù)整體以A來表示,并以(m,n)表示圖像的像素點坐標,ft(m,n)表示數(shù)字化圖像序列(t=1-A)。那么,大多數(shù)情況下A會大于2,而(m,n)∈整個圖像O。在此情況下,各個通道的圖像信號都有穩(wěn)定的基準圖像,可用f0(m,n)來表示,則在公式△ft(m,n)=ft(m,n)-f0(m,n)當中,若結(jié)果為0則無火災(zāi),若結(jié)果非0則代表有火災(zāi),或圖像環(huán)境中進入了光源和高溫物體。在差影圖處理環(huán)節(jié),還可以使用閾值差影圖。這種處理方法的重點就是取閾值,進而設(shè)定圖像變化標準,為準確判斷圖像變化情況做好準備。
3.3.2 真彩圖像灰度化
在處理火災(zāi)圖像形態(tài)特征時,應(yīng)該合理應(yīng)用真彩圖像,也就是24位位圖圖像。在應(yīng)用基于OpenCV的火災(zāi)視頻識別系統(tǒng)時,應(yīng)借助于OpenCV庫函數(shù)轉(zhuǎn)變真彩圖像的數(shù)據(jù)格式,從而有效分析YCbCr火焰的數(shù)據(jù)分布特性奠定基礎(chǔ)[5]。進行真彩圖像的灰度化處理時,必須有效轉(zhuǎn)化24位BMP圖的RGB值,從而實現(xiàn)真彩圖像到灰度圖像的轉(zhuǎn)變,讓灰度分布檢測工作能夠順利開展。
3.3.3 圖像去噪聲
去噪聲處理是火災(zāi)圖像形態(tài)特征處理的必要性操作,主要方法是借由過濾器完成圖像過濾。所謂噪聲,并不是常規(guī)意義上的噪音,而是數(shù)字化圖像中的無用信息,有效去除這些信息可提高圖像的實用性和火災(zāi)判斷精準性。在此環(huán)節(jié),可基于高斯過濾器、均平過濾器清除噪聲。在OpenCV當中,均值濾波與中值濾波的主要函數(shù)存在差異,相關(guān)工作人員需要根據(jù)實際需要做好函數(shù)選擇[6]。
3.3.4 計算火焰面積
精確地計算火焰面積,對準確識別和判斷火災(zāi)情況有著十分重要的意義。在實踐中,需完成圖像二值化處理,從而獲得二進制位圖,然后再對其進行精確剪取,進而為有效計算火焰面積提供依據(jù)。此時,0代表二值化圖像中的背景而1代表火焰,所以計算火焰面積可基于求和運算計算圖像矩陣。
3.3.5 識別火焰尖角
火焰尖角識別也必須基于二值化圖像來開展,通過這種護理能夠區(qū)分火焰和感染源,是基于OpenCV的火災(zāi)視頻識別工作中不可或缺的部分。在實際應(yīng)用環(huán)節(jié),需要全面掃描預處理后的二值化圖像,并以圖像首行、首列和尾列為0。那么,當掃描出非0時,代表該行不屬于尖角的“尖”,需再次進行掃描。需要注意的是,若火焰存在尖角,則需要對其角度進行判斷從而進一步確定其是否為火焰的尖角,讓火災(zāi)視頻識別結(jié)果更為可用。
總而言之,基于OpenCV的火災(zāi)視頻識別系統(tǒng)能夠有效完成火焰識別分析,從而大幅提升火災(zāi)探測的及時性、準確性、實用性,將會為降低火災(zāi)風險、提高環(huán)境安全奠定基礎(chǔ)。OpenCV技術(shù)應(yīng)用,可精準捕獲火災(zāi)場景視頻,更能依托于火焰圖像的有效處理,完成火災(zāi)視頻識別系統(tǒng)編碼,進而為真正識別火災(zāi)提供支持。