江維創,張俊為,桂江生
(浙江理工大學 信息學院,杭州 310018)
目標跟蹤在計算機視覺領域中是一個基礎性分支,其應用非常廣泛,如智能相機、自動駕駛、視頻監控等[1-2]。文獻[3-4]提出一種采用在線Boosting方法更新目標外觀模型同時最小化誤差積的跟蹤方法,這種在線Boosting方法對于目標離開視野的情況較為魯棒,但是跟蹤結果過于依賴第一幀訓練的分類器。文獻[5]提出的跟蹤-學習-檢測(TLD)算法,通過將并行處理的跟蹤器結果與檢測器結果反饋給學習過程,更新目標尺度信息以及處理遮擋。此算法的跟蹤效果比文獻[6-9]中的長期跟蹤算法表現好,但是在復雜背景遮擋情況下,其重檢測過程不滿足實時要求,跟蹤效果不理想。文獻[10]提出一種基于均值偏移(Mean Shift)的尺度自適應跟蹤算法,在視頻中通過圖割理論分割出目標區域。但在動態復雜背景下,該算法實時分割出目標區域一樣面臨很多困難,獲得的目標信息有較大的誤差。文獻[11]通過在搜索空間內考慮樣本的分配來構建聯合結構化輸出跟蹤算法(Struck),減輕了在線模型更新中樣本的噪聲問題,但對多目標相似性問題較敏感,在遮擋之后容易出現跟錯目標等情況。文獻[12]提出一種基于稀疏的判別模型和生成模型相結合的跟蹤方法(SCM),利用圖像子塊空間信息的直方圖(HOG)方法處理目標遮擋問題,在跟蹤準確度和成功率上比文獻[13-14]中的方法均有較高的提升,但是跟蹤過程計算復雜度高,對于實際跟蹤很難達到實時要求。文獻[15]提出一種核化循環結構(CSK)跟蹤算法。該算法基于文獻[16]提出的相關濾波器跟蹤機制,引入核函數并使用灰度特征,跟蹤速度有很大的提升,在CSK的基礎上,文獻[17]提出一種核相關濾波器(Kernelized Correlation Filte,KCF)跟蹤算法,該算法對核函數以及HOG[18]特征做了改進,雖然跟蹤魯棒性得到了一定的提升,但是對于目標遮擋問題并沒有解決。
在跟蹤模型更新方面,多數算法更注重跟蹤分類器的反饋結果,缺乏跟蹤分類器的前向信息。受KCF跟蹤算法的啟發,本文提出一種改進的KCF算法,考慮相鄰幀之間的關系以及跟蹤分類器的前向信息,旨在處理目標遮擋問題。
KCF跟蹤算法是一種鑒別式跟蹤方法。算法在跟蹤過程中訓練一個目標檢測器,用目標檢測器去檢測下一幀預測位置是否為目標,通過新檢測結果去更新訓練集進而更新目標檢測器。在訓練目標檢測器時選取目標區域為正樣本,對目標區域向四周循環移位獲得負樣本。樣本訓練過程為嶺回歸問題,即:
(1)
其中,λ為防止過擬合的正則化參數。訓練的目標是通過求解一組權值w得到一個分類器:
f(z)=wTz
(2)
為了提升分類器的性能,本文利用循環矩陣的性質避開求逆運算,將權重向量w的求解變換到離散傅立葉變換(DFT)域,并引入核函數改進為性能更強的非線性回歸函數。轉換到DFT域時,式(2)變換如下:
(3)


圖1 測試樣本目標位置KCF分類器響應值
目標在運動過程中不可避免發生遮擋現象。對于判別式跟蹤算法,目標一旦受遮擋,則目標對應區域作為跟蹤判別的特征將受到大量干擾。由于目標的特征部分或全部丟失,即使目標再次出現在視野中,跟蹤算法也無法判別,最終判別式跟蹤模型將會失效。針對目標遮擋的問題,本文在KCF跟蹤模型的基礎之上提出一種目標遮擋判別方法以及判別遮擋之后目標搜索方法。
目標在運動過程中一旦發生遮擋,則分類器響應最大值因目標區域特征受干擾而大幅下降。圖2為KCF算法在Jogging和Freeman4測試序列集上跟蹤時分類器響應最大值的分布。在圖2(a)中,在第64幀圖像中的目標開始被遮擋,在第1幀~第64幀圖像中分類器響應最大值分布于0.3~0.6區間;在第64幀~第73幀圖像中目標由部分被遮擋至完全被遮擋,跟蹤區域內目標特征逐漸減少直至消失,分類器響應最大值急劇下降至0.2以下;在第102幀圖像中即使目標再次出現,分類器也無法判別目標導致目標丟失。在圖2(b)中,在第8幀圖像中目標無干擾,在第34幀圖像中目標部分被遮擋,在第50幀圖像中目標完全被遮擋。在這3種條件下,分類器響應最大值分別在3個區間中。分類器響應最大值的大小取決于跟蹤區域內目標特征點的受干擾程度,目標被遮擋部分越多分類器響應最大值越小。

