王 鑫,劉中旺
(江南大學 物聯(lián)網(wǎng)工程學院,江蘇 無錫 214122)
計算機視覺作為人工智能技術(shù)的重要領(lǐng)域,堪稱人工智能時代的“眼睛”。它使用攝像機采集信息并通過計算機處理來模擬人類視覺,以實現(xiàn)對視覺信息的提取、分析和處理,旨在讓計算機能“看見”。它在多個領(lǐng)域都有涉及,如機器學習、圖像信號處理、數(shù)理統(tǒng)計、認知科學以及控制工程等[1]。
目標跟蹤技術(shù)是計算機視覺的主要組成部分與研究熱點,已得到迅速的發(fā)展并在無人駕駛、軍事偵察、視頻監(jiān)控和人機交互等領(lǐng)域廣泛應(yīng)用。在無人駕駛領(lǐng)域,利用目標跟蹤技術(shù)實現(xiàn)動態(tài)目標的跟蹤;在軍事偵察領(lǐng)域,利用無人機實施對特定目標的定位、跟蹤和打擊等任務(wù);在視頻監(jiān)控領(lǐng)域,基于目標跟蹤技術(shù)的智能監(jiān)控系統(tǒng)能有效獲取信息,已被廣泛應(yīng)用于國防、學校等公共場所;在人機交互領(lǐng)域中,目標跟蹤可實現(xiàn)對手勢動作的檢測與跟蹤[2]。
本文重點討論單目標跟蹤,它是指在一段視頻序列中,通過初始化目標在第一幀圖像中的位置信息,并在后續(xù)圖像幀中檢測、標定目標位置以實現(xiàn)目標跟蹤[3]。
盡管目標跟蹤技術(shù)在現(xiàn)實場景中具有很重要的實用價值和廣闊的發(fā)展前景,跟蹤過程中的目標消失、目標外觀變化、背景光線干擾、目標快速移動等諸多問題對目標跟蹤技術(shù)造成了嚴峻的挑戰(zhàn)。為解決這些問題并建立高效快速的目標跟蹤器,大量的目標跟蹤算法應(yīng)運而生[4]。其中包括模板匹配法、光流法、均值漂移法[5]、粒子濾波算法[6]、跟蹤學習檢測算法[7]、相關(guān)濾波算法與深度學習算法。后兩種是當下研究最多的兩大類算法,其中深度學習算法主要得益于卷積神經(jīng)網(wǎng)絡(luò)不同層的卷積輸出所提取的特征能很好地表示目標,算法準確率較高。但其往往需要大量的計算,因此算法速度較慢[8]。而相關(guān)濾波算法則是本文討論的重點。
相關(guān)濾波器常作為檢測器,它們會對視頻場景中目標對象產(chǎn)生較大的相關(guān)響應(yīng)峰值,而背景的響應(yīng)值相對較低,這為提取目標信息創(chuàng)造了有利條件。最小輸出平方誤差濾波器(MOSSE,minimum output sum of squared error)[9]是第一個應(yīng)用相關(guān)濾波理念的跟蹤算法,其利用傅里葉變換將空間域的卷積運算轉(zhuǎn)化為頻域的點乘運算,提高了運行速度。但由于訓練樣本數(shù)量不足,跟蹤模型易受到背景和目標外觀變化的影響。為此文獻[10]提出基于核函數(shù)的循環(huán)結(jié)構(gòu)跟蹤(CSK,circulant structure of tracking with Kernels)模型。文獻[11]則在CSK算法基礎(chǔ)上引入了多通道方向梯度直方圖(HOG,histograms of oriented gradients)[12]特征以及高斯核函數(shù)提出了核化相關(guān)濾波(KCF,Kernelized correlation filters)跟蹤算法進一步提升了濾波器的訓練速度與性能。但上述3種算法在跟蹤過程中使用的目標跟蹤框是固定尺寸的,當目標尺度變化時算法的跟蹤性能會有明顯的下降。于是文獻[13]提出了判別式尺度空間跟蹤(DSST,discriminative scale space tracker)算法,將目標定位和尺度預(yù)測分離,通過添加一個獨立的尺度相關(guān)濾波器來實現(xiàn)目標跟蹤框的尺度自適應(yīng)變化。跟蹤算法在處理靠近圖像邊緣的目標時性能會下降,即邊界效應(yīng)問題。為此文獻[14]提出基于空間正則化判別相關(guān)濾波器(SRDCF,spatially regularized discriminative correlation filter)算法,而時空正則相關(guān)濾波器(STRCF,learning spatial-temporal regularized correlation filters)[15]則通過引入時間正則項實現(xiàn)了時空信息的聯(lián)合處理,進一步提升了算法的跟蹤性能。與SRDCF算法不同,模板和像素學習總和(Staple,sum of template and pixel-wise learners)跟蹤算法[16]將HOG與顏色直方圖特征融合來緩解邊界效應(yīng)。文獻[17]提出了基于上下文感知的跟蹤算法,將上下文信息引入濾波器的訓練過程中,提升了算法性能。視覺跟蹤學習背景感知相關(guān)濾波器(BACF,learning background-aware correlation filters for visual tracking)算法[18]采用二值掩膜方案裁剪出目標樣本來緩解邊界效應(yīng)。文獻[19]提出的超越相關(guān)濾波器(CCOT,beyond correlation filters:learning continuous convolution operators for visual tracking)算法對特征圖插值,針對插值后的每個特征訓練對應(yīng)的相關(guān)濾波器,通過濾波器響應(yīng)峰值區(qū)域預(yù)測目標位置,但由于通道數(shù)過多影響了跟蹤速度。于是文獻[20]分別從濾波器選擇、樣本集、模型更新3個角度對其優(yōu)化,提出了用于跟蹤的高效卷積算子(ECO,efficient convolution operators for tracking)。文獻[21]提出用于密集預(yù)測的級聯(lián)融合網(wǎng)絡(luò)(CFNet,cascade fusion network for dense prediction)算法,在孿生網(wǎng)絡(luò)中加入相關(guān)濾波層來實現(xiàn)在線更新,并實現(xiàn)了在深度學習模型中不進行分模塊或分階段訓練,直接優(yōu)化任務(wù)總目標的端到端學習。
大部分相關(guān)濾波跟蹤算法采用逐幀更新的模型并不能適應(yīng)一些復雜情況,如光照變化、目標快速運動、運動模糊以及尺度變化等,這將導致濾波器模型退化[22]。對此有相關(guān)研究通過對跟蹤結(jié)果進行置信度評估[23]來緩解該問題。近年來深度跟蹤算法[24]將深度學習和相關(guān)濾波算法相結(jié)合來進一步提升算法的精確度。雖然深度特征表示具有良好的抗干擾能力和目標表征能力,但深度跟蹤器難以滿足目標跟蹤實時性要求。
相關(guān)濾波跟蹤算法是一種回歸判別式方法,其將目標跟蹤視作視頻序列中所有幀的目標檢測任務(wù),使用目標圖像特征訓練濾波器,并將圖像中的目標區(qū)域和背景區(qū)域分別作為正、負樣本。算法在后續(xù)幀中使用訓練好的濾波器器尋找最優(yōu)解,并基于每一幀圖像中的跟蹤結(jié)果對濾波器進行更新。
相關(guān)濾波跟蹤算法主要是利用信號的相關(guān)性來實現(xiàn)目標跟蹤。跟蹤過程中將目標區(qū)域和待檢測區(qū)域視作信號,計算兩者之間的相關(guān)性,相關(guān)性越大,得到的濾波器響應(yīng)越強[25],并將相關(guān)性最大的區(qū)域預(yù)測為跟蹤區(qū)域。因此為實現(xiàn)目標跟蹤,需要設(shè)計訓練出一個最優(yōu)的濾波器模板,將輸入圖像映射到該模板上,通過得到的響應(yīng)峰值區(qū)域以確定目標中心區(qū)域。
以第一個將相關(guān)濾波與目標跟蹤相結(jié)合的算法MOSSE為例,從數(shù)學角度對相關(guān)濾波算法的原理進行具體闡述。
g=h?f
(1)
其中:g表示響應(yīng)輸出,h表示濾波模板,f表示輸入的圖像信息,?表示卷積運算關(guān)系。將g設(shè)計為高斯形狀的響應(yīng)輸出,已知時域內(nèi)的卷積等于頻域上的乘積,自然想到利用快速傅里葉變換(FFT,fast Fourier transform)快速傅里葉變換來簡化計算。對于n×n大小的圖片,循環(huán)卷積運算的時間復雜度為O(n4),而FFT只需要O(n2·lb(n)),極大地減少了運算量。f與h做相關(guān)運算實際是將f與旋轉(zhuǎn)了180度的h做卷積,故下面轉(zhuǎn)換到頻域的表達式與傳統(tǒng)轉(zhuǎn)換公式有差別。
G=H*·F
(2)
其中:G,F(xiàn)分別是g,f經(jīng)離散傅里葉變換的結(jié)果,而H*是頻域上的濾波模板取共軛,·表示點積運算。對上式變形,得到:
(3)
在實際的視覺目標跟蹤中,鑒于目標的外觀變換等因素可能會使得到的濾波器模板適用場景有限,有必要以包含目標在內(nèi)的多個圖像作為訓練樣本來提升濾波器的魯棒性:
(4)
其中:m代表輸入圖像的幀數(shù),F(xiàn)i代表頻域中輸入的第i幀圖像信息,Gi代表頻域中對應(yīng)第i幀輸入圖像的輸出圖像信息,⊙表示對應(yīng)位置點乘。基于最小二乘法利用m個樣本信息求解使輸出誤差平方和最小的濾波器H*。由于頻域中的相關(guān)計算為逐元素相乘,因此在求解上式時可對濾波器中的每個元素進行獨立優(yōu)化。通過確保每幀信息對應(yīng)的誤差最小平方和均為最小值以得到使輸出誤差平方和最小的濾波器H*。對式(4)求偏導得到濾波器的閉式最終解:
(5)
得到濾波器模板后將其與新來幀圖像進行相關(guān)操作,并使用快速傅里葉反變換(IFFT,inversefast fourier transform)得到響應(yīng)圖譜,選取響應(yīng)中最大的位置作為跟蹤目標的新位置。之后根據(jù)下一幀圖像的目標區(qū)域來更新濾波器模板,更新公式如下:
(6)
(7)
(8)
其中:系數(shù)為學習率,它可以有效限制不同幀的權(quán)重,離當前幀越近的幀權(quán)重越大,能防止跟蹤算法中的過擬合問題,使得濾波器模板更好地適應(yīng)目標旋轉(zhuǎn)、遮擋等問題。反復執(zhí)行上述操作來達到持續(xù)跟蹤目標的目的。MOSSE算法的整體流程如圖1所示。

