李蕊崗,張 明
(上海海事大學(xué) 信息工程學(xué)院,上海 201306)
?
基于改進(jìn)Camshift和Kalman濾波的目標(biāo)跟蹤算法
李蕊崗,張 明
(上海海事大學(xué) 信息工程學(xué)院,上海 201306)
在移動(dòng)目標(biāo)跟蹤過(guò)程中,可能會(huì)受到種種干擾而導(dǎo)致目標(biāo)不能有效地被跟蹤。為了解決在跟蹤運(yùn)動(dòng)目標(biāo)過(guò)程中受到外界影響的缺陷,采用了一種Camshift和Kalman濾波結(jié)合的目標(biāo)跟蹤算法。算法能有效克服運(yùn)動(dòng)目標(biāo)被遮擋或相似顏色運(yùn)動(dòng)目標(biāo)干擾使目標(biāo)跟蹤丟失的缺陷。實(shí)驗(yàn)結(jié)果表明:本文提出的算法用于跟蹤運(yùn)動(dòng)目標(biāo)具有很好的魯棒性。
Camshift;Kalman濾波;目標(biāo)跟蹤
近幾十年來(lái),連續(xù)準(zhǔn)確地對(duì)移動(dòng)目標(biāo)的跟蹤已成為圖像處理領(lǐng)域中最大的挑戰(zhàn)之一。大多數(shù)的研究方法使用Meanshift算法、Camshift算法和Kalman濾波等。Meanshift算法的特點(diǎn)是無(wú)參和快速模式匹配,它通過(guò)較少的迭代次數(shù)快速找到與目標(biāo)最相似的位置??墒荕eanshift沒(méi)有自適應(yīng)的相關(guān)機(jī)制,當(dāng)目標(biāo)尺寸變化較大時(shí),由于其固定不變的核函數(shù),會(huì)導(dǎo)致尺度定位不準(zhǔn)確,最后導(dǎo)致跟蹤失敗。Camshift算法是基于Meanshift的改進(jìn)算法。Camshift算法的目標(biāo)跟蹤建立在對(duì)目標(biāo)顏色信息的獲取、理解和匹配的基礎(chǔ)上,通過(guò)素材中運(yùn)動(dòng)物體的顏色信息來(lái)達(dá)到追蹤的目的。由于Camshift針對(duì)一個(gè)視頻序列進(jìn)行處理,從而能及時(shí)改變跟蹤窗口的大小,實(shí)現(xiàn)了對(duì)目標(biāo)模型的自動(dòng)更新,大大改善了跟蹤效果。但是由于Camshift算法是對(duì)直方圖反投影所形成的二值圖像進(jìn)行處理的,如果背景發(fā)生動(dòng)態(tài)變化或者出現(xiàn)遮擋,那么此二值圖像的噪聲就很多,這時(shí)Camshift算法的魯棒性就比較差。為解決這種問(wèn)題,提高目標(biāo)實(shí)時(shí)追蹤的魯棒性,本文提出了Camshift和Kalman線(xiàn)性結(jié)合的目標(biāo)跟蹤算法,在外界因素影響較小的時(shí)候,Camshift算法可以得到比較好的結(jié)果;在外界因素影響比較嚴(yán)重的情況下,Kalman算法的效果比較好,所以在不同的外界影響下,通過(guò)權(quán)系數(shù)選擇合適的算法,來(lái)對(duì)目標(biāo)進(jìn)行有效的追蹤。這樣就可以有效地克服不同的干擾。
Camshift算法[1](Continuously Adaptive Mean Shift Algorithm)即連續(xù)自適應(yīng)的Meanshift算法。Camshift在Meanshift算法的基礎(chǔ)上實(shí)現(xiàn)了對(duì)窗口大小自動(dòng)控制。
1.1 Meanshift
Meanshift算法[2]是一種無(wú)需參數(shù)和快速模式匹配的核密度估計(jì)法,通過(guò)較少次迭代快速找到目標(biāo)的位置。算法過(guò)程為:
(1)計(jì)算素材相對(duì)與模型直方圖的反向投影,生成概率圖像I(x,y)。
(2)計(jì)算零階距:
(1)
計(jì)算一階距:
(2)
計(jì)算搜索窗的質(zhì)心:
xc=M10/M00;yc=M01/M00
(3)
(3)調(diào)整搜索窗大小:

