基于Mean-Shift與Camshift算法相結(jié)合的火焰視頻圖像跟蹤設(shè)計(jì)
0 引言
火的使用是人類的偉大創(chuàng)舉之一。但火一旦失去控制,就會(huì)成為自然和社會(huì)的一種非常大的危害。在我們的日常生活中,火災(zāi)并不是一個(gè)陌生的話題。近年來(lái),我國(guó)就發(fā)生了幾起全國(guó)震驚的火災(zāi),給人們的生命財(cái)產(chǎn)安全造成了嚴(yán)重的危害?;馂?zāi)發(fā)生后,如果能及早的報(bào)警并進(jìn)行自動(dòng)控制滅火,對(duì)于減小火災(zāi)所帶來(lái)的危害,無(wú)疑具有非常重要的意義。
傳統(tǒng)的火災(zāi)報(bào)警系統(tǒng)一般基于紅外傳感器和煙霧傳感器,也就是探測(cè)火災(zāi)發(fā)生時(shí)生成的煙、溫度和光參量等,然后經(jīng)信號(hào)處理、比較、判斷后,發(fā)出火災(zāi)報(bào)警信號(hào)。而由于火焰圖像具有亮度高、面積不規(guī)則、燃燒時(shí)相對(duì)穩(wěn)定等特征,同時(shí)又有監(jiān)控范圍大,實(shí)時(shí)性好等優(yōu)點(diǎn),因此,基于視頻圖像的機(jī)器視覺(jué)火災(zāi)探測(cè)系統(tǒng)得到了較快發(fā)展,并已成功應(yīng)用于大空間自動(dòng)檢測(cè)滅火系統(tǒng)中。
一般情況下,考慮到早期火災(zāi)剛剛發(fā)生時(shí),一旦漏報(bào)或者火勢(shì)發(fā)展較快,火焰就會(huì)變成動(dòng)態(tài)目標(biāo),因此,要求系統(tǒng)可以有效的識(shí)別火焰并對(duì)動(dòng)態(tài)火焰進(jìn)行實(shí)時(shí)跟蹤,進(jìn)而控制云臺(tái)進(jìn)行準(zhǔn)確的滅火工作。本文主要對(duì)基于Mean-Shift算法的火焰圖像分割以及基于Camshift算法的動(dòng)態(tài)火焰跟蹤方法進(jìn)行研究。
1火焰圖像分割
1.1 Mean-Shift分割原理
Mean-Shift是一種非參數(shù)化的多模型分割方法,它的基本計(jì)算模塊采用的是傳統(tǒng)的模式識(shí)別程序,即通過(guò)分析圖像的特征空間和聚類的方法來(lái)達(dá)到分割的目的。它是通過(guò)直接估計(jì)特征空間概率密度函數(shù)的局部極大值來(lái)獲得未知類別的密度模式,并確定這個(gè)模式的位置,然后使之聚類到和這個(gè)模式有關(guān)的類別當(dāng)中。下面對(duì)Mean-Shift算法進(jìn)行簡(jiǎn)介。
設(shè)S是n維空間X中的一個(gè)有限集合,K表示X空間中λ球體的一個(gè)特征函數(shù),則其表達(dá)式為:
其中,x∈X,那么在向量x點(diǎn)處的樣本均值為:
Fukunaga和Hostetle等人在其自己的論文中把m(x)-x的差叫做Mean-Shift。Mean-Shift算法實(shí)際上就是數(shù)據(jù)點(diǎn)到樣本均值的重復(fù)移動(dòng),而且在算法的每一次迭代過(guò)程中,對(duì)于所有的s∈S,s←m (s)都是同時(shí)的。同時(shí),模糊聚類算法還包括最大墑聚類算法以及常用的k均值聚類算法,它們都是Mean-Shift算法的一個(gè)有限的特例。Mean-Shift算法作為一種聚類分析方法,由于其密度估計(jì)器的梯度是遞增的,而其收斂點(diǎn)即為密度梯度的局部極大值點(diǎn),這個(gè)局部極大值即對(duì)應(yīng)特征空間中的一個(gè)模式。
Mean-Shift算法對(duì)于概率密度函數(shù)的估計(jì)通常采用Parzen窗函數(shù)法,即核密度估計(jì)器。在d維空間Rd中,給定n個(gè)數(shù)據(jù)點(diǎn)xi,i=1,2…n,點(diǎn)x的多變量核密度估計(jì)器的計(jì)算式如式(3)所示。這個(gè)估計(jì)量可以由核K(x)和一個(gè)對(duì)稱正定的d×d寬度的矩陣H來(lái)表示。
一般情況下,具有d個(gè)變量的核K(x)是一個(gè)滿足以下條件的邊界函數(shù):
其中,ck是一個(gè)常量。從圖像分割的目的出發(fā),多變量核K (x)采用的是放射狀對(duì)稱核Ks(x)=ak,dK1(‖x‖),其中K1(z)是一個(gè)對(duì)稱的單變量核,且K (x)滿足下式:
其中,ck,d是可使K (x)等于1的歸一化常量。
帶寬矩陣H一般選擇對(duì)角陣,H=diag[h12,…,h2d]或與單位矩陣H=h2I成比例。H=h2I情況下的一個(gè)明顯優(yōu)點(diǎn)是只需帶寬參數(shù)h>0。然而,從式(4)可以看出,首先應(yīng)確定用于特征空間的歐幾里德矩陣的有效性。若使用一個(gè)寬度參數(shù)h,則式(3)就會(huì)變成如下典型的表示式:
將(6)式代入上式,就可以得到一個(gè)通用的、用核符號(hào)表示的核密度估計(jì)式:
對(duì)有基本密度函數(shù)f(x)的一個(gè)特征空間,Mean-Shift算法分析的第一步是找到這個(gè)密度模式,然后對(duì)這個(gè)模式進(jìn)行相關(guān)聚類。此模式應(yīng)該在梯度▽f(x)=0的零點(diǎn)當(dāng)中,而Mean-Shift程序是不用估計(jì)密度,而直接對(duì)密度的梯度進(jìn)行估計(jì),就能定位這些零點(diǎn)。
對(duì)于Mean-Shift算法的應(yīng)用與分割,首先,可設(shè)xi和zi(i=1,2,…,n)分別為n維空間內(nèi)的輸人和聯(lián)合的空值域內(nèi)的濾波圖像的像素,Li為分割后的圖像中的第i個(gè)像素。那么,其操作可分為以下步驟:
(1)運(yùn)行均值平移濾波程序?qū)D像進(jìn)行濾波,并存儲(chǔ)所有d維空間內(nèi)在zi處的收斂點(diǎn)zi=yi,c。
(2)在聯(lián)合域中對(duì)所有的zi進(jìn)行分組以描述類,這些類{Cp}p=1…m在空域內(nèi)較hs較近,在值域內(nèi)較hr較近。
(3)對(duì)于每一個(gè)i=1,…,n,并記為:
Li={p|zi∈Cp|}
(4)消除在空間區(qū)域內(nèi)少于M個(gè)像素的區(qū)域。
1.2 Mean-Shift方法的分割結(jié)果
Mean-Shift算法分割的結(jié)果如圖1~圖3所示。
其中圖1為背景較為簡(jiǎn)單的火焰圖像的分割結(jié)果,圖2為有手電筒光干擾下的火焰圖像,圖3為有路燈燈光干擾下的火災(zāi)圖像。三幅圖中的(a)均為原圖,(b)為分割后的結(jié)果。可以看出,在三種情況下,該算法都能夠有效的分割出火焰圖像,從而確定火焰區(qū)域,以達(dá)到目標(biāo)識(shí)別的目的。
2 Camshift算法
CamShift算法(Continuouslv Adaotive MeanShift)是計(jì)算局部最優(yōu)解的一個(gè)實(shí)用算法。這種算法具有快速高效之特點(diǎn),均值平移通過(guò)迭代從候選目標(biāo)中找到最接近己給定的目標(biāo)模型。它是一種基于顏色信息的方法,可以對(duì)具有特定顏色的信息目標(biāo)進(jìn)行跟蹤。
當(dāng)建立被跟蹤目標(biāo)的顏色概率模型后,便可將視頻圖像轉(zhuǎn)化為顏色概率分布圖,然后在第一幀圖像初化一個(gè)矩形搜索窗,這樣,對(duì)以后的每一幀圖像,CamShift能夠自動(dòng)調(diào)節(jié)搜索窗的大小和位置,定位被蹤目標(biāo)的中心和大小,同時(shí)用當(dāng)前幀定位的結(jié)果預(yù)測(cè)下一幀圖像中目標(biāo)的中心和大小??傮w而言,CamShift算法是一種動(dòng)態(tài)變化分布的密度函數(shù)梯度估計(jì)的非參數(shù)方法。
本文使用的是CCD攝像頭來(lái)采集彩色火焰圖像,彩色圖像使用的是RGB模型。由于CamShift算法是基于顏色信息的跟蹤算法,該算法對(duì)HSV顏色模型的H分量比較敏感。因此,為使用CamShift算法進(jìn)行跟蹤,必須首先進(jìn)行從RGB空間到HSV空間的轉(zhuǎn)換。
2.1 RGB到HSV色彩空間的轉(zhuǎn)變
RGB空間為線性空間,而HSV空間為非線性空間。從RGB空間到HSV空間的轉(zhuǎn)換公式如下:
使用上面的公式,可以將一幅彩色圖像從RGB空間轉(zhuǎn)換到HSV空間。從而為使用CamShift算法進(jìn)行跟蹤打下了基礎(chǔ)。
2.2 Camshift跟蹤算法
Camshift跟蹤算法在操作時(shí),首先在顏色概率分布圖中選取大小為S的搜索窗W。然后在用下式計(jì)算零階矩:
式中,I(x,y)是坐標(biāo)為(x,y)的點(diǎn)的像素值,x和y的變化范圍即為搜索窗的范圍。
第二步再用下式計(jì)算搜索窗的質(zhì)心(xc,yc):
接下來(lái)第三步再重新設(shè)置搜索窗的大小S為上面搜索窗區(qū)域內(nèi)顏色概率分布的函數(shù)。
之后.再重復(fù)第二步、第三步,直至收斂(質(zhì)心變化小于給定的閾值)。
零階矩反映了目標(biāo)在圖像中的面積,而顏色概率分布圖實(shí)際上是最大值為255的離散灰度圖像,由此便可設(shè)置搜索窗的大小S和Z00的關(guān)系,即:
考慮到對(duì)稱性,S應(yīng)取接近計(jì)算結(jié)果的奇數(shù)。這樣,通過(guò)計(jì)算二階矩,便可以得到被跟蹤目標(biāo)的長(zhǎng)軸、短軸和方向角。其二階矩為:
那么,圖像中目標(biāo)長(zhǎng)軸和短軸的長(zhǎng)度便可以按以下公式進(jìn)行計(jì)算:
當(dāng)使用Camshift算法對(duì)特定顏色的目標(biāo)進(jìn)行跟蹤時(shí),一般不必計(jì)算每幀圖像所有像素點(diǎn)的顏色概率分布,而只需要計(jì)算比當(dāng)前搜索窗大一些的區(qū)域內(nèi)的像素點(diǎn)的顏色概率分布即可,這樣便可節(jié)省很大的計(jì)算量。因此,當(dāng)對(duì)連續(xù)的視頻圖像進(jìn)行處理時(shí),實(shí)際上就已形成了連續(xù)的跟蹤。
3 火焰跟蹤實(shí)驗(yàn)及其結(jié)果
本文通過(guò)跟蹤背景較為簡(jiǎn)單的火焰視頻圖像和有手電筒光干擾下的火焰視頻圖像來(lái)驗(yàn)證此法的有效性,同時(shí)得出了如圖4和圖5所示的驗(yàn)證結(jié)果圖。
其中,圖4的背景較為簡(jiǎn)單,該圖中僅有人的胳膊和火焰。其原視頻的一幀圖像可參見(jiàn)前文的圖1 (a)。
而在圖5中,開(kāi)始只有火焰和人臉的一部分。后來(lái)我們加入了手電筒光,最后再關(guān)閉手電筒光。其原視頻的一幀圖像可參考圖2(a)原圖。
通過(guò)以上實(shí)驗(yàn)可以證明,此法能夠快速準(zhǔn)確的跟蹤火焰的運(yùn)動(dòng),并且沒(méi)有產(chǎn)生目標(biāo)丟失和跟蹤區(qū)域發(fā)散的情況。
4結(jié)束語(yǔ)
本文提出了一種Mean-Shift與Camshift相結(jié)合的動(dòng)態(tài)火焰跟蹤算法。其中通過(guò)Mean-Shift對(duì)火焰圖像進(jìn)行分割與定位的方法,克服了傳統(tǒng)Camshift算法需要進(jìn)行人工定位以及容易發(fā)散的缺點(diǎn)。但是,文中方法在干擾源過(guò)多時(shí),也容易產(chǎn)生跟蹤錯(cuò)誤的情況,這一缺點(diǎn)正是后面應(yīng)當(dāng)繼續(xù)研究的課題。