摘要:給出了采用Mean-Shift與Camshift相結合的方法來設計一種基于視頻圖像的火焰跟蹤處理算法。該算法首先利用Mean-Shift方法分割圖像并確定火焰區域,然后在此區域內提取特征,再用Camshift算法進行火焰跟蹤。此方法利用火焰圖像的高亮特征,克服了傳統Camshift算法需要人為定位和容易發散等缺點。
0 引言
火的使用是人類的偉大創舉之一。但火一旦失去控制,就會成為自然和社會的一種非常大的危害。在我們的日常生活中,火災并不是一個陌生的話題。近年來,我國就發生了幾起全國震驚的火災,給人們的生命財產安全造成了嚴重的危害。火災發生后,如果能及早的報警并進行自動控制滅火,對于減小火災所帶來的危害,無疑具有非常重要的意義。
傳統的火災報警系統一般基于紅外傳感器和煙霧傳感器,也就是探測火災發生時生成的煙、溫度和光參量等,然后經信號處理、比較、判斷后,發出火災報警信號。而由于火焰圖像具有亮度高、面積不規則、燃燒時相對穩定等特征,同時又有監控范圍大,實時性好等優點,因此,基于視頻圖像的機器視覺火災探測系統得到了較快發展,并已成功應用于大空間自動檢測滅火系統中。
一般情況下,考慮到早期火災剛剛發生時,一旦漏報或者火勢發展較快,火焰就會變成動態目標,因此,要求系統可以有效的識別火焰并對動態火焰進行實時跟蹤,進而控制云臺進行準確的滅火工作。本文主要對基于Mean-Shift算法的火焰圖像分割以及基于Camshift算法的動態火焰跟蹤方法進行研究。
1 火焰圖像分割
1.1 Mean-Shift分割原理
Mean-Shift是一種非參數化的多模型分割方法,它的基本計算模塊采用的是傳統的模式識別程序,即通過分析圖像的特征空間和聚類的方法來達到分割的目的。它是通過直接估計特征空間概率密度函數的局部極大值來獲得未知類別的密度模式,并確定這個模式的位置,然后使之聚類到和這個模式有關的類別當中。下面對Mean-Shift算法進行簡介。
設S是n維空間X中的一個有限集合,K表示X空間中λ球體的一個特征函數,則其表達式為:

其中,x∈X,那么在向量x點處的樣本均值為:

Fukunaga和Hostetle等人在其自己的論文中把m(x)-x的差叫做Mean-Shift。Mean-Shift算法實際上就是數據點到樣本均值的重復移動,而且在算法的每一次迭代過程中,對于所有的s∈S,s←m(s)都是同時的。同時,模糊聚類算法還包括最大墑聚類算法以及常用的k均值聚類算法,它們都是Mean-Shift算法的一個有限的特例。Mean-Shift算法作為一種聚類分析方法,由于其密度估計器的梯度是遞增的,而其收斂點即為密度梯度的局部極大值點,這個局部極大值即對應特征空間中的一個模式。
Mean-Shift算法對于概率密度函數的估計通常采用Parzen窗函數法,即核密度估計器。在d維空間Rd中,給定n個數據點xi,i=1,2…n,點x的多變量核密度估計器的計算式如式(3)所示。這個估計量可以由核K(x)和一個對稱正定的d×d寬度的矩陣H來表示。

一般情況下,具有d個變量的核K(x)是一個滿足以下條件的邊界函數:

其中,ck是一個常量。從圖像分割的目的出發,多變量核K(x)采用的是放射狀對稱核Ks(x)=ak,dK1(‖x‖),其中K1(z)是一個對稱的單變量核,且K(x)滿足下式:

其中,ck,d是可使K (x)等于1的歸一化常量。
帶寬矩陣H一般選擇對角陣,H=diag[h12,…,h2d]或與單位矩陣H=h2I成比例。H=h2I情況下的一個明顯優點是只需帶寬參數h>0。然而,從式(4)可以看出,首先應確定用于特征空間的歐幾里德矩陣的有效性。若使用一個寬度參數h,則式(3)就會變成如下典型的表示式:

將(6)式代入上式,就可以得到一個通用的、用核符號表示的核密度估計式:

對有基本密度函數f(x)的一個特征空間,Mean-Shift算法分析的第一步是找到這個密度模式,然后對這個模式進行相關聚類。此模式應該在梯度▽f(x)=0的零點當中,而Mean-Shift程序是不用估計密度,而直接對密度的梯度進行估計,就能定位這些零點。
對于Mean-Shift算法的應用與分割,首先,可設xi和zi(i=1,2,…,n)分別為n維空間內的輸人和聯合的空值域內的濾波圖像的像素,Li為分割后的圖像中的第i個像素。那么,其操作可分為以下步驟:
(1)運行均值平移濾波程序對圖像進行濾波,并存儲所有d維空間內在zi處的收斂點zi=yi,c。
(2)在聯合域中對所有的zi進行分組以描述類,這些類{Cp}p=1…m在空域內較hs較近,在值域內較hr較近。
(3)對于每一個i=1,…,n,并記為:Li={p|zi∈Cp|}
(4)消除在空間區域內少于M個像素的區域。
1.2 Mean-Shift方法的分割結果
Mean-Shift算法分割的結果如圖1~圖3所示。