長(zhǎng)度:1.2s
(4)比較新舊搜索點(diǎn),如果兩次移動(dòng)偏量大于某個(gè)閾值,則重復(fù)步驟(2)和(3),否則,返回,算法結(jié)束,停止計(jì)算。
1.2 Camshift
為了克服Meanshift的缺點(diǎn),Camshift在Meanshift算法的基礎(chǔ)上實(shí)現(xiàn)了對(duì)窗口大小的自動(dòng)控制。其算法過(guò)程為:
(1)加載視頻圖像,對(duì)搜索窗口進(jìn)行初始化;
(2)對(duì)當(dāng)前幀的圖像進(jìn)行反向投影,獲取其顏色概率分布;
(3)由上面的Meanshift算法對(duì)當(dāng)前搜索窗的大小和位置進(jìn)行處理,返回跟蹤目標(biāo)的零階矩M00;
(4)把新的搜索框信息作為下一幀視頻的搜索窗,將得到的迭代窗口中心作為其初始位置,執(zhí)行步驟(3),若是視頻結(jié)束,則返回。
擴(kuò)展卡爾曼濾波器是一種簡(jiǎn)單常用的狀態(tài)估計(jì)快速算法,即使在存在噪聲的情況下,也能快速預(yù)測(cè)出物體的位置坐標(biāo)及速度。Kalman濾波器[3]是一種算狀態(tài)估計(jì)過(guò)程的最優(yōu)的遞歸濾波器[4]。它可以通過(guò)過(guò)去的狀態(tài)來(lái)修正當(dāng)前的狀態(tài)。Kalman 濾波是一種遞歸的估計(jì)。Kalman濾波分為2個(gè)步驟:預(yù)測(cè)(predict)和修正(correct)[5]。
(1)預(yù)測(cè)
狀態(tài)預(yù)測(cè):
xk=Fxk-1+Bυk-1
(4)
估計(jì)協(xié)方差預(yù)測(cè):
Pk=FPk-1FT+Q
(5)
(2)更新
Kalman增益:
Kk=PkHT(HPkHT+R)-1
(6)
狀態(tài)估計(jì)更新:
xk=xk+Kk(Zk-Hxk)
(7)
狀態(tài)協(xié)方差更新:
Pk=(1-KkH)Pk
(8)
當(dāng)運(yùn)動(dòng)目標(biāo)容易受到外界的影響時(shí),Camshift算法不能對(duì)目標(biāo)進(jìn)行有效的跟蹤,使其運(yùn)行效率較低。為了克服這一缺陷,本文采用了將Kalman算法進(jìn)行線(xiàn)性加權(quán)結(jié)合Camshift算法的方法。即使存在外界干擾,它也能夠比較準(zhǔn)確地預(yù)測(cè)目標(biāo)的位置信息。在算法執(zhí)行過(guò)程中只對(duì)搜索框部分有效,這樣大大提高了算法的效率。下面介紹一下采用權(quán)系數(shù)為α的線(xiàn)性公式:
Fn=αXn+(1-α)Yn
(9)
其中,F(xiàn)n是對(duì)運(yùn)動(dòng)目標(biāo)推測(cè)的最終位置,Xn是Kalman算法對(duì)運(yùn)動(dòng)目標(biāo)的位置的推測(cè),Yn是Camshift算法對(duì)運(yùn)動(dòng)目標(biāo)的位置的推測(cè),而α(0<α<1)是權(quán)系數(shù),根據(jù)外界影響源的不同取不同的數(shù)值:當(dāng)出現(xiàn)遮擋、干擾源或者出現(xiàn)與待跟蹤目標(biāo)非常相似的干擾目標(biāo)時(shí),權(quán)系數(shù)就會(huì)較大,本文取值為0.9,則Kalman算法計(jì)算的結(jié)果就為最終結(jié)果。當(dāng)外界影響較低時(shí),此時(shí)的權(quán)系數(shù)比較小,本文取值為0.1,就Camshift算法預(yù)測(cè)的位置為主。外界影響的高低根據(jù)檢測(cè)到的運(yùn)動(dòng)目標(biāo)和目標(biāo)模板的顏色分布的比值來(lái)確定。算法的執(zhí)行流程如圖1所示。

