張 偉 , 張先鶴
(湖北師范大學 機電與控制工程學院,湖北 黃石 435002)
現(xiàn)隨著經(jīng)濟迅速發(fā)展,人們對于安全意識有著極大的提高,但是由于人們的疏忽大意還是有大量關(guān)于火災的新聞,火災頻繁發(fā)生對人類的生命財產(chǎn)造成了巨大的損失。火焰的長度和眾多因素有關(guān),比如火焰的輻射強度、火焰?zhèn)鞑ニ俣鹊取;鹧骈L度經(jīng)常作為一個建筑規(guī)范條件來判斷建筑是否構(gòu)建合理。因此對火焰的長度測量就具有深刻的意義,同時通過圖像處理火焰長度的測量也可以對燃燒物燃燒程度進行分析,因此對于資源的充分利用也具有重要的意義。對火焰燃燒的情況通常都是由火焰輪廓和火焰長度作為一個關(guān)鍵性的評價參數(shù),所以對于火焰長度的精確測量必不可少。傳統(tǒng)的測量火焰高度的一般方法是通過肉眼的大致估計,這種方法不僅測量不準確而且局限性大還有可能造成一定的危險。
對于火焰長度的測量這一課題已經(jīng)有學者研究,例如巨新剛[1]等人利用CCD獲得圖像在此基礎(chǔ)上對火焰的亮度進行提取之后的方式,然后利用Visual C#編程技術(shù)通過火焰的邊界和長度計算公式求解出火焰的高度,測試效果良好。另外王林[2]等人在火焰理論高度的基礎(chǔ)上提出利用CCD拍攝到的圖組進行灰度處理、圖像優(yōu)化處理;利用圖像上各個像素的不均等原理可能出現(xiàn)像素跳躍,然后提取出圖像的邊界線;最后通過數(shù)學建模思想把所提取到的將邊界線擬合成函數(shù)表達式,利用函數(shù)求得火焰尖端高度。還有毛翠麗[3]等人利用計算機視覺原理,通過CCD采集圖像對圖像進行濾波去噪,然后通過基于MATLAB的傳統(tǒng)閾值分割技術(shù)對圖像進行二值化,最后利用最高點與最低點距離之差進行圖像火焰長度的測量,得到的結(jié)果良好。在火焰圖像識別算法方面余路[4]等人已經(jīng)進行過研究分析,提出背景減法、幀間差法、光流法等多種算法來對火焰進行圖像識別得到清晰完整的火焰圖像。譚亞鵬[5]提出火焰圖像增強算法采用引導濾波器對爐膛火焰圖像進行平滑濾波,較好地獲得火焰圖像的照度圖像,在時域下采用減法運算獲取火焰圖像的反射分量,并對反射分量進行顏色恢復校正,來避免爐膛火焰顏色失真。白冰[6]等人將影像測量技術(shù)應用于火工品火焰長度測量, 建立了影像測量系統(tǒng)對某型號煙火點火器與魚雷訓練用器材的火焰長度進行了測量,結(jié)果表明相比傳統(tǒng)方法影像測量方法能夠精確測量出火工品輸出火焰長度。馮麗琦[7]等人利用火焰的顏色特征提取出疑似火焰區(qū)域;對疑似火焰區(qū)域進行Gabor濾波,再對Gabor濾波后不同尺度下的圖像以16×16的像素鄰域網(wǎng)格作為采樣窗口,采用LBP提取其紋理特征;運用CART決策樹對LBP特征向量進行降維,將分類回歸樹算法(CART)選擇出來的特征輸入到支持向量機(SVM)訓練分類器,進行火災火焰圖像識別。實驗結(jié)果表明,野外火災火焰的識別準確率為96%,證明了該算法的有效性。吉林大學張杰[8]設(shè)計了三種基于火災視頻圖像的識別方法。基于傳統(tǒng)的火災圖像處理方法,設(shè)計了一種基于多特征融合的火災識別方法。首先結(jié)合RGB判據(jù)和HIS判據(jù),設(shè)定合適的閾值條件,基于OpenCV的開源庫,在VS2013平臺上,實現(xiàn)了視頻中火焰對應像素區(qū)域的識別,并將原圖進行二值化處理,將火焰區(qū)域用矩形框標記;然后在此基礎(chǔ)上提出對原圖的灰度圖使用KMeans算法進行聚類,并與疑似火焰區(qū)域相與得到疑似火焰區(qū)域輪廓,進一步加入圓形度和偏心率兩個判據(jù)完成火災的識別。實驗結(jié)果表明,該方法能夠提取出大部分火災圖像輪廓,識別效果較好。王文朋[9]分別從改進圖像特征、優(yōu)化深度學習模型、構(gòu)建深度遷移學習模型三方面出發(fā),提出了一系列火焰圖像識別算法,有效提升了火焰識別的精確率和穩(wěn)定性。王博[10]提出了一種新的火焰前景提取算法,該算法首先使用監(jiān)督學習方法確定疑似前景區(qū)域,然后通過改進K-means算法對疑似區(qū)域?qū)膱D像塊進行聚類分割,從而得到較準確的火焰前景圖像。
筆者通過在此基礎(chǔ)上利用CCD獲得圖像,提出使用一種梯度算法來求出火焰圖像的閾值,對火焰進行二值化然后與傳統(tǒng)方式比較,對比結(jié)果突出了梯度算法的優(yōu)越性,然后對圖像進一步提取火焰的邊緣,最后利用MATLAB軟件編程,使用LOG算子對圖像邊緣進行提取求出最高點和最低點像素的差值,利用公式求出火焰的長度。經(jīng)過多次實驗驗證此方法對測量差值效果更加精確顯著并且方便快捷。經(jīng)實驗測試可行性很高。
本設(shè)計利用CCD攝像機獲取火焰圖像然后把光信號轉(zhuǎn)化成電信號輸入圖像采集卡,然后通過圖像采集卡內(nèi)部模數(shù)轉(zhuǎn)換器把電信號轉(zhuǎn)化成數(shù)字信號,數(shù)字信號通過傳輸電纜傳送到計算機,在計算機上得到R、G、B三基色表示彩色火焰圖像進行顯示。最后利用圖像處理技術(shù)對得到的彩色圖像進行處理得到結(jié)果并顯示。圖像處理系統(tǒng)圖如圖1所示。