圖2 KCF算法分類器響應最大值的分布
基于分類器響應最大值的變化特點,本文通過前向分類器響應的回饋信息來預測后向目標是否發生遮擋。判別機制如下:
max[Fi+1(z)]-rf(i+1-N,i)(z)<0
(4)
其中,i為任意幀的幀序號,N為幀區間長度,Fi+1(z)為第i+1幀的分類器響應序列,f(i+1-N,i)(z)為前向分類器響應最大值的期望,r為遮擋判別閾值。前向分類器的響應最大值期望如下:
(5)
其中,fj(z)為第j幀分類器響應序列的最大值,θj為權值系數,其更新策略如下:
(6)
由此得到一個更新后的N維權值向量θ(i+2-N,i+1)。在遮擋判別閾值范圍內,第j幀分類器響應的最大值距離前向分類器響應最大值的期望越近,賦予其權值也越大;而在遮擋判別閾值范圍之外,目標發生遮擋,停止跟蹤模型的更新,并且對θj賦予零。前向分類器響應最大值期望的更新需要提供一個初始值,本文將第1幀到第N幀分類器響應最大值的均值作為初始值:
(7)
當遮擋檢測算法檢測到遮擋行為時,跟蹤算法已丟失目標,對于再次出現在攝像機視野中的目標,需要先搜索目標再恢復跟蹤。本文提出一種塊區域螺旋搜索法來恢復目標跟蹤。首先以停留的目標區域為中心向外擴大構造一個塊區域,如圖3所示,中心矩形框為目標區域,外接大矩形框為塊區域,滑動搜索方式為螺旋逆時針搜索。

圖3 塊區域搜索示意圖
目標在被遮擋之后重新出現在攝像機視野中時,其距離原始目標區域與塊區域周邊相比,遍歷路徑較短。因此,該方法相比自上而下、自左向右搜索能夠更快速地尋找到目標。在中心目標區域以圖3中的方式滑動搜索,KCF算法使用改進的HOG特征,由文獻[18]可知,滑動步長采用8個像素可以達到最優的效果。由此計算滑動塊對應子圖像與分類器的響應fs,然后判別是否再次找到目標,即:
fs-rf(i+1-N,i)(z)≥0
(8)
式(8)成立即找到目標后恢復跟蹤模型。具體算法如下:
算法1基于前向分類器的遮擋處理算法
輸入圖像序列以及第1幀目標位置
輸出預測的目標位置
FOR i= 1 to 最后一幀
1.獲取分類器響應最大值fi(z);
2.WHILE i<= N
由式(7)獲取初始值finit
END WHILE
3.由式(5)和式(6)更新前N幀分類器響應最大值期望f(i-N,i-1)(z);
4.IF fi(z)>= f(i-N,i-1)(z)
確定目標位置,從當前退出本次循環進入下一次循環
ELSE
DO
計算滑動窗口響應值fs
WHILE fs< r f(i-N,i-1)(z)
END DO
確定目標位置,進入下一次循環
END IF
END FOR
本文跟蹤算法在MATLAB 2014b實驗環境下完成,實驗平臺為Intel(R) Core(TM) i5 6300(HQ) CPU四核2.3 GHz,RAM為8 GB,操作系統為Windows 10,64位操作系統。為了測試本文跟蹤算法的性能,選擇OTB(Object Tracking Benchmark)[19]中的5組視頻序列作為實驗數據,對遮擋處理算法進行驗證,并在OTB代碼庫上將本文算法與4種跟蹤算法(Staple、DSST、KCF、SST)作了對比分析。本文跟蹤算法的參數設置如下:r為遮擋判別閾值,其范圍為0
為了驗證遮擋處理算法的效果,采用OTB中的帶有行人遮擋物的David3和Jogging作為測試序列,圖4為2個測試序列中目標經過遮擋物的過程,顯然目標重新出現在視野中后本文算法能夠再次跟蹤目標。圖5為跟蹤目標時分類器響應最大值的分布。在Jogging第62幀圖像中與David3第76幀圖像中,遮擋處理算法檢測到目標被遮擋,此時跟蹤模型停止更新,開始在周圍區域搜索目標并計算滑動窗響應值;在Jogging第69幀圖像中與David3第84幀圖像中,目標完全被遮擋,滑動窗響應最大值達到最小,直到在Jogging第79幀圖像與David3第93幀圖像中滑動窗響應值達到閾值范圍以內,算法判定搜索到目標并恢復跟蹤模型。圖5中David3的2次波谷是由于目標來回運動過程中發生了2次遮擋。由于2次遮擋情況相似,本文只展示第1次遮擋的情況。

