江維創(chuàng),張俊為,桂江生
(浙江理工大學(xué) 信息學(xué)院,杭州 310018)
目標(biāo)跟蹤在計算機視覺領(lǐng)域中是一個基礎(chǔ)性分支,其應(yīng)用非常廣泛,如智能相機、自動駕駛、視頻監(jiān)控等[1-2]。文獻[3-4]提出一種采用在線Boosting方法更新目標(biāo)外觀模型同時最小化誤差積的跟蹤方法,這種在線Boosting方法對于目標(biāo)離開視野的情況較為魯棒,但是跟蹤結(jié)果過于依賴第一幀訓(xùn)練的分類器。文獻[5]提出的跟蹤-學(xué)習(xí)-檢測(TLD)算法,通過將并行處理的跟蹤器結(jié)果與檢測器結(jié)果反饋給學(xué)習(xí)過程,更新目標(biāo)尺度信息以及處理遮擋。此算法的跟蹤效果比文獻[6-9]中的長期跟蹤算法表現(xiàn)好,但是在復(fù)雜背景遮擋情況下,其重檢測過程不滿足實時要求,跟蹤效果不理想。文獻[10]提出一種基于均值偏移(Mean Shift)的尺度自適應(yīng)跟蹤算法,在視頻中通過圖割理論分割出目標(biāo)區(qū)域。但在動態(tài)復(fù)雜背景下,該算法實時分割出目標(biāo)區(qū)域一樣面臨很多困難,獲得的目標(biāo)信息有較大的誤差。文獻[11]通過在搜索空間內(nèi)考慮樣本的分配來構(gòu)建聯(lián)合結(jié)構(gòu)化輸出跟蹤算法(Struck),減輕了在線模型更新中樣本的噪聲問題,但對多目標(biāo)相似性問題較敏感,在遮擋之后容易出現(xiàn)跟錯目標(biāo)等情況。文獻[12]提出一種基于稀疏的判別模型和生成模型相結(jié)合的跟蹤方法(SCM),利用圖像子塊空間信息的直方圖(HOG)方法處理目標(biāo)遮擋問題,在跟蹤準(zhǔn)確度和成功率上比文獻[13-14]中的方法均有較高的提升,但是跟蹤過程計算復(fù)雜度高,對于實際跟蹤很難達到實時要求。文獻[15]提出一種核化循環(huán)結(jié)構(gòu)(CSK)跟蹤算法。該算法基于文獻[16]提出的相關(guān)濾波器跟蹤機制,引入核函數(shù)并使用灰度特征,跟蹤速度有很大的提升,在CSK的基礎(chǔ)上,文獻[17]提出一種核相關(guān)濾波器(Kernelized Correlation Filte,KCF)跟蹤算法,該算法對核函數(shù)以及HOG[18]特征做了改進,雖然跟蹤魯棒性得到了一定的提升,但是對于目標(biāo)遮擋問題并沒有解決。
在跟蹤模型更新方面,多數(shù)算法更注重跟蹤分類器的反饋結(jié)果,缺乏跟蹤分類器的前向信息。受KCF跟蹤算法的啟發(fā),本文提出一種改進的KCF算法,考慮相鄰幀之間的關(guān)系以及跟蹤分類器的前向信息,旨在處理目標(biāo)遮擋問題。
KCF跟蹤算法是一種鑒別式跟蹤方法。算法在跟蹤過程中訓(xùn)練一個目標(biāo)檢測器,用目標(biāo)檢測器去檢測下一幀預(yù)測位置是否為目標(biāo),通過新檢測結(jié)果去更新訓(xùn)練集進而更新目標(biāo)檢測器。在訓(xùn)練目標(biāo)檢測器時選取目標(biāo)區(qū)域為正樣本,對目標(biāo)區(qū)域向四周循環(huán)移位獲得負(fù)樣本。樣本訓(xùn)練過程為嶺回歸問題,即:
(1)
其中,λ為防止過擬合的正則化參數(shù)。訓(xùn)練的目標(biāo)是通過求解一組權(quán)值w得到一個分類器:
f(z)=wTz
(2)
為了提升分類器的性能,本文利用循環(huán)矩陣的性質(zhì)避開求逆運算,將權(quán)重向量w的求解變換到離散傅立葉變換(DFT)域,并引入核函數(shù)改進為性能更強的非線性回歸函數(shù)。轉(zhuǎn)換到DFT域時,式(2)變換如下:
(3)
圖1 測試樣本目標(biāo)位置KCF分類器響應(yīng)值
目標(biāo)在運動過程中不可避免發(fā)生遮擋現(xiàn)象。對于判別式跟蹤算法,目標(biāo)一旦受遮擋,則目標(biāo)對應(yīng)區(qū)域作為跟蹤判別的特征將受到大量干擾。由于目標(biāo)的特征部分或全部丟失,即使目標(biāo)再次出現(xiàn)在視野中,跟蹤算法也無法判別,最終判別式跟蹤模型將會失效。針對目標(biāo)遮擋的問題,本文在KCF跟蹤模型的基礎(chǔ)之上提出一種目標(biāo)遮擋判別方法以及判別遮擋之后目標(biāo)搜索方法。
目標(biāo)在運動過程中一旦發(fā)生遮擋,則分類器響應(yīng)最大值因目標(biāo)區(qū)域特征受干擾而大幅下降。圖2為KCF算法在Jogging和Freeman4測試序列集上跟蹤時分類器響應(yīng)最大值的分布。在圖2(a)中,在第64幀圖像中的目標(biāo)開始被遮擋,在第1幀~第64幀圖像中分類器響應(yīng)最大值分布于0.3~0.6區(qū)間;在第64幀~第73幀圖像中目標(biāo)由部分被遮擋至完全被遮擋,跟蹤區(qū)域內(nèi)目標(biāo)特征逐漸減少直至消失,分類器響應(yīng)最大值急劇下降至0.2以下;在第102幀圖像中即使目標(biāo)再次出現(xiàn),分類器也無法判別目標(biāo)導(dǎo)致目標(biāo)丟失。在圖2(b)中,在第8幀圖像中目標(biāo)無干擾,在第34幀圖像中目標(biāo)部分被遮擋,在第50幀圖像中目標(biāo)完全被遮擋。在這3種條件下,分類器響應(yīng)最大值分別在3個區(qū)間中。分類器響應(yīng)最大值的大小取決于跟蹤區(qū)域內(nèi)目標(biāo)特征點的受干擾程度,目標(biāo)被遮擋部分越多分類器響應(yīng)最大值越小。
圖2 KCF算法分類器響應(yīng)最大值的分布
基于分類器響應(yīng)最大值的變化特點,本文通過前向分類器響應(yīng)的回饋信息來預(yù)測后向目標(biāo)是否發(fā)生遮擋。判別機制如下:
max[Fi+1(z)]-rf(i+1-N,i)(z)<0
(4)
其中,i為任意幀的幀序號,N為幀區(qū)間長度,Fi+1(z)為第i+1幀的分類器響應(yīng)序列,f(i+1-N,i)(z)為前向分類器響應(yīng)最大值的期望,r為遮擋判別閾值。前向分類器的響應(yīng)最大值期望如下:
(5)
其中,fj(z)為第j幀分類器響應(yīng)序列的最大值,θj為權(quán)值系數(shù),其更新策略如下:
(6)
由此得到一個更新后的N維權(quán)值向量θ(i+2-N,i+1)。在遮擋判別閾值范圍內(nèi),第j幀分類器響應(yīng)的最大值距離前向分類器響應(yīng)最大值的期望越近,賦予其權(quán)值也越大;而在遮擋判別閾值范圍之外,目標(biāo)發(fā)生遮擋,停止跟蹤模型的更新,并且對θj賦予零。前向分類器響應(yīng)最大值期望的更新需要提供一個初始值,本文將第1幀到第N幀分類器響應(yīng)最大值的均值作為初始值:
(7)
當(dāng)遮擋檢測算法檢測到遮擋行為時,跟蹤算法已丟失目標(biāo),對于再次出現(xiàn)在攝像機視野中的目標(biāo),需要先搜索目標(biāo)再恢復(fù)跟蹤。本文提出一種塊區(qū)域螺旋搜索法來恢復(fù)目標(biāo)跟蹤。首先以停留的目標(biāo)區(qū)域為中心向外擴大構(gòu)造一個塊區(qū)域,如圖3所示,中心矩形框為目標(biāo)區(qū)域,外接大矩形框為塊區(qū)域,滑動搜索方式為螺旋逆時針?biāo)阉鳌?/p>
圖3 塊區(qū)域搜索示意圖
目標(biāo)在被遮擋之后重新出現(xiàn)在攝像機視野中時,其距離原始目標(biāo)區(qū)域與塊區(qū)域周邊相比,遍歷路徑較短。因此,該方法相比自上而下、自左向右搜索能夠更快速地尋找到目標(biāo)。在中心目標(biāo)區(qū)域以圖3中的方式滑動搜索,KCF算法使用改進的HOG特征,由文獻[18]可知,滑動步長采用8個像素可以達到最優(yōu)的效果。由此計算滑動塊對應(yīng)子圖像與分類器的響應(yīng)fs,然后判別是否再次找到目標(biāo),即:
fs-rf(i+1-N,i)(z)≥0
(8)
式(8)成立即找到目標(biāo)后恢復(fù)跟蹤模型。具體算法如下:
算法1基于前向分類器的遮擋處理算法
輸入圖像序列以及第1幀目標(biāo)位置
輸出預(yù)測的目標(biāo)位置
FOR i= 1 to 最后一幀
1.獲取分類器響應(yīng)最大值fi(z);
2.WHILE i<= N
由式(7)獲取初始值finit
END WHILE
3.由式(5)和式(6)更新前N幀分類器響應(yīng)最大值期望f(i-N,i-1)(z);
4.IF fi(z)>= f(i-N,i-1)(z)
確定目標(biāo)位置,從當(dāng)前退出本次循環(huán)進入下一次循環(huán)
ELSE
DO
計算滑動窗口響應(yīng)值fs
WHILE fs< r f(i-N,i-1)(z)
END DO
確定目標(biāo)位置,進入下一次循環(huán)
END IF
END FOR
本文跟蹤算法在MATLAB 2014b實驗環(huán)境下完成,實驗平臺為Intel(R) Core(TM) i5 6300(HQ) CPU四核2.3 GHz,RAM為8 GB,操作系統(tǒng)為Windows 10,64位操作系統(tǒng)。為了測試本文跟蹤算法的性能,選擇OTB(Object Tracking Benchmark)[19]中的5組視頻序列作為實驗數(shù)據(jù),對遮擋處理算法進行驗證,并在OTB代碼庫上將本文算法與4種跟蹤算法(Staple、DSST、KCF、SST)作了對比分析。本文跟蹤算法的參數(shù)設(shè)置如下:r為遮擋判別閾值,其范圍為0
為了驗證遮擋處理算法的效果,采用OTB中的帶有行人遮擋物的David3和Jogging作為測試序列,圖4為2個測試序列中目標(biāo)經(jīng)過遮擋物的過程,顯然目標(biāo)重新出現(xiàn)在視野中后本文算法能夠再次跟蹤目標(biāo)。圖5為跟蹤目標(biāo)時分類器響應(yīng)最大值的分布。在Jogging第62幀圖像中與David3第76幀圖像中,遮擋處理算法檢測到目標(biāo)被遮擋,此時跟蹤模型停止更新,開始在周圍區(qū)域搜索目標(biāo)并計算滑動窗響應(yīng)值;在Jogging第69幀圖像中與David3第84幀圖像中,目標(biāo)完全被遮擋,滑動窗響應(yīng)最大值達到最小,直到在Jogging第79幀圖像與David3第93幀圖像中滑動窗響應(yīng)值達到閾值范圍以內(nèi),算法判定搜索到目標(biāo)并恢復(fù)跟蹤模型。圖5中David3的2次波谷是由于目標(biāo)來回運動過程中發(fā)生了2次遮擋。由于2次遮擋情況相似,本文只展示第1次遮擋的情況。
圖4 跟蹤算法再次搜索到目標(biāo)示意圖
圖5 分類器響應(yīng)最大值分布
本文算法在5個OTB測試序列中與4種跟蹤算法(Staple,DSST,KCF,SST)的對比結(jié)果如圖6所示。
bolt序列能夠測試跟蹤算法對目標(biāo)遮擋、形變,目標(biāo)平面旋轉(zhuǎn)以及背景雜波方面的性能。由圖6(a)可以看出,在第222幀圖像中由于目標(biāo)旋轉(zhuǎn)以及多目標(biāo)的相似性,KCF跟蹤了錯誤的目標(biāo),SST以及DSST已經(jīng)完全丟失目標(biāo);在第350幀圖像中,目標(biāo)經(jīng)歷遮擋以及在平面內(nèi)發(fā)生一定的旋轉(zhuǎn),本文算法和Staple能夠準(zhǔn)確跟蹤。couple序列為2個目標(biāo),運動過程中主要發(fā)生目標(biāo)形變以及目標(biāo)旋轉(zhuǎn)。由圖6(b)可以看出,在第91幀圖像中,Staple、DSST以及SST已完全丟失目標(biāo),KCF跟蹤結(jié)果發(fā)生部分偏離;在第140幀圖像中,本文算法的跟蹤結(jié)果為最優(yōu),其他算法跟蹤結(jié)果產(chǎn)生了一定的偏移。lemming序列背景復(fù)雜,目標(biāo)位置變化以及目標(biāo)形變較多,對目標(biāo)尺度變化、遮擋、快速移動、平面旋轉(zhuǎn)以及目標(biāo)離開視野能夠進行魯棒性測試。由圖6(c)可以看出,在第377幀圖像中,目標(biāo)被遮擋后再次出現(xiàn),Staple、DSST以及KCF已經(jīng)完全丟失目標(biāo),本文算法以及SST能夠繼續(xù)跟蹤;在第1 267幀圖像中,只有本文算法能夠繼續(xù)跟蹤目標(biāo)。girl序列主要測試算法對目標(biāo)遮擋和尺度變化的性能。由圖6(d)可以看出,在第433幀圖像中,目標(biāo)大部分被遮擋,Staple和KCF跟蹤產(chǎn)生了偏離;在第500幀圖像中,目標(biāo)重新出現(xiàn)時只有本文算法與SST能夠繼續(xù)跟蹤。walking2序列主要測試算法對尺度變化、目標(biāo)遮擋方面的性能。由圖6(e)可以看出,在第212幀圖像中,目標(biāo)被遮擋,5種算法均能繼續(xù)跟蹤;在第500幀圖像中,KCF已經(jīng)偏離目標(biāo),其他4種均能繼續(xù)跟蹤。在電子版的圖中,紅色、黃色、綠色、藍(lán)色、黑色分別代表本文算法、Staple算法、KCF算法、DSST算法、SST算法。
3.3.1 跟蹤準(zhǔn)確度與成功率分析
準(zhǔn)確度定義為跟蹤框中心距離目標(biāo)真實位置中心在一定閾值范圍以內(nèi)的幀數(shù)占視頻序列總幀數(shù)的比例。閾值為20像素時對應(yīng)的跟蹤準(zhǔn)確度為當(dāng)前算法的代表準(zhǔn)確度。
成功率定義為在邊界框的重疊閾值內(nèi)跟蹤成功的幀數(shù)占視頻序列總幀數(shù)的比例,設(shè)跟蹤的邊界框為GA,準(zhǔn)確的邊界框為GB,則重疊閾值為:
(9)
在跟蹤成功率圖中,重疊閾值的分布由0到1,每個算法對應(yīng)成功率曲線下面的面積(AUC)為當(dāng)前算法的成功率。圖7為5種跟蹤算法在遮擋測試序列中的跟蹤性能展示,分別為跟蹤準(zhǔn)確度和跟蹤成功率。
圖7 5種跟蹤算法的對比結(jié)果
本文在OTB庫中對5種算法采用一次通過評估方法(OPE)。5種跟蹤算法的代表準(zhǔn)確度與代表成功率均已在圖中標(biāo)注。在跟蹤準(zhǔn)確度中,本文算法相比于Staple、DSST、KCF、SST分別提高了6.1%、7.1%、10.4%、23.0%,平均提高了11.7%;在跟蹤成功率中,本文算法相比于Staple、DSST、KCF、SST分別提高了1.5%、10.9%、18.7%、25.8%,平均提高了14.2%。由文獻[13]可知,跟蹤成功率對算法的評估結(jié)果比跟蹤準(zhǔn)確度評估結(jié)果更加精確。
3.3.2 跟蹤速度分析
表1為本文算法與其他4種算法在5個序列上的跟蹤速度對比結(jié)果。從表1可以看出,KCF的平均速度最高,達到了238.6 frame/s,這取決于其在訓(xùn)練檢測時采用了循環(huán)矩陣與傅里葉變換的特殊性質(zhì)。由于本文算法在KCF基礎(chǔ)之上加入了遮擋處理模型,因此跟蹤速度比KCF慢,但平均速度仍然達到了55.2 frame/s,顯然達到了實時的要求。
表1 5種算法的跟蹤速度對比 (frame·s-1)
本文在KCF算法基礎(chǔ)上提出一種改進的目標(biāo)跟蹤框架,框架分為2個部分,即目標(biāo)遮擋檢測和目標(biāo)搜索。本文跟蹤框架根據(jù)前向分類器響應(yīng)最大值回饋信息與當(dāng)前分類器響應(yīng)最大值比較,由設(shè)定的遮擋判別閾值來判斷是否發(fā)生遮擋。目標(biāo)遮擋后,跟蹤算法搜索再次出現(xiàn)的目標(biāo),滑動框在塊區(qū)域內(nèi)以中心螺旋搜索的方式來搜索目標(biāo)。在OTB代碼庫及測試序列集中測試結(jié)果表明,本文算法在跟蹤準(zhǔn)確度和跟蹤成功率上均有提高,抗遮擋表現(xiàn)優(yōu)秀,對目標(biāo)長期跟蹤的魯棒性較強。下一步將搭建實驗平臺進行實時跟蹤檢測。