陳均瑞 盛守照 李郴榮
(南京航空航天大學(xué) 南京 210016)
目標(biāo)跟蹤技術(shù)是計(jì)算機(jī)視覺(jué)領(lǐng)域中一個(gè)重要的研究課題,在視頻監(jiān)視,無(wú)人駕駛,視覺(jué)制導(dǎo)等多個(gè)領(lǐng)域廣泛應(yīng)用[1]。近年,視覺(jué)跟蹤算法發(fā)展迅猛,涌現(xiàn)了很多高性能跟蹤算法[2]。視覺(jué)跟蹤算法可分為生成式與判別式兩種類(lèi)型[3]。生成式算法如孫巧等[4]的提出基于粒子濾波的目標(biāo)跟蹤,判別式算法相對(duì)較多,2012 年 Zdenek Kalal[5]提出了Tracking-learning-detection算法,該算法通過(guò)引入檢測(cè)器以及學(xué)習(xí)器較好地解決了目標(biāo)變化以及目標(biāo)丟失重跟蹤的問(wèn)題。Bolme等[6]提出的MOSSE算法首次將相關(guān)性濾波應(yīng)用到視覺(jué)目標(biāo)跟蹤領(lǐng)域。2014年,Henriques等[7]提出了KCF和DCF算法,具有較優(yōu)的跟蹤性能。Martin Danelljan等提出了DSST算法[8],較好地解決了跟蹤尺度估計(jì)問(wèn)題。C-COT[9]算法利用神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)特征的提取,跟蹤準(zhǔn)確度有較大提升,但是速度較慢。成悅等[10]提出了基于多特征得到核相關(guān)性濾波方法,解決特征單一的問(wèn)題。工程應(yīng)用上普遍需要對(duì)目標(biāo)長(zhǎng)時(shí)間跟蹤,基于相關(guān)性濾波算法在目標(biāo)快速運(yùn)動(dòng),尺度變化,遮擋以及目標(biāo)離開(kāi)跟蹤視頻等情況下,容易出現(xiàn)跟蹤失敗或者無(wú)法重新跟蹤,這是當(dāng)前亟待解決的一個(gè)問(wèn)題。本文在核相關(guān)性濾波的基礎(chǔ)上引入多尺度檢測(cè),同時(shí)引入TLD算法框架。并在多組實(shí)驗(yàn)中驗(yàn)證本算法的有效性。
基于核相關(guān)性濾波算法可基本滿(mǎn)足短時(shí)間的目標(biāo)跟蹤,因此本文引入TLD長(zhǎng)時(shí)跟蹤算法的框架,用以糾正核相關(guān)性濾波跟蹤器出現(xiàn)的跟蹤失敗。同時(shí)本文設(shè)計(jì)了基于多尺度變化的核相關(guān)性濾波算法,用以跟蹤器在目標(biāo)大尺度變化與高速運(yùn)動(dòng)時(shí)的跟蹤準(zhǔn)確性。
基于核相關(guān)性濾波的長(zhǎng)時(shí)間目標(biāo)跟蹤算法實(shí)現(xiàn)如圖1所示。
圖1 長(zhǎng)時(shí)間目標(biāo)跟蹤算法結(jié)構(gòu)圖
基本算法流程:
Step1:首先在視頻流中框定目標(biāo)所在的區(qū)域,并將此時(shí)的視頻幀作為首幀,然后分別初始化檢測(cè)器、跟蹤器以及EKF預(yù)測(cè)器。
Step2:跟蹤器采用尺度多核相關(guān)性濾波算法。計(jì)算峰值位置作為跟蹤結(jié)果,同時(shí)跟蹤峰值大小判斷是否跟蹤失敗。
Step3:利用擴(kuò)展卡爾曼濾波器對(duì)目標(biāo)區(qū)域預(yù)測(cè)。以預(yù)測(cè)區(qū)域劃定一個(gè)矩形范圍。將該檢測(cè)范圍輸入級(jí)聯(lián)檢測(cè)器檢測(cè)。
Step4:綜合模塊判斷跟蹤器和檢測(cè)器輸出的結(jié)果。如果跟蹤器檢測(cè)器均無(wú)法在當(dāng)前幀檢測(cè)到目標(biāo),則返回Step3;如果成功檢測(cè)目標(biāo),則顯示目標(biāo)位置,并且判斷目標(biāo)是否有效,如果有效進(jìn)入Step5,否則返回Step2。
Step5:P-N學(xué)習(xí)算法通過(guò)有效幀數(shù)據(jù)更新檢測(cè)器。
Step6:判斷是否結(jié)束跟蹤,若是則結(jié)束跟蹤程序,否則返回Step2。
本節(jié)針對(duì)尺度快速變化與目標(biāo)高速運(yùn)動(dòng)的情況,引入了多尺度檢測(cè)對(duì)核相關(guān)性濾波算法改進(jìn),提高相關(guān)性濾波跟蹤器的魯棒性。
核相關(guān)性濾波跟蹤算法是一種判別式跟蹤方法。算法利用訓(xùn)練后的檢測(cè)模板,對(duì)檢測(cè)區(qū)域進(jìn)行檢測(cè),計(jì)算檢測(cè)峰值,將檢測(cè)峰值的位置作為跟蹤目標(biāo)位置。訓(xùn)練目標(biāo)檢測(cè)器時(shí)選取目標(biāo)區(qū)域?yàn)檎龢颖?,通過(guò)循環(huán)矩陣,循環(huán)位移得到負(fù)樣本,越靠近正樣本可能性越大。通過(guò)使用[0,1]范圍的值作為樣本的回歸值,從而得到不同偏移下得到的樣本的不同權(quán)重。
核相關(guān)性濾波算法中將分類(lèi)器的訓(xùn)練過(guò)程是一個(gè)嶺回歸問(wèn)題[6]。其目的是找到一個(gè)目標(biāo)函數(shù)f(z)=wTz,在此函數(shù)下所有的樣本xi以及回歸目標(biāo)yi下最小化均方差即:
式中,λ為正則化參數(shù)。
通過(guò)式(1)回歸器預(yù)測(cè)到的樣本標(biāo)簽與真實(shí)目標(biāo)標(biāo)簽差距最小。得到最小化平方誤差閉式解為
式(2)中,矩陣 X為樣本矩陣,向量 y為回歸目標(biāo)向量,I表示單位矩陣。文獻(xiàn)[7]中采用循環(huán)位移得到樣本,根據(jù)循環(huán)矩陣的性質(zhì),可避免矩陣求逆。則樣本矩陣X為
最后得到的核化的嶺回歸的求解為
通過(guò)嶺回歸求解,可以訓(xùn)練得到濾波器,然后在在下一幀數(shù)據(jù)進(jìn)入后,我們可以對(duì)于所有檢測(cè)區(qū)域計(jì)算回歸函數(shù):
式中 f(z)為一個(gè)向量,其包含所有檢測(cè)區(qū)的循環(huán)移位以及所有檢測(cè)的響應(yīng),進(jìn)而檢測(cè)響應(yīng)圖,計(jì)算響應(yīng)圖的最大值的位置,作為跟蹤目標(biāo)位置。
根據(jù)3.1節(jié)對(duì)核相關(guān)性濾波跟蹤器分析,可知該相關(guān)性濾波跟蹤器是僅僅檢測(cè)上一幀位置周?chē)?.5倍范圍,因此算法僅僅滿(mǎn)足跟蹤目標(biāo)位置和尺度變化不大的情況,一旦出現(xiàn)較高速運(yùn)動(dòng)或者較大尺度變化時(shí)容易導(dǎo)致跟蹤失敗。
針對(duì)該問(wèn)題本文引入多尺度特征檢測(cè)的策略。先進(jìn)行尺度較大得到圖像進(jìn)行檢測(cè),然后逐步縮小尺度,與上一尺度比較相關(guān)性濾波峰值,最后確定當(dāng)前較優(yōu)的目標(biāo)尺度,其檢測(cè)示意圖如圖3所示。
圖2 多尺度檢測(cè)示意圖
為了快速地同時(shí)確定下一幀圖像的尺度以及大致位置,設(shè)計(jì)了多尺度檢測(cè)快速調(diào)整策略。輸入下一幀圖像后將檢測(cè)范圍擴(kuò)大到圖像輸入的最大尺寸,然后對(duì)圖像進(jìn)行檢測(cè),確定峰值的大致范圍;再將檢測(cè)位置調(diào)整到上一幀位置(Clx,Cly)大尺度檢測(cè)的峰值位置(Cmx,Cmy)的中間位置,調(diào)整方法如下:
式中,Cx、Cy分別是調(diào)整后的目標(biāo)位置,Cmx、Cmy為大尺度檢測(cè)的位置,Clx、Cly為上一次的檢測(cè)位置,λ為調(diào)整參數(shù)。
位置調(diào)整后進(jìn)行尺度調(diào)整,首先選擇一個(gè)在最大尺度與上一幀尺度的中間尺度作為一個(gè)起始調(diào)整尺度,然后做第一次尺度更新。
式中,roix、roiy分別是調(diào)整后的目標(biāo)尺度,roimx、roimy為大尺度,roilx、roily為上一次的檢測(cè)尺度。
調(diào)整完成后進(jìn)一步檢測(cè),根據(jù)檢測(cè)結(jié)果進(jìn)行調(diào)整尺度。最后峰值最高的輸出為當(dāng)前幀的檢測(cè)尺度。然后尺度調(diào)整策略采用二分法的形式搜索最優(yōu)檢測(cè)尺度,尺度調(diào)整流程圖如圖3。
圖3 多尺度調(diào)整流程圖
圖中縮小尺度的方法是:縮小至當(dāng)前檢測(cè)尺度與已檢測(cè)尺度中比當(dāng)前尺度小的最大尺度的一半。擴(kuò)大尺度的方法與縮小方法類(lèi)似。通過(guò)多尺度檢測(cè)算法,可以得到不同尺度的檢測(cè)響應(yīng)圖:以其中一幀檢測(cè)的響應(yīng)圖為例如圖4所示。
圖4中第一個(gè)響應(yīng)圖是最大尺度的檢測(cè)響應(yīng)圖,由于尺度較大其檢測(cè)峰值不高,但是可以確定目標(biāo)的大致位置,逐步收縮檢測(cè)尺度檢測(cè)峰值越來(lái)越高,最后可以得到較優(yōu)檢測(cè)尺度下的檢測(cè)響應(yīng)圖。
圖4 多尺度檢測(cè)響應(yīng)圖
鑒于核相關(guān)性濾波跟蹤算法始終存在跟蹤失敗后無(wú)法模板偏移的問(wèn)題,因此本文引入TLD算法框架,實(shí)現(xiàn)基于核相關(guān)性濾波的長(zhǎng)時(shí)間跟蹤。
TLD算法中的跟蹤器所采用的是金字塔光流法,該算法通過(guò)計(jì)算像素點(diǎn)運(yùn)動(dòng)方向與速度進(jìn)而實(shí)現(xiàn)跟蹤,因此其計(jì)算速度與準(zhǔn)確性相對(duì)基于核相關(guān)性濾波的跟蹤算法較低。將多尺度的核相關(guān)性濾波跟蹤算法只作為跟蹤器,同時(shí)通過(guò)檢測(cè)判斷峰值大小,如果峰值小于閾值則判斷跟蹤失敗。
基于核相關(guān)性濾波改進(jìn)的TLD算法結(jié)構(gòu)如圖5所示。
圖5 核相關(guān)性濾波改進(jìn)的TLD算法算法結(jié)構(gòu)
由于在跟蹤過(guò)程中跟蹤目標(biāo)的運(yùn)動(dòng)狀態(tài)不斷改變,針對(duì)跟蹤目標(biāo)的運(yùn)動(dòng)過(guò)程,建立目標(biāo)運(yùn)動(dòng)模型,利用EKF濾波器預(yù)測(cè)檢測(cè)模塊掃描窗口,提高檢測(cè)效率與準(zhǔn)確性[11]。
根據(jù)跟蹤目標(biāo)的動(dòng)力學(xué)模型,建立系統(tǒng)狀態(tài)方程與系統(tǒng)觀(guān)測(cè)方程為
式中,f為系統(tǒng)狀態(tài)轉(zhuǎn)移函數(shù),xk為k時(shí)刻的狀態(tài)向量,包括跟蹤目標(biāo)的二維速度向量[vxvy]T,以及二維位置向量三維速度向量[vxvy]T,h為系統(tǒng)測(cè)量方程,ωk-1為k-1時(shí)刻過(guò)程噪聲和,vk為k時(shí)刻的量測(cè)噪聲。
假設(shè)ωk-1和vk是相互獨(dú)立且滿(mǎn)足正態(tài)分布:ωk~N(0 ,Q ) ,vk~N(0 ,R )。可針對(duì)式(8)做泰勒級(jí)數(shù)展開(kāi),僅取一階項(xiàng),可將系統(tǒng)近似為一個(gè)線(xiàn)性系統(tǒng),得到:
式中,F(xiàn)k與 Hk分別為 f(xk)和 Hk的雅各比矩陣。則可得到EKF的預(yù)測(cè)方程為
式中,P為預(yù)測(cè)的協(xié)方差,K為增益矩陣。
完成跟蹤位置預(yù)測(cè)后,則圈定檢測(cè)范圍并送入級(jí)聯(lián)檢測(cè)器中,步驟如下:
1)以當(dāng)前幀檢測(cè)器位置輸出作為量測(cè)量,以上一幀中目標(biāo)位置為系統(tǒng)狀態(tài)量,運(yùn)用EKF預(yù)測(cè)方程預(yù)測(cè)目標(biāo)中心位置[11]。
2)在預(yù)測(cè)中心劃定一個(gè)矩形區(qū)域,其大小為上一幀檢測(cè)框的2.5倍。
3)對(duì)檢測(cè)框進(jìn)行掃描,得到的掃描圖像作為級(jí)聯(lián)分類(lèi)器的輸入,進(jìn)而判斷檢測(cè)框內(nèi)是否存在目標(biāo),并計(jì)算目標(biāo)位置。
圖6 EKF位置預(yù)測(cè)效果對(duì)比圖
如圖6所示,引入EKF位置預(yù)測(cè)后檢測(cè)器的檢測(cè)精度有所提升,尤其是在移動(dòng)速度較快時(shí),效果明顯。
本文使用OTB的long-term測(cè)試序列對(duì)跟蹤算法進(jìn)行實(shí)驗(yàn)驗(yàn)證,同時(shí)對(duì)比了長(zhǎng)時(shí)跟蹤算法TLD跟蹤算法與Sturck[12]算法。比較結(jié)果見(jiàn)圖8,表1由比較結(jié)果可以看出,本文算法表現(xiàn)最優(yōu)。本文算法比長(zhǎng)時(shí)間跟蹤算法TLD速度較快,這是由于本文采用了檢測(cè)區(qū)域預(yù)測(cè)以及改進(jìn)了跟蹤模塊算法。在跟蹤準(zhǔn)確度方面,本文算法表現(xiàn)最優(yōu),由于本文算法同時(shí)集成了多尺度核相關(guān)性濾波的優(yōu)勢(shì)以及TLD算法的優(yōu)勢(shì),因此跟蹤準(zhǔn)確率好。
表1 本文算法其他算法定量比較結(jié)果
圖7 跟蹤準(zhǔn)確率和跟蹤成功率
圖8 算法性能對(duì)比圖
跟蹤目標(biāo)快速運(yùn)動(dòng),尺度快速變化以及遮擋、形變等情況均影響跟蹤算法的性能。圖6為本文對(duì)KCF,DSST、CSK[13]、TLD以及本文算法在遮擋、快速運(yùn)動(dòng)、尺度變化以及目標(biāo)丟失的測(cè)試結(jié)果。由圖7可以看出,本文算法魯棒性最優(yōu),在跟蹤目標(biāo)快速尺度變化時(shí),只有DSST與本文算法可以準(zhǔn)確地跟蹤目標(biāo),以及估計(jì)目標(biāo)尺度。在出現(xiàn)部分遮擋,以及形變等情況,KCF,DSST以及本文算法表現(xiàn)良好,而TLD以及CSK均出現(xiàn)跟蹤失敗的情況。綜上,分析本文算法解決了跟蹤目標(biāo)快速變化以及尺度快速變化的問(wèn)題。實(shí)現(xiàn)了魯棒性更強(qiáng)的長(zhǎng)時(shí)間目標(biāo)跟蹤。
本文提出了基于核相關(guān)性濾波的長(zhǎng)時(shí)間跟蹤算法,以多尺度的核相關(guān)性濾波算法作為跟蹤器,同時(shí)引入TLD算法框架。通過(guò)實(shí)驗(yàn)驗(yàn)證,提出的算法在跟蹤目標(biāo)快速移動(dòng),尺度快速變化以及物體遮擋形變的干擾下,不易跟蹤失敗,同時(shí)在出現(xiàn)跟蹤目標(biāo)丟失或者跟蹤失敗的情況下,可初始化跟蹤器,實(shí)現(xiàn)長(zhǎng)時(shí)間的準(zhǔn)確跟蹤。