






摘 要:隨著智能時代的到來,圖像處理技術成為專家學者研究的熱門,目標跟蹤也成為眾多研究者關注的焦點,其中TLD(Tracking-Learning-Detection)跟蹤算法是一種跟蹤效果穩定性、魯棒性、可靠性都很高的跟蹤算法。但其計算量十分巨大,使一般嵌入式設備無法滿足其運算要求,跟蹤效果的實時性也大打折扣。針對TLD這種缺陷,文章提出了TLD和卡爾曼濾波器相結合的目標跟蹤算法。在不影響跟蹤效果的魯棒性和可靠性的前提下,使實時性有了很大提高,也使對計算機硬件的要求降低了很多。
關鍵詞:TLD;卡爾曼濾波器;目標跟蹤
引言
TLD[1](Tracking-Learning-Detection)是英國薩里大學的一個捷克籍博士生在其攻讀博士學位期間提出的一種新的單目標長時間(long term tracking)跟蹤算法。該算法與傳統跟蹤算法的顯著區別在于將傳統的跟蹤算法和傳統的檢測算法相結合來解決被跟蹤目標在被跟蹤過程中發生的形變、部分遮擋等問題。同時,通過一種改進的在線學習機制不斷更新跟蹤模塊的“顯著特征點”和檢測模塊的目標模型及相關參數,從而使得跟蹤效果更加穩定、魯棒、可靠。
該方法雖然有較好的跟蹤效果,但它需要一個離線的學習過程。即:在檢測之前,需要挑選大量的被跟蹤目標的樣本來進行學習和訓練。訓練樣本要涵蓋被跟蹤目標可能發生的各種形變和尺度、姿態變化的情況。所以在數據計算量十分巨大,對計算機硬件要求極高,一般的嵌入式設備更無法滿足要求。針對這一問題,文章提出了卡爾曼濾波器和TLD相結合的解決辦法,利用卡爾曼濾波器來預測運動目標在當前幀的可能位置,將它作為TLD的起始位置,TLD會在這一位置鄰域內尋找目標在當前幀的位置,從而大大縮小了檢測范圍,計算量也隨之大大減小,在很大程度上降低了對硬件的要求,對跟蹤的實時性也有了很大的提高。
1 TLD算法概述
能對鎖定的目標進行不斷的學習是TLD跟蹤系統最大優點,通過算法計算出目標有可能的各種形變,進而達到較好的跟蹤效果。也就是說,系統能持續不斷地進行探測,獲知目標在角度、距離、景深等方面的變化,并及時檢測。經過一段時間的學習之后,跟蹤過程就能達到較好的效果。TLD算法由三部分組成:跟蹤模塊、檢測模塊、學習模塊。
下面簡要介紹各模塊工作過程。
1.1 追蹤模塊
TLD采用的是Median-Flow追蹤算法,該算法具有正反連續性[2](forward-backward consistency)。所謂的正反連續性是指在時間上的正序追蹤和反序追蹤,產生的軌跡是一樣的。假設從t時刻的初始位置x(t)開始進行追蹤到t+k時刻的位置x(t+k),再從位置x(t+k)反向追蹤t時刻的預測位置x(t)。
1.2 學習模塊
TLD跟蹤算法學習模塊使用的是P-N學習[3](P-N Learning)。P-N學習是一種半監督的機器學習算法,它針對檢測器對樣本分類時產生的兩種錯誤提供了兩種“專家”進行糾正。
P專家(P-expert):檢出漏檢(1 negative,正樣本誤分為負樣本)的正樣本。
N專家(N-expert):改正誤檢(1 positive,負樣本誤分為正樣本)的正樣本。
1.3 檢測模塊
檢測模塊能夠改正追蹤模塊做出的錯誤判定,所以檢測模塊是追蹤模塊的監督者;檢測模塊通過計算新樣本的相對相似度,如大于0.6,就認為是正樣本。分別用Pi和Pj表示正鄰近相似度和負鄰近相似度。公式里規范化的相關系數用N表示,相似度S的取值范圍在[0,1]之間。
通過實驗表明:當最終相似度大于0.85系統就可以認定為跟蹤準確,當相似度小于0.6時系統認為跟蹤發生偏離,要向系統報錯。
2 卡爾曼濾波器預估啟動點
2.1 濾波器引入
從上面TLD算法的工作過程我們可以知道,該過程相當復雜,需要進行大量的預估和計算,對計算機硬件要求極高,一般硬件很難完成實時性的要求,而卡爾曼濾波器對硬件設備要求很低,所以我們首先用卡爾曼濾波器預估目標的位置,作為TLD算法中目標的起始位置,TLD會在這一目標位置的鄰域內找到目標的最優位置,從而大大減少了TLD尋找目標位置的過程,進而減少了計算量,提高了跟蹤的實時性。
2.2 濾波器模型
由于現實生活中我們跟蹤的目標的運動速度和加速度都是一個隨機變量,在做隨機的非直線運動,對我們的跟蹤造成一定麻煩。設隨機量加速度,α(t)~N(0,σ2w),令目標中心在x軸y軸上的位置分量分別是X(k)與Y(k)。x軸和y軸上的速度分別是X'(k),Y'(k)。頻域模型和時域模型組成了卡爾曼濾波。
時域模型:X(k)=A(k-1)X(k-1)+B(K)W(k)
頻域模型:Y(k)=C(k)X(k)+V(k)
用矩陣的形式表示為:
3 實驗仿真與結果分析
為了比較文章提出的改進算法與原始的TLD跟蹤算法的優劣,文章首先對跟蹤目標在MATLAB7.0下進行仿真實驗,仿真結果如圖1所示:
從用MATLAB仿真效果來看,兩種算法的跟蹤效果相差不大,可見文章提出的算法是可以達到原始算法的魯棒性和可靠性的要求,為了更準確起見,我們在Linux系統下,基于Opencv2.3編程實現該算法,對下面視頻中運動的排球進行跟蹤,驗證改進算法的實時性能是否有較好的提升。跟蹤效果如圖2、圖3所示:
通過我們對排球比賽中排球的跟蹤結果發現兩種,兩種跟蹤方法對排球跟蹤的魯棒性和可靠性相差不大,可以證明我們的跟蹤方法沒有削弱原來算法的魯棒性和可靠性。但我們通過表1表2通過對比兩種方法處理同一視頻的20到34幀共15幀圖像處理的時間分析對比可以發現用原始TLD算法跟蹤15幀圖像共消耗時間0.451S,平均每幀消耗時間為0.030S。用改進后的TLD算法跟蹤15幀圖像共消耗時間0.286S,平均每幀消耗時間為0.019S。通過對數據分析我們發現改進后的算法在不影響跟蹤效果的基礎上處理每幀所用的時間比原來減少了35%,證明了我們的算法實時性要比原來算法實時性更好。
4 結束語
TLD跟蹤算法具有在線學習機制和檢測糾錯機制,通過不斷學習目標樣本的變形及在跟蹤過程中不斷糾錯,使跟蹤器具有較好的跟蹤效果。但由于計算量太大很難滿足跟蹤實時性的要求,為解決實時性的要求,文章提出了卡爾曼濾波器和TLD跟蹤算法相結合的算法,首先通過卡爾曼濾波器預測出目標可能出現的位置,然后用TLD算法跟蹤在可能出現的位置尋找目標位置,從而使TLD算法查找的范圍大大縮減,由于卡爾曼濾波器計算量比較小,綜合起來新算法的計算量比原算法相比計算量仍然減少了很多,跟蹤的實時性得到了提高,實驗數據表明新算法跟蹤目標所用的時間更短,也就證明實時性得到了提高。
參考文獻
[1]Kalal Z,Matas J,Mikolajczyk K. Online learning of robust object detectors during unstable tracking[C]//Proceedings of the IEEE Online Learning for Computer Vision Workshop. New York: IEEE Press,2009:14171424.
[2]Kalal Z,Mikolajczyk K,Matas J. Forward-backward error: automatic detection of tracking failures[C]//Proceedings of International Conference on Pattern Recognition. New York: IEEE Press,2010:2326.
[3]Kalal Z,Matas J,Mikolajczyk K. P-N learning: bootstrapping binary classifiers by structural constraints[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE Press,2010:4956.