圖1 MOSSE算法流程圖
MOSSE算法作為相關(guān)濾波類跟蹤算法的開山之作,與當時的熱門跟蹤算法[5-7]相比,速度與精度都有了很大的提升。但算法基于最小二乘法求解的線性濾波器模板分類性能一般;算法的樣本采樣是一種稀疏采樣,訓練效果一般;算法中提取的圖像信息特征是最原始的單通道灰度特征,表達目標的能力有限。針對MOSSE算法的主要缺陷,KCF、DSST以及BACF算法均對其進行優(yōu)化處理,本文后續(xù)即對這3種算法進行具體闡述并實驗分析。
與MOSSE算法不同,KCF算法采用脊回歸來訓練分類器,它是一種改良的最小二乘估計法,在原來的損失函數(shù)基礎(chǔ)上加入了正則化懲罰項以防止濾波器過擬合。設(shè)訓練樣本集為(xi,yi),則其線性回歸函數(shù)為f(xi)=wTxi,w列向量表示模型參數(shù):
(9)
i為幀數(shù),λ為正則化參數(shù),將上式轉(zhuǎn)換成矩陣形式:
(10)
其中:X=[x1,x2,…,xn]T,每一行表示一個向量,y是列向量,每個元素對應(yīng)一個樣本標簽。基于w對上式求導并使其導數(shù)為0,得到頻域中w:
w=(XHX+λ)-1XHy
(11)
XH為頻域中X的共軛轉(zhuǎn)置矩陣。
在進行分類器的訓練時,將跟蹤目標所在區(qū)域樣本稱作正樣本,將目標區(qū)域之外的背景區(qū)域樣本稱為負樣本。處理好正負樣本之間的平衡關(guān)系才能得到性能良好的分類器。MOSSE算法中利用稀疏采樣的方法來獲取目標樣本,產(chǎn)生了大量冗余樣本,影響了跟蹤性能。而KCF算法采用循環(huán)移位方式擴充了負樣本的數(shù)量,有效緩解了這一問題。假設(shè)目標樣本x=[x1,x2,…,xn]T,置換矩陣為:
(12)
通過將目標樣本左乘矩陣即Px[xn,x1,…,xn-1]T,這樣樣本中元素便向右平移一位,通過左乘n次置換矩陣,樣本向量完成了一次完整的循環(huán)位移,組成的循環(huán)矩陣:
(13)
循環(huán)矩陣可在頻域中相似對角化:
(14)

