張 偉 , 張先鶴
(湖北師范大學(xué) 機(jī)電與控制工程學(xué)院,湖北 黃石 435002)
現(xiàn)隨著經(jīng)濟(jì)迅速發(fā)展,人們對(duì)于安全意識(shí)有著極大的提高,但是由于人們的疏忽大意還是有大量關(guān)于火災(zāi)的新聞,火災(zāi)頻繁發(fā)生對(duì)人類(lèi)的生命財(cái)產(chǎn)造成了巨大的損失?;鹧娴拈L(zhǎng)度和眾多因素有關(guān),比如火焰的輻射強(qiáng)度、火焰?zhèn)鞑ニ俣鹊取;鹧骈L(zhǎng)度經(jīng)常作為一個(gè)建筑規(guī)范條件來(lái)判斷建筑是否構(gòu)建合理。因此對(duì)火焰的長(zhǎng)度測(cè)量就具有深刻的意義,同時(shí)通過(guò)圖像處理火焰長(zhǎng)度的測(cè)量也可以對(duì)燃燒物燃燒程度進(jìn)行分析,因此對(duì)于資源的充分利用也具有重要的意義。對(duì)火焰燃燒的情況通常都是由火焰輪廓和火焰長(zhǎng)度作為一個(gè)關(guān)鍵性的評(píng)價(jià)參數(shù),所以對(duì)于火焰長(zhǎng)度的精確測(cè)量必不可少。傳統(tǒng)的測(cè)量火焰高度的一般方法是通過(guò)肉眼的大致估計(jì),這種方法不僅測(cè)量不準(zhǔn)確而且局限性大還有可能造成一定的危險(xiǎn)。
對(duì)于火焰長(zhǎng)度的測(cè)量這一課題已經(jīng)有學(xué)者研究,例如巨新剛[1]等人利用CCD獲得圖像在此基礎(chǔ)上對(duì)火焰的亮度進(jìn)行提取之后的方式,然后利用Visual C#編程技術(shù)通過(guò)火焰的邊界和長(zhǎng)度計(jì)算公式求解出火焰的高度,測(cè)試效果良好。另外王林[2]等人在火焰理論高度的基礎(chǔ)上提出利用CCD拍攝到的圖組進(jìn)行灰度處理、圖像優(yōu)化處理;利用圖像上各個(gè)像素的不均等原理可能出現(xiàn)像素跳躍,然后提取出圖像的邊界線;最后通過(guò)數(shù)學(xué)建模思想把所提取到的將邊界線擬合成函數(shù)表達(dá)式,利用函數(shù)求得火焰尖端高度。還有毛翠麗[3]等人利用計(jì)算機(jī)視覺(jué)原理,通過(guò)CCD采集圖像對(duì)圖像進(jìn)行濾波去噪,然后通過(guò)基于MATLAB的傳統(tǒng)閾值分割技術(shù)對(duì)圖像進(jìn)行二值化,最后利用最高點(diǎn)與最低點(diǎn)距離之差進(jìn)行圖像火焰長(zhǎng)度的測(cè)量,得到的結(jié)果良好。在火焰圖像識(shí)別算法方面余路[4]等人已經(jīng)進(jìn)行過(guò)研究分析,提出背景減法、幀間差法、光流法等多種算法來(lái)對(duì)火焰進(jìn)行圖像識(shí)別得到清晰完整的火焰圖像。譚亞鵬[5]提出火焰圖像增強(qiáng)算法采用引導(dǎo)濾波器對(duì)爐膛火焰圖像進(jìn)行平滑濾波,較好地獲得火焰圖像的照度圖像,在時(shí)域下采用減法運(yùn)算獲取火焰圖像的反射分量,并對(duì)反射分量進(jìn)行顏色恢復(fù)校正,來(lái)避免爐膛火焰顏色失真。白冰[6]等人將影像測(cè)量技術(shù)應(yīng)用于火工品火焰長(zhǎng)度測(cè)量, 建立了影像測(cè)量系統(tǒng)對(duì)某型號(hào)煙火點(diǎn)火器與魚(yú)雷訓(xùn)練用器材的火焰長(zhǎng)度進(jìn)行了測(cè)量,結(jié)果表明相比傳統(tǒng)方法影像測(cè)量方法能夠精確測(cè)量出火工品輸出火焰長(zhǎng)度。馮麗琦[7]等人利用火焰的顏色特征提取出疑似火焰區(qū)域;對(duì)疑似火焰區(qū)域進(jìn)行Gabor濾波,再對(duì)Gabor濾波后不同尺度下的圖像以16×16的像素鄰域網(wǎng)格作為采樣窗口,采用LBP提取其紋理特征;運(yùn)用CART決策樹(shù)對(duì)LBP特征向量進(jìn)行降維,將分類(lèi)回歸樹(shù)算法(CART)選擇出來(lái)的特征輸入到支持向量機(jī)(SVM)訓(xùn)練分類(lèi)器,進(jìn)行火災(zāi)火焰圖像識(shí)別。實(shí)驗(yàn)結(jié)果表明,野外火災(zāi)火焰的識(shí)別準(zhǔn)確率為96%,證明了該算法的有效性。吉林大學(xué)張杰[8]設(shè)計(jì)了三種基于火災(zāi)視頻圖像的識(shí)別方法?;趥鹘y(tǒng)的火災(zāi)圖像處理方法,設(shè)計(jì)了一種基于多特征融合的火災(zāi)識(shí)別方法。首先結(jié)合RGB判據(jù)和HIS判據(jù),設(shè)定合適的閾值條件,基于OpenCV的開(kāi)源庫(kù),在VS2013平臺(tái)上,實(shí)現(xiàn)了視頻中火焰對(duì)應(yīng)像素區(qū)域的識(shí)別,并將原圖進(jìn)行二值化處理,將火焰區(qū)域用矩形框標(biāo)記;然后在此基礎(chǔ)上提出對(duì)原圖的灰度圖使用KMeans算法進(jìn)行聚類(lèi),并與疑似火焰區(qū)域相與得到疑似火焰區(qū)域輪廓,進(jìn)一步加入圓形度和偏心率兩個(gè)判據(jù)完成火災(zāi)的識(shí)別。實(shí)驗(yàn)結(jié)果表明,該方法能夠提取出大部分火災(zāi)圖像輪廓,識(shí)別效果較好。王文朋[9]分別從改進(jìn)圖像特征、優(yōu)化深度學(xué)習(xí)模型、構(gòu)建深度遷移學(xué)習(xí)模型三方面出發(fā),提出了一系列火焰圖像識(shí)別算法,有效提升了火焰識(shí)別的精確率和穩(wěn)定性。王博[10]提出了一種新的火焰前景提取算法,該算法首先使用監(jiān)督學(xué)習(xí)方法確定疑似前景區(qū)域,然后通過(guò)改進(jìn)K-means算法對(duì)疑似區(qū)域?qū)?yīng)的圖像塊進(jìn)行聚類(lèi)分割,從而得到較準(zhǔn)確的火焰前景圖像。
筆者通過(guò)在此基礎(chǔ)上利用CCD獲得圖像,提出使用一種梯度算法來(lái)求出火焰圖像的閾值,對(duì)火焰進(jìn)行二值化然后與傳統(tǒng)方式比較,對(duì)比結(jié)果突出了梯度算法的優(yōu)越性,然后對(duì)圖像進(jìn)一步提取火焰的邊緣,最后利用MATLAB軟件編程,使用LOG算子對(duì)圖像邊緣進(jìn)行提取求出最高點(diǎn)和最低點(diǎn)像素的差值,利用公式求出火焰的長(zhǎng)度。經(jīng)過(guò)多次實(shí)驗(yàn)驗(yàn)證此方法對(duì)測(cè)量差值效果更加精確顯著并且方便快捷。經(jīng)實(shí)驗(yàn)測(cè)試可行性很高。
本設(shè)計(jì)利用CCD攝像機(jī)獲取火焰圖像然后把光信號(hào)轉(zhuǎn)化成電信號(hào)輸入圖像采集卡,然后通過(guò)圖像采集卡內(nèi)部模數(shù)轉(zhuǎn)換器把電信號(hào)轉(zhuǎn)化成數(shù)字信號(hào),數(shù)字信號(hào)通過(guò)傳輸電纜傳送到計(jì)算機(jī),在計(jì)算機(jī)上得到R、G、B三基色表示彩色火焰圖像進(jìn)行顯示。最后利用圖像處理技術(shù)對(duì)得到的彩色圖像進(jìn)行處理得到結(jié)果并顯示。圖像處理系統(tǒng)圖如圖1所示。
圖1 圖像處理系統(tǒng)圖
本設(shè)計(jì)利用CCD得到圖像,由于周?chē)鞣N信號(hào)影響因此要對(duì)圖像進(jìn)行濾波處理操作。本文基于MATLAB的圖像處理,MATLAB具有豐富的圖像處理函數(shù)庫(kù)。
圖2 原圖像
圖3 濾波處理后圖像
由于我們的目的是測(cè)量火焰的長(zhǎng)度,因此對(duì)圖像邊緣的保留十分關(guān)鍵。同時(shí)中值濾波可以很好地保留圖像的邊緣,在這一程度上中值濾波要強(qiáng)于均值濾波,所以我們采用中值濾波來(lái)對(duì)圖像進(jìn)行濾波處理。簡(jiǎn)單來(lái)說(shuō)就是把帶有干擾的圖像g(x,y)的中值挑選出來(lái)作為(x,y)的輸出。在MATLAB中利用函數(shù)medfilt2()進(jìn)行二維中值濾波。調(diào)用格式:medfilt2(I,[3,3])。值得注意的是圖像一定要是二維圖像,我們通過(guò)CCD得到的圖像為RBG三維彩色圖像要通過(guò)函數(shù)rgb2gray()進(jìn)行彩色圖像灰度化。經(jīng)過(guò)MATLAB編程得到圖2和圖3.
邊緣檢測(cè)是檢測(cè)圖像特性發(fā)生變化的位置。在處理圖像邊緣檢測(cè)這一方面,很多學(xué)者通過(guò)傳統(tǒng)的邊緣檢測(cè)原理來(lái)對(duì)圖像進(jìn)行處理。主要有空域檢測(cè)和變換域檢測(cè)兩種,面對(duì)不同情況可以選擇不同的邊緣提取的方式,但是普通算法對(duì)環(huán)境噪聲非常敏感。通過(guò)小波變換的邊緣檢測(cè)方法和基于形態(tài)學(xué)的邊緣銳化方法雖然都可以大幅度降低噪聲的影響,但是這種算法計(jì)算量較大,對(duì)火焰高度測(cè)量不利。通過(guò)與一般方式比較,決定使用計(jì)算量較小,過(guò)程比較簡(jiǎn)單同時(shí)利于計(jì)算機(jī)快速計(jì)算的圖像矢量梯度算法進(jìn)行圖像的邊緣檢測(cè)。具體原理如下:
灰度圖像函數(shù)為f(x,y),首先把在點(diǎn)(x,y)處的梯度表示出來(lái):
(1)
基于梯度函數(shù)變化率最快的方向即為梯度的方向可以知道最大值一定在邊界處取得。梯度的幅度可表示為:
(2)
通過(guò)梯度的性質(zhì)可以知道梯度的幅值就是在函數(shù)變化率最快的方向上單位距離的增加。上式通過(guò)灰度圖像函數(shù)表示為:
G[f(x,y)]=|f(i,j)-f(i,j+1)|+|f(i,j)-f(i+1,j)|
(3)
由上式可知梯度的值等于相鄰像素的差分,在火焰圖像灰度值變化幅度比較小的地方其值很小,當(dāng)變化幅度較大時(shí)此時(shí)的灰度值就是火焰的邊界。因此利用這一性質(zhì)來(lái)找到火焰圖像的灰度閾值從而對(duì)圖像進(jìn)行二值化處理,測(cè)量火焰的高度只需要提取垂直方向的像素即可,通過(guò)MATLAB編程可以很精確地得到火焰的輪廓,上式梯度近似可表示為:
G[f(x,y)]=|f(j)-f(j+1)|
(4)
傳統(tǒng)的方式來(lái)對(duì)圖像進(jìn)行二值化,利用MATLAB軟件中im2bw()函數(shù)對(duì)其進(jìn)行二值化處理。兩種方式經(jīng)過(guò)MATLAB編程得到二值化圖像如圖4和圖5所示:
圖4 梯度算法
圖5 傳統(tǒng)算法
從圖像上分析得出使用梯度算法可以更加精確完整的表現(xiàn)出火焰的輪廓,因此能更加完整地體現(xiàn)出我們所需要的邊界。
對(duì)于邊緣分割處理有多種算子可以選擇:Roberts算子,prewitt算子,Sobel算子,Canny算子,LOG算子。本文選取LOG算子的原因是基于此算子可以精準(zhǔn)地定位圖像的邊界,對(duì)一些噪聲如高斯噪聲,椒鹽噪聲等噪聲有很好的抵抗作用,其次它對(duì)于圖像邊緣切割較為平滑,利于測(cè)量火焰的高度。在圖像處理中經(jīng)常利用此算子來(lái)提取圖像邊緣。LOG算子的原理:先利用高斯函數(shù)對(duì)圖像進(jìn)行平滑,然后采用拉普拉斯算子根據(jù)二階導(dǎo)數(shù)過(guò)零點(diǎn),來(lái)檢測(cè)圖像的邊緣,最后得到的算子即為L(zhǎng)OG算子。表達(dá)式如下:
(5)
在數(shù)字圖像的運(yùn)用中上式可近似成:
▽2f(x,y)=f(x+1,y)+f(x-1,y)+f(x,y+1)+f(x,y-1)-4f(x,y)
(6)
通過(guò)MATLAB編程得到圖像如圖6所示:
圖6 LOG算子圖像
實(shí)驗(yàn)過(guò)程中先把CCD攝像機(jī)固定好,距離在蠟燭1.5米處聚焦效果最好。另外還需要一個(gè)刻度尺,使用刻度尺然后讀出圖片中火焰的高度L,由于通過(guò)原始拍攝的圖像過(guò)大,通過(guò)裁剪得到的M×N圖像,利用以上梯度算法在MATLAB中就能得到最高點(diǎn)坐標(biāo)(x1,y1)和最低點(diǎn)(x2,y2)的縱坐標(biāo)差值,由公式(7)得到火焰的真實(shí)高度。
(7)
通過(guò)梯度算法更加精確快捷地找到最低點(diǎn)和最低點(diǎn)高度之差,經(jīng)過(guò)多次實(shí)驗(yàn)發(fā)現(xiàn)此算法求解火焰高度準(zhǔn)確率大約為0.3%,比使用傳統(tǒng)方法更加精確和穩(wěn)定。實(shí)驗(yàn)的不足之處在于周?chē)母蓴_可能過(guò)大,對(duì)實(shí)驗(yàn)造成一些影響。此方法可以進(jìn)一步優(yōu)化以減小擾動(dòng)干擾提高準(zhǔn)確率。