王 凱,黃 山
(四川大學(xué) 電氣工程學(xué)院,四川 成都 610065)
近年來目標(biāo)跟蹤受到了廣泛的關(guān)注,大量的魯棒性的跟蹤方法被相繼提出,而且這些算法能夠?qū)σ恍┌l(fā)生形變和復(fù)雜場景中的運動目標(biāo)進行穩(wěn)定的跟蹤。由于在目標(biāo)跟蹤過程中目標(biāo)背景的復(fù)雜多變性,跟蹤過程中通常需要克服目標(biāo)尺度變化、目標(biāo)的快速運動、光照影響、旋轉(zhuǎn)、遮擋、背景相似等問題,以保障其穩(wěn)定性及實時性。
跟蹤算法大體上可分為3種:一種是以Meanshift和Kalman Filter[1,2]為代表的經(jīng)典跟蹤算法,一種是基于深度學(xué)習(xí)的跟蹤算法[3-5],還有一種是基于相關(guān)濾波器的跟蹤算法[6,7]。由于經(jīng)典算法無法處理和適應(yīng)復(fù)雜背景下的目標(biāo)跟蹤,所以在相關(guān)濾波和深度學(xué)習(xí)算法出現(xiàn)后被相繼舍棄。基于深度學(xué)習(xí)的跟蹤框架目前還在不斷發(fā)展中,雖然在實際應(yīng)用中的前景十分廣闊,但受限于其龐大的計算量以及對硬件設(shè)備的高要求,相比于相關(guān)濾波等傳統(tǒng)方法在實際應(yīng)用中還有較大的不足。本文在KCF的基礎(chǔ)上針對跟蹤過程中的遮擋問題,提出一種自適應(yīng)的核相關(guān)濾波器的目標(biāo)跟蹤算法,引入不變矩特征,以目標(biāo)前后幀不變矩特征的變化來判斷目標(biāo)是否發(fā)生遮擋,進而實現(xiàn)相關(guān)濾波器的自適應(yīng)更新。實驗結(jié)果表明,本文算法對跟蹤過程真的遮擋、運動模糊和旋轉(zhuǎn)等問題有較好的魯棒性,并滿足實時性的要求。
KCF是一種鑒別式跟蹤算法,即在跟蹤過程中通過循環(huán)位移構(gòu)造大量的訓(xùn)練樣本,并利用循環(huán)矩陣特性和快速傅里葉變換,避免了訓(xùn)練分類器時相關(guān)的矩陣逆運算,從而保證了跟蹤的實時性,實現(xiàn)了對目標(biāo)的快速跟蹤。
KCF算法的初始模型是線性回歸,即f(x)=<ω,x>+b,其中<.,.>為點積運算,利用訓(xùn)練集X和回歸目標(biāo)y求解目標(biāo)函數(shù)
(1)
其中,λ為正則化參數(shù),用來控制過擬合問題,w為權(quán)重。不難求出該最小化目標(biāo)函數(shù)在頻域的閉式解為
w=(XHX+λI)-1XHy
(2)
對基樣本x進行循環(huán)采樣操作,得到矩陣X,我們可以觀察到矩陣X的每一行都由基樣本x的循環(huán)偏移向量組成
(3)
利用循環(huán)矩陣特性,可利用離散傅里葉變換將矩陣X對角化
(4)
(5)
由此,我們可以將方程式(2)中的矩陣逆運算轉(zhuǎn)換為式(5)中的點積運算,這將大幅度降低計算量,是KCF實現(xiàn)實時性跟蹤的保證。
為提升分類器的性能,將線性問題的輸入映射到高維非線性空間。此時,將w權(quán)重表示為輸入樣本的線性組合
(6)
要優(yōu)化的參數(shù)由w變?yōu)閷ε伎臻g中的α。引入核技巧φT(x)φ(x′)=k(x,x′),上文的線性回歸問題的最優(yōu)解就變換為
α=(K+λI)-1y
(7)
其中,K是以Kij=k(xi,xj)為元素的核矩陣,α是由αi組成的向量。K也是循環(huán)矩陣,利用循環(huán)矩陣的特性將式(7)整理為
(8)
設(shè)當(dāng)前幀輸入樣本為z,由上一幀得到的目標(biāo)模型為x,f(z)為輸出響應(yīng),引入核矩陣K,可以得到所有測試樣本的響應(yīng)
(9)
對式(9)進行傅里葉逆變換即可得到輸入樣本的響應(yīng)值,響應(yīng)值最大的位置就是目標(biāo)在當(dāng)前幀的位置。最后,我們利用線性插值法更新分類器參數(shù)和目標(biāo)模型
(10)
式中:i表示當(dāng)前幀,xi為第i幀預(yù)測位置的目標(biāo)模型;αi為第i幀預(yù)測位置的分類器參數(shù);zi為檢測得到的目標(biāo)模型;σi為檢測得到的分類器參數(shù);θ為學(xué)習(xí)率。
Hu[8]在1962年提出了不變矩特征,也稱為Hu不變矩。Hu利用二階與三階歸一化中心矩構(gòu)造了7個不變矩,并證明了不變矩在圖像發(fā)生平移、旋轉(zhuǎn)和尺度變化時,其特征值仍保持不變。Hu不變矩的相關(guān)概念如下。
設(shè)在尺寸為M×N的二維圖像中,坐標(biāo)為(x,y)處的灰度值為f(x,y),則該圖像的p+q階幾何矩可以表示為
(11)
中心矩表示為
(12)
(13)
歸一化的中心矩為
(14)
利用圖像的二階及三階矩可以構(gòu)造出7個Hu不變矩,如下所示
A1=z20+z02
A3=(z30-3z12)2+(3z21-z03)2
A4=(z30+z12)2+(z21+z03)2
(15)
Hu不變矩的前3個特征值反映了圖像邊緣的低頻信息,即粗略的整體信息,反映了圖像的高頻信息,即圖像中的一些細(xì)節(jié)變化。又因為在實際的運動場景中對比度和尺度也會發(fā)生變化,為了得到更一般化的特征值,利用文獻[9]提出的方法。設(shè)f0(x0,y0)和f1(x1,y1)為描述同一物體的圖像,它們僅在對比度、尺度、位置和旋轉(zhuǎn)上存在區(qū)別,則有
(16)
式中:k為對比度系數(shù),c為尺度變化系數(shù),θ為旋轉(zhuǎn)角度,Tx和Ty為水平位移與垂直位移。利用式(15)計算f0(x0,y0)和f1(x1,y1)的特征值,并將其帶入式(16)中,整理化簡后得到一組特征值,具有更好的對比度、位移和旋轉(zhuǎn)等不變性,如式(17)所示。其中M1-2反映圖像整體信息,M3-6反映圖像細(xì)節(jié)信息。為減少計算量,本文只選用M1-2作為特征值
(17)
本文采用歸一化互相關(guān)算法來計算相鄰幀之間ROI區(qū)域的相似度量
(18)
其中,MTk為前一幀的檢測區(qū)域的不變矩特征,Mk為當(dāng)前幀檢測區(qū)域的不變矩特征。
KCF跟蹤算法采用的是檢測跟蹤機制(tracking-by-detection),若目標(biāo)丟失,跟蹤算法會將相關(guān)濾波的響應(yīng)峰值處當(dāng)作目標(biāo)繼續(xù)跟蹤,從而導(dǎo)致跟蹤失敗。由于目標(biāo)被遮擋后響應(yīng)峰值會產(chǎn)生明顯下降,所以以往的許多文獻中利用相關(guān)濾波的響應(yīng)峰值振蕩程度來判斷目標(biāo)受遮擋情況。但在一些復(fù)雜的運動場景如目標(biāo)旋轉(zhuǎn),尺度變換和模糊中,相關(guān)濾波的響應(yīng)峰值也會產(chǎn)生劇烈的振蕩,所以只用響應(yīng)峰值來判斷目標(biāo)的遮擋情況并不合理。
由于不變矩的特征值具有旋轉(zhuǎn)、平移、尺度變換的不變性,所以本文采用式(18)建立遮擋判斷機制,通過對比目標(biāo)在未遮擋和遮擋時,T值的變化情況來判斷目標(biāo)是否被遮擋。實驗截取了測試視頻中的第1幀,第2幀和第250幀~第253幀的檢測區(qū)域圖像,如圖1所示。并分別計算第1幀與其它幀之間的T值,見表1。
圖1 目標(biāo)遮擋過程提取
表1 目標(biāo)遮擋時不變矩特征值變化
從表1中數(shù)據(jù)可以看出,當(dāng)物體發(fā)生遮擋時,由于檢測區(qū)域中出現(xiàn)大面積的遮擋物,導(dǎo)致不變矩特征值發(fā)生較大的變化,第252幀處的值可以視為異常值。所以,本文通過T值的變化情況,利用剔除異常值的方法建立遮擋判斷機制。
設(shè)跟蹤置信度為BOUND,當(dāng)前幀T值為Ti,當(dāng)前幀和當(dāng)前幀以前14幀的T值集合為Ui={Ti,Ti-1,…,Ti-14},則有
(19)
通過分析BOUND值的大小將KCF算法中的學(xué)習(xí)率θ劃分為兩個不同的值,即
(20)
由于在光照、視角、方位、噪聲等因素的作用下,同一類圖像的不同變形體之間的差距有時會大于該類圖像與另一類圖像之間的差距。所以,我們在提取目標(biāo)特征之前,預(yù)先對檢測區(qū)域的圖像塊進行灰度歸一化,將圖像塊轉(zhuǎn)換成唯一的標(biāo)準(zhǔn)形式以抵抗各種變換,從而消除圖像塊之間的外觀差異,灰度歸一化表示為
(21)
其中,MN為像素總數(shù),ni為第i灰度級的像素個數(shù),D為最大灰度值。
基于KCF算法,本文所提的具體算法框架見表2。
我們在硬件為Intel Core i5-8250U 1.60 GHz 1.80 GHz的PC機,軟件為MATLAB2016的實驗環(huán)境中測試算法。我們利用Wu[10]等提出的目標(biāo)追蹤測試平臺OTB-2015中的視頻序列對本文所提算法進行評估。算法中學(xué)習(xí)率的調(diào)整如式(16)所示,采樣窗口尺寸調(diào)整為目標(biāo)尺寸的2.8倍,φ值設(shè)置為3.001,其余參數(shù)設(shè)置與KCF算法相同。
我們利用KCF算法與本文所提算法作對比,進行效果展示。
表2 改進的遮擋處理算法框架
圖2中,圖2(a)、圖2(b)為目標(biāo)被遮擋的場景中,兩種算法的跟蹤結(jié)果;圖2(c)、圖2(d)為目標(biāo)在運動模糊的場景中,兩種算法的跟蹤結(jié)果。每幅圖上方標(biāo)示著對應(yīng)的幀數(shù)。從圖2中不難看出,本文算法在大部分視頻序列中取得了較好的跟蹤效果,當(dāng)目標(biāo)發(fā)生嚴(yán)重遮擋和動態(tài)模糊時,具有較強的魯棒性。
為了準(zhǔn)確評估本文算法的性能,采用Wu等提出的一次通過性評估(one-pass evaluation,OPE)和時間魯棒性評估(temporal robustness evaluation,TRE)選取精度圖和成功率圖兩個評估標(biāo)準(zhǔn)。
圖2 實驗結(jié)果展示
精度圖(precision plot)為:跟蹤算法估計的目標(biāo)位置的中心點與人工標(biāo)注的目標(biāo)中心點,這兩者的歐式距離小于給定閾值的視頻幀數(shù)與總幀數(shù)之比。本文設(shè)定閾值為20個像素點。成功率圖(success plot),記跟蹤算法得到的目標(biāo)框為s1,人工標(biāo)注的目標(biāo)框為s2。則重合率定義為
(22)
其中,|·|表示區(qū)域的像素數(shù)目。當(dāng)某一幀的重合率大于給定閾值時,該幀被視為跟蹤成功??偟某晒瑪?shù)與總幀數(shù)之比即為成功率。本文設(shè)定閾值為0.5。
本文采用OTB-2013中的50組視頻序列對本文算法和OTB-2013數(shù)據(jù)庫排名靠前的KCF、MOSSE、CSK、ASLA、CXT、SCM和Struck算法進行對比。
以O(shè)PE作為評價標(biāo)準(zhǔn),如圖3所示,其中本文算法表示為Our。在0.5處的成功率,本文算法比KCF高10.8%。在20像素內(nèi)的精度,本文算法比KCF高7.4%,排名第一。
由于某些算法對第一幀給定的初始位置比較敏感,不同的初始位置會對算法性能造成比較大的影響,并且大多數(shù)算法跟蹤失敗后沒有初始化機制。針對上述問題,引入TRE評估標(biāo)準(zhǔn),結(jié)果如圖4所示,本文算法與KCF算法基本持平。在0.5處的成功率,本文算法比KCF高2.3%,在20像素內(nèi)的精度,本文算法比KCF高0.6%。
為了進一步分析本文算法的跟蹤效果,采用OTB-2013數(shù)據(jù)集中所列的11種不同的場景,對本文算法與上文中的其它7種算法進行詳細(xì)對比。
圖5實驗數(shù)據(jù)表明,本文算法在運動模糊、形變、平面內(nèi)旋轉(zhuǎn)、遮擋和平面外旋轉(zhuǎn)的場景中均排名第一。與KCF算法相比,本文算法在0.5處的成功率分別提升了27.7%、25.6%、1.1%、18.8%、10.2%,在20像素內(nèi)的精度分別提升了22.3%、16.9%、4.2%、10.8%、6.47%。綜上所述,本文算法,相較于KCF算法在遮擋、運動模糊等復(fù)雜場景中的跟蹤效果有了明顯的提升,具有較強的魯棒性。
圖4 各跟蹤算法TRE的成功率和精度
本文針對傳統(tǒng)KCF算法在目標(biāo)嚴(yán)重遮擋,運動模糊等場景中跟蹤失敗的問題,進行改進。對目標(biāo)檢測區(qū)域進行圖像歸一化,消除灰度因素(光照等)造成的目標(biāo)外觀變化。提取每一幀目標(biāo)檢測區(qū)域優(yōu)化后的不變矩特征值,并根據(jù)歸一化后的特征值判斷目標(biāo)的受遮擋情況。根據(jù)不同的遮擋情況調(diào)節(jié)學(xué)習(xí)率。利用OTB-2013數(shù)據(jù)集,對本文算法進行評估,并與多種主流算法進行實驗對比。本文算法比KCF算法,在精度上提升了7.4%,綜合性能也有了明顯的改善,在這幾種算法中排名第一。本文算法缺少尺度變換估計、更魯棒的損失函數(shù)以及對目標(biāo)背景信息的有效利用,希望能在未來的工作中對本算法有所改善。
圖5 不同場景中OPE的成功率和精度