儲(chǔ)開斌, 朱 磊, 張 繼
(1.常州大學(xué) 微電子與控制工程學(xué)院, 江蘇 常州 213164; 2.常州大學(xué) 阿里云大數(shù)據(jù)學(xué)院, 江蘇 常州 213164)
目標(biāo)跟蹤技術(shù)是計(jì)算機(jī)視覺領(lǐng)域的研究熱點(diǎn),其在無人駕駛、軍事偵察等領(lǐng)域具有重要作用。但由于在跟蹤過程中目標(biāo)可能出現(xiàn)遮擋、尺度變化、光照強(qiáng)度變化等問題,從而導(dǎo)致跟蹤失敗,使其應(yīng)用受到一定的限制,這些弊端引發(fā)了眾多學(xué)者開展相關(guān)研究并取得一定的成果。
2002年,COMANICIU等[1]將均值漂移(MeanShift)算法運(yùn)用到了目標(biāo)跟蹤領(lǐng)域,該算法快速準(zhǔn)確,但在背景復(fù)雜場(chǎng)景下跟蹤效果差。2010年,BOLME等[2]提出了MOSSE(Minimum Output Sum of Squared Error)濾波算法,該算法通過傅里葉變換將濾波器的運(yùn)算轉(zhuǎn)換到頻域,加快了運(yùn)算速度,但MOSSE濾波算法采用的特征為簡單的灰度像素,從而造成跟蹤結(jié)果不夠準(zhǔn)確。2014年,HENRIQUES等[3]提出了KCF算法,通過核回歸運(yùn)算大大降低了運(yùn)算量,具有較快的跟蹤速度,但當(dāng)目標(biāo)出現(xiàn)尺度變化時(shí),算法魯棒性較差,一旦目標(biāo)丟失,很難繼續(xù)跟蹤到目標(biāo),不具備長時(shí)間跟蹤能力。近年來,隨著深度學(xué)習(xí)的發(fā)展,許多學(xué)者提出了基于深度學(xué)習(xí)的目標(biāo)跟蹤算法,這些算法雖然結(jié)果較為準(zhǔn)確,但需要大量訓(xùn)練樣本和長時(shí)間的訓(xùn)練,在實(shí)際應(yīng)用時(shí)存在一定的困難[4-5]。
TLD算法是KALAL等[6]在2011年提出的,該算法可以長時(shí)間準(zhǔn)確地跟蹤目標(biāo),在目標(biāo)發(fā)生形變、部分遮擋等問題時(shí)也能有良好的魯棒性。但是這種經(jīng)典TLD算法跟蹤速度慢,當(dāng)目標(biāo)從遮擋中恢復(fù)時(shí),重新檢測(cè)到目標(biāo)所需時(shí)間較長,不具備實(shí)時(shí)跟蹤性。該算法對(duì)于光照強(qiáng)度變化也很敏感,一旦光照強(qiáng)度發(fā)生變化,往往容易導(dǎo)致跟蹤失敗。目前,針對(duì)TLD算法的改進(jìn)有很多。2019年,郭巳秋等[7]用顏色特征粒子群跟蹤算法更新了TLD算法,提高了算法的魯棒性,但跟蹤速度較慢。同年,胡欣等[8]將ViBe模型加入TLD算法,提高了算法的運(yùn)行速度,但該算法穩(wěn)定性較差。
針對(duì)TLD算法存在的跟蹤速度慢、對(duì)光照強(qiáng)度敏感的問題,本文在TLD算法的跟蹤模塊中,用KCF算法替代原有的中值流跟蹤算法,提高了TLD算法的跟蹤速度;通過在檢測(cè)模塊中加入HOG[9]特征,對(duì)圖像局部進(jìn)行歸一化,從而使該算法不受光照強(qiáng)度影響,解決了光照變化魯棒性差的問題。
TLD算法是KALAL等在2012年提出的一種單目標(biāo)長時(shí)間跟蹤算法,主要由跟蹤模塊[10]、檢測(cè)模塊[11]、學(xué)習(xí)模塊[12]3個(gè)部分組成。TLD算法將視頻幀圖像送入跟蹤、檢測(cè)、學(xué)習(xí)3個(gè)模塊,將跟蹤和檢測(cè)的結(jié)果輸入學(xué)習(xí)模塊,學(xué)習(xí)模塊通過學(xué)習(xí)判斷跟蹤和檢測(cè)模塊是否出現(xiàn)錯(cuò)誤,若出現(xiàn)錯(cuò)誤則更新檢測(cè)器和跟蹤器,否則就將跟蹤和檢測(cè)模塊的結(jié)果進(jìn)行綜合并輸出,得到目標(biāo)位置。TLD算法的框架如圖1所示。
圖1 TLD算法框架Fig.1 TLD algorithm framework
檢測(cè)模塊根據(jù)跟蹤目標(biāo)模型判斷下一幀中是否存在目標(biāo),若存在則定位出可能出現(xiàn)的位置。TLD算法檢測(cè)模塊由方差檢測(cè)器、隨機(jī)森林檢測(cè)器[13]和最近鄰分類器3部分級(jí)聯(lián)組成[14]。當(dāng)檢測(cè)開始時(shí),一幅視頻幀會(huì)被分成許多大小不一的圖像塊,這些圖像塊首先經(jīng)過方差檢測(cè)器計(jì)算方差,方差大于閾值的圖像塊進(jìn)入隨機(jī)森林檢測(cè)器,在隨機(jī)森林檢測(cè)器中對(duì)圖像塊進(jìn)行特征提取,計(jì)算后驗(yàn)概率,后驗(yàn)概率大于閾值的圖像塊進(jìn)入最近鄰分類器,在最近鄰分類器計(jì)算圖像塊與樣本的相關(guān)相似度,大于閾值的圖像塊就是最終的目標(biāo)。
學(xué)習(xí)模塊采用半監(jiān)督學(xué)習(xí)方法中的P-N學(xué)習(xí),通過P和N兩個(gè)專家系統(tǒng)對(duì)正負(fù)樣本進(jìn)行約束,消除檢測(cè)器誤將正樣本認(rèn)為是負(fù)樣本、負(fù)樣本認(rèn)為是正樣本的情況,使得分類所得到的結(jié)果更加準(zhǔn)確。最后,跟蹤和檢測(cè)兩個(gè)模塊進(jìn)行綜合,將兩個(gè)模塊輸出的目標(biāo)區(qū)域與檢測(cè)器中的樣本進(jìn)行相似度對(duì)比,相似度最大的區(qū)域即為最終的跟蹤目標(biāo)。
但TLD算法的跟蹤模塊采用的是中值流跟蹤算法,該算法以光流法為基礎(chǔ),加入了前向后向跟蹤機(jī)制和正則化系數(shù),這樣導(dǎo)致算法的跟蹤模塊計(jì)算量巨大,降低了跟蹤速度。另外,光流法對(duì)于跟蹤目標(biāo)的要求也比較高,若跟蹤目標(biāo)特征較少或者目標(biāo)與背景接近時(shí),跟蹤結(jié)果也會(huì)產(chǎn)生偏差。
同時(shí),由于TLD算法檢測(cè)模塊中的隨機(jī)森林檢測(cè)器采用的是灰度特征,該特征由對(duì)比圖像中的像素點(diǎn)對(duì)獲得,對(duì)光照變化敏感,一旦光照發(fā)生變化,隨機(jī)森林檢測(cè)器就會(huì)出現(xiàn)誤判,甚至導(dǎo)致跟蹤失敗。
針對(duì)TLD算法存在的不足,在TLD算法的基礎(chǔ)上,對(duì)跟蹤模塊及檢測(cè)模塊進(jìn)行改進(jìn)。在跟蹤模塊中用KCF算法代替中值流跟蹤算法,提高了算法的跟蹤速度。在檢測(cè)模塊的隨機(jī)森林檢測(cè)器中,將灰度特征替換為圖像的HOG特征,提高了算法對(duì)光照強(qiáng)度變化的魯棒性。
改進(jìn)TLD目標(biāo)跟蹤算法流程如圖2所示。該算法首先讀取視頻的第一幀圖像,并從第一幀圖像中選擇跟蹤目標(biāo),用不同尺度的掃描窗將第一幀圖像分成大小不一的多個(gè)圖像塊。然后對(duì)每個(gè)圖像塊進(jìn)行HOG特征提取,將所得特征用于TLD的各個(gè)模塊,完成初始化。接著將讀取的下一幀圖像送入檢測(cè)模塊和跟蹤模塊,跟蹤模塊采用KCF跟蹤算法對(duì)圖像中的目標(biāo)進(jìn)行跟蹤;檢測(cè)模塊用不同尺度的掃描窗對(duì)圖像進(jìn)行分塊,再將圖像塊送入方差檢測(cè)器,當(dāng)圖像塊經(jīng)過隨機(jī)森林檢測(cè)器時(shí)會(huì)進(jìn)行HOG特征提取,用HOG特征代替原算法的灰度特征,最后再進(jìn)入最近鄰分類器進(jìn)行檢測(cè)。最后再將跟蹤和檢測(cè)模塊所得結(jié)果輸入P-N學(xué)習(xí)模塊,P-N學(xué)習(xí)糾正跟蹤器和檢測(cè)器出現(xiàn)的誤判,得到該幀圖像中目標(biāo)位置,完成本幀圖像的跟蹤。
圖2 改進(jìn)的TLD目標(biāo)跟蹤算法流程圖Fig.2 Improved TLD target tracking algorithmflowchart
本文的改進(jìn)算法將KCF算法作為TLD算法的跟蹤模塊,提高了TLD算法的跟蹤速度。
KCF算法是一種相關(guān)濾波算法,該算法的核心是求得一個(gè)響應(yīng)值最大的目標(biāo)模板。原始問題可以表示為
(1)
式中:xi為訓(xùn)練樣本;yi為xi經(jīng)過高斯函數(shù)后的結(jié)果;f(xi)為xi與目標(biāo)模板ω在頻域內(nèi)的點(diǎn)積;λ為正則項(xiàng)系數(shù),防止目標(biāo)模板過擬合。
將樣本xi的整體用X來表示,yi的整體用y來表示,則式(1)可以寫成
(2)
對(duì)ω求偏導(dǎo)可得
ω=(XTX+λI)-1XTy
(3)
式中:X為循環(huán)矩陣;I為單位陣。
通過離散傅里葉變換進(jìn)行對(duì)角化,計(jì)算式為
(4)
根據(jù)循環(huán)矩陣的性質(zhì)可得
(5)
將式(5)進(jìn)行離散傅里葉逆變換就得到了目標(biāo)模板。
由于KCF目標(biāo)模板計(jì)算跟蹤目標(biāo)是通過循環(huán)矩陣進(jìn)行的,循環(huán)矩陣可以將時(shí)域計(jì)算轉(zhuǎn)換到頻域,將卷積轉(zhuǎn)換為乘積,大大降低了計(jì)算量,提高了跟蹤速度。
在TLD算法中隨機(jī)森林檢測(cè)器共有3棵決策樹,每棵決策樹對(duì)圖像塊的檢測(cè)是通過對(duì)比13對(duì)不同位置的像素點(diǎn)對(duì)的值來進(jìn)行的,對(duì)比結(jié)果用0和1表示,得到一串二進(jìn)制的結(jié)果作為圖像塊的特征值,所得特征值就是灰度特征。根據(jù)灰度特征和訓(xùn)練集求得圖像塊為目標(biāo)的概率,將3棵決策樹所求得的概率取平均,得到該圖像塊為目標(biāo)的最終概率。最終概率大于閾值的圖像塊被保留,進(jìn)入最近鄰檢測(cè)器。在上述過程中,決策樹對(duì)比圖像塊中像素點(diǎn)是假設(shè)光照強(qiáng)度恒定不變的,當(dāng)光照強(qiáng)度發(fā)生變化時(shí)所得特征值誤差較大,影響檢測(cè)結(jié)果,甚至?xí)?dǎo)致跟蹤失敗。針對(duì)該不足,本文在隨機(jī)森林檢測(cè)器用目標(biāo)的HOG特征替換灰度特征來解決光照強(qiáng)度影響檢測(cè)結(jié)果的問題。HOG通過計(jì)算梯度來描述物體的輪廓和形狀信息,并且會(huì)對(duì)圖像進(jìn)行歸一化,歸一化后的檢測(cè)器對(duì)光照變化不敏感,從而解決了光照強(qiáng)度變化影響檢測(cè)結(jié)果的問題。
在HOG運(yùn)行過程中,1幀圖像會(huì)被分成若干個(gè)block,而1個(gè)block會(huì)被分成若干個(gè)cell,cell由像素點(diǎn)組成,如圖3所示。
圖3 圖像組成示意圖Fig.3 Schematic diagram of image composition
像素梯度的計(jì)算是HOG特征的核心,其大小G(x,y)和方向α用公式表示為:
(6)
(7)
得到像素點(diǎn)梯度后建立block方向梯度直方圖,流程如圖4所示。將1個(gè)block進(jìn)行均勻分割,得到4個(gè)cell,對(duì)每個(gè)cell建立直方圖,直方圖的橫坐標(biāo)為梯度方向,范圍從0°~180°,每個(gè)直方條的間隔為20°,每1個(gè)直方條稱為1個(gè)bin;縱坐標(biāo)是權(quán)值,權(quán)值是梯度的大小。將像素點(diǎn)的梯度方向?qū)?yīng)到bin中,像素點(diǎn)的梯度大小累加到該組bin中對(duì)應(yīng)為權(quán)值,這樣就得到該cell的方向梯度直方圖,最后將4個(gè)cell的直方圖進(jìn)行組合,就得到了該block的方向梯度直方圖。
圖4 基于block的方向梯度直方圖Fig.4 Histogram based on the directional gradient of the block
通過對(duì)比不同bin中像素的梯度值,得到block的特征值,對(duì)比公式見式(8),為
f(x;u,θ)=F(H(x;u,b)>H(x;u,b'))
(8)
式中:F(a)為布爾值,a為真,F(xiàn)(a)=1,反之,F(xiàn)(a)=0;H(x;u,b)為第b個(gè)bin所對(duì)應(yīng)的梯度值,u為block的中心點(diǎn)。
(a) 整體精確度圖
(a) 光照變化下的精確度圖
隨機(jī)森林檢測(cè)器采用的特征值是13位的二進(jìn)制串,將式(8)運(yùn)行13次,得到13位的二進(jìn)制串,該二進(jìn)制串就是block的特征值,見式(9),為
f(x;u,θ)=[f(x;u,θ1),…,f(x;u,θ13)]
(9)
通過對(duì)block的梯度歸一化能夠減少光照強(qiáng)度對(duì)檢測(cè)器的影響,公式為
(10)
式中ε為一個(gè)很小的常數(shù),避免分母為0。
由于HOG特征提取的是圖像的梯度信息而非灰度信息,對(duì)光照變化不敏感,將其加入隨機(jī)森林檢測(cè)器,代替灰度特征,可以有效解決光照變化造成隨機(jī)森林檢測(cè)器檢測(cè)失敗的問題。
為驗(yàn)證該算法的效果,將TLD算法、KCF算法和本文算法(標(biāo)記為Ours)進(jìn)行對(duì)比。實(shí)驗(yàn)數(shù)據(jù)集選用WU等[15]的OTB2013中的50組視頻序列進(jìn)行測(cè)試,視頻序列共包含光照變化、尺度變化、遮擋、形變、運(yùn)動(dòng)模糊、旋轉(zhuǎn)、離開視野、相似的背景、低分辨率等9種屬性。采用WU提出的一次通過評(píng)估(One-Pass Evaluation, OPE)來評(píng)估算法精確度和成功率,其中精確度表示算法預(yù)測(cè)的中心位置誤差小于給定閾值幀數(shù)的百分比,閾值設(shè)置為20,精確度圖按照算法結(jié)果的百分比由大到小排序。成功率表示跟蹤區(qū)域和人工標(biāo)注區(qū)域的重疊率大于閾值的幀數(shù)百分比,成功率圖按照算法的曲線下面積由大到小排序。本實(shí)驗(yàn)在Windows10,Visual Studio 2013,Matlab 2019a,Opencv2.4.11環(huán)境下運(yùn)行,測(cè)試硬件環(huán)境為Intel Core i5 2.6GHz。實(shí)驗(yàn)數(shù)據(jù)包含OTB2013所有視頻序列。
將本文算法、TLD算法和KCF算法加入OTB2013測(cè)試平臺(tái)進(jìn)行對(duì)比,結(jié)果如圖5所示。由圖5可以看出:本文算法的精度變化曲線和成功率曲線都處于第1名的位置,分別達(dá)到了78.7%和74.1%,分別高出了TLD算法19.2%和23.5%。
在光照強(qiáng)度發(fā)生變化時(shí)3種算法在OTB2013測(cè)試平臺(tái)下的精度圖和成功率圖如圖6所示。在光照變化的情況下,本文算法的精度和成功率都要高于TLD算法,說明本文算法在光照變化下的魯棒性要好于TLD算法;本文算法的精度曲線與KCF算法幾乎相同但成功率高于KCF算法。
為了更直觀地對(duì)算法進(jìn)行分析,本文選取了3個(gè)最具代表性的視頻序列進(jìn)行分析,這3個(gè)視頻序列均包含光照強(qiáng)度變化,另外還有旋轉(zhuǎn)、背景相似等挑戰(zhàn),見表1。
表1 所選視頻序列目標(biāo)包含的挑戰(zhàn)
圖7~圖9為3種方法在3個(gè)視頻序列中的跟蹤結(jié)果的對(duì)比。圖7中,在49幀,當(dāng)光照變強(qiáng),TLD算法未能跟蹤到目標(biāo);在第109幀,目標(biāo)出現(xiàn)旋轉(zhuǎn),本文算法和KCF算法均跟蹤到了目標(biāo),TLD算法跟蹤失??;在第277幀,視頻序列快要結(jié)束,目標(biāo)從遮擋中出現(xiàn),此時(shí)KCF算法未能及時(shí)更新目標(biāo)尺度,跟蹤失敗,本文算法和TLD算法均跟蹤到目標(biāo)。圖8中,在210幀和258幀中,當(dāng)目標(biāo)光照強(qiáng)度出現(xiàn)變化,TLD算法出現(xiàn)了目標(biāo)框漂移現(xiàn)象,KCF算法目標(biāo)框尺度過大,本文改進(jìn)算法能夠準(zhǔn)確跟蹤到目標(biāo);在620幀,視頻序列即將運(yùn)行結(jié)束時(shí),TLD算法通過學(xué)習(xí)模塊重新跟蹤到了目標(biāo),KCF算法的目標(biāo)框依舊存在尺度過大的情況。圖9中,光照強(qiáng)度由低到高的情況下,TLD算法完全失效,本文算法和KCF算法均能跟蹤到目標(biāo);在408幀,目標(biāo)出現(xiàn)快速移動(dòng)時(shí),本文算法和KCF算法均跟蹤到目標(biāo),但KCF算法目標(biāo)框出現(xiàn)輕微尺度變化。
圖7 Car4序列跟蹤結(jié)果Fig.7 Car4 sequence tracking results
圖8 Coke序列跟蹤結(jié)果Fig.8 Coke sequence tracking results
圖9 Trellis序列跟蹤結(jié)果Fig.9 Trellis sequence tracking results
本文還對(duì)3種算法的運(yùn)行速度進(jìn)行對(duì)比驗(yàn)證,表2是本文算法、KCF算法和TLD算法在3個(gè)視頻序列中的平均幀率。KCF算法的幀率最高,跟蹤速度最快,但不具備長時(shí)間跟蹤的能力。本文算法結(jié)合了KCF算法的優(yōu)勢(shì),平均幀率相較于TLD算法提升了2倍,可滿足實(shí)時(shí)性的需求。由于本文算法是在TLD算法基礎(chǔ)上進(jìn)行改進(jìn),雖然將跟蹤模塊替換成KCF算法,但檢測(cè)和學(xué)習(xí)模塊也較為耗時(shí),所以跟蹤速度相較于KCF算法還有一定差距。
表2 平均幀率對(duì)比
TLD算法是一種優(yōu)異的目標(biāo)跟蹤算法,它能對(duì)目標(biāo)進(jìn)行學(xué)習(xí),實(shí)現(xiàn)目標(biāo)的長時(shí)間跟蹤。本文算法對(duì)TLD算法進(jìn)行改進(jìn),用KCF算法替換跟蹤模塊的中值流跟蹤法,提升了算法的速度;對(duì)檢測(cè)模塊中的隨機(jī)森林檢測(cè)器進(jìn)行改進(jìn),在隨機(jī)森林檢測(cè)器中加入了目標(biāo)HOG特征,彌補(bǔ)了TLD算法在光照強(qiáng)度發(fā)生變化時(shí)跟蹤結(jié)果差的不足。實(shí)驗(yàn)表明,本文算法的魯棒性和跟蹤速度均優(yōu)于TLD算法。