李國友 紀(jì)執(zhí)安 張鳳煦
(* 燕山大學(xué)電氣工程學(xué)院 秦皇島 066004 )
目標(biāo)跟蹤技術(shù)是計算機視覺的重要分支,隨著科學(xué)技術(shù)的發(fā)展,其在多個領(lǐng)域廣泛應(yīng)用[1],如智能視頻監(jiān)控、人機互動、手勢識別、虛擬現(xiàn)實等[2]。通常目標(biāo)跟蹤算法根據(jù)第1幀目標(biāo)框的信息,跟蹤整個視頻序列感興趣的區(qū)域。但在實際應(yīng)用中,由于光照、目標(biāo)旋轉(zhuǎn)、遮擋等干擾[3],跟蹤過程中會產(chǎn)生漂移,甚至?xí)鷣G標(biāo)定目標(biāo)。因此,設(shè)計一個魯棒的目標(biāo)跟蹤算法是眾多學(xué)者追求的熱門課題。
傳統(tǒng)的跟蹤算法主要是對目標(biāo)建立有效決策模型和提取有用的外觀特征,提取的目標(biāo)特征多為灰度、顏色、方形梯度直方圖(histogram of oriented gradient,HOG)特征等[4],統(tǒng)稱為人工提取特征。相關(guān)濾波目標(biāo)跟蹤算法,如最小輸出和的平方誤差濾波跟蹤[5](minimum output sum of squared error filter,MOSSE)、循環(huán)結(jié)構(gòu)核的目標(biāo)跟蹤[6](circulant structure kernel,CSK)均是先對目標(biāo)進行提取人工特征,然后通過分類器進行訓(xùn)練,最后完成對目標(biāo)的跟蹤。在相關(guān)濾波算法中,最為出色的就是Henriques等人[7]提出的核相關(guān)濾波算法(kernel correlation filter,KCF),KCF通過循環(huán)矩陣和嶺回歸分類器[8]訓(xùn)練一個目標(biāo)檢測器,來判斷目標(biāo)的位置。
但人工特征僅僅能直觀獲得目標(biāo)的外觀信息,不能很好捕捉目標(biāo)的語義信息[9],對復(fù)雜環(huán)境下的目標(biāo)跟蹤不具有魯棒性。最近,卷積神經(jīng)網(wǎng)絡(luò)[10](convolutional neural network,CNN)在計算機視覺領(lǐng)域有了突破性進展,其能對圖像信息進行更深層次的數(shù)據(jù)挖掘,主要應(yīng)用于圖像分割、動作識別[11]、圖像分類。在目標(biāo)跟蹤中,基于CNN的深度特征跟蹤算法也相繼提出。文獻[12]中,Danelljan等人很早將卷積特征應(yīng)用在相關(guān)濾波器框架中,和標(biāo)準(zhǔn)人工特征相比,卷積特征提供了更好的跟蹤效果。Mozhdehi等人[13]結(jié)合卷積特征圖,通過粒子濾波器估計標(biāo)定目標(biāo)的大小和位置。Zhang等人[14]在自表達相關(guān)估計方法的基礎(chǔ)上,提出了一種新的主動半監(jiān)督學(xué)習(xí)方法。盡管現(xiàn)有的CNN跟蹤器實現(xiàn)了最先進的性能,但仍然有一些局限性,這些算法中的大多數(shù)只使用CNN的單層卷積特性來表示目標(biāo)對象。因此,為了獲得更好的跟蹤性能,必須將不同卷積層的特性結(jié)合起來,以最優(yōu)方式表示前景對象,并將其與背景雜波分離。
本文受KCF算法和深度特征的啟發(fā),基于KCF框架,提出了以下3種改進。(1)利用ImageNet上訓(xùn)練好的VGG-2048 2個卷積層(conv3和conv6),學(xué)習(xí)其中深度特征,其后用嶺回歸分類器分別訓(xùn)練不同卷積層的深度特征,依次得出置信度得分,接著依據(jù)得分高低將2種特征加權(quán)相連,實現(xiàn)特征的重復(fù)利用,用融合后的多層深度特征代替KCF中的人工特征(HOG特征)。同時引入了第1幀目標(biāo)的豐富信息,得到最終的位置輸出響應(yīng)。(2)對于目標(biāo)跟蹤中的全遮擋問題,設(shè)計一個抗遮擋機制,通過波峰震蕩程度判斷目標(biāo)遮擋,當(dāng)視頻相鄰2幀的峰值小于給定閾值時,停止對模型更新,最終實現(xiàn)對跟蹤目標(biāo)的精準(zhǔn)定位。(3)對于目標(biāo)跟蹤過程中的尺度變化,本文通過雙線性差值建立了6個深度特征尺度池,利用分類器進行訓(xùn)練,得到的最大響應(yīng)即為目標(biāo)的最佳尺度。
核相關(guān)濾波算法(KCF)是一種鑒別式跟蹤算法,其主要創(chuàng)新是通過循環(huán)矩陣結(jié)構(gòu)提高目標(biāo)跟蹤速度和識別能力[15]。如圖1所示,算法主要流程如下:確定跟蹤區(qū)域后提取其HOG特征,在頻域中,對每個特征通道進行加權(quán)余弦窗口操作[16]。引入多項核函數(shù)匹配目標(biāo)區(qū)域和待選擇區(qū)域,選取響應(yīng)峰值最高的得分即為跟蹤目標(biāo)。
圖1 KCF流程框圖
設(shè)訓(xùn)練集樣本(xi,yi),其線性函數(shù)表示為f(xi)=wTxi,訓(xùn)練的目的是通過樣本xi找到一個分類器w讓回歸目標(biāo)y最小,讓嶺回歸發(fā)揮最大性能,其中最小輸出誤差公式為
(1)
其中λ用于控制系統(tǒng)的復(fù)雜性,保證分類器的泛化性能,后導(dǎo)出分類器w:
w=(XHX+λI)-1XHy
(2)
其中,X為樣本矩陣,y為回歸目矩陣,I為單位矩陣。
上述方程為線性計算,可降低存儲和計算復(fù)雜性數(shù)量等級來提高跟蹤器速度。對于非線性計算,引入映射函數(shù)φ(x),使原本線性回歸轉(zhuǎn)化為非線性回歸問題,得出:
(3)
利用循環(huán)矩陣和離散傅里葉變化,可得核化的最小二乘解為
(4)
式(4)中核函數(shù)k可用下式表示:
(5)
其中σ為帶寬,x為檢測樣本。
每次更新目標(biāo)的位置,嶺回歸分類器w以m×n的窗口來搜索候選區(qū)域z,其為目標(biāo)的概率分布公式為
(6)
其中f(z)表示包含z的所有循環(huán)位移輸出向量,kxz表示x和z的核相關(guān),f(z)得到的最大值即為跟蹤目標(biāo)。
為滿足目標(biāo)過程中的變化,需要對外觀模型x和分類器系數(shù)a實時更新,更新公式如下:
xi=(1-η)xi-1+ηxi
ai=(1-η)ai-1+ηai
(7)
其中,xi和xi-1分別為當(dāng)前幀和上一幀的目標(biāo)特征模型,ai和ai-1是當(dāng)前幀和上一幀的系數(shù)矩陣,η為學(xué)習(xí)系數(shù)。
在目標(biāo)跟蹤算法中,相比于傳統(tǒng)的手工特征(如顏色、形狀、梯度)提取,深度特征具有很好的學(xué)習(xí)能力。但單層卷積網(wǎng)絡(luò)提取的深度特征不能處理目標(biāo)本身發(fā)生的巨大變化,在惡劣環(huán)境下會產(chǎn)生響應(yīng)峰值偏移,進而跟丟目標(biāo)。為了得到期望的峰值響應(yīng)和目標(biāo)準(zhǔn)確位置,本文基于KCF框架,利用低層卷積特征(conv3)的位置信息和高層卷積層特征(conv6)的語義信息,將2種特征進行加權(quán)處理后相連,實現(xiàn)特征的重復(fù)利用。同時,引入了第1幀目標(biāo)的殘留信息并加入了尺度池,最終獲得目標(biāo)的位置和尺度,圖2為本文算法總體思路圖。
鑒于CNN中進行池化操作會影響目標(biāo)特征圖的尺寸,更深層次的卷積層,會降低空間分辨率,縮小目標(biāo)的尺度,導(dǎo)致無法對目標(biāo)進行準(zhǔn)確定位。因此,可利用雙線性插值法[17]調(diào)整目標(biāo)特征圖的大小:
(8)
圖2 融合多層深度特征的抗遮擋KCF算法框圖
其中,h是池化操作前的初始特征圖,τ由相鄰兩特征向量i和k的位置決定,x是經(jīng)雙線性插值處理后的特征圖。由2.2節(jié)中的公式可知,單層深度特征在頻域中的響應(yīng)為
(9)
在特征融合的過程中,隨著卷積層的增加,深度特征會賦予不同的權(quán)重系數(shù),越深層的特征往往會得到更大的置信度。低層卷積特征(conv3)和高層卷積層特征(conv6)響應(yīng)疊加為
(10)
其中,Ω為融合雙層深度特征的響應(yīng),wi為不同卷積層特征的權(quán)重系數(shù)。
由于目標(biāo)跟蹤過程中,第1幀的目標(biāo)信息往往最豐富,因此,引入了第1幀中的目標(biāo)殘留信息,能得到最出色的響應(yīng)輸出:
(11)
其中,ψ為加入第1幀信息的響應(yīng)輸出,x1是第1幀目標(biāo)的深度特征,f1為第1幀目標(biāo)的頻域響應(yīng)。
針對目標(biāo)追蹤過程中半遮擋、全遮擋等干擾問題,本文引入一個遮擋判斷機制。如圖3所示,在KCF跟蹤中,每個跟蹤目標(biāo)對應(yīng)一個高斯標(biāo)簽響應(yīng)。在目標(biāo)未遮擋時,響應(yīng)圖震蕩平緩,僅出現(xiàn)一個峰值,在目標(biāo)遮擋時響應(yīng)圖震蕩劇烈,出現(xiàn)多峰值。可以根據(jù)峰值來判斷指定跟蹤目標(biāo)是否被遮擋。
圖3 有無遮擋波峰震蕩圖
根據(jù)文獻[18],得出下式計算波峰震蕩程度:
(12)
(13)
在實際跟蹤過程中,外界環(huán)境的干擾會使目標(biāo)的尺度發(fā)生變化。KCF的跟蹤框是固定的,其不會隨著目標(biāo)的大小而改變。為此在每個卷積層下,本文通過雙線性插值調(diào)整深度特征圖大小M×N,建立從小到大6個尺度作為尺度池S={s1,s2,s3,…,s6},將每個尺度通過嶺回歸分類器訓(xùn)練,得到最大的響應(yīng)即為目標(biāo)尺度:
(14)
其中,i為卷積層數(shù),j代表目標(biāo)從低到高的尺度數(shù),y為頻域中的尺度響應(yīng)。
本實驗的硬件環(huán)境為內(nèi)存為8GB,Inter(R)Core(TM) i5-44600(3.20Hhz)的CPU臺式機,使用了Matlab2015b作為軟件平臺進行仿真。實驗參數(shù)設(shè)置為:遮擋閾值L=27,第3層和第6層的卷積特征權(quán)重系數(shù)w={0.8, 0.5},規(guī)則化范數(shù)λ=1×10-4。
為了驗證本文改進的算法,主要利用中心位置誤差和重疊率2個計算公式。中心位置誤差公式定義為
(15)
其中,(xi,yi)表示實際跟蹤的目標(biāo)位置,(xs,ys)表示標(biāo)準(zhǔn)跟蹤的目標(biāo)中心位置,CLE值越小,表示跟蹤效果越好。
重疊率公式定義為
(16)
其中,ROIT為實際的跟蹤窗口,ROIG表示標(biāo)準(zhǔn)的跟蹤窗口。OR值越大,表示跟蹤越佳。
實驗中采用的測試集為OTB-2015中的100個標(biāo)準(zhǔn)集視頻序列,所對比的算法為KCF、CN[19]、fDSST[20]、Staple[21]等35種跟蹤算法,實驗指標(biāo)為OTB-2015中的精確率圖和成功率圖。精確率圖是中心位置誤差(CLE)小于指定閾值的幀數(shù)占視頻序列總幀數(shù)的百分比,本次閾值設(shè)定為20像素。成功率圖指的是重疊率(OR)值大于閾值的幀數(shù)占視頻序列總幀數(shù)的百分比,本次閾值設(shè)為0.5。表1為6種跟蹤算法在OTB-2015測試集中選取的7個具體視頻序列的成功率數(shù)值,從表中看出,除了Jogging和CarScale視頻序列外,本文提出的算法(OWN)在其他5個視頻序列(MotorRolling 、David、CarScale、Couple、Coke)中,平均跟蹤成功率最大,整體平均成功率為0.85,相對于其他對比的跟蹤算法,為最大值,對目標(biāo)跟蹤效果出色。
圖4 OPE精確度圖和成功率圖
表1 跟蹤算法平均成功率
KCFfDSSTSTCTLDMEEMOWNJogging0.290.350.310.780.850.81MotorRolling0.220.310.320.260.290.76David0.750.790.320.510.850.87CarScale0.770.880.510.540.810.83Couple0.710.610.270.330.860.90Coke0.290.180.410.440.820.86Basketball0.910.900.430.520.930.95Average0.560.570.370.480.770.85
如圖4所示,本次實驗僅顯示排名前10的跟蹤算法。粗實線(OWN)代表融合多層深度特征的KCF算法,從精確率圖看出,本文改進算法其精確率達到了83.8%,相比原KCF提高了16.8%。從成功率圖看出,改進算法成功率為70.2%,比原KCF算法提高了21.4%。在成功率和精確率2個指標(biāo)中,改進的KCF算法相比于其他35種跟蹤算法,均排名第1。表2為8種跟蹤算法的跟蹤速度,可看出KCF算法速度最快,跟蹤實時性最好,本文算法雖然跟蹤精度高,但fps僅為2.5。
表2 8種跟蹤算法速度比較
本文了選取Benchmark網(wǎng)站上的MotorRolling、David、Jogging、Carscale 4個視頻序列進行實驗,如圖5所示,這些視頻包括多種復(fù)雜環(huán)境,如目標(biāo)旋轉(zhuǎn)、光照、遮擋、尺度變化等干擾條件。并與DFT、KCF、fDSST、TLD、Staple 5種現(xiàn)有的跟蹤算法進行對比。以下是不同場景下不同跟蹤算法的實際效果分析。
(1) 快速運動及旋轉(zhuǎn)
在MotorRolling視頻中,所跟蹤的摩托車進行了旋轉(zhuǎn)高速運動,目標(biāo)輪廓發(fā)生變化,第36幀時,只有本文算法精確跟蹤,其余算法均對目標(biāo)發(fā)生漂移。在第71幀時,改進的KCF算法對目標(biāo)發(fā)生局部漂移,但整體上能穩(wěn)定跟蹤摩托車目標(biāo)。
(2) 尺度變化
在David和CarScale序列中,涉及目標(biāo)尺度問題。David中,目標(biāo)所處的環(huán)境由暗到亮,6種目標(biāo)跟蹤算法均能跟蹤目標(biāo)臉部特征,本文算法雖然大致能隨指定目標(biāo)進行尺度變化,但尺度上表現(xiàn)最為出色的是fDSST算法。在CarScale中,138幀前,所對比跟蹤算法均能穩(wěn)定跟蹤目標(biāo),在第252幀時,TLD算法跟丟目標(biāo),KCF算法沒有發(fā)生尺度變化,其余算法雖然對跟蹤車輛進行了尺度變化處理,但都表現(xiàn)得不太出色,跟蹤框沒有和車輛大小保持一致。
(3) 遮擋物干擾
在Jogging視頻序列中,目標(biāo)在71幀時遇到了遮擋物,在第109幀時,目標(biāo)離開遮擋物時,只有本文改進跟蹤算法、TLD算法、Staple算法能繼續(xù)跟蹤目標(biāo),其余跟蹤算法發(fā)生不同程度的漂移現(xiàn)象。
圖5 不同跟蹤算法比較圖
為解決目標(biāo)在復(fù)雜環(huán)境下的跟蹤問題,本文在KCF的基礎(chǔ)上融合了多層深度特征,在頻域中,將兩者深度特征加權(quán)相連,通過嶺回歸分類器訓(xùn)練,同時,引入了第1幀目標(biāo)的豐富信息,獲得最終的響應(yīng)位置。針對目標(biāo)跟蹤中的遮擋干擾,利用響應(yīng)峰值變化,當(dāng)物體受到遮擋時,響應(yīng)峰值會出現(xiàn)抖動多峰值的情況。因此,根據(jù)相鄰兩幀之間的峰值變化,來判斷目標(biāo)是否受到障礙物的干擾,若有遮擋物,則停止對模型的更新。對于跟蹤中的尺度變化問題,通過雙線性插值提取不同大小的深度特征,建立尺度池,得到目標(biāo)最佳尺度。最后將改進的KCF算法在OTB-100上進行測試,證明本文改進算法能處理跟蹤過程的旋轉(zhuǎn)、遮擋、尺度變化等問題,但跟蹤算法實時性還有待進一步改進。