董云云 蘆彩林 鮑海燕
摘要 Camshift是一種使用顏色概率分布跟蹤對象的改進(jìn)的Meanshift算法,但當(dāng)被跟蹤物體與背景顏色相似或在雜亂的環(huán)境中目標(biāo)被遮擋時(shí)會(huì)出現(xiàn)無法自動(dòng)跟蹤的缺陷。針對上述缺陷,提出一種將kalman濾波器與Camshift算法相結(jié)合的改進(jìn)自動(dòng)跟蹤目標(biāo)。首先,通過生成加權(quán)顏色直方圖來精確表示目標(biāo),其次使用kalman濾波器預(yù)測下一幀的位置,最后,使用輪廓信息和直方圖匹配實(shí)現(xiàn)精準(zhǔn)跟蹤。實(shí)驗(yàn)結(jié)果證明了改進(jìn)的跟蹤算法有很強(qiáng)的魯棒性和可靠性。
【關(guān)鍵詞】Camshift 卡爾曼濾波器 目標(biāo)跟蹤
1 引言
目標(biāo)檢測和跟蹤是計(jì)算機(jī)視覺領(lǐng)域重要的研究課題之一,常用于視頻監(jiān)控,人臉識別,醫(yī)學(xué)診斷,人機(jī)交互和智能感知等領(lǐng)域。目標(biāo)跟蹤用于檢測、識別和分析視頻中目標(biāo)從前一幀到下一幀的變化情況,以此推斷出目標(biāo)在場景中的移動(dòng)軌跡。目標(biāo)跟蹤大致可以分為三步;第一步是檢測或選擇視頻中的感興趣區(qū)域,即移動(dòng)目標(biāo);第二步是對選出的目標(biāo)進(jìn)行跟蹤;第三步分析并識別出移動(dòng)目標(biāo)的行為。
目前常見的跟蹤算法主要分兩大類,基于模板匹配的跟蹤方法和基于狀態(tài)估計(jì)的跟蹤方法?;谀0迤ヅ涞母櫵惴ㄖ饕蠱eanshift和Camshift等;基于狀態(tài)估計(jì)的跟蹤方法主要有粒子濾波(ParticleFilter,PF)和卡爾曼濾波(Kalman)等。
Camshift連續(xù)自適應(yīng)均值漂移‘11(Bradski,Oct; Allen等人,1998)是一種基于顏色的特征直方圖跟蹤算法,是一種快速的半自動(dòng)的跟蹤方法。Camshifi的局限性在于:
(1)算法需要手動(dòng)選擇目標(biāo)區(qū)域,選擇目標(biāo)的過程會(huì)有偏差;
(2)如果目標(biāo)離開視野或被遮擋,Camshift會(huì)失去目標(biāo)蹤跡或開始跟蹤完全不同的對象;
(3)如果所跟蹤的目標(biāo)具有與背景相似的顏色,則會(huì)導(dǎo)致跟蹤失敗;
(4)目標(biāo)運(yùn)動(dòng)速度過快會(huì)導(dǎo)致跟蹤失敗。
已有一些學(xué)者對Camshift進(jìn)行了研究,YoungseopKin[1]通過光流選擇和Camshift跟蹤算法相結(jié)合,提出了一種新的目標(biāo)跟蹤與識別系統(tǒng),在移動(dòng)的環(huán)境中能夠?qū)崿F(xiàn)可靠的跟蹤。GalandaruSwalaganata[3]提出將超分辨率成像技術(shù)應(yīng)用到幀序列中進(jìn)行Camshift算法的改進(jìn),實(shí)現(xiàn)快速的跟蹤。湖南大學(xué)曹曉娟[4]提出將特征與概率相結(jié)合的改進(jìn)的Camshift跟蹤算法,可以提升車輛檢測的準(zhǔn)確性;江南大學(xué)[5]的劉超提出將背景減法引入Camshift算法中,實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)的自動(dòng)跟蹤。
同時(shí)Kalman濾波主要是對運(yùn)動(dòng)目標(biāo)進(jìn)行預(yù)測,通過建立線性系統(tǒng)狀態(tài)方程,實(shí)現(xiàn)對系統(tǒng)狀態(tài)的估計(jì)??柭鼮V波的目標(biāo):當(dāng)獲得一個(gè)新的數(shù)據(jù)點(diǎn)時(shí),遞歸地更新狀態(tài)變量的信息。
本文結(jié)合Camshift算法和Kalman濾波,提出了基于kalman估計(jì)的改進(jìn)的Camshift算法。為了抑制色彩干擾并實(shí)現(xiàn)穩(wěn)健的跟蹤,文中提出將kalman預(yù)測器用來預(yù)測下一幀目標(biāo)的位置。實(shí)驗(yàn)結(jié)果表明,改進(jìn)算法能提高跟蹤效率,實(shí)現(xiàn)穩(wěn)定跟蹤。
2 基本方法及原理
2.1 Camshift算法
Camshift是對均值偏移跟蹤方法Meanshift的改進(jìn)。由于RGB色彩空間對光線變化敏感,Camshift算法將RGB顏色空間轉(zhuǎn)換到HSV色彩空間以減少光線變化的影響。算法基本理論是首先獲取跟蹤目標(biāo),使用目標(biāo)顏色直方圖模型將圖像變?yōu)轭伾怕史植紙D,接著計(jì)算目標(biāo)的大小和位置,然后定義下一個(gè)搜索幀的初始大小和位置。通過重復(fù)搜索和計(jì)算來進(jìn)行連續(xù)的目標(biāo)跟蹤。Camshift算法表示如下:
在逐幀執(zhí)行上述過程,Camshifi算法只需要計(jì)算搜索窗中像素的顏色概率分布,就可實(shí)現(xiàn)對運(yùn)動(dòng)目標(biāo)的連續(xù)跟蹤,程序流程參見圖1。
然而,Camshift在跟蹤目標(biāo)與背景出現(xiàn)大面積相似顏色時(shí)跟蹤效率較差。當(dāng)發(fā)生明顯的相似色彩干擾時(shí),感知目標(biāo)的大小將會(huì)擴(kuò)大。這導(dǎo)致位置偏移取決于圖像中相似顏色的區(qū)域。
2.2 Kalman濾波
Kalman濾波是一個(gè)動(dòng)態(tài)系統(tǒng)狀態(tài)的最小方差估計(jì)算法,可以用來估計(jì)目標(biāo)的參數(shù),例如位置或速度。根據(jù)運(yùn)動(dòng)物體的前一個(gè)位置估計(jì)物體最可能的當(dāng)前位置。它包含如下預(yù)測和測量模型:
2.3 基于Kalman濾波的改進(jìn)的Camshift跟蹤算法
在目標(biāo)檢測時(shí),發(fā)送初始窗口到Camshift,從RGB空間轉(zhuǎn)換到HSV空間。提取H分量。計(jì)算顏色概率分布,反投影圖像。在跟蹤開始之前,使用形態(tài)學(xué)濾波器來過濾噪聲。經(jīng)過主濾波后,執(zhí)行Camshift算法。完成第一次計(jì)算后,設(shè)置Camshift輸出為Kalman估計(jì)器的初始值。算法執(zhí)行期間,當(dāng)Camshift輸出和Kalman估計(jì)之間的差異大于預(yù)定義的丟失跟蹤閾值時(shí),則認(rèn)為Camshift跟蹤是不準(zhǔn)確的,檢測器將重新啟動(dòng)。
Camshift算法在簡單的背景下會(huì)獲得較好的效果,但是當(dāng)背景復(fù)雜,目標(biāo)與背景過分相似或者目標(biāo)運(yùn)動(dòng)過快時(shí),跟蹤效果較差。Kalman濾波器是一種最佳遞歸算法,通過目標(biāo)在當(dāng)前幀的位置以及運(yùn)動(dòng)速度決定運(yùn)動(dòng)目標(biāo)的下一幀的速度和位置。若能提前利用Kalman濾波對運(yùn)動(dòng)目標(biāo)下一幀的位置進(jìn)行預(yù)測,之后再調(diào)用Camshifi算法,將會(huì)取得較好的跟蹤效果。如下所述為本文提出的基于Kalman濾波的改進(jìn)的Camshift跟蹤算法,算法框圖如圖2所示。
基于Kalman預(yù)測器的改進(jìn)的Camshift跟蹤算法如下:
初始化Kalman預(yù)測器
初始化搜索窗口的大小和位置
Camshift目標(biāo)跟蹤算法
判斷目標(biāo)是否被遮擋,如果是,轉(zhuǎn)至step5,如果不是轉(zhuǎn)至step9
輸出目標(biāo)位置和大小,作為觀測值Zk
修改Kalman預(yù)測器的參數(shù)
預(yù)測下一幀目標(biāo)的大小和位置,讀取下一幀
設(shè)置搜索窗口的大小和位置,轉(zhuǎn)至step3計(jì)算當(dāng)前目標(biāo)的面積
計(jì)算當(dāng)前跟蹤的面積,如果小于最小面積,繼續(xù),否則轉(zhuǎn)至stepll
重置目標(biāo)質(zhì)心位置,轉(zhuǎn)至step6
得到目標(biāo)的大小和位置
Kalman預(yù)測器得到的目標(biāo)的大小和位置作為觀測值,轉(zhuǎn)至step6
3 實(shí)驗(yàn)及結(jié)果對比
為了對比改進(jìn)算法與傳統(tǒng)Camshift算法,設(shè)計(jì)對照實(shí)現(xiàn)進(jìn)行測試。處理器為InteI(R)Core(TM)i5-8250 CPU@1.60GHz, 內(nèi)存為8GB,使用opencv庫實(shí)現(xiàn)對所提取的對象的檢測和跟蹤。實(shí)驗(yàn)處理真實(shí)的視頻監(jiān)控場景。第一個(gè)測試序列選取馬路上正常行駛的汽車視頻數(shù)據(jù),第二個(gè)測試序列選取商務(wù)區(qū)門口視頻,第三個(gè)測試序列選取出現(xiàn)遮擋的橙子進(jìn)行跟蹤。
第一個(gè)測試序列,是從拍攝視頻中跟蹤“汽車”。圖3 (a)給出了視頻中使用Camshift算法的跟蹤結(jié)果。圖3(b)給出了使用本文中算法的跟蹤結(jié)果。
比較圖3 (a)與圖3(b)可以看出,本文提出的算法的跟蹤效果更好,發(fā)生遮擋的車輛可以分辨開來,而傳統(tǒng)的Camshift算法跟蹤時(shí),紅色車輛和黑色車輛作為一個(gè)目標(biāo)進(jìn)行跟蹤。
第二個(gè)測試序列,是在較暗的光線下跟蹤視頻中的“行人”。圖4 (a)給出了使用傳統(tǒng)Camshift算法的跟蹤結(jié)果。圖4(b)給出了使用文中算法的跟蹤結(jié)果。
比較圖4 (a)和圖4(b)可以看出,在光線較暗的情況下,當(dāng)出現(xiàn)運(yùn)動(dòng)速度相同的行人時(shí),傳統(tǒng)Camshift算法進(jìn)行跟蹤時(shí)將兩個(gè)行人認(rèn)為是同一個(gè)目標(biāo)?;趉alman濾波的改進(jìn)的Camshift算法能分辨出斑馬線上是兩個(gè)行人,并進(jìn)行跟蹤。
第三個(gè)測試序列,針對被遮擋目標(biāo),以及被遮擋后重新出現(xiàn)的目標(biāo)進(jìn)行跟蹤。圖5 (a)所示情況為目標(biāo)完全顯示,目標(biāo)被部分遮擋,遮擋后重新出現(xiàn)的三種情況使用傳統(tǒng)Camshift算法進(jìn)行跟蹤,圖5 (b)為使用文中的算法在四種情況下進(jìn)行跟蹤的結(jié)果。
比較圖5 (a)和圖5(b)可以看出,使用傳統(tǒng)的Camshift算法,同樣可以實(shí)現(xiàn)目標(biāo)的跟蹤,但是當(dāng)目標(biāo)被遮擋時(shí),只能識別出未被遮擋的部分,跟蹤效果不好。圖5 (b)為與5 (a)對應(yīng)情況下使用改進(jìn)的Camshift算法進(jìn)行跟蹤,因?yàn)榻Y(jié)合了kalman預(yù)測器,可以判斷目標(biāo)何時(shí)被遮擋以及被遮擋的情況,保證跟蹤結(jié)果的準(zhǔn)確性;當(dāng)目標(biāo)被部分遮擋時(shí),除了能夠識別出未被遮擋的部分,還能使用kalman預(yù)測估計(jì)出被遮擋的部分。
4 結(jié)束語
文中提出了將Kalman濾波用于改進(jìn)Camshift算法,并將其用于真實(shí)場景的目標(biāo)跟蹤。實(shí)驗(yàn)結(jié)果表明,文中算法能夠較好的實(shí)現(xiàn)實(shí)時(shí)跟蹤,在光線灰暗的場景中及其出現(xiàn)遮擋的情況下,也表現(xiàn)出較好的跟蹤效果。但是目標(biāo)運(yùn)動(dòng)速度過快或者在遮擋時(shí)間過長的情況下跟蹤效果不是太好,作為下一步的研究計(jì)劃。
參考文獻(xiàn)
[1] Bradski G R.Computer Vision FaceTracking For Use in a PerceptualUser Interface [C]. IEEE Workshop onApplications of Computer Vision.IEEE.1998: 214-219.
[2] Kim Y,Han W,Lee Y H,et al. ObjectTracking and Recognition Basedon Reliability Assessment ofLearning in Mobile Environments [J].Wireless Personal Communications,2016,94 (02):1-16.
[3] Swalaganata G,Sulistyaningrum DR, Setiyono B.Super-resolutionimaging applied to moving objecttracking [C]. Journal of Physics:Conference Series. IOP Publishing,2017, 893 (01): 012062.
[4]曹曉娟,王文濤,宋曉琳等,基于多信息融合的車輛陰影檢測與車輛跟蹤算法[J].中南大學(xué)學(xué)報(bào)(自然科學(xué)版), 2015 (11): 4049-4055.
[5]劉超,惠晶,基于改進(jìn)CAMShift的運(yùn)動(dòng)目標(biāo)跟蹤算法[J].計(jì)算機(jī)工程與應(yīng)用,2 014,5 0 (11): 149-15 3.
[6] Kalman R E.A new approach tolinear filtering and predictionproblems. Journal of FluidsEngineering, 1960, 82 (01): 35-45.
[7]Gu S S,Liu J Y,Zeng Q H,et al.AKalman filter algorithm based onexact modeling for FOG GPS/SINSintegration[J]. Optik - InternationalJournal for Light and ElectronOptics,2 014, 125 (14): 3476-3481.
[8]Dong C,Shao C,Zhou X,et al. Kalmanfilter algorithm for short-term jam traffic predictionbased on traffic parametercorrelation [J]. Journal of SoutheastUniversity,2 014, 44 (02): 413-419.
[9] Karamali M,Khodabandeh M,KalogirouS A. et al.A distributed solarcollector field temperature profilecontrol and estimation using inletoil temperature and radiationestimates based on IterativeExtended Kalman Filter [J]. RenewableEnergy, 2017,101:144-155.
[lO]Dalwadi D C,Soni H B.A novel channelestimation technique of MIMO-OFDMsystem based on Extended Kalmanfilter [C]. Internat ional
Conferenceon Electronics and CommunicationSystems. 2017:158-163.