其中圖1為背景較為簡單的火焰圖像的分割結果,圖2為有手電筒光干擾下的火焰圖像,圖3為有路燈燈光干擾下的火災圖像。三幅圖中的(a)均為原圖,(b)為分割后的結果。可以看出,在三種情況下,該算法都能夠有效的分割出火焰圖像,從而確定火焰區域,以達到目標識別的目的。
2 Camshift算法
CamShift算法(Continuouslv Adaotive MeanShift)是計算局部最優解的一個實用算法。這種算法具有快速高效之特點,均值平移通過迭代從候選目標中找到最接近己給定的目標模型。它是一種基于顏色信息的方法,可以對具有特定顏色的信息目標進行跟蹤。
當建立被跟蹤目標的顏色概率模型后,便可將視頻圖像轉化為顏色概率分布圖,然后在第一幀圖像初化一個矩形搜索窗,這樣,對以后的每一幀圖像,CamShift能夠自動調節搜索窗的大小和位置,定位被蹤目標的中心和大小,同時用當前幀定位的結果預測下一幀圖像中目標的中心和大小。總體而言,CamShift算法是一種動態變化分布的密度函數梯度估計的非參數方法。
本文使用的是CCD攝像頭來采集彩色火焰圖像,彩色圖像使用的是RGB模型。由于CamShift算法是基于顏色信息的跟蹤算法,該算法對HSV顏色模型的H分量比較敏感。因此,為使用CamShift算法進行跟蹤,必須首先進行從RGB空間到HSV空間的轉換。
2.1 RGB到HSV色彩空間的轉變
RGB空間為線性空間,而HSV空間為非線性空間。從RGB空間到HSV空間的轉換公式如下:

使用上面的公式,可以將一幅彩色圖像從RGB空間轉換到HSV空間。從而為使用CamShift算法進行跟蹤打下了基礎。
2.2 Camshift跟蹤算法
Camshift跟蹤算法在操作時,首先在顏色概率分布圖中選取大小為S的搜索窗W。然后在用下式計算零階矩:

式中,I(x,y)是坐標為(x,y)的點的像素值,x和y的變化范圍即為搜索窗的范圍。
第二步再用下式計算搜索窗的質心(xc,yc):

接下來第三步再重新設置搜索窗的大小S為上面搜索窗區域內顏色概率分布的函數。
之后.再重復第二步、第三步,直至收斂(質心變化小于給定的閾值)。
零階矩反映了目標在圖像中的面積,而顏色概率分布圖實際上是最大值為255的離散灰度圖像,由此便可設置搜索窗的大小S和Z00的關系,即:

考慮到對稱性,S應取接近計算結果的奇數。這樣,通過計算二階矩,便可以得到被跟蹤目標的長軸、短軸和方向角。其二階矩為:

那么,圖像中目標長軸和短軸的長度便可以按以下公式進行計算:

當使用Camshift算法對特定顏色的目標進行跟蹤時,一般不必計算每幀圖像所有像素點的顏色概率分布,而只需要計算比當前搜索窗大一些的區域內的像素點的顏色概率分布即可,這樣便可節省很大的計算量。因此,當對連續的視頻圖像進行處理時,實際上就已形成了連續的跟蹤。
3 火焰跟蹤實驗及其結果
本文通過跟蹤背景較為簡單的火焰視頻圖像和有手電筒光干擾下的火焰視頻圖像來驗證此法的有效性,同時得出了如圖4和圖5所示的驗證結果圖。

其中,圖4的背景較為簡單,該圖中僅有人的胳膊和火焰。其原視頻的一幀圖像可參見前文的圖1(a)。
而在圖5中,開始只有火焰和人臉的一部分。后來我們加入了手電筒光,最后再關閉手電筒光。其原視頻的一幀圖像可參考圖2(a)原圖。
通過以上實驗可以證明,此法能夠快速準確的跟蹤火焰的運動,并且沒有產生目標丟失和跟蹤區域發散的情況。
4 結束語
本文提出了一種Mean-Shift與Camshift相結合的動態火焰跟蹤算法。其中通過Mean-Shift對火焰圖像進行分割與定位的方法,克服了傳統Camshift算法需要進行人工定位以及容易發散的缺點。但是,文中方法在干擾源過多時,也容易產生跟蹤錯誤的情況,這一缺點正是后面應當繼續研究的課題。