基于Mean-Shift與Camshift算法相結(jié)合的火焰視頻圖像跟蹤設計
其中圖1為背景較為簡單的火焰圖像的分割結(jié)果,圖2為有手電筒光干擾下的火焰圖像,圖3為有路燈燈光干擾下的火災圖像。三幅圖中的(a)均為原圖,(b)為分割后的結(jié)果。可以看出,在三種情況下,該算法都能夠有效的分割出火焰圖像,從而確定火焰區(qū)域,以達到目標識別的目的。
2 Camshift算法
CamShift算法(Continuouslv Adaotive MeanShift)是計算局部最優(yōu)解的一個實用算法。這種算法具有快速高效之特點,均值平移通過迭代從候選目標中找到最接近己給定的目標模型。它是一種基于顏色信息的方法,可以對具有特定顏色的信息目標進行跟蹤。
當建立被跟蹤目標的顏色概率模型后,便可將視頻圖像轉(zhuǎn)化為顏色概率分布圖,然后在第一幀圖像初化一個矩形搜索窗,這樣,對以后的每一幀圖像,CamShift能夠自動調(diào)節(jié)搜索窗的大小和位置,定位被蹤目標的中心和大小,同時用當前幀定位的結(jié)果預測下一幀圖像中目標的中心和大小。總體而言,CamShift算法是一種動態(tài)變化分布的密度函數(shù)梯度估計的非參數(shù)方法。
本文使用的是CCD攝像頭來采集彩色火焰圖像,彩色圖像使用的是RGB模型。由于CamShift算法是基于顏色信息的跟蹤算法,該算法對HSV顏色模型的H分量比較敏感。因此,為使用CamShift算法進行跟蹤,必須首先進行從RGB空間到HSV空間的轉(zhuǎn)換。
2.1 RGB到HSV色彩空間的轉(zhuǎn)變
RGB空間為線性空間,而HSV空間為非線性空間。從RGB空間到HSV空間的轉(zhuǎn)換公式如下:
使用上面的公式,可以將一幅彩色圖像從RGB空間轉(zhuǎn)換到HSV空間。從而為使用CamShift算法進行跟蹤打下了基礎。
2.2 Camshift跟蹤算法
Camshift跟蹤算法在操作時,首先在顏色概率分布圖中選取大小為S的搜索窗W。然后在用下式計算零階矩:
式中,I(x,y)是坐標為(x,y)的點的像素值,x和y的變化范圍即為搜索窗的范圍。
第二步再用下式計算搜索窗的質(zhì)心(xc,yc):
接下來第三步再重新設置搜索窗的大小S為上面搜索窗區(qū)域內(nèi)顏色概率分布的函數(shù)。
之后.再重復第二步、第三步,直至收斂(質(zhì)心變化小于給定的閾值)。
零階矩反映了目標在圖像中的面積,而顏色概率分布圖實際上是最大值為255的離散灰度圖像,由此便可設置搜索窗的大小S和Z00的關系,即:
考慮到對稱性,S應取接近計算結(jié)果的奇數(shù)。這樣,通過計算二階矩,便可以得到被跟蹤目標的長軸、短軸和方向角。其二階矩為:
那么,圖像中目標長軸和短軸的長度便可以按以下公式進行計算:
當使用Camshift算法對特定顏色的目標進行跟蹤時,一般不必計算每幀圖像所有像素點的顏色概率分布,而只需要計算比當前搜索窗大一些的區(qū)域內(nèi)的像素點的顏色概率分布即可,這樣便可節(jié)省很大的計算量。因此,當對連續(xù)的視頻圖像進行處理時,實際上就已形成了連續(xù)的跟蹤。
3 火焰跟蹤實驗及其結(jié)果
本文通過跟蹤背景較為簡單的火焰視頻圖像和有手電筒光干擾下的火焰視頻圖像來驗證此法的有效性,同時得出了如圖4和圖5所示的驗證結(jié)果圖。
其中,圖4的背景較為簡單,該圖中僅有人的胳膊和火焰。其原視頻的一幀圖像可參見前文的圖1 (a)。
而在圖5中,開始只有火焰和人臉的一部分。后來我們加入了手電筒光,最后再關閉手電筒光。其原視頻的一幀圖像可參考圖2(a)原圖。
通過以上實驗可以證明,此法能夠快速準確的跟蹤火焰的運動,并且沒有產(chǎn)生目標丟失和跟蹤區(qū)域發(fā)散的情況。
4結(jié)束語
本文提出了一種Mean-Shift與Camshift相結(jié)合的動態(tài)火焰跟蹤算法。其中通過Mean-Shift對火焰圖像進行分割與定位的方法,克服了傳統(tǒng)Camshift算法需要進行人工定位以及容易發(fā)散的缺點。但是,文中方法在干擾源過多時,也容易產(chǎn)生跟蹤錯誤的情況,這一缺點正是后面應當繼續(xù)研究的課題。
評論