圖1 圖像處理系統(tǒng)圖
本設(shè)計利用CCD得到圖像,由于周圍各種信號影響因此要對圖像進行濾波處理操作。本文基于MATLAB的圖像處理,MATLAB具有豐富的圖像處理函數(shù)庫。

圖2 原圖像

圖3 濾波處理后圖像
由于我們的目的是測量火焰的長度,因此對圖像邊緣的保留十分關(guān)鍵。同時中值濾波可以很好地保留圖像的邊緣,在這一程度上中值濾波要強于均值濾波,所以我們采用中值濾波來對圖像進行濾波處理。簡單來說就是把帶有干擾的圖像g(x,y)的中值挑選出來作為(x,y)的輸出。在MATLAB中利用函數(shù)medfilt2()進行二維中值濾波。調(diào)用格式:medfilt2(I,[3,3])。值得注意的是圖像一定要是二維圖像,我們通過CCD得到的圖像為RBG三維彩色圖像要通過函數(shù)rgb2gray()進行彩色圖像灰度化。經(jīng)過MATLAB編程得到圖2和圖3.
邊緣檢測是檢測圖像特性發(fā)生變化的位置。在處理圖像邊緣檢測這一方面,很多學者通過傳統(tǒng)的邊緣檢測原理來對圖像進行處理。主要有空域檢測和變換域檢測兩種,面對不同情況可以選擇不同的邊緣提取的方式,但是普通算法對環(huán)境噪聲非常敏感。通過小波變換的邊緣檢測方法和基于形態(tài)學的邊緣銳化方法雖然都可以大幅度降低噪聲的影響,但是這種算法計算量較大,對火焰高度測量不利。通過與一般方式比較,決定使用計算量較小,過程比較簡單同時利于計算機快速計算的圖像矢量梯度算法進行圖像的邊緣檢測。具體原理如下:
灰度圖像函數(shù)為f(x,y),首先把在點(x,y)處的梯度表示出來:

(1)
基于梯度函數(shù)變化率最快的方向即為梯度的方向可以知道最大值一定在邊界處取得。梯度的幅度可表示為:

(2)
通過梯度的性質(zhì)可以知道梯度的幅值就是在函數(shù)變化率最快的方向上單位距離的增加。上式通過灰度圖像函數(shù)表示為:
G[f(x,y)]=|f(i,j)-f(i,j+1)|+|f(i,j)-f(i+1,j)|
(3)
由上式可知梯度的值等于相鄰像素的差分,在火焰圖像灰度值變化幅度比較小的地方其值很小,當變化幅度較大時此時的灰度值就是火焰的邊界。因此利用這一性質(zhì)來找到火焰圖像的灰度閾值從而對圖像進行二值化處理,測量火焰的高度只需要提取垂直方向的像素即可,通過MATLAB編程可以很精確地得到火焰的輪廓,上式梯度近似可表示為:
G[f(x,y)]=|f(j)-f(j+1)|
(4)
傳統(tǒng)的方式來對圖像進行二值化,利用MATLAB軟件中im2bw()函數(shù)對其進行二值化處理。兩種方式經(jīng)過MATLAB編程得到二值化圖像如圖4和圖5所示:

圖4 梯度算法

圖5 傳統(tǒng)算法
從圖像上分析得出使用梯度算法可以更加精確完整的表現(xiàn)出火焰的輪廓,因此能更加完整地體現(xiàn)出我們所需要的邊界。
對于邊緣分割處理有多種算子可以選擇:Roberts算子,prewitt算子,Sobel算子,Canny算子,LOG算子。本文選取LOG算子的原因是基于此算子可以精準地定位圖像的邊界,對一些噪聲如高斯噪聲,椒鹽噪聲等噪聲有很好的抵抗作用,其次它對于圖像邊緣切割較為平滑,利于測量火焰的高度。在圖像處理中經(jīng)常利用此算子來提取圖像邊緣。LOG算子的原理:先利用高斯函數(shù)對圖像進行平滑,然后采用拉普拉斯算子根據(jù)二階導數(shù)過零點,來檢測圖像的邊緣,最后得到的算子即為LOG算子。表達式如下:

(5)
在數(shù)字圖像的運用中上式可近似成:
▽2f(x,y)=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y)
(6)
通過MATLAB編程得到圖像如圖6所示:

圖6 LOG算子圖像
實驗過程中先把CCD攝像機固定好,距離在蠟燭1.5米處聚焦效果最好。另外還需要一個刻度尺,使用刻度尺然后讀出圖片中火焰的高度L,由于通過原始拍攝的圖像過大,通過裁剪得到的M×N圖像,利用以上梯度算法在MATLAB中就能得到最高點坐標(x1,y1)和最低點(x2,y2)的縱坐標差值,由公式(7)得到火焰的真實高度。

(7)
通過梯度算法更加精確快捷地找到最低點和最低點高度之差,經(jīng)過多次實驗發(fā)現(xiàn)此算法求解火焰高度準確率大約為0.3%,比使用傳統(tǒng)方法更加精確和穩(wěn)定。實驗的不足之處在于周圍的干擾可能過大,對實驗造成一些影響。此方法可以進一步優(yōu)化以減小擾動干擾提高準確率。