董春燕,劉 懷,梁秦嘉
(南京師范大學(xué)電氣與自動化工程學(xué)院,江蘇 南京 210023)
目標(biāo)跟蹤是視覺分析和處理領(lǐng)域的一個(gè)重要研究內(nèi)容,在智能交通管理、視頻監(jiān)控和軍事制導(dǎo)等領(lǐng)域有廣泛的應(yīng)用[1]. 目標(biāo)跟蹤的任務(wù)是確定目標(biāo)在視頻序列中每一幀的位置和大小,并構(gòu)建其運(yùn)動軌跡. 然而,目標(biāo)在運(yùn)動過程中可能會發(fā)生形變、尺度變化以及相互遮擋等干擾情況,會造成目標(biāo)丟失或跟蹤精確度降低. 因此,需要研究一種在干擾存在的情況下具有先驗(yàn)不確定性的實(shí)時(shí)目標(biāo)跟蹤方法. 早期的運(yùn)動目標(biāo)跟蹤借鑒了圖像配準(zhǔn)的思想[2-3],主要有KLT(kanade-lucas-tomasi)跟蹤、Meanshift跟蹤、粒子濾波跟蹤算法等. 隨著機(jī)器學(xué)習(xí)技術(shù)在目標(biāo)跟蹤領(lǐng)域的迅速發(fā)展和應(yīng)用,研究人員提出了一種更強(qiáng)大的跟蹤框架,該框架具有較強(qiáng)的泛化能力,被稱為判別類跟蹤[4-5]. 近幾年,從世界頂級的視覺期刊和會議上來看,視覺跟蹤的研究重點(diǎn)已轉(zhuǎn)向基于相關(guān)濾波的目標(biāo)跟蹤算法以及深度學(xué)習(xí)的目標(biāo)跟蹤算法[6],如Choi等[7]提出的RDT(real-time deep tracking)算法,Gordon等[8]提出的Re3(real-time recurrent regression networks)算法以及Wang等[9]提出的SiamMask算法等. 但目前深度學(xué)習(xí)的跟蹤算法對于硬件性能的要求較高,普遍存在實(shí)時(shí)性較差的問題,準(zhǔn)確性和實(shí)時(shí)性難以兼得.
在判別類算法中,核相關(guān)濾波(kernel correlation filter,KCF)跟蹤算法[10]能夠兼顧跟蹤精度和速度,但在目標(biāo)被遮擋或發(fā)生形變的情況下,易丟失目標(biāo). TLD算法將跟蹤器與檢測器結(jié)合起來以解決此問題,然而該算法耗時(shí)量大,且跟蹤器性能不穩(wěn)定. 為了提高TLD算法的性能,許多學(xué)者對其進(jìn)行了改進(jìn). 在對其中的跟蹤器進(jìn)行改進(jìn)時(shí),張?bào)@雷等[11]使用尺度自適應(yīng)均值偏移(scale-adaptive mean-shift for tracking,ASMS)跟蹤器代替原始TLD跟蹤算法中的中值光流跟蹤器. 毛曉波等[12]采用FAST特征點(diǎn)代替中值光流跟蹤器中均勻分布的特征點(diǎn),一定程度上提高了算法的準(zhǔn)確性,但基于特征點(diǎn)的中值光流法跟蹤算法耗時(shí)量大,且光流法假設(shè)目標(biāo)顏色不變,在發(fā)生光照變化時(shí)會導(dǎo)致目標(biāo)丟失. 在對其中的檢測器進(jìn)行改進(jìn)時(shí),王姣堯等[13]使用光流法對檢測區(qū)域進(jìn)行粗定位以縮小檢測范圍,但在目標(biāo)發(fā)生遮擋時(shí),特征點(diǎn)數(shù)量減少甚至完全消失,不能準(zhǔn)確預(yù)測目標(biāo)位置. 常立博等[14]使用基于ViBe算法的檢測器代替原算法的方差分類器,雖然一定程度上提高了算法的跟蹤速度,但在背景運(yùn)動時(shí),不能獲得前景目標(biāo),會導(dǎo)致目標(biāo)丟失.
本文借鑒以上算法的設(shè)計(jì)思路,對TLD算法進(jìn)行了改進(jìn). 考慮到TLD算法中的中值光流跟蹤器在亮度發(fā)生變化時(shí)不夠魯棒且計(jì)算量大,而KCF跟蹤器對光照變化魯棒且運(yùn)算速度快,故而本文使用KCF跟蹤器替代原有的中值光流跟蹤器. 為了進(jìn)一步提高跟蹤器的精度,本文又對其進(jìn)行改進(jìn),在特征提取階段增加了目標(biāo)特征表達(dá),在尋找目標(biāo)位置時(shí)加入了尺度估計(jì),在模型更新階段對更新策略進(jìn)行了優(yōu)化;針對其中的檢測器,在檢測之前引入了卡爾曼濾波對目標(biāo)位置進(jìn)行預(yù)測,既確保了算法存在遮擋時(shí)的精確性,又利用了目標(biāo)的運(yùn)動信息,極大地減少了檢測窗口的數(shù)目以及相似目標(biāo)的影響. 同時(shí),對檢測器中的級聯(lián)分類器進(jìn)行改進(jìn),級聯(lián)分類器的前兩級保持不變,第三級則采用上述改進(jìn)的KCF跟蹤器進(jìn)行分類. 在OTB-50數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果分析表明,本文算法跟蹤性能優(yōu)于其他算法.
TLD算法包括跟蹤器、檢測器、綜合模塊與學(xué)習(xí)器. 跟蹤器通過中值光流法執(zhí)行幀到幀的目標(biāo)跟蹤;檢測器采用級聯(lián)分類器,逐幀掃描以檢測目標(biāo)位置;綜合模塊根據(jù)跟蹤器和檢測器的結(jié)果得出最終的預(yù)測位置;學(xué)習(xí)器根據(jù)此預(yù)測位置,對檢測器有選擇地進(jìn)行更新. TLD算法為遮擋跟蹤和長時(shí)間跟蹤提供了可行的方法與框架,但當(dāng)TLD算法的中值光流跟蹤器在當(dāng)前幀的圖像亮度與前一幀不同時(shí),會導(dǎo)致跟蹤失敗,且該算法計(jì)算量大. 檢測器需要檢測大量無意義的窗口,這些無意義的窗口造成了內(nèi)存消耗和時(shí)間消耗的問題. 學(xué)習(xí)器中主要是對檢測器進(jìn)行學(xué)習(xí),缺乏必要的跟蹤器模型的保存與更新,從而使跟蹤器不能適應(yīng)目標(biāo)的變化. 同時(shí),TLD算法未利用圖像的顏色信息,當(dāng)目標(biāo)外觀變化時(shí)易累積模型誤差.
KCF跟蹤算法在判別類算法中具有較高的精度,其將跟蹤轉(zhuǎn)化為脊回歸的問題,并利用循環(huán)矩陣的性質(zhì),通過在頻域中訓(xùn)練出的濾波器模型,來尋找相關(guān)響應(yīng)值最大的圖像位置,即為后續(xù)幀中的目標(biāo)位置. 由于是在線訓(xùn)練,為了適應(yīng)目標(biāo)的變化,需要使用線性插值對目標(biāo)樣本特征和濾波器模型進(jìn)行更新,從而實(shí)現(xiàn)對目標(biāo)的學(xué)習(xí)與檢測. 由于相關(guān)運(yùn)算可在頻域內(nèi)有效地計(jì)算,因此KCF跟蹤算法具有很高的運(yùn)行速度. 但KCF算法中缺乏遮擋判別機(jī)制,當(dāng)目標(biāo)被遮擋時(shí),模型中會引入錯(cuò)誤的目標(biāo)信息,導(dǎo)致跟蹤漂移甚至目標(biāo)丟失.
本文基于KCF算法對TLD算法進(jìn)行改進(jìn),改進(jìn)的算法框圖如圖1所示. 該算法不僅采用改進(jìn)的KCF跟蹤器替代原有的中值光流跟蹤器,而且在檢測器前加入卡爾曼(Kalman)濾波對目標(biāo)位置進(jìn)行預(yù)測,并使用改進(jìn)的KCF跟蹤器代替檢測器中耗時(shí)的最近鄰分類器,有效地提高了算法的速度與跟蹤精度.
傳統(tǒng)KCF算法采用單一HOG特征對目標(biāo)建模,對目標(biāo)的描述有限. HOG特征描述了目標(biāo)的形狀,對顏色和光照變化具有較強(qiáng)的魯棒性[15],但當(dāng)目標(biāo)快速變形時(shí),無法確定目標(biāo)位置. Lab特征在Lab顏色空間求每個(gè)像素的Lab值和15組特定的Lab值的歐氏距離的平方以此描述目標(biāo)顏色,對目標(biāo)形變魯棒,然而當(dāng)發(fā)生顏色變化時(shí),無法確定目標(biāo)位置. HOG特征和Lab特征分別描述了目標(biāo)的形狀和顏色,具有一定的互補(bǔ)性. 因此,本文算法在提取HOG特征的基礎(chǔ)上進(jìn)一步提取Lab特征以豐富特征表達(dá).
傳統(tǒng)的KCF跟蹤算法不能適應(yīng)目標(biāo)大小的變化,在目標(biāo)變大或變小時(shí),可能會出現(xiàn)目標(biāo)丟失或跟蹤精度降低的問題,本文受文獻(xiàn)[16]的啟發(fā),通過在同一幀圖像上提取不同尺度下的候選目標(biāo)樣本特征,來計(jì)算目標(biāo)的最優(yōu)尺度. 為了不顯著降低運(yùn)行速度,本文只選取長寬分別為前一幀目標(biāo)搜索區(qū)域的0.95倍、1.0倍以及1.05倍的3個(gè)尺度作為檢測尺度,如圖2所示.
TLD算法為遮擋跟蹤和長時(shí)間跟蹤提供了可行的方法與框架,但TLD算法中的檢測器需要檢測大量無意義的窗口,這些無意義的窗口造成了內(nèi)存消耗和時(shí)間消耗.
一般來說,前一幀跟蹤到的目標(biāo)位置對當(dāng)前幀目標(biāo)位置具有一定的指示性,此外Kalman濾波能夠根據(jù)之前幀的目標(biāo)位置來得到當(dāng)前幀的預(yù)測位置. 為了比較選擇前一幀跟蹤到的目標(biāo)位置(KCFprevFrame)作為預(yù)測位置與選擇Kalman濾波得到的當(dāng)前幀的預(yù)測位置的準(zhǔn)確性,本文在OTB-50數(shù)據(jù)集上進(jìn)行測試,選取中心位置誤差這一評價(jià)指標(biāo)對跟蹤誤差進(jìn)行分析. 中心位置誤差(center location error,CLE)計(jì)算公式為:
(1)
式中,(xT,yT)是跟蹤到的目標(biāo)中心位置坐標(biāo);(xG,yG)是真實(shí)的目標(biāo)中心位置坐標(biāo).
表1為上述兩種預(yù)測算法在OTB-50數(shù)據(jù)集中的5個(gè)視頻序列上運(yùn)行得到的中心位置誤差. 可以看出,前一幀跟蹤到的目標(biāo)位置與當(dāng)前幀目標(biāo)真實(shí)位置的中心位置誤差較大,而采用Kalman濾波得到的預(yù)測位置與目標(biāo)真實(shí)位置的中心位置誤差較小.
表1 不同算法的平均中心位置誤差Table 1 Average center location errors of different algorithms
因此,本文以Kalman濾波預(yù)測的目標(biāo)位置為中心,以長寬分別為前一幀目標(biāo)區(qū)域的兩倍范圍來確定搜索區(qū)域,使用級聯(lián)分類器實(shí)現(xiàn)精確的目標(biāo)定位. 由于TLD算法中檢測器的前兩級分類器的運(yùn)行速度較快,而第三級分類器非常耗時(shí),故本文中檢測器的前兩級分類器保持不變,為了在第三級分類中高效準(zhǔn)確地搜索目標(biāo),本文采用與跟蹤器相同的KCF算法進(jìn)行分類,即將通過前兩級的樣本依次輸入KCF跟蹤器中,通過輸出響應(yīng)的最大值來進(jìn)行樣本篩選:
fmax=max(F-1(F(kxz)⊙F(α))),
(2)
式中,kxz為目標(biāo)樣本特征x和檢測樣本特征z的核互相關(guān)函數(shù);⊙表示點(diǎn)乘.
設(shè)定輸出響應(yīng)最大值的閾值,閾值初始設(shè)定為0.6×fmax,后續(xù)會進(jìn)行自動的學(xué)習(xí)更新. 將滿足判定跟蹤狀態(tài)條件且最大值大于閾值的樣本作為檢測器的輸出結(jié)果. 若所有的剩余樣本均不滿足判斷條件,則判定當(dāng)前幀沒有檢測到目標(biāo). 當(dāng)連續(xù)5幀級聯(lián)分類器無輸出時(shí)進(jìn)入全局搜索,這樣顯著減少了大量無意義的窗口,提高了實(shí)時(shí)性.
同時(shí)引入跟蹤狀態(tài)判別機(jī)制,將跟蹤器響應(yīng)圖的峰值fmax以及描述響應(yīng)圖波動程度的平均峰值相關(guān)能量APCE[17]作為判斷跟蹤狀態(tài)的依據(jù),如下所示:
(3)
式中,ft表示第t幀的響應(yīng)圖;fmax,t,fmin,t及fw,h,t分別表示第t幀響應(yīng)圖的峰值、最小值以及坐標(biāo)為(w,h)位置處的值.
此外,級聯(lián)檢測器中對樣本進(jìn)行分類的依據(jù)能夠?qū)⒛繕?biāo)樣本和非目標(biāo)樣本區(qū)分開,因此也能夠?qū)Ω櫊顟B(tài)進(jìn)行判斷. 因此本文選取隨機(jī)蕨分類器中的平均后驗(yàn)概率作為判斷跟蹤狀態(tài)的依據(jù):
(4)
綜上所述,判定跟蹤狀態(tài)的條件為:
fmax>τmax&&EAPCE>τAPCE&&pmean(y|x)>τmean,
(5)
式中,閾值τmax=0.5×fmean;τAPCE=0.4×EAPCEmean;τmean=0.6×pallmean;fmean,EAPCEmean及pallmean分別為判斷跟蹤狀態(tài)正常幀的最大值歷史均值、APCE值歷史均值及平均后驗(yàn)概率值歷史均值.
若滿足上述判定條件,則判定當(dāng)前跟蹤狀態(tài)正常,更新檢測器中的正負(fù)樣本及KCF濾波器模型. 否則,判定跟蹤狀態(tài)異常,不更新檢測器中的正負(fù)樣本及KCF濾波器模型.
本文實(shí)驗(yàn)基于VS2010開發(fā)平臺,使用Opencv2.4.9的庫編程實(shí)現(xiàn),PC機(jī)配置為Intel(R)Core(TM)i5-3337U CPU,主頻1.80 GHz,6GB內(nèi)存. 為了評估本文算法的跟蹤性能,采用文獻(xiàn)[18]中提出的精確度(distance precision,DP)和成功率(success rate,SR)兩個(gè)評價(jià)指標(biāo)對跟蹤性能進(jìn)行分析. 其中,DP是指中心位置誤差小于閾值的幀數(shù)占整個(gè)視頻序列幀數(shù)的百分比;SR是指重疊精度(overlap precision,OP)小于閾值的幀數(shù)占整個(gè)視頻序列幀數(shù)的百分比. OP的計(jì)算公式為:
(6)
式中,rT為跟蹤到的目標(biāo)區(qū)域面積;rG為目標(biāo)真實(shí)區(qū)域面積.
本文評估跟蹤器運(yùn)行速度的指標(biāo)是每秒幀率(frame per second,FPS),在計(jì)算FPS時(shí),數(shù)據(jù)集中的每個(gè)視頻都賦予了權(quán)值,以求出不同目標(biāo)尺寸和不同圖像分辨率下的平均FPS.
算法實(shí)驗(yàn)分析選取了整個(gè)OTB-50數(shù)據(jù)集的49組視頻序列進(jìn)行了兩組實(shí)驗(yàn). 實(shí)驗(yàn)1將本文算法和采用單一HOG特征的KCF算法、采用HOG和Lab兩種特征的KCF算法、采用兩種特征并引入尺度估計(jì)的KCF算法進(jìn)行對比,驗(yàn)證本文特征融合和尺度適應(yīng)算法的有效性. 實(shí)驗(yàn)2將本文算法與ASMS算法[2]、TLD算法[4]、KCF_TLD算法、KCF算法[9]以及ASMS_TLD算法[10]進(jìn)行對比分析,評估跟蹤算法的整體性能,并選取Box、Jogging2、subway以及Lemming 4組視頻序列進(jìn)行分析,評估跟蹤算法在遮擋情況下的性能.
實(shí)驗(yàn)1圖3是本文算法和采用HOG特征的KCF算法、采用HOG和Lab兩種特征的改進(jìn)KCF算法、采用兩種特征并引入尺度估計(jì)的改進(jìn)KCF算法(圖中標(biāo)記為KCF+)跟蹤得到的精確度與成功率曲線圖,其中本文算法在曲線圖中標(biāo)記為Proposed. 從圖3可以看出,使用多個(gè)特征的KCF跟蹤算法比使用單一特征跟蹤的效果更好,引入尺度估計(jì)的改進(jìn)KCF算法比未引入的效果更好,且本文算法基于改進(jìn)KCF算法對TLD算法進(jìn)行改進(jìn),使跟蹤結(jié)果優(yōu)于其他算法.
實(shí)驗(yàn)2圖4為本文算法與ASMS算法[2]、TLD算法[4]、KCF_TLD算法、KCF算法[9]以及ASMS_TLD算法[10]在整個(gè)OTB-50數(shù)據(jù)集的精確度與成功率曲線圖. 其中本文算法在曲線圖中的標(biāo)記為Proposed. 從圖4可以看出,本文算法比其他5種算法具有更高的精確度和成功率.
圖5為本文算法與ASMS算法[2]、TLD算法[4]、KCF_TLD算法、KCF算法[9]以及ASMS_TLD算法[10]在Box、Jogging2、subway以及Lemming 4組目標(biāo)發(fā)生遮擋的視頻序列上的精確度與成功率曲線圖,其中本文算法在曲線圖中標(biāo)記為Proposed. 從圖5可以看出,在遮擋情況下本文算法比其他5種算法具有更高的精確度和成功率.
在速度方面,由于本文算法采用KCF跟蹤器替代TLD算法中較耗時(shí)的中值光流跟蹤器,并采用Kalman濾波算法,在不影響跟蹤性能的前提下,縮小了檢測區(qū)域,提高了算法的實(shí)時(shí)性,使得跟蹤速度略高于經(jīng)典TLD算法. 但由于TLD算法中的檢測器比較耗時(shí),故本文算法的速度與高速的KCF算法和ASMS算法相比仍存在較大差距,因此提高算法的速度是今后工作的重點(diǎn). 本文算法與其他5種跟蹤算法在OTB-50數(shù)據(jù)集的49組視頻序列中運(yùn)行的平均速度(mean FPS)如表2所示.
表2 6種跟蹤算法的平均速度比較Table 2 Comparison of mean FPS of six tracking algorithms
本文在TLD算法框架下,提出了一種基于核相關(guān)濾波的TLD跟蹤算法. 該算法對TLD算法的跟蹤器和檢測器兩部分進(jìn)行了改進(jìn),提高了算法在發(fā)生尺度變化或遮擋情況下的跟蹤性能.
本文使用KCF跟蹤器替代了TLD中的光流跟蹤器,并對KCF跟蹤器進(jìn)行了改進(jìn):在特征提取時(shí)增加了目標(biāo)的Lab顏色特征,在尋找目標(biāo)位置時(shí)引入尺度估計(jì),在模型更新階段引入跟蹤狀態(tài)判別機(jī)制,不僅使用檢測器判定跟蹤器的跟蹤結(jié)果的可靠性,且設(shè)定跟蹤器中輸出響應(yīng)最大值及APCE值的閾值,根據(jù)判定結(jié)果來選擇是否更新濾波器模型. 對于其中的檢測器,為了減少大量無意義的窗口,并提升算法在存在遮擋時(shí)的精確性,使用Kalman濾波預(yù)估出目標(biāo)位置,然后在預(yù)估位置周圍使用級聯(lián)分類器更精準(zhǔn)地定位目標(biāo). 本文改進(jìn)的級聯(lián)分類器的前兩級保持不變,第三級采用上述改進(jìn)的KCF跟蹤器進(jìn)行分類.
為了驗(yàn)證本文算法的有效性,在OTB-50數(shù)據(jù)集上進(jìn)行了對比實(shí)驗(yàn). 結(jié)果表明,本文算法在發(fā)生遮擋、形變和亮度變化的情況下跟蹤性能優(yōu)于其他算法.