本文介紹了核相關(guān)濾波算法(KCF)的理論知識(shí),由于KCF算法具有固定的學(xué)習(xí)模式,跟蹤框不能隨目標(biāo)尺度變化改變,因而本文將其與粒子濾波算法結(jié)合,采用粒子分布估計(jì)目標(biāo)的位置。針對(duì)目標(biāo)尺度的問題,設(shè)計(jì)一種由粗到精的尺度估計(jì)方法,通過實(shí)驗(yàn)驗(yàn)證,本文算法的跟蹤精度遠(yuǎn)高于經(jīng)典KCF算法,且對(duì)常見干擾因素具有良好的跟蹤效果。
無人機(jī)執(zhí)行目標(biāo)跟蹤任務(wù)過程中,從獲取圖像數(shù)據(jù)到分析和處理圖像數(shù)據(jù)再到無人機(jī)外設(shè)做出對(duì)應(yīng)動(dòng)作調(diào)整,都具有實(shí)時(shí)性的約束,必須在一定的時(shí)間間隔內(nèi)完成,而通常目標(biāo)跟蹤算法在此過程中耗費(fèi)的處理時(shí)間占比很大。此外,對(duì)于無人機(jī)視頻圖像而言,目標(biāo)尺寸較小,而視野范圍卻較大,并且視頻中經(jīng)常存在目標(biāo)尺度變化。因此,無人機(jī)目標(biāo)跟蹤算法對(duì)于實(shí)時(shí)性和準(zhǔn)確性的要求很高。而一般實(shí)時(shí)性較好的目標(biāo)跟蹤算法難以保證準(zhǔn)確性,而準(zhǔn)確性較好的目標(biāo)跟蹤算法又難以保證實(shí)時(shí)性。近年來,基于相關(guān)濾波器的跟蹤算法以其優(yōu)異的實(shí)時(shí)性成為了跟蹤領(lǐng)域研究的熱點(diǎn),與基于深度學(xué)習(xí)和SVM分類器的目標(biāo)追蹤算法相比而言,相關(guān)濾波的實(shí)時(shí)性是其他算法比不上的。核相關(guān)濾波算法(KCF,Kernel Correlation Filter),是在2014年提出來的,這個(gè)算法在跟蹤效果和跟蹤速度上都讓人驚訝,因而一大批的學(xué)者開始KCF進(jìn)行研究,并且工業(yè)界也在陸續(xù)把KCF應(yīng)用在實(shí)際工程當(dāng)中。但KCF仍然具有不足之處,當(dāng)跟蹤過程中出現(xiàn)的遮擋和噪聲時(shí),KCF算法的跟蹤效果較差,容易出現(xiàn)跟蹤漂移的情況,且難以捕捉快速運(yùn)動(dòng)的目標(biāo)。為此,本文提出一種基于粒子濾波的KCF目標(biāo)跟蹤算法,使用粒子運(yùn)動(dòng)估計(jì)逼近目標(biāo)位置。為了實(shí)現(xiàn)對(duì)目標(biāo)尺度變化的準(zhǔn)確跟蹤,采用由粗到精的尺度估計(jì)方法,在保證實(shí)時(shí)性要求情況下,達(dá)到精確性要求。
KCF跟蹤算法是對(duì)視頻圖像進(jìn)行基于塊的密集采樣,建立目標(biāo)外觀模型,根據(jù)循環(huán)結(jié)構(gòu)的特性采集目標(biāo)及其周圍的樣本,這也是KCF目標(biāo)跟蹤算法實(shí)時(shí)性較高的原因。當(dāng)核函數(shù)滿足一定的條件,循環(huán)矩陣通過核函數(shù)映射之后得到核矩陣,該核矩陣同樣可保持著循環(huán)特性,這一性質(zhì)大大提升了KCF目標(biāo)跟蹤算法的執(zhí)行效率。利用KCF算法進(jìn)行目標(biāo)跟蹤時(shí),首先初始化設(shè)置目標(biāo)模型,然后在下一幀的搜索窗口上進(jìn)行相關(guān)濾波操作,相關(guān)濾波的輸出結(jié)果中響應(yīng)值最大的位置即為該幀中目標(biāo)的中心位置,使用當(dāng)前幀的結(jié)果來實(shí)時(shí)更新濾波器。
定義一個(gè)向量x∈Rn,x=[x1,x2,x3,...,xn],通過向量x生成一個(gè)二維循環(huán)矩陣C(x)∈Rn×n,其中,x處于第一行,第二行是第一行向右循環(huán)一個(gè)位移,同時(shí)將第一行最右面的數(shù)據(jù)移動(dòng)到左邊,第k(k=3,...,n)行以此類推,生成的二維循環(huán)矩陣如式(1)所示:
從結(jié)構(gòu)上來說,循環(huán)矩陣是一種特殊的Toeplitz矩陣,矩陣中的每一個(gè)元素可以表示為:
定義向量x,y,z,∈Rs,其相應(yīng)的循環(huán)矩陣為X=C(x),Y=C(y),Z=C(z), 傅里葉變換化為x=F(x),y=F(y),z=F(z),其頻域和時(shí)域運(yùn)算之間的關(guān)系如式(3):
其中, ·表示點(diǎn)乘, *表示共軛。
因此,向量與循環(huán)矩陣的乘積 可以轉(zhuǎn)換到到頻域中實(shí)現(xiàn),如式:
由于脊回歸模型具有封閉解,訓(xùn)練速度較快且效果較好,因此核相關(guān)濾波器使用脊回歸模型訓(xùn)練樣本得到分類器,進(jìn)而檢測(cè)下一幀目標(biāo),訓(xùn)練的樣本是通過初始樣本的循環(huán)矩陣循環(huán)采集得到的。
圖1 循環(huán)從左向右移動(dòng)采樣
圖1表示在圖像中目標(biāo)及背景區(qū)域進(jìn)行水平方向密集采樣,其中實(shí)線框表示初始樣本,其他不同的虛線表示由初始樣本每次循環(huán)向右移動(dòng)一個(gè)單位得到的訓(xùn)練樣本。通過循環(huán)矩陣采集樣本數(shù)據(jù),利用循環(huán)的特性通過傅里葉變換加快訓(xùn)練速度。
KCF目標(biāo)跟蹤算法中通常利用脊回歸模型訓(xùn)練,分為線性模型訓(xùn)練方式和非線性模型訓(xùn)練方式。
(1)線性模型訓(xùn)練方式。在使用線性模型訓(xùn)練時(shí),首先在初始幀中矩形框中提取關(guān)于目標(biāo)的訓(xùn)練樣本x作為分類器的輸入,尺寸為m*n,那么將高斯函數(shù)生成的標(biāo)簽y作為分類器的期望輸出:
其中,r,c分別表示距離中心位置的橫向和縱向距離。
分類器輸出函數(shù)定義為:
訓(xùn)練的過程就是最小化分類器輸出函數(shù)和期望輸出之間的平方誤差,構(gòu)建損失函數(shù):
其中,xi為訓(xùn)練樣本,yi為期望輸出,λ為正則化項(xiàng)。
對(duì)公式(7)進(jìn)行最小化表示:
其中,X為初始樣本集合。函數(shù)l(w)對(duì)w求導(dǎo)可以得到系數(shù)的值。
(2)非線性模型訓(xùn)練方式。有些樣本不能在原來空間進(jìn)行分類,需要將其由低維空間變換到高維空間。樣本 通過核函數(shù)映射成為φ(x)時(shí),所求分類器f(x)中的權(quán)值w轉(zhuǎn)化為對(duì)偶空間中的α系數(shù)。根據(jù)文獻(xiàn)[5]表示,權(quán)值w為輸入樣本的線性組合形式:
通常,采用核函數(shù)從樣本空間映射到希爾伯特空間,定義核函數(shù)為:
其中,φ(x)為希爾伯特空間,x'表示不斷更新的樣本。
則分類器輸出函數(shù)表示為:
根據(jù)正則化最小二乘法,式(6)擴(kuò)展為:
對(duì)(13)式求微分:
令Fα=0,可得出上式的最小值,同時(shí)求得α的值。
其中,I是單位循環(huán)矩陣,k是循環(huán)核矩陣,式(15)可以轉(zhuǎn)化為式(16):
其中,δ=[1,0...,0]T。
根據(jù)循環(huán)矩陣的時(shí)域空域轉(zhuǎn)換關(guān)系,式(16)變換為:
根據(jù)式(4),可得到:
輸入下一幀圖像后,對(duì)應(yīng)濾波器的輸出是y',響應(yīng)最大值則作為下一幀目標(biāo)的中心位置:
由式(19)可以看出,相關(guān)濾波器KCF跟蹤目標(biāo)時(shí),只需要更新濾波器函數(shù)的參數(shù)和累積樣本,常選擇線性的更新方式:
其中,γ為學(xué)習(xí)因子,t尾當(dāng)前幀x'(t),α'(t), 分別為更新后的濾波器參數(shù)與累積樣本。
在相關(guān)濾波跟蹤中,常用的核函數(shù)主要有多項(xiàng)式核和高斯核兩類。
多項(xiàng)式核:
高斯核:
KCF目標(biāo)跟蹤算法所采用固定的學(xué)習(xí)模式,對(duì)目標(biāo)尺度變化很敏感,且實(shí)時(shí)性非常好。根據(jù)粒子濾波理論,通過隨機(jī)采樣不同權(quán)值的粒子可以近似任意一種的觀測(cè)概率分布,粒子濾波可以很好的適應(yīng)非高斯及非線性場(chǎng)景,但是難以選取合適的粒子數(shù)量,當(dāng)選取的粒子數(shù)量較少時(shí),嚴(yán)重影響跟蹤的準(zhǔn)確率;當(dāng)選擇的粒子數(shù)量較多時(shí),大量的粒子會(huì)產(chǎn)生比較高的計(jì)算復(fù)雜度,會(huì)影響跟蹤的實(shí)時(shí)性。在實(shí)際場(chǎng)景應(yīng)用中,常常因?yàn)檫x取粒子的數(shù)量問題造成跟蹤的目標(biāo)與實(shí)際的目標(biāo)存在一些誤差,隨著每一幀誤差值的積累,最后造成跟蹤漂移現(xiàn)象。據(jù)此,本文提出一種基于粒子濾波的KCF目標(biāo)跟蹤算法,對(duì)KCF目標(biāo)跟蹤算法得到位置響應(yīng)值,采用粒子加權(quán)估計(jì)目標(biāo)的運(yùn)動(dòng)狀態(tài);針對(duì)尺度變化問題,提出一種由粗到細(xì)尺度估計(jì)方法。目標(biāo)跟蹤算法流程圖如圖2所示。
圖2 基于粒子濾波的KCF目標(biāo)跟蹤算法流程圖
本節(jié)將核相關(guān)濾波器(KCF)與粒子濾波器相結(jié)合,粒子濾波器給KCF目標(biāo)跟蹤算法引入一些噪聲,并從噪聲數(shù)據(jù)中估計(jì)目標(biāo)的運(yùn)動(dòng)狀態(tài),來確定目標(biāo)的位置。
粒子濾波器是通過帶權(quán)重樣本粒子集合S={S(n)|n=1,2,...,N}來逼近概率分布,采用核相關(guān)濾波器最高響應(yīng)值分布函數(shù)來描述目標(biāo)模型。定義每一核相關(guān)濾波器最高響應(yīng)值分布的采樣樣本,即粒子模型為:
其中,p表示粒子初始位置, 表示粒子的橫縱坐標(biāo),v表示粒子運(yùn)動(dòng)的速度,vx,vy分別表示粒子在x,y方向上的速度,re表示該粒子經(jīng)過核濾波器后得到的響應(yīng)值,π表示粒子權(quán)重。
采用系統(tǒng)狀態(tài)方程更新粒子樣本集合:
其中,A為狀態(tài)轉(zhuǎn)移矩陣,wt-1為高斯噪聲。因此,基于粒子濾波的KCF目標(biāo)跟蹤算法確定目標(biāo)中心位置時(shí),具體分為以下五步:
第一步,初始化。初始化粒子樣本集合st-1和目標(biāo)模型,粒子初始權(quán)值為,初始狀態(tài)為s0;
第二步, 再采樣。根據(jù)權(quán)重π從集合中挑選N個(gè)樣本。
(1)在[0,1]區(qū)間生成N個(gè)滿足均勻分布的隨機(jī)變量,組成數(shù)組r,并且對(duì)權(quán)重?cái)?shù)組計(jì)算歸一化累積概率
(2)對(duì)r數(shù)組中每一個(gè)元素,采用二分法搜索歸一化累積概率數(shù)組,獲取含有N個(gè)最小索引的數(shù)組j,使得
(3)更新粒子樣本集合。
第三步,狀態(tài)轉(zhuǎn)移。根據(jù)公式(24)計(jì)算新的粒子集合St。
第四步,系統(tǒng)觀測(cè)。將新粒子集合輸入核KCF,得到濾波器響應(yīng)值re,進(jìn)而更新粒子狀態(tài):
第t幀時(shí),
相對(duì)于初始狀態(tài)s0,更新粒子集合St的速度:
計(jì)算粒子的權(quán)重值:
第五步,位置估計(jì)。將經(jīng)過權(quán)重估計(jì)之后的集合輸入到核相關(guān)濾波器中,最大響應(yīng)值就是目標(biāo)的位置:
無人機(jī)執(zhí)行目標(biāo)跟蹤任務(wù)時(shí),往往目標(biāo)尺度會(huì)發(fā)生變化,跟蹤算法必須對(duì)目標(biāo)尺度變化具有魯棒性,而核相關(guān)濾波算法中的跟蹤框是固定不變的,當(dāng)目標(biāo)尺度增大時(shí),只能跟蹤目標(biāo)的局部,丟失目標(biāo)的部分信息;當(dāng)目標(biāo)尺度減小時(shí),跟蹤框中會(huì)加入背景的相關(guān)信息,可能導(dǎo)致跟蹤失敗。因此提出了一種由粗到細(xì)的尺度估計(jì)方法。
(1)目標(biāo)尺度粗略估計(jì)
假設(shè)目標(biāo)方框的初始尺寸為h0×w0,估計(jì)當(dāng)前幀目標(biāo)的位置,由公式(30)得到響應(yīng)的最大值,記為s0。
在當(dāng)前幀的目標(biāo)位置分別提取三種不同大小的圖像塊,尺寸為(s×h0)×(s×w0)的放大圖像塊和的(h0/s)×(w0/s)縮小圖像塊,其中s>1,利用線性插值的方法調(diào)整圖像塊的尺寸,使其與模板尺寸相同,由公式(30)計(jì)算放大矩形框和縮小矩形框的響應(yīng)值sL,sS,比較s0,sL,sS的大小,將最大值作為跟蹤矩形框的粗略尺度最優(yōu)估計(jì),尺寸記為h1×w1。目標(biāo)尺寸選取方式如圖3所示,綠色矩形框?yàn)槌跏汲叽纾t色虛線框?yàn)榉糯蠛涂s小后的尺寸。
圖3 目標(biāo)尺度粗略估計(jì)示意圖
(2)目標(biāo)尺度精細(xì)估計(jì)
圖4 目標(biāo)尺度估計(jì)示意圖
尺度粗略估計(jì)只選取了三種情況用于尺寸估計(jì)。一方面該方法可以繼續(xù)滿足實(shí)時(shí)性,另一方面能夠稍提高準(zhǔn)確性。但是實(shí)際跟蹤過程中,需要對(duì)目標(biāo)尺度精確估計(jì),否則會(huì)融入背景信息,影響采集的正負(fù)樣本質(zhì)量,進(jìn)而導(dǎo)致跟蹤漂移現(xiàn)象,導(dǎo)致追蹤失敗。粗略尺度估計(jì)會(huì)對(duì)目標(biāo)準(zhǔn)確性造成一定程度的影響,為此,跟蹤過程中間隔 幀圖像序列對(duì)目標(biāo)進(jìn)行尺寸粗略的估計(jì),得到其中最大值響應(yīng)時(shí),記目標(biāo)的尺寸大小h1×w1,之后按照均勻分布隨機(jī)生成尺度變換集S={si|si∈U(0.0,1.1),1≤i≤10},Si表示選取矩形框的尺度。對(duì)于任一尺度Si,在當(dāng)前幀估計(jì)的目標(biāo)位置出選取矩形框尺寸(si×h1)×(si×w1),將所有圖像尺寸進(jìn)行縮放,使所有采樣尺寸與模板尺寸相同。根據(jù)公式(19)計(jì)算,得到最大響應(yīng)值為最優(yōu)估計(jì)尺寸,進(jìn)而確定當(dāng)前幀目標(biāo)的尺度。綜上所述,目標(biāo)尺度估計(jì)的流程圖如圖4所示。
本文選擇無人機(jī)與目標(biāo)的距離在5~25m范圍內(nèi)的視頻序列進(jìn)行實(shí)驗(yàn)來驗(yàn)證本文算法的跟蹤效果,所用視頻序列均來源于無人機(jī)目標(biāo)跟蹤標(biāo)準(zhǔn)的UAV123數(shù)據(jù)集和部分VOT2013數(shù)據(jù)集。使用matlab編程實(shí)現(xiàn),操作系統(tǒng)為Windows7,計(jì)算機(jī)配置為Intel(R)Core(TM)i5-3470CPU,內(nèi)存為4.00GB。
實(shí)驗(yàn)參數(shù):傳統(tǒng)的KCF算法參數(shù)保持不變,本文算法中高斯核的標(biāo)準(zhǔn)差σ=0.5,學(xué)習(xí)因子γ=0.02,正則化參數(shù)λ=0.0001,粗略尺度估計(jì)參數(shù)s=1.05,相隔幀數(shù)k=4。
本節(jié)所有實(shí)驗(yàn)跟蹤結(jié)果中,藍(lán)色框和綠色框分別表示本文算法和傳統(tǒng)KCF目標(biāo)跟蹤算法的實(shí)驗(yàn)結(jié)果。
(1)部分遮擋環(huán)境下的目標(biāo)跟蹤C(jī)arScale視頻序列中第1,130,165,178,206,231幀的跟蹤結(jié)果分別為圖5(a)~(f)。
以序列中的黑色汽車作為目標(biāo),Car Scale視頻序列包含兩類干擾因素:目標(biāo)尺度變化,目標(biāo)被部分遮擋。跟蹤過程中,由于黑色汽車尺度逐漸增大,而KCF算法無法適應(yīng)尺度變化,導(dǎo)致從165幀開始,跟蹤逐漸漂移。由于本文采用由粗到細(xì)尺度估計(jì)方法,可以準(zhǔn)確跟蹤目標(biāo)尺度變化,當(dāng)目標(biāo)發(fā)生局部遮擋時(shí),可以根據(jù)粒子的狀態(tài)分布預(yù)測(cè)目標(biāo)位置。從圖5的實(shí)驗(yàn)結(jié)果可以看出,針對(duì)目標(biāo)被部分遮擋和尺度變化的問題,本文算法能夠有效的跟蹤目標(biāo)。
圖5 對(duì)Car Scale序列的跟蹤結(jié)果
(2)目標(biāo)尺度變化的目標(biāo)跟蹤
Boat1視頻序列的跟蹤結(jié)果如圖6所示,第1,147,291,471,696,822幀的跟蹤結(jié)果分別對(duì)應(yīng)(a)~(f)。
白色船只在航行過程中,主要發(fā)生尺度變化,從451幀到686幀,有微弱的光照變化。當(dāng)目標(biāo)尺度減小時(shí),KCF算法的跟蹤框中增加了背景的干擾信息,如圖(b)~圖(e),最后出現(xiàn)跟蹤漂移的情況,跟蹤效果較差。從實(shí)驗(yàn)結(jié)果可以看出,針對(duì)尺度變化干擾因素,本文算法有良好的跟蹤效果。
(3)旋轉(zhuǎn)變化情況下的目標(biāo)跟蹤
Wakeboard1視頻序列第1,35,75,186,296,349幀的跟蹤結(jié)果如圖7(a)~(f)所示。
Wakeboard1視頻序列中,選擇沖浪人為目標(biāo),目標(biāo)在海上表演雜技動(dòng)作,視頻圖像的背景較為復(fù)雜,第35幀時(shí),目標(biāo)下蹲準(zhǔn)備起跳,KCF算法不能適應(yīng)目的尺度變化,75幀到186幀之間,目標(biāo)表演海上雜技,運(yùn)動(dòng)速度較快并伴隨著旋轉(zhuǎn),KCF算法發(fā)生跟蹤漂移,將部分背景融入目標(biāo)跟蹤框中,在296幀時(shí),我們的算法能夠準(zhǔn)確跟蹤目標(biāo)。從跟蹤結(jié)果中可以看出,盡管視頻圖像的背景較為復(fù)雜,目標(biāo)運(yùn)動(dòng)變化多端,本文算法也能夠?qū)δ繕?biāo)準(zhǔn)確跟蹤。
圖6 對(duì)Boat1序列的跟蹤結(jié)果
圖7 對(duì)Wakeboard1序列的跟蹤結(jié)果
(4)目標(biāo)背景光照變化實(shí)驗(yàn)
Singer1視頻序列的跟蹤結(jié)果如圖8所示,第1,84,130,213,280,351幀跟蹤結(jié)果分別對(duì)應(yīng)(a)~(f)。
Singer1視頻序列是一個(gè)舞臺(tái)上表演歌唱的場(chǎng)景,舞臺(tái)燈光由暗轉(zhuǎn)明,再由明轉(zhuǎn)暗,同時(shí)鏡頭由近向遠(yuǎn)移動(dòng),因此跟蹤中主要存在光照變化核目標(biāo)尺度變化兩類干擾因素。從第1幀到351幀,舞臺(tái)燈光劇烈變化,由暗變亮再變暗,目標(biāo)尺度逐漸變小,KCF目標(biāo)跟蹤算法產(chǎn)生跟蹤漂移。整個(gè)跟蹤過程中,本文算法針對(duì)目標(biāo)尺度變化和光照變化干擾因素有著魯棒的跟蹤效果。
圖8 對(duì)Singer1序列的跟蹤結(jié)果
為了進(jìn)一步說明本文算法的優(yōu)越性,使用定量的評(píng)價(jià)標(biāo)準(zhǔn),即通過中心位置誤差(Center Location Error, CLE)估計(jì)對(duì)跟蹤算法的結(jié)果進(jìn)行評(píng)價(jià),中心位置誤差計(jì)算公式為:
其中,(xi,yi)為第i幀目標(biāo)的實(shí)際中心位置,()為第i幀時(shí)通過跟蹤算法得到的目標(biāo)中心位置,N為圖像幀數(shù)。
當(dāng)中心誤差值小于閾值T時(shí),認(rèn)為跟蹤成功,否則認(rèn)為跟蹤失敗,無人機(jī)視頻的閾值T一般設(shè)為20個(gè)像素,根據(jù)中心誤差公式可知,中心偏移誤差越小,跟蹤準(zhǔn)確率越高。
通過對(duì)目標(biāo)中心位置誤差統(tǒng)計(jì),本文算法和KCF算法針對(duì)測(cè)試視頻的跟蹤準(zhǔn)確率如表1所示:
經(jīng)過實(shí)驗(yàn)對(duì)比統(tǒng)計(jì),本文算法平均每秒處理26幀圖像,在滿足實(shí)時(shí)性要求的前提下,對(duì)于含有常見干擾因素中的視頻序列,跟蹤精度遠(yuǎn)遠(yuǎn)高于KCF目標(biāo)跟蹤算法。
表1 跟蹤算法針對(duì)測(cè)試視頻的跟蹤準(zhǔn)確率( T=20)