將上式代入式(11)中:
(15)
*表示取對應(yīng)向量的共軛向量。對上式兩邊取傅氏變換,得到:
(16)
通過將矩陣運算轉(zhuǎn)換為向量之間的點積運算,同時消除了求逆運算,大大提升了計算速度。現(xiàn)實生活中大部分模型均為非線性的,KCF算法通過尋找一個非線性映射函數(shù)φ(x),使得映射后的樣本在新空間中線性可分[11]。令w=∑iαiφ(xi),引入核函數(shù)k(xi,xj)=〈φ(xi),φ(xj)〉,則此時:
(17)

(18)
σ為核函數(shù)參數(shù),F(xiàn)-1表示傅里葉逆變換。此外KCF針對MOSSE算法中特征信息只能為單通道的缺陷,設(shè)計了多通道特征的計算方式如下,也基于此式引入HOG特征進行跟蹤。
(19)
其中:c表示通道數(shù)。算法檢測過程中輸出響應(yīng)為:
(20)

(21)
(22)
KCF算法的大致流程如圖2所示。

圖2 KCF算法流程圖
DSST算法基于MOSSE以及KCF算法在樣本提取時選擇融合多維特征:樣本的灰度、顏色以及HOG等特征,在特征提取上對前兩種算法做了改進。另外MOSSE與KCF算法中的跟蹤框是固定大小的,當目標尺度相對于檢測器逐漸變大時,跟蹤框只能捕捉到目標的一部分信息;當目標逐漸變小時框內(nèi)又會摻雜過多的干擾背景信息。DSST算法便在目標跟蹤過程中對目標進行實時地尺度預(yù)測,一定程度上提升了跟蹤算法的精度和魯棒性。
DSST算法設(shè)計了兩個相關(guān)濾波器,分別為實現(xiàn)目標位置跟蹤的位置濾波器與實現(xiàn)跟蹤框自適應(yīng)目標尺度變化的尺度濾波器。
論文[13]指出該算法使用的尺度估計方法可以移植到任意算法中。設(shè)輸入圖像為d維特征f,fl為第l維特征。結(jié)合式(4)和(9)式容易得到最優(yōu)相關(guān)濾波器h為:
(23)
轉(zhuǎn)換到頻域上,并將分子分母單獨表示:
(24)