圖4 跟蹤算法再次搜索到目標示意圖

圖5 分類器響應最大值分布
本文算法在5個OTB測試序列中與4種跟蹤算法(Staple,DSST,KCF,SST)的對比結果如圖6所示。
bolt序列能夠測試跟蹤算法對目標遮擋、形變,目標平面旋轉以及背景雜波方面的性能。由圖6(a)可以看出,在第222幀圖像中由于目標旋轉以及多目標的相似性,KCF跟蹤了錯誤的目標,SST以及DSST已經完全丟失目標;在第350幀圖像中,目標經歷遮擋以及在平面內發生一定的旋轉,本文算法和Staple能夠準確跟蹤。couple序列為2個目標,運動過程中主要發生目標形變以及目標旋轉。由圖6(b)可以看出,在第91幀圖像中,Staple、DSST以及SST已完全丟失目標,KCF跟蹤結果發生部分偏離;在第140幀圖像中,本文算法的跟蹤結果為最優,其他算法跟蹤結果產生了一定的偏移。lemming序列背景復雜,目標位置變化以及目標形變較多,對目標尺度變化、遮擋、快速移動、平面旋轉以及目標離開視野能夠進行魯棒性測試。由圖6(c)可以看出,在第377幀圖像中,目標被遮擋后再次出現,Staple、DSST以及KCF已經完全丟失目標,本文算法以及SST能夠繼續跟蹤;在第1 267幀圖像中,只有本文算法能夠繼續跟蹤目標。girl序列主要測試算法對目標遮擋和尺度變化的性能。由圖6(d)可以看出,在第433幀圖像中,目標大部分被遮擋,Staple和KCF跟蹤產生了偏離;在第500幀圖像中,目標重新出現時只有本文算法與SST能夠繼續跟蹤。walking2序列主要測試算法對尺度變化、目標遮擋方面的性能。由圖6(e)可以看出,在第212幀圖像中,目標被遮擋,5種算法均能繼續跟蹤;在第500幀圖像中,KCF已經偏離目標,其他4種均能繼續跟蹤。在電子版的圖中,紅色、黃色、綠色、藍色、黑色分別代表本文算法、Staple算法、KCF算法、DSST算法、SST算法。
3.3.1 跟蹤準確度與成功率分析
準確度定義為跟蹤框中心距離目標真實位置中心在一定閾值范圍以內的幀數占視頻序列總幀數的比例。閾值為20像素時對應的跟蹤準確度為當前算法的代表準確度。
成功率定義為在邊界框的重疊閾值內跟蹤成功的幀數占視頻序列總幀數的比例,設跟蹤的邊界框為GA,準確的邊界框為GB,則重疊閾值為:
(9)
在跟蹤成功率圖中,重疊閾值的分布由0到1,每個算法對應成功率曲線下面的面積(AUC)為當前算法的成功率。圖7為5種跟蹤算法在遮擋測試序列中的跟蹤性能展示,分別為跟蹤準確度和跟蹤成功率。

圖7 5種跟蹤算法的對比結果
本文在OTB庫中對5種算法采用一次通過評估方法(OPE)。5種跟蹤算法的代表準確度與代表成功率均已在圖中標注。在跟蹤準確度中,本文算法相比于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]可知,跟蹤成功率對算法的評估結果比跟蹤準確度評估結果更加精確。
3.3.2 跟蹤速度分析
表1為本文算法與其他4種算法在5個序列上的跟蹤速度對比結果。從表1可以看出,KCF的平均速度最高,達到了238.6 frame/s,這取決于其在訓練檢測時采用了循環矩陣與傅里葉變換的特殊性質。由于本文算法在KCF基礎之上加入了遮擋處理模型,因此跟蹤速度比KCF慢,但平均速度仍然達到了55.2 frame/s,顯然達到了實時的要求。

表1 5種算法的跟蹤速度對比 (frame·s-1)
本文在KCF算法基礎上提出一種改進的目標跟蹤框架,框架分為2個部分,即目標遮擋檢測和目標搜索。本文跟蹤框架根據前向分類器響應最大值回饋信息與當前分類器響應最大值比較,由設定的遮擋判別閾值來判斷是否發生遮擋。目標遮擋后,跟蹤算法搜索再次出現的目標,滑動框在塊區域內以中心螺旋搜索的方式來搜索目標。在OTB代碼庫及測試序列集中測試結果表明,本文算法在跟蹤準確度和跟蹤成功率上均有提高,抗遮擋表現優秀,對目標長期跟蹤的魯棒性較強。下一步將搭建實驗平臺進行實時跟蹤檢測。