圖1 算法執(zhí)行流程圖
通過(guò)圖1的算法執(zhí)行流程可知,當(dāng)預(yù)測(cè)結(jié)果與目標(biāo)模板對(duì)比的值小于0.85時(shí),說(shuō)明運(yùn)動(dòng)目標(biāo)受到外界的影響比較嚴(yán)重,這時(shí)權(quán)系數(shù)的取值要大一些,則Kalman 算法計(jì)算的結(jié)果就為最終結(jié)果,當(dāng)對(duì)比的值大于0.85時(shí),說(shuō)明運(yùn)動(dòng)目標(biāo)受到的外界影響比較少,權(quán)系數(shù)的取值就小一些,則Camshift算法計(jì)算的結(jié)果就為最終結(jié)果。
本文算法是在Visual Studio 2008及Open CV2.1函數(shù)庫(kù)編寫(xiě)的軟件平臺(tái)上實(shí)現(xiàn)的。實(shí)驗(yàn)分為兩部分,第一部分為在外界影響的情況下特別是當(dāng)目標(biāo)顏色相近的情況下與只采用Camshift算法的追蹤效果進(jìn)行對(duì)比,來(lái)驗(yàn)證本文提出算法的跟蹤效果,如圖2和圖3所示。第二部分為當(dāng)移動(dòng)目標(biāo)出現(xiàn)嚴(yán)重遮擋時(shí),來(lái)驗(yàn)證改進(jìn)算法的效果,如圖4所示。
圖2為只用Camshift算法的目標(biāo)跟蹤,可以發(fā)現(xiàn),此時(shí)的搜索框比較大,對(duì)單個(gè)物體以及顏色差異比較大的物體的跟蹤效果比較好??墒钱?dāng)出現(xiàn)顏色極其相似的移動(dòng)目標(biāo)時(shí)跟蹤效果不好,造成跟蹤失效,并且跟蹤框的跳動(dòng)比較厲害。圖3為使用加權(quán)的Camshift算法結(jié)合Kalman算法進(jìn)行的跟蹤,可以發(fā)現(xiàn)使用本文提出的改進(jìn)算法解決了跟蹤失效的缺陷。
圖4是當(dāng)追蹤目標(biāo)在有遮擋的情況下的追蹤效果。結(jié)果顯示在圖中矩形為跟蹤窗口,白色十字表示目標(biāo)質(zhì)心。

圖2 干擾下Camshift算法的目標(biāo)跟蹤

圖3 改進(jìn)后有干擾下的車(chē)輛跟蹤
可以看到船只被部分封鎖,直到完全封鎖,然后從障礙物完全分離。當(dāng)跟蹤目標(biāo)被遮擋時(shí),跟蹤窗口和實(shí)際位置有一定的偏差,但之后很快調(diào)整窗口位置準(zhǔn)確跟蹤目標(biāo)的位置,從結(jié)果可以看出本文提出的加權(quán)結(jié)合算法在追蹤目標(biāo)發(fā)生遮擋的情況下具有較強(qiáng)的魯棒性。
對(duì)于移動(dòng)目標(biāo)的追蹤只使用Camshift算法顯然沒(méi)有較強(qiáng)的魯棒性,在目標(biāo)處于干擾或遮擋的情況下會(huì)出現(xiàn)目標(biāo)丟失的情況。本文采納Camshift聯(lián)合Kalman濾波加權(quán)的目標(biāo)跟蹤算法,解決了顏色相近目標(biāo)干擾和遮擋的問(wèn)題,對(duì)追蹤目標(biāo)的后續(xù)狀態(tài)具有較強(qiáng)的預(yù)測(cè)能力。經(jīng)過(guò)實(shí)驗(yàn)發(fā)現(xiàn)本文提出的算法在追蹤目標(biāo)出現(xiàn)干擾或者遮擋的情況下具有較強(qiáng)的魯棒性,但是當(dāng)背景比較復(fù)雜的時(shí)候還是會(huì)出現(xiàn)跟丟的情況,這正是下一步的研究重點(diǎn)。
[1] 伍友龍,朱志勇.基于Camshift與Kalman的目標(biāo)跟蹤算法[J].微計(jì)算機(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] 梁娟,項(xiàng)俊,侯建華.基于Camshift和Kalman濾波的自動(dòng)跟蹤算法[J].微型機(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] 吳慧敏,鄭曉勢(shì).改進(jìn)高效Camshift跟蹤算法[J].計(jì)算機(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
李蕊崗,張明.基于改進(jìn)Camshift和Kalman濾波的目標(biāo)跟蹤算法[J].微型機(jī)與應(yīng)用,2017,36(12):39-41.
2016-12-22)
李蕊崗(1992-),男,在讀碩士研究生,主要研究方向:圖像處理技術(shù)與模式識(shí)別開(kāi)發(fā)。
張明(1957-),男,博士,教授,主要研究方向:多媒體信息處理、計(jì)算機(jī)視覺(jué)、人工智能等。