(25)
(26)
通過求解最大響應(yīng)值確定新來幀圖像信息Z中的目標位置信息:
(27)
DSST算法將位置估計與尺度估計分開處理,其認為在連續(xù)的兩幀圖像中,位置的變化程度往往比尺度變化大。因此先使用二維的位置相關(guān)濾波器確定當前幀響應(yīng)峰值區(qū)域,將其視作目標中心位置,然后通過一維的尺度相關(guān)濾波器以此位置為中心點,獲取多組不同尺度的候選區(qū)域,最終找到最適配的尺度信息。尺度的選擇原則為:
(28)
其中:P,R分別為目標在前一幀的寬高,α=1.02為尺度因子,S=33為尺度的數(shù)量,使用這33個尺度樣本特征對尺度濾波器進行訓練。
DSST算法的大致流程如圖3所示。

圖3 DSST算法流程圖
雖然訓練相關(guān)濾波器的樣本數(shù)量越多效果越好,但正樣本的周圍不能包含太多背景信息,否則分類器會誤認為這些背景信息也是正樣本,從而導致分類失敗。而BACF算法在傳統(tǒng)相關(guān)濾波算法的框架基礎(chǔ)上擴大了循環(huán)矩陣采樣的區(qū)域,并創(chuàng)造性地在每個樣本上裁剪出有效的樣本區(qū)域,樣本的數(shù)量和質(zhì)量均得到提升。

(29)
其中:K為特征通道數(shù),由于BACF算法采用31維的HOG特征,因此K=31。P為0,1的二值矩陣,大小為D×T,目的即是在訓練樣本xk中裁剪出D個元素。將P,xk合并為Xk,表示裁剪后的樣本。上式轉(zhuǎn)換至頻域:
(30)

通過交替方向乘子法(ADMM,alternating direction method of multipliers)交替方向乘子法[27]將問題轉(zhuǎn)化為求解濾波器和輔助變量兩個子問題。將得到的濾波器模板與檢測到的當前幀目標區(qū)域進行卷積:
(31)
對G作傅里葉逆變換得到最終響應(yīng)圖,最大響應(yīng)值處即為跟蹤目標估計位置。模型更新策略與傳統(tǒng)相關(guān)濾波器一般:
(32)
BACF算法的大致流程如圖4所示。

圖4 BACF算法流程圖

圖5 OPE評估成功率

圖6 OPE評估精度圖

圖7 SRE評估成功率

圖8 SRE評估精度圖

圖9 TRE評估成功率

圖10 TRE評估精度圖
本文針對第2節(jié)介紹的3種算法在MATLAB平臺上進行了仿真實驗。硬件實驗環(huán)境為Intel(R)Core(TM)i5-4590 CPU,主頻為3.3 GHz,內(nèi)存為16 GB的計算機;軟件環(huán)境為MATLAB R2021a,64位Windows10操作系統(tǒng)。
目標跟蹤檢測基準(OTB,object tracking benchmark)數(shù)據(jù)集是視覺目標跟蹤領(lǐng)域公認的測試數(shù)據(jù)集之一,本文選用OTB100。它包含100個視頻序列及其對應(yīng)地每幀圖像中目標標簽的ground_truth.txt文本文件。
OTB數(shù)據(jù)集的評價標準通常是兩個基本參數(shù):中心位置誤差和區(qū)域重疊面積比率。中心位置誤差是指跟蹤目標的中心位置和人工標注的準確位置之間的歐式距離,用于生成精確度曲線圖;區(qū)域重疊面積比率是指通過計算跟蹤算法得到的邊界框與人工標注的準確邊界框之間的面積重疊比,用于生成成功率曲線圖。
以O(shè)TB數(shù)據(jù)集中對應(yīng)視頻序列的ground_truth.txt文本中目標的位置初始化第一幀圖像,然后運行跟蹤算法得到精度與成功圖。這種方法稱為一次性評估(OPE,one-pass evaluation)一次性評估。為進行魯棒性評估,OTB提出在對測試視頻序列初始化時進行擾亂:從不同幀開始跟蹤的時間魯棒性評估(TRE,temporal robustness evaluation),其通過視頻序列在時間軸上平均找出20個點作為起點,終點仍為最后一幀,對20段視頻序列運行算法,繪制平均重疊率和像素誤差圖;以不同邊界框開始跟蹤的空間魯棒性評估方法(SRE,spatial robustness evaluation),其通過對ground_truth.txt中的邊界框使用8個空間移位以及4個比例變化來產(chǎn)生12種跟蹤框,即對視頻序列進行了12次評估,繪制平均重疊率和像素誤差圖。
基于OTB100數(shù)據(jù)集對KCF、DSST以及BACF算法從OPE、SRE、TRE三種評估角度分別測試。
鑒于精度圖僅使用邊界框位置,不能反映目標大小與尺度變換帶來的影響,因此成功率曲線圖相比精度圖更可靠。比較數(shù)據(jù)過程中,在精度相差不大的情況下,優(yōu)先以成功率考量性能。
在OPE評價標準中:成功率方面,BACF算法的平均成功率(64.5%)比DSST算法(55.4%)高9.1%,比KCF算法(51.4%)高13.1%;精確度方面,BACF算法的平均精確度(80.4%)比KCF算法(74.0%)高6.4%,比DSST算法(73.9%)高6.5%。因此BACF算法跟蹤效果最好,DSST算法次之,KCF算法最差。
在SRE評價標準中:成功率方面,BACF算法的平均成功率(58.2%)比DSST算法(51.3%)高6.9%,比KCF算法(47.5%)高10.7%;精確度方面,BACF算法的平均精確度(78.6%)比DSST算法(70.3%)高8.3%,比KCF算法(68.2%)高10.4%。因此BACF算法跟蹤效果最好,DSST算法次之,KCF算法最差。
在TRE評價標準中:成功率方面,BACF算法的平均成功率(65.8%)比DSST算法(57.9%)高7.9%,比KCF算法(55.6%)高10.2%;精確度方面,BACF算法的平均精確度(85.1%)比KCF算法(77.4%)高7.7%,比DSST算法(75.0%)高10.1%。因此BACF算法跟蹤效果最好,DSST算法次之,KCF算法最差。
綜合考慮準確率和成功率,KCF算法總體性能較低,在目標發(fā)生尺度變換該算法容易丟失跟蹤目標,跟蹤性能大大降低。雖然DSST算法針對目標的尺度變換額外增加了一個尺度濾波器,但當尺度變換過大時仍會導致尺度估計精度低。BACF算法得益于對樣本的高效處理,時間、空間魯棒性等效果均為最佳。實驗同樣對算法的速度進行了對比。

表1 3種算法的幀率
可以看出KCF算法的速度最快,BACF算法次之,最后是DSST算法。BACF算法由于增加了樣本數(shù)量以及額外的裁剪工作,速度下降許多;而DSST算法增加的尺度濾波器在多通道濾波的情況下,仍需在每個通道檢測33個尺度的圖像塊,速度顯然降低嚴重。
由于相關(guān)濾波跟蹤算法的準確性與實時性較好,大量算法分別從尺度自適應(yīng)、特征提取、邊界效應(yīng)等角度進行改進。對目標跟蹤算法的研究依然圍繞準確性和實時性展開。隨著深度學習跟蹤算法地不斷推出,將深度特征與相關(guān)濾波結(jié)合的算法將是發(fā)展趨勢之一。但深度特征給算法帶來高精確度的同時,也不可避免地給算法的跟蹤速度增加負荷,往往難以滿足目標跟蹤對實時性的要求。將傳統(tǒng)手工特征與深度特征融合時,考慮如何在不損失精度的前提下提升算法速度,也將是研究熱點。