王文豪,嚴(yán)云洋,胡榮林
(淮陰工學(xué)院計(jì)算機(jī)工程學(xué)院,江蘇淮安 223003)
火災(zāi)的準(zhǔn)確探測(cè)與報(bào)警是消防安全的重要手段。傳統(tǒng)的火災(zāi)報(bào)警系統(tǒng)一般是基于紅外傳感器和煙霧傳感器,也就是探測(cè)火災(zāi)發(fā)生時(shí)生成的煙、溫度和光等參量,經(jīng)信號(hào)處理、比較、判斷后發(fā)出火災(zāi)報(bào)警信號(hào)[1]。但在大空間、大面積、環(huán)境比較惡劣和室外環(huán)境等場(chǎng)所這些方法無(wú)法發(fā)揮其作用,常常發(fā)生誤報(bào)[2]。于是人們又提出了利用圖像處理技術(shù)進(jìn)行火災(zāi)的監(jiān)控和報(bào)警。
這種基于數(shù)字圖像處理的火災(zāi)識(shí)別技術(shù)的難點(diǎn)就是火焰目標(biāo)的提取和識(shí)別。文獻(xiàn)[3]提出了一種統(tǒng)計(jì)閾值和背景掩碼相結(jié)合的方法進(jìn)行火焰區(qū)域提取,但由于依賴于固定背景,適應(yīng)性較差。文獻(xiàn)[4]引入模糊邏輯模型進(jìn)行火焰區(qū)域提取,該方法依據(jù)像素色彩值進(jìn)行火焰像素的識(shí)別,沒(méi)有考慮到火焰區(qū)域的顏色分布特征,所提取的輪廓與物體實(shí)際的輪廓存在差別,影響了火焰識(shí)別的準(zhǔn)確性。
本文在分析火焰特性的基礎(chǔ)上,提出了一種新的基于面積閾值和集合運(yùn)算提取火焰目標(biāo)的算法,并結(jié)合火焰色彩分布的特性進(jìn)行火焰檢測(cè)。實(shí)驗(yàn)表明:本方法能夠有效地檢測(cè)出圖像中是否含有火焰目標(biāo)。
火焰的邊緣變化同其他的高溫物體和燈光及穩(wěn)定火焰的邊緣變化也有一定的區(qū)別,可以利用火焰邊緣的變化來(lái)進(jìn)行火焰判別,火焰邊緣是抖動(dòng)的,而其他高溫物體和燈光的邊緣是比較穩(wěn)定。可以利用邊緣檢測(cè)和邊緣搜索算法將火焰的邊緣提取出來(lái),再根據(jù)邊緣的形狀、曲率等特性來(lái)判斷是否是為火焰,但因其運(yùn)算量較大,無(wú)法滿足火災(zāi)探測(cè)系統(tǒng)快速報(bào)警的要求。
任何火焰因其溫度的不均勻可以分為外焰,內(nèi)焰和焰心 3部分。外焰溫度最高,其次是內(nèi)焰,焰心溫度最低[5-6]。因而造成火焰圖像灰度級(jí)呈一定的分布規(guī)律,可以利用這個(gè)特性進(jìn)行火焰判別,以區(qū)分出燈光及其他高溫物體。
物體輪廓的提取是目標(biāo)檢測(cè)和識(shí)別的基礎(chǔ),以往的目標(biāo)提取主要是基于邊緣檢測(cè),如Robert算子、Sobel算子、Prewitt算子、Lapalace算子等。這類方法在提取物體輪廓邊緣時(shí),二值化閾值很多情況下都是通過(guò)經(jīng)驗(yàn)或人為制定的,不具有自適應(yīng)性,且提取的目標(biāo)輪廓噪聲干擾較嚴(yán)重[7],因此,常需要對(duì)圖像進(jìn)行多次膨脹和腐蝕處理,為此,本文提出一種新的物體輪廓提取方法。其基本思想是先對(duì)圖像進(jìn)行灰度化處理,然后用迭代的方法選取最佳閾值對(duì)圖像進(jìn)行二值化處理,這樣在圖像中可以得到許多的連通區(qū)域,這些區(qū)域有的是物體部分,有的則是噪聲,再把每一個(gè)連通的區(qū)域看作是一個(gè)集合,對(duì)每一個(gè)集合進(jìn)行具體分析,消除噪聲,得到物體的輪廓,算法過(guò)程如下。
步驟1:對(duì)圖像進(jìn)行灰度化處理。
步驟 2:用迭代的方法求取最佳閾值。其基本方法是先選用一個(gè)近似的閥值分割圖像,從而獲得目標(biāo)物體和背景兩類子圖像,然后分別對(duì)其進(jìn)行積分并將結(jié)果取平均以求得新的閾值,再用此閾值分割圖像,如此反復(fù)迭代下去,直到收斂于某個(gè)穩(wěn)定的閾值時(shí),便可以求得圖像的最佳閾值。下面是對(duì)上述文字的數(shù)學(xué)表達(dá):
其中,N為圖像灰度級(jí);hk是灰度值為k的像素個(gè)數(shù)。使用該閾值在圖像對(duì)比度比較大的情況下,可以較精確的分割圖像。
步驟 3:用該閾值對(duì)灰度圖像進(jìn)行二值化處理,得到黑白圖像。
步驟4:掃描該黑白圖像,將該圖像中所有白色像素加入到以PixeList為頭節(jié)點(diǎn)的鏈表中。
步驟5:對(duì)PixeList鏈表中的像素進(jìn)行分類,即產(chǎn)生每個(gè)連通區(qū)域所對(duì)應(yīng)的集合(為每個(gè)連通區(qū)域建立一個(gè)鏈表Area,所有的連通區(qū)域構(gòu)成一張區(qū)域鏈表AreaList)。
在對(duì)鏈表中的像素進(jìn)行區(qū)域分類時(shí),按照從左向右和從上到下的順序掃描圖像,依據(jù)當(dāng)前像素點(diǎn)可能出現(xiàn)的位置,需要考慮5種情況:(1)位于圖像上邊界的像素;(2)位于圖像下邊界的像素;(3)位于圖像左邊界的像素;(4)位于圖像右邊界的像素;(5)位于圖像中間位置的像素,需要分別處理。
(1)對(duì)于圖像上邊界的像素,除左邊第一個(gè)像素外,其余每個(gè)像素都要查看其左邊的像素是否在某一鏈表區(qū)域中,若在,則將當(dāng)前像素加入到該區(qū)域中,并將該區(qū)域面積增加 1。否則新建一個(gè)鏈表區(qū)域,并置此區(qū)域面積為 1。
(2)對(duì)于圖像下邊界的像素,需要檢查其左邊、左上方和正上方的像素處理結(jié)果。為了簡(jiǎn)化算法的設(shè)計(jì),可以不處理該邊界的像素。
(3)對(duì)于圖像左邊界的像素,除左上角的像素外,其余每個(gè)像素都需要檢查其正上方和右上方的像素,如果其正上方或右上方的像素在某一鏈表區(qū)域中,則將當(dāng)前像素加入到該區(qū)域中,并將該區(qū)域面積增加 1;否則新建一個(gè)鏈表區(qū)域,并置此區(qū)域面積為 1。
(4)對(duì)于圖像右邊界的像素,需要檢測(cè)其左邊、左上方和正上方的像素。如果其左邊、左上方或正上方的像素在某一鏈表區(qū)域中,則將當(dāng)前像素加入到該區(qū)域中,并將該區(qū)域面積增加 1;否則新建一個(gè)鏈表區(qū)域,并置此區(qū)域面積為 1。
(5)對(duì)于圖像中間位置的像素,要考慮其左邊、左上方、正上方和右上方的像素處理結(jié)果[8],如圖1所示。
圖1 像素的位置關(guān)系
圖1中“●”代表當(dāng)前像素,對(duì)其處理不能像(1)、(2)、(3)和(4)中處理的那樣簡(jiǎn)單。因?yàn)楫?dāng)前像素的加入可能會(huì)導(dǎo)致原先兩個(gè)互不連通的區(qū)域變成連通。例如,若當(dāng)前像素在PixeList鏈表中,且①∈Area1,④∈Area2,則當(dāng)前像素的加入會(huì)使區(qū)域Area1中任一個(gè)像素都可以到達(dá)區(qū)域Area2中任一個(gè)像素,即Area1和Area2變?yōu)橐粋€(gè)連通區(qū)域Area12,即:Area12=Area2∪Area1={x∈Area1或x∈Area2},因此,必須合并這兩個(gè)區(qū)域。對(duì)于這一類像素的處理過(guò)程如下:
(a)先檢查像素①在某一連通區(qū)域內(nèi)Areai,如果在,則把當(dāng)前像素加入到Areai中,并將Areai的區(qū)域面積增加1。然后再查看④是否在Areai中,如果在,則結(jié)束本次處理;否則還要查看像素④是否在另一連通區(qū)域Areaj中,如果在,則合并Areai和Areaj區(qū)域?yàn)锳reaij,并置Areaij的區(qū)域面積為Areai與Areaj的區(qū)域面積之和。
(b)若像素①不在任一連通區(qū)域內(nèi),而像素②在某一連通區(qū)域Areai內(nèi),則把當(dāng)前像素加入到Areai中,并將Areai的區(qū)域面積增加1,然后再檢查像素④是否在Areai,如果在,則結(jié)束本次處理。否則,還要檢查像素④是否在另一連通區(qū)域Areaj中,如果在,則合并Areai和Areaj區(qū)域?yàn)锳reaij,并置Areaij的區(qū)域面積為Areai與Areaj的區(qū)域面積之和。
(c)若像素①,②都不在任一個(gè)連通區(qū)域內(nèi),則對(duì)其處理方法同圖像左邊界像素的處理方法。
(d)若像素①,②,③和④都不在任一個(gè)連通區(qū)域內(nèi),則新建一個(gè)鏈表區(qū)域,并置此區(qū)域的面積為 1。
步驟 6:經(jīng)過(guò)以上處理后,得到了一個(gè)以鏈表形式存儲(chǔ)的連通區(qū)域,并且已經(jīng)統(tǒng)計(jì)出了這些區(qū)域的面積,此時(shí)可以選取適當(dāng)?shù)拿娣e值(從統(tǒng)計(jì)出的面積值中選取)作為閾值對(duì)圖像進(jìn)行過(guò)濾,最終面積超過(guò)閾值的連通區(qū)域被完整的保留下來(lái)。然后再采用挖空法,便可以得到單像素且不交叉的連續(xù)輪廓。
通過(guò)以上步驟所得到物體輪廓,有的可能不是火焰物體,為了剔除一些干擾因素,可以采用以下一些經(jīng)驗(yàn)性的規(guī)則加以判斷。
(1)統(tǒng)計(jì)區(qū)域灰度均值?;鹧嫒紵龝r(shí)發(fā)出的紅外光的波長(zhǎng)集中于 950~2 000 nm,在影像中表現(xiàn)為高亮度,其灰度值一般在 200以上[1],一般漫反射物體很難達(dá)到火焰的亮度,所以可以利用這一特性來(lái)判斷剔除一些干擾區(qū)域。
(2)滿足上述特征的不一定是火焰,可能是一些固定光源和陽(yáng)光。由于火焰色彩的分布不同于一般的發(fā)光物體的色彩分布,火焰顏色分布一般從外焰到焰心有從紅色向白色減少的趨勢(shì)。為此,提出如下檢測(cè)算法:
從輪廓的左上像素開(kāi)始,取其連通區(qū)域內(nèi)的像素點(diǎn) Ri,Gi,Bi的值,i=1,2,…N,連通方向?yàn)橛蚁?如果右下無(wú)連通像素,則取下連通,每 3個(gè)像素求其紅色比重的平均值,組成數(shù)列,然后做一階差分運(yùn)算,從邊緣像素開(kāi)始,如果紅色比重的減少趨勢(shì)持續(xù)到一定的步數(shù)時(shí)(實(shí)驗(yàn)時(shí)取為 12),說(shuō)明有紅色向白色移動(dòng)的趨勢(shì)[9]。可以認(rèn)為這個(gè)物體是火焰。紅色比重計(jì)算公式如下:
在研究過(guò)程中,使用VC++6.0模擬我們的方法,收集了包括明火圖片,自然風(fēng)景,室內(nèi)燈光等共 80幅圖片進(jìn)行試驗(yàn),得到的結(jié)果見(jiàn)表1。
表1 試驗(yàn)結(jié)果
圖2是其中的一幅原圖像,首先把圖像轉(zhuǎn)化為灰度圖像,然后用閾值迭代的方法選取閾值,把灰度圖像轉(zhuǎn)化為二值圖像,處理結(jié)果如圖3所示,然后使用本文提取物體輪廓的算法,得到如圖4所示的物體輪廓,最后跟蹤已提取的輪廓,并結(jié)合火焰色彩分布的特征,進(jìn)一步檢測(cè)是否含有火焰物體,檢測(cè)結(jié)果如圖5所示。圖7和圖8是分別使用 Robert算子和Lapalace算子提取的物體輪廓邊緣,其輪廓邊緣不連續(xù),邊緣有斷裂現(xiàn)象,邊緣定位不夠精確且物體輪廓較粗,噪聲干擾較嚴(yán)重,不利于后面根據(jù)火焰邊緣色彩分布特征進(jìn)行火焰的檢測(cè)。通過(guò)比較可以很清楚地看出:本文提取物體輪廓的方法,不僅可以濾除噪聲,而且可以得到連續(xù)封閉的較細(xì)的物體輪廓,為后面進(jìn)一步提取火焰的特征帶來(lái)很大的方便。
圖8是一幅風(fēng)景圖像,其天空的顏色與火焰十分的相似。首先對(duì)其進(jìn)行二值化處理,結(jié)果如圖9所示,很顯然,二值化后的圖像有很多連通區(qū)域,繼續(xù)使用本文算法提取的物體輪廓,結(jié)果如圖10所示,其外圍的區(qū)域不滿足火焰的特征,從而做出“沒(méi)有檢測(cè)到火焰”的判斷。測(cè)試的結(jié)果也證明了這一點(diǎn),如圖11所示。
從試驗(yàn)結(jié)果可以看出:本文提出的算法能夠有效地檢測(cè)出圖像中是否有火焰,并且很好地抑制了噪聲和干擾,但在復(fù)雜環(huán)境下,火焰的檢測(cè)率性能會(huì)有所下降,主要是由于火焰邊沿輪廓的外圍區(qū)域受到背景環(huán)境的影響,使得邊緣色彩分布不具有火焰的特征。
本文算法的最大優(yōu)點(diǎn)是能夠獲得連續(xù)不交叉的單像素物體輪廓,使得輪廓跟蹤變得十分容易,為后續(xù)的火焰和火災(zāi)識(shí)別的研究提供了良好的條件。此外,只要噪聲面積沒(méi)有超過(guò)物體面積,還可實(shí)現(xiàn)完全去除噪聲。
[1] 范華忠,張伯虎,馮艷.圖像處理技術(shù)在火焰目標(biāo)提取中的應(yīng)用[J].電光與控制,2006,13(1):100-104.
[2] 崔凱,曹榆,馮杰平.圖像型火災(zāi)探測(cè)技術(shù)淺議[J].消防技術(shù)與產(chǎn)品信息,2005(4):30-32.
[3] Cho B H,Bae JW,Jung SH.Image Processing-based Fire Detection System Using Statistic Color Model[C]//International Con ference on Advanced Language Processing and Web Information Technology.New York:IEEE,2008:245-250.
[4] Celik T,Seyin O H,Demirel H.Fire Pixel Classification Using Fuzzy Logic and Statistical Color Model[C]//ICASSP 2007.New York:IEEE,2007:1207-1208.
[5] 袁非牛,廖光煊,張永明,等.計(jì)算機(jī)視覺(jué)火災(zāi)探測(cè)中的特征提取[J].中國(guó)科學(xué)技術(shù)大學(xué)學(xué)報(bào),2006,36(1):39-43.
[6] Marbach G,Loepfem,Brupbacher T.An Images[J].Fire Safety Journal,2006,41(2):285-289.
[7] 汪國(guó)云,李濟(jì)順.基于輪廓的物體識(shí)別與定位方法[J].河南科技大學(xué)學(xué)報(bào):自然科學(xué)版,2006,27(6):42-45.
[8] 嚴(yán)云洋,盛明超,楊靜宇.單像素寬度目標(biāo)輪廓提取的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2007,23(7):284-286.
[9] 羅云林,朱瑞平,王菁華.基于數(shù)字圖像處理的火警監(jiān)測(cè)系統(tǒng)研究[J].遼寧工程技術(shù)大學(xué)學(xué)報(bào),2002,21(6):754-756.