張衛(wèi)峰,何秋生,梁慧慧,賈偉振
(太原科技大學(xué) 電子信息工程學(xué)院,太原 030024)
作為計(jì)算機(jī)視覺領(lǐng)域的研究熱點(diǎn),視覺目標(biāo)跟蹤廣泛的應(yīng)用于智能監(jiān)控、人機(jī)交互、軍事打擊等領(lǐng)域,具有廣泛的應(yīng)用價(jià)值和發(fā)展前景。由于跟蹤環(huán)境的復(fù)雜性,如遮擋、尺度變化、光照變化、快速移動(dòng)等因素都會(huì)影響算法的性能。
基于深度學(xué)習(xí)的跟蹤算法[1-2]性能較好但是普遍比較耗時(shí),而基于相關(guān)濾波器的跟蹤算法由于其極快的計(jì)算速度和良好的定位性能,也能很好的適應(yīng)目標(biāo)外觀的變化,因此成為了目前主流的實(shí)時(shí)跟蹤算法。Bolme等人提出的MOSSE[3]跟蹤算法,最早將相關(guān)濾波器應(yīng)用到視覺跟蹤;CSK[4]跟蹤算法是Henriques等人提出的一種高速跟蹤算法,利用基準(zhǔn)樣本的循環(huán)移位進(jìn)行密集采樣;隨后,Henriques等又提出KCF[5]算法,將CSK算法由單通道擴(kuò)展到多通道,使其可以使用多維特征,獲得更加精確的跟蹤結(jié)果。但由于是KCF算法中使用了大小恒定的跟蹤框,因此不能很好的適應(yīng)目標(biāo)尺度的變化,并且沒有考慮跟蹤過程中目標(biāo)發(fā)生遮擋時(shí)的情況。
針對(duì)上述問題,一系列基于相關(guān)濾波器的改進(jìn)算法被相繼提出。Danelljan等提出CN[6]算法將顏色特征用到目標(biāo)跟蹤任務(wù)中,此后又提出DSST[7]算法通過訓(xùn)練尺度濾波器的方法來估計(jì)目標(biāo)尺度。YAO等[8]引入了基于分塊的跟蹤算法和在線潛在結(jié)構(gòu)化學(xué)習(xí),使用全局對(duì)象框和少量局部框來近似不規(guī)則對(duì)象;LIU等[9]在使用KCF方法對(duì)子塊進(jìn)行獨(dú)立跟蹤的基礎(chǔ)上,通過粒子濾波算法和貝葉斯推理框架來確定目標(biāo)位置。但上述方法著重于通過分塊算法提高算法應(yīng)對(duì)目標(biāo)遮擋的性能,忽略了目標(biāo)子塊間相對(duì)位置變化所隱藏的尺度信息。
由此本文在KCF算法的基礎(chǔ)上,提出了一種尺度自適應(yīng)的分塊跟蹤算法。為減弱遮擋部分的影響,由局部濾波器提供目標(biāo)位置的粗略估計(jì),然后由全局濾波器用作初始估計(jì)以確定目標(biāo)的準(zhǔn)確位置;同時(shí)利用各子塊間相對(duì)位置的變化來計(jì)算目標(biāo)尺度。
核相關(guān)濾波算法KCF[5]算法憑借極快的運(yùn)算速度和較高的準(zhǔn)確度取得了極大的成功,另外該算法還具有原理容易理解、結(jié)構(gòu)易于擴(kuò)展等優(yōu)勢(shì)。
相關(guān)濾波算法中通過樣本的循環(huán)移位進(jìn)行密集采樣,假設(shè)跟蹤的目標(biāo)區(qū)域可以表示為一個(gè)n×1的一維矩陣,稱之為基準(zhǔn)樣本,Px=[xn,x1,x2,…,xn-1]表示矩陣向右循環(huán)移位一次,其中是P一個(gè)變換矩陣。因此,所有的循環(huán)移位樣本{Pux|u=0…n-1}依次排列到同一個(gè)矩陣中就可以得到循環(huán)數(shù)據(jù)矩陣X=C(x),該數(shù)據(jù)矩陣是一個(gè)循環(huán)矩陣,具有如下的性質(zhì):
(1)
相關(guān)濾波算法中將目標(biāo)跟蹤問題轉(zhuǎn)化為求解最小平方誤差下的嶺回歸問題,以此獲得最優(yōu)分類器參數(shù),其目的就是找到一個(gè)決策函數(shù)f(z)=ωTz,使得樣本xi和回歸目標(biāo)yi間的平方誤差最?。?/p>
(2)
其中,函數(shù)f(x)=ωTx可以看作基準(zhǔn)樣本的線性組合;λ是正則化參數(shù),控制過度擬合;xi表示由基準(zhǔn)樣本通過循環(huán)移位后產(chǎn)生的訓(xùn)練樣本;yi為訓(xùn)練樣本xi對(duì)應(yīng)的回歸目標(biāo),并且y服從高斯分布yi∈[0,1].通過求解嶺回歸問題,可以獲得分類器的最優(yōu)解ω=(XTX+λI)-1XTy,利用循環(huán)矩陣對(duì)角化性質(zhì)可以將其簡(jiǎn)化為:
(3)
(4)
在快速檢測(cè)過程中,將下一幀中相同位置的圖像補(bǔ)丁z視為基準(zhǔn)樣本,進(jìn)行快速目標(biāo)響應(yīng)檢測(cè),可得到時(shí)域內(nèi)輸入圖像的響應(yīng)圖:
(5)
Pt=argmaxP∈StF(z)
(6)
其中,Pt表示當(dāng)前幀中目標(biāo)的中心位置;St表示搜索區(qū)域。
基于分塊的目標(biāo)跟蹤方法,在目標(biāo)被遮擋時(shí)仍然能夠利用未被遮擋的部分提供準(zhǔn)確的定位信息進(jìn)行跟蹤;隨著目標(biāo)尺度的變化,在跟蹤過程中各子塊間的距離也會(huì)相應(yīng)地發(fā)生變化,因此能夠根據(jù)子塊位置變化情況對(duì)目標(biāo)尺度進(jìn)行估計(jì)[10]。
在選擇分塊方法的時(shí)候必須考慮需要使用多少個(gè)子塊和每個(gè)子塊設(shè)置為多大的問題。當(dāng)使用的目標(biāo)塊較少時(shí),若目標(biāo)發(fā)生遮擋則會(huì)導(dǎo)致獲取到的目標(biāo)信息不夠準(zhǔn)確;但是使用的子塊過多又會(huì)使得算法計(jì)算量增加。此外,如果子塊設(shè)置過大,則會(huì)使得子塊數(shù)量減少;當(dāng)子塊設(shè)置過小,則會(huì)使得單獨(dú)跟蹤每個(gè)子塊的結(jié)果不準(zhǔn)確。Liu T等發(fā)現(xiàn)子塊大小設(shè)置為整體目標(biāo)框大小的1/6到1/4之間時(shí),跟蹤結(jié)果相差很小,而小于1/6或者大于1/4時(shí),跟蹤結(jié)果會(huì)明顯變差。
目前已有的跟蹤算法中使用較多的分塊策略是將目標(biāo)劃分為四個(gè)大小一致的子塊[10-11],如圖1(a)所示。此外,還可以根據(jù)目標(biāo)框的縱橫比進(jìn)行子塊劃分[12-13],如圖1(b)所示。但是,使用以上兩種分塊方法得到的子塊通常包含較多的背景信息,會(huì)對(duì)跟蹤過程造成干擾,從而影響算法性能,因此本文設(shè)計(jì)了一種能夠有效減少背景信息的分塊方法。
圖1 分塊方法示意圖
本文采用的分塊方法,如圖1(c)所示,圍繞目標(biāo)中心位置生成四個(gè)大小相等的子塊。具體為,四個(gè)子塊的高和寬分別為整體目標(biāo)框高和寬的0.5倍;上下兩個(gè)子塊的中心坐標(biāo)分別為以目標(biāo)中心位置上移和下移0.25h個(gè)像素值;左右兩個(gè)子塊的中心坐標(biāo)分別為以目標(biāo)中心位置左移和右移0.25w個(gè)像素值,可表示為公式(7):
(7)
其中,m=0.25h,n=0.25w,h和w分別表示整體目標(biāo)框的高和寬;Pt表示整體目標(biāo)框的中心位置;Bk表示目標(biāo)子塊的中心位置,k∈(1,2,3,4)表示目標(biāo)子塊的索引。
當(dāng)目標(biāo)比較小的時(shí)候會(huì)導(dǎo)致生成的目標(biāo)子塊太小,不能為目標(biāo)跟蹤提供準(zhǔn)確的信息。因此,這種情況并不適合進(jìn)行分塊跟蹤:
(8)
其中,當(dāng)?=1表示需要對(duì)進(jìn)行分塊跟蹤;?=0時(shí)直接對(duì)目標(biāo)整體進(jìn)行跟蹤。?的值由閾值τ決定,經(jīng)過大量仿真實(shí)驗(yàn)發(fā)現(xiàn)τ=17時(shí)使得跟蹤效果最好。
本文提出的基于核相關(guān)濾波器的分塊跟蹤方法依賴于全局濾波器和局部濾波器之間的相互作用。為減弱遮擋部分的影響,首先獨(dú)立跟蹤每一個(gè)子塊,并使用局部濾波器分別計(jì)算每個(gè)子塊對(duì)應(yīng)的響應(yīng)圖,然后從中選取具有最大響應(yīng)峰值的子塊,根據(jù)該子塊與目標(biāo)整體之間的位置約束關(guān)系初步得到對(duì)目標(biāo)中心位置的粗略估計(jì),最后對(duì)估計(jì)位置處進(jìn)行采樣并與全局濾波器作用以確定目標(biāo)的準(zhǔn)確位置。
當(dāng)滿足分塊條件時(shí),使用核相關(guān)濾波算法KCF分別對(duì)各個(gè)目標(biāo)子塊進(jìn)行獨(dú)立跟蹤,得到每個(gè)子塊的響應(yīng)圖Fk,然后選取具有最大峰值的響應(yīng)圖:
k′=argmax(max(Fk))
(9)
(10)
在分類器訓(xùn)練過程中,本文使用了如下的高斯核函數(shù):
(11)
其中,x=[x1,x2,…,xC]表示包含C有個(gè)獨(dú)立通道的向量,通過公式(11)使得在跟蹤過程中可以使用性能更好的多通道特征豐富目標(biāo)的外觀表示。
本文中為了更加準(zhǔn)確地確定目標(biāo)中心位置,通過級(jí)聯(lián)31維的梯度直方圖特征(Histogram of Oriented Gradient,HOG)和12維的顏色名稱特征(Color Name,CN)形成HOG-CN融合特征用于表示目標(biāo),然后與核相關(guān)濾波器作用計(jì)算目標(biāo)響應(yīng),如圖2所示。HOG特征描述了圖像局部區(qū)域的梯度強(qiáng)度和梯度方向的分布情況,CN特征描述了圖像的全局表面性質(zhì),將這兩種特征融合可以利用不同特征間的優(yōu)勢(shì)互補(bǔ)來提高跟蹤器的性能。
圖2 多特征融合算法示意
本文使用的分塊跟蹤方法,當(dāng)目標(biāo)尺度變化范圍在0.8~1.2之間時(shí),不對(duì)目標(biāo)進(jìn)行重新分塊,雖然這一尺度變化范圍內(nèi)各子塊的目標(biāo)框大小是恒定不變的,但通過實(shí)驗(yàn)發(fā)現(xiàn)各子塊間的相對(duì)位置與目標(biāo)尺度變化間存在著穩(wěn)定的關(guān)系。當(dāng)目標(biāo)尺度變化時(shí)各子塊間會(huì)相應(yīng)地重疊或分離[13]。如圖3所示,第一行中圖(a)到圖(b),從第20幀到第147幀,隨著汽車逐漸駛遠(yuǎn),尺度也隨之變小,各目標(biāo)子塊彼此重疊到一起;第二行中圖(c)到圖(d),從110幀到138幀,隨著目標(biāo)的尺度變大,各目標(biāo)子塊彼此遠(yuǎn)離。
圖3 子塊位置與目標(biāo)尺度間的關(guān)系
本文從這個(gè)基本的觀測(cè)出發(fā),將尺度的計(jì)算問題轉(zhuǎn)換為對(duì)目標(biāo)子塊跟蹤結(jié)果的綜合問題。
首先,計(jì)算當(dāng)前幀中所有目標(biāo)子塊間中心位置的歐式距離與上一幀中對(duì)應(yīng)子塊間中心位置的歐式距離比值的平均值,對(duì)目標(biāo)尺度步長(zhǎng)進(jìn)行粗略估計(jì):
(12)
(13)
其中,Step表示尺度步長(zhǎng),即與上一幀相比較目標(biāo)尺度的變化。前一幀(第t-1幀)的尺度與當(dāng)前幀(第t幀)中計(jì)算得到的尺度步長(zhǎng)的乘積即為當(dāng)前幀中目標(biāo)的尺度:
St=St-1·Step
(14)
其中,St表示第t幀中目標(biāo)的尺度參數(shù)。
為對(duì)本文算法的有效性進(jìn)行充分的評(píng)估,本文選擇包括基礎(chǔ)算法KCF在內(nèi)的5種主流跟蹤算法與本文算法在OTB數(shù)據(jù)集[14]上進(jìn)行測(cè)試,并進(jìn)行對(duì)比分析。本文中參與比較的算法有:CSK[4],KCF[5],CN[6],DSST[7],Struck[15].所有的算法程序在Windows7系統(tǒng)MatlabR2014a平臺(tái)上運(yùn)行,用于對(duì)比的算法參數(shù)均為作者公布源程序的默認(rèn)參數(shù),計(jì)算機(jī)配置為英特爾奔騰G3250 CPU,運(yùn)行內(nèi)存4 GB,64位操作系統(tǒng)。本文中使用距離精度(DP)和重疊精度(OP)作為評(píng)價(jià)指標(biāo),具體計(jì)算方法見文獻(xiàn)[14].
針對(duì)目標(biāo)遮擋情況下跟蹤算法性能下降的問題,本文在KCF的基礎(chǔ)上改進(jìn)了一種尺度自適應(yīng)的核相關(guān)濾波跟蹤算法,具體的算法流程如下:
Input
當(dāng)前幀圖像It,t=1,2,…,t,…
Output:
檢測(cè)到的目標(biāo)位置Pt
尺度參數(shù)St
初始幀t=1:
(1)在初始圖像幀中選取圖像塊Patch.
(2)將輸入的整體目標(biāo)圖像塊Patch分為四個(gè)子塊。
(3)分別跟蹤每個(gè)目標(biāo)子塊和目標(biāo)整體。
其余幀t≥2
(6)計(jì)算目標(biāo)尺度St.
(7)更新模型參數(shù)。
(8)判斷St<0.8 orSt>1.2是否成立?成立,則對(duì)目標(biāo)重新分塊,然后執(zhí)行(2)后繼續(xù)下一步;否,則直接繼續(xù)下一步。
(9)重復(fù)(4)~(8)直到跟蹤結(jié)束。
本節(jié)中通過四等分和水平/垂直兩種分塊方法與本文采用的分塊方法在本文改進(jìn)的算法框架中進(jìn)行比較,為保證測(cè)試公平性,除分塊方法不同外其余參數(shù)設(shè)置均一樣,并使用距離精度和重疊精度進(jìn)行評(píng)估,實(shí)驗(yàn)結(jié)果如表1所示。
表1 不同分塊方法的比較
通過分析表1可以看出,采用本文提出的分塊方法的跟蹤效果最好,比四等分和水平/垂直分塊的距離精度分別提高了3.9%和3.6%,重疊率精度分別提高了6.6%和4.8%.這一結(jié)果證明了本章提出的分塊方法與目前常用的分塊方法相比具有一定的優(yōu)勢(shì),更有助于提高分塊跟蹤算法的性能。
首先對(duì)本文算法進(jìn)行總體性能分析。本文算法以及所有比較算法均在OTB2013數(shù)據(jù)集上進(jìn)行測(cè)試,以距離精度(DP)和重疊精度(OP)作為評(píng)判標(biāo)準(zhǔn),實(shí)驗(yàn)結(jié)果如圖4所示。由圖4可見,本文算法在整體性能測(cè)試中綜合性能排序第一,展現(xiàn)了出色的總體性能。具體的數(shù)據(jù)為位置誤差閾值為20時(shí)對(duì)應(yīng)的距離精度為0.811,重疊閾值為0.5時(shí)對(duì)應(yīng)的重疊精度為0.686,與基礎(chǔ)算法KCF相比跟蹤距離精度提高了7.4%,重疊精度提高了7.8%.總的來說,本章提出的算法綜合性能比改進(jìn)之前有了較大的提升。
圖4 不同分塊方法的比較
為驗(yàn)證本文算法在不同干擾因素下的性能表現(xiàn),將本文算法以及所有比較算法在遮擋、尺度變化等6種不同屬性的視頻序列子集上分別進(jìn)行測(cè)試,并將測(cè)試得到的距離精度曲線和重疊精度曲線中的數(shù)據(jù)進(jìn)行歸納,結(jié)果如表2和表3所示,其中表現(xiàn)最好的算法用紅色加粗字體標(biāo)注。
表2 不同屬性下的距離精度曲線圖數(shù)據(jù)
表3 不同屬性下的重疊精度曲線圖數(shù)據(jù)
通過分析表2和表3可以得到以下結(jié)論:
(1)在遮擋情況下,本文算法與其他對(duì)比算法相比其距離精度和重疊精度都是最高的,主要原因是本文提出的分塊算法能夠在目標(biāo)被部分遮擋的情況下能夠充分利用未被遮擋的目標(biāo)信息。
(2)在目標(biāo)尺度變化情況下,本文算法的跟蹤精度和重疊精度依然是十種算法中最高的,主要原因是本文算法加入了基于子塊跟蹤結(jié)果計(jì)算目標(biāo)尺度的方法。
(3)本章提出的算法在5種場(chǎng)景屬性下的距離精度和重疊精度均取得了最優(yōu)的結(jié)果,說明本文算法在應(yīng)對(duì)復(fù)雜場(chǎng)景時(shí)具有較好的魯棒性。此外,除了能夠很好地處理遮擋和尺度變化的情況外,在目標(biāo)發(fā)生形變時(shí),該算法也有非常出色的表現(xiàn)。
為評(píng)估算法的實(shí)時(shí)性,本文測(cè)試了各個(gè)算法在OTB數(shù)據(jù)集的不同視頻序列上運(yùn)行的平均跟蹤速度,實(shí)驗(yàn)結(jié)果如表4所示。
表4 各算法的平均跟蹤速度
由表4可見,相比于原始算法KCF,本文算法使用了HOG-CN融合特征并引入了分塊跟蹤策略后跟蹤平均速度為33.5幀/s,仍能夠保持算法的實(shí)時(shí)性需求。
綜上所述,說明本文提出的算法具有非常好的魯棒性,能夠應(yīng)對(duì)絕大部分的挑戰(zhàn)。在應(yīng)對(duì)目標(biāo)遮擋、尺度變化和變形的情況時(shí)的性能有非常顯著的提升。
為了更加直觀地展示本文算法的跟蹤情況,圖6給出了本文算法和其他5種主流跟蹤算法的跟蹤結(jié)果比較,圖5中第一到第四行分別對(duì)應(yīng)Jogging-2、lemming、Liquor和Car Scale的跟蹤結(jié)果。該圖中不同顏色的矩形框?qū)?yīng)于不同算法的跟蹤結(jié)果,具體請(qǐng)參考圖5下方的線型說明,其中紅色矩形框?qū)?yīng)的是本文算法的跟蹤結(jié)果。
圖5 4組視頻序列上的部分跟蹤結(jié)果
由圖5可見,Jogging-2序列種第58幀目標(biāo)被部分遮擋,此時(shí)本文算法可以根據(jù)未被遮擋的部分信息進(jìn)行準(zhǔn)確跟蹤,第75幀以后目標(biāo)出遮擋,并在后續(xù)形變干擾下下,除本文算法外其余對(duì)比算法均丟失了目標(biāo);lemming序列中第374幀和452幀目標(biāo)分別經(jīng)歷了兩次遮擋,同時(shí)也存在尺度變化的干擾,最后只有本文算法能夠?qū)δ繕?biāo)穩(wěn)定跟蹤;Liquor序列中目標(biāo)同樣在359幀和769幀時(shí)分別經(jīng)歷了兩次遮擋,并伴隨著尺度變化和旋轉(zhuǎn)等干擾因素,該序列中只有本文算法和KCF算法能夠有效應(yīng)對(duì)這些干擾因素;Car Scale序列中從(130~178)幀目標(biāo)被遮擋并伴隨著尺度變化,該序列只有本文算法和DSST算法能夠準(zhǔn)確定位目標(biāo)同時(shí)適應(yīng)目標(biāo)尺度的變化。
綜上所述,定性實(shí)驗(yàn)進(jìn)一步驗(yàn)證了本文算法在應(yīng)對(duì)遮擋、尺度變化以及目標(biāo)形變等多種干擾因素時(shí)具有較好的準(zhǔn)確性和魯棒性。
本文提出一種尺度自適應(yīng)的分塊核相關(guān)濾波目標(biāo)跟蹤算法,當(dāng)目標(biāo)被遮擋時(shí)可以利用未被遮擋的目標(biāo)子塊提供的位置信息對(duì)目標(biāo)進(jìn)行準(zhǔn)確定位,為了進(jìn)一步提升算法的性能,引入了融合特征HOG-CN.此外,還提出一種利用目標(biāo)子塊間相對(duì)位置的變化情況計(jì)算目標(biāo)尺度的方法。實(shí)驗(yàn)結(jié)果表明,本文算法在綜合性能測(cè)試以及在不同干擾因素下的測(cè)試都有非常出色的表現(xiàn),特別是在應(yīng)對(duì)目標(biāo)遮擋、尺度變化以及目標(biāo)形變等情況時(shí)的性能有顯著提升。