李蕊崗,張 明
(上海海事大學(xué) 信息工程學(xué)院,上海 201306)
?
基于改進Camshift和Kalman濾波的目標(biāo)跟蹤算法
李蕊崗,張 明
(上海海事大學(xué) 信息工程學(xué)院,上海 201306)
在移動目標(biāo)跟蹤過程中,可能會受到種種干擾而導(dǎo)致目標(biāo)不能有效地被跟蹤。為了解決在跟蹤運動目標(biāo)過程中受到外界影響的缺陷,采用了一種Camshift和Kalman濾波結(jié)合的目標(biāo)跟蹤算法。算法能有效克服運動目標(biāo)被遮擋或相似顏色運動目標(biāo)干擾使目標(biāo)跟蹤丟失的缺陷。實驗結(jié)果表明:本文提出的算法用于跟蹤運動目標(biāo)具有很好的魯棒性。
Camshift;Kalman濾波;目標(biāo)跟蹤
近幾十年來,連續(xù)準確地對移動目標(biāo)的跟蹤已成為圖像處理領(lǐng)域中最大的挑戰(zhàn)之一。大多數(shù)的研究方法使用Meanshift算法、Camshift算法和Kalman濾波等。Meanshift算法的特點是無參和快速模式匹配,它通過較少的迭代次數(shù)快速找到與目標(biāo)最相似的位置??墒荕eanshift沒有自適應(yīng)的相關(guān)機制,當(dāng)目標(biāo)尺寸變化較大時,由于其固定不變的核函數(shù),會導(dǎo)致尺度定位不準確,最后導(dǎo)致跟蹤失敗。Camshift算法是基于Meanshift的改進算法。Camshift算法的目標(biāo)跟蹤建立在對目標(biāo)顏色信息的獲取、理解和匹配的基礎(chǔ)上,通過素材中運動物體的顏色信息來達到追蹤的目的。由于Camshift針對一個視頻序列進行處理,從而能及時改變跟蹤窗口的大小,實現(xiàn)了對目標(biāo)模型的自動更新,大大改善了跟蹤效果。但是由于Camshift算法是對直方圖反投影所形成的二值圖像進行處理的,如果背景發(fā)生動態(tài)變化或者出現(xiàn)遮擋,那么此二值圖像的噪聲就很多,這時Camshift算法的魯棒性就比較差。為解決這種問題,提高目標(biāo)實時追蹤的魯棒性,本文提出了Camshift和Kalman線性結(jié)合的目標(biāo)跟蹤算法,在外界因素影響較小的時候,Camshift算法可以得到比較好的結(jié)果;在外界因素影響比較嚴重的情況下,Kalman算法的效果比較好,所以在不同的外界影響下,通過權(quán)系數(shù)選擇合適的算法,來對目標(biāo)進行有效的追蹤。這樣就可以有效地克服不同的干擾。
Camshift算法[1](Continuously Adaptive Mean Shift Algorithm)即連續(xù)自適應(yīng)的Meanshift算法。Camshift在Meanshift算法的基礎(chǔ)上實現(xiàn)了對窗口大小自動控制。
1.1 Meanshift
Meanshift算法[2]是一種無需參數(shù)和快速模式匹配的核密度估計法,通過較少次迭代快速找到目標(biāo)的位置。算法過程為:
(1)計算素材相對與模型直方圖的反向投影,生成概率圖像I(x,y)。
(2)計算零階距:
(1)
計算一階距:
(2)
計算搜索窗的質(zhì)心:
xc=M10/M00;yc=M01/M00
(3)
(3)調(diào)整搜索窗大小:
長度:1.2s
(4)比較新舊搜索點,如果兩次移動偏量大于某個閾值,則重復(fù)步驟(2)和(3),否則,返回,算法結(jié)束,停止計算。
1.2 Camshift
為了克服Meanshift的缺點,Camshift在Meanshift算法的基礎(chǔ)上實現(xiàn)了對窗口大小的自動控制。其算法過程為:
(1)加載視頻圖像,對搜索窗口進行初始化;
(2)對當(dāng)前幀的圖像進行反向投影,獲取其顏色概率分布;
(3)由上面的Meanshift算法對當(dāng)前搜索窗的大小和位置進行處理,返回跟蹤目標(biāo)的零階矩M00;
(4)把新的搜索框信息作為下一幀視頻的搜索窗,將得到的迭代窗口中心作為其初始位置,執(zhí)行步驟(3),若是視頻結(jié)束,則返回。
擴展卡爾曼濾波器是一種簡單常用的狀態(tài)估計快速算法,即使在存在噪聲的情況下,也能快速預(yù)測出物體的位置坐標(biāo)及速度。Kalman濾波器[3]是一種算狀態(tài)估計過程的最優(yōu)的遞歸濾波器[4]。它可以通過過去的狀態(tài)來修正當(dāng)前的狀態(tài)。Kalman 濾波是一種遞歸的估計。Kalman濾波分為2個步驟:預(yù)測(predict)和修正(correct)[5]。
(1)預(yù)測
狀態(tài)預(yù)測:
xk=Fxk-1+Bυk-1
(4)
估計協(xié)方差預(yù)測:
Pk=FPk-1FT+Q
(5)
(2)更新
Kalman增益:
Kk=PkHT(HPkHT+R)-1
(6)
狀態(tài)估計更新:
xk=xk+Kk(Zk-Hxk)
(7)
狀態(tài)協(xié)方差更新:
Pk=(1-KkH)Pk
(8)
當(dāng)運動目標(biāo)容易受到外界的影響時,Camshift算法不能對目標(biāo)進行有效的跟蹤,使其運行效率較低。為了克服這一缺陷,本文采用了將Kalman算法進行線性加權(quán)結(jié)合Camshift算法的方法。即使存在外界干擾,它也能夠比較準確地預(yù)測目標(biāo)的位置信息。在算法執(zhí)行過程中只對搜索框部分有效,這樣大大提高了算法的效率。下面介紹一下采用權(quán)系數(shù)為α的線性公式:
Fn=αXn+(1-α)Yn
(9)
其中,F(xiàn)n是對運動目標(biāo)推測的最終位置,Xn是Kalman算法對運動目標(biāo)的位置的推測,Yn是Camshift算法對運動目標(biāo)的位置的推測,而α(0<α<1)是權(quán)系數(shù),根據(jù)外界影響源的不同取不同的數(shù)值:當(dāng)出現(xiàn)遮擋、干擾源或者出現(xiàn)與待跟蹤目標(biāo)非常相似的干擾目標(biāo)時,權(quán)系數(shù)就會較大,本文取值為0.9,則Kalman算法計算的結(jié)果就為最終結(jié)果。當(dāng)外界影響較低時,此時的權(quán)系數(shù)比較小,本文取值為0.1,就Camshift算法預(yù)測的位置為主。外界影響的高低根據(jù)檢測到的運動目標(biāo)和目標(biāo)模板的顏色分布的比值來確定。算法的執(zhí)行流程如圖1所示。
圖1 算法執(zhí)行流程圖
通過圖1的算法執(zhí)行流程可知,當(dāng)預(yù)測結(jié)果與目標(biāo)模板對比的值小于0.85時,說明運動目標(biāo)受到外界的影響比較嚴重,這時權(quán)系數(shù)的取值要大一些,則Kalman 算法計算的結(jié)果就為最終結(jié)果,當(dāng)對比的值大于0.85時,說明運動目標(biāo)受到的外界影響比較少,權(quán)系數(shù)的取值就小一些,則Camshift算法計算的結(jié)果就為最終結(jié)果。
本文算法是在Visual Studio 2008及Open CV2.1函數(shù)庫編寫的軟件平臺上實現(xiàn)的。實驗分為兩部分,第一部分為在外界影響的情況下特別是當(dāng)目標(biāo)顏色相近的情況下與只采用Camshift算法的追蹤效果進行對比,來驗證本文提出算法的跟蹤效果,如圖2和圖3所示。第二部分為當(dāng)移動目標(biāo)出現(xiàn)嚴重遮擋時,來驗證改進算法的效果,如圖4所示。
圖2為只用Camshift算法的目標(biāo)跟蹤,可以發(fā)現(xiàn),此時的搜索框比較大,對單個物體以及顏色差異比較大的物體的跟蹤效果比較好??墒钱?dāng)出現(xiàn)顏色極其相似的移動目標(biāo)時跟蹤效果不好,造成跟蹤失效,并且跟蹤框的跳動比較厲害。圖3為使用加權(quán)的Camshift算法結(jié)合Kalman算法進行的跟蹤,可以發(fā)現(xiàn)使用本文提出的改進算法解決了跟蹤失效的缺陷。
圖4是當(dāng)追蹤目標(biāo)在有遮擋的情況下的追蹤效果。結(jié)果顯示在圖中矩形為跟蹤窗口,白色十字表示目標(biāo)質(zhì)心。
圖2 干擾下Camshift算法的目標(biāo)跟蹤
圖3 改進后有干擾下的車輛跟蹤
可以看到船只被部分封鎖,直到完全封鎖,然后從障礙物完全分離。當(dāng)跟蹤目標(biāo)被遮擋時,跟蹤窗口和實際位置有一定的偏差,但之后很快調(diào)整窗口位置準確跟蹤目標(biāo)的位置,從結(jié)果可以看出本文提出的加權(quán)結(jié)合算法在追蹤目標(biāo)發(fā)生遮擋的情況下具有較強的魯棒性。
對于移動目標(biāo)的追蹤只使用Camshift算法顯然沒有較強的魯棒性,在目標(biāo)處于干擾或遮擋的情況下會出現(xiàn)目標(biāo)丟失的情況。本文采納Camshift聯(lián)合Kalman濾波加權(quán)的目標(biāo)跟蹤算法,解決了顏色相近目標(biāo)干擾和遮擋的問題,對追蹤目標(biāo)的后續(xù)狀態(tài)具有較強的預(yù)測能力。經(jīng)過實驗發(fā)現(xiàn)本文提出的算法在追蹤目標(biāo)出現(xiàn)干擾或者遮擋的情況下具有較強的魯棒性,但是當(dāng)背景比較復(fù)雜的時候還是會出現(xiàn)跟丟的情況,這正是下一步的研究重點。
[1] 伍友龍,朱志勇.基于Camshift與Kalman的目標(biāo)跟蹤算法[J].微計算機信息,2010,26(33):23-24.
[2] Zhang Rui,Zhang Sizhu,Yu Songyu.Moving objects detection method basedon brightness distortion and chromaticity distortion[J].IEEE Transactions on Consumer Electronics, 2007,53(3):1177-1185.
[3] 梁娟,項俊,侯建華.基于Camshift和Kalman濾波的自動跟蹤算法[J].微型機與應(yīng)用, 2011,30(27):28-31.
[4] BRADSKI G R.Computer vision face trackingfor use in a perceptual user interface [J].Intel Technology Journal, 1998,2(2):1-15.
[5] 吳慧敏,鄭曉勢.改進高效Camshift跟蹤算法[J].計算機工程與應(yīng)用,2009,45(27):178-180.
A target tracking algorithm based on improved camshift and kalman filter
Li Ruigang, Zhang Ming
(The Information Engineering Department, Shanghai Maritime University, Shanghai 201306)
In the moving target tracking process, the target may be affected by a variety of interference, so it can not be effectively tracked. Therefore, in order to solve the defects of external influence in the tracking process, this paper uses a combination of Camshift and Kalman filter to improve the target tracking algorithm. The improved algorithm can effectively overcome the defects that moving target is obscured or similar color moving target interference leads to the target tracking lost. The experimental results show that the proposed algorithm for moving target tracking has good robustness.
Camshift; Kalman filter; target tracking
TP393.08
A
10.19358/j.issn.1674- 7720.2017.12.012
李蕊崗,張明.基于改進Camshift和Kalman濾波的目標(biāo)跟蹤算法[J].微型機與應(yīng)用,2017,36(12):39-41.
2016-12-22)
李蕊崗(1992-),男,在讀碩士研究生,主要研究方向:圖像處理技術(shù)與模式識別開發(fā)。
張明(1957-),男,博士,教授,主要研究方向:多媒體信息處理、計算機視覺、人工智能等。