1. 程式人生 > >運動目標跟蹤演算法綜述

運動目標跟蹤演算法綜述

  運動目標跟蹤是視訊監控系統中不可缺少的環節。在特定的場景中,有一些經典的演算法可以實現比較好的目標跟蹤效果。本文介紹了一般的目標跟蹤演算法,對幾個常用的演算法進行對比,並詳細介紹了粒子濾波演算法和基於輪廓的目標跟蹤演算法。最後簡單介紹了目標遮擋的處理、多攝像頭目標跟蹤和攝像頭運動下的目標跟蹤。

一、一般的目標跟蹤演算法

  一般將目標跟蹤分為兩個部分:特徵提取、目標跟蹤演算法。其中提取的目標特徵大致可以分為以下幾種:

  1) 以目標區域的顏色直方圖作為特徵,顏色特徵具有旋轉不變性,且不受目標物大小和形狀的變化影響,在顏色空間中分佈大致相同。

  2) 目標的輪廓特徵,演算法速度較快,並且在目標有小部分遮擋的情況下同樣有較好的效果。

  3) 目標的紋理特徵,紋理特徵較輪廓特徵跟蹤效果會有所改善。

  目標跟蹤的演算法大致可以分為以下四種:

  1) 均值漂移演算法,即meanshift演算法,此方法可以通過較少的迭代次數快速找到與目標最相似的位置,效果也挺好的。但是其不能解決目標的遮擋問題並且不能適應運動目標的的形狀和大小變化等。對其改進的演算法有camshift演算法,此方法可以適應運動目標的大小形狀的改變,具有較好的跟蹤效果,但當背景色和目標顏色接近時,容易使目標的區域變大,最終有可能導致目標跟蹤丟失。

  2) 基於Kalman濾波的目標跟蹤,該方法是認為物體的運動模型服從高斯模型,來對目標的運動狀態進行預測,然後通過與觀察模型進行對比,根據誤差來更新運動目標的狀態,該演算法的精度不是特高。

  3) 基於粒子濾波的目標跟蹤,每次通過當前的跟蹤結果重取樣粒子的分佈,然後根據粒子的分佈對粒子進行擴散,再通過擴散的結果來重新觀察目標的狀態,最後歸一化更新目標的狀態。此演算法的特點是跟蹤速度特別快,而且能解決目標的部分遮擋問題,在實際工程應用過程中越來越多的被使用。

  4) 基於對運動目標建模的方法。該方法需要提前通過先驗知識知道所跟蹤的目標物件是什麼,比如車輛、行人、人臉等。通過對要跟蹤的目標進行建模,然後再利用該模型來進行實際的跟蹤。該方法必須提前知道要跟蹤的目標物件是什麼,然後再去跟蹤指定的目標,這是它的侷限性,因而其推廣性相對比較差。

二、基於粒子濾波的運動目標跟蹤

  粒子濾波實現運動目標跟蹤分為四個步驟:1)初始化提取運動目標特徵;2)特徵搜尋階段;3)決策階段;4)粒子重取樣。這後面三個過程的依次迴圈實現的對運動目標的跟蹤。

  1)提取運動目標特徵

  這個階段需要通過人機互動選定待跟蹤的目標,通過計算跟蹤目標的特徵,如目標的顏色特徵,計算該區域顏色空間的直方圖,以此作為描述目標的特徵。

  2)特徵搜尋階段

  初始化提取了目標的特徵後,就可以去在目標的周圍撒粒子搜尋目標物件。撒粒子的方法有很多,例如:a)均勻分佈的放:即在整個視訊畫面中均勻的撒粒子。b)在目標的附近以高斯分佈來撒粒子,即靠近目標的地方多撒些,離目標較遠的地方少放些。每個粒子按照初始化時候得到的目標特徵計算出它所處的位置的顏色特徵,並計算該直方圖向量與目標的直方圖向量的相似性程度。然後對每個粒子與目標計算出的相似度做歸一化,使得所有粒子的相似度加起來和等於1。

  3)決策階段

  根據每個粒子與目標的相似程度做加權平均。設第i個粒子的座標是,它和目標的相似度是,則目標的最可能的位置為:,,n為粒子的個數。

  4)粒子重取樣

  粒子重取樣就是根據相似度的大小重新分配粒子的個數,即在相似度最高的粒子出放更多的粒子,在相似度低的粒子那少放粒子。粒子濾波演算法的核心思想就是粒子的隨機取樣和粒子的重要性重取樣。因為不知道目標在那個位置,就隨機的進行撒粒子。撒完粒子後,根據描述目標的特徵相似度來計算每個粒子的相似度,然後在相似度高的地方多撒些粒子,相似度低的地方少撒粒子,這就是粒子濾波的思想。

三、基於輪廓的跟蹤

  形狀複雜的目標是很難用簡單的幾何形狀來描述的。基於輪廓的目標跟蹤方法提供了更準確的形狀描述。這種方法的主要思想是利用前一幀建立的目標模型找到當前幀的目標區域。模型可以是目標區域的顏色直方圖、邊緣或輪廓。基於輪廓的目標跟蹤方法大體上可以分為形狀匹配、輪廓跟蹤。前者搜尋目標在當前幀特徵,後者通過狀態空間模型或直接最小化能量函式推導初始輪廓在當前幀的位置。

1形狀匹配方法

  這種方法和基於模板的目標跟蹤方法相似,基本思想都是在當前幀中搜索目標的輪廓和目標的相關模型。另一種方法是在連續幀中尋找關聯輪廓,使用目標的外觀特徵,建立輪廓關聯,或者稱為輪廓匹配,和點匹配方法類似。

  首先,由背景減除發來進行輪廓檢測;再次,提取輪廓後,計算目標的模型和每個輪廓之間距離來實現匹配;目標的模型可以是密度函式(顏色特徵或邊緣直方圖)、目標邊緣、輪廓邊界或這些資訊的組合。

2輪廓跟蹤

  從上一幀的輪廓位置預測出當前幀的輪廓。當前幀和上一幀的目標輪廓有重疊部分,大體上可分為兩中實現方式,用狀態空間模型對目標的輪廓的形狀和運動狀態建模,或用梯度搜索進行推演輪廓。梯度搜索是一種輪廓能量最小化方法。

  1)狀態空間模型的目標跟蹤

  由輪廓的形狀和目標的運動引數(如,速度、加速度、運動方向等)定義目標的狀態,在輪廓的後驗概率最大時更新目標狀態。

  2)能量最小化方法的目標跟蹤

  此方法和目標分割方法類似,其中的分割和跟蹤部分都是通過梯度下降法或貪婪演算法來最小化能量。

  3)討論

  輪廓跟蹤通常在跟蹤整個目標區域時使用,其最突出的優點在於能更好的適應目標形狀的變化。在輪廓跟蹤演算法中,目標表達可以是外觀模型、形狀模型、運動模型或這幾個模型的組合。目標模型可密度函式進行建模,目標形狀用輪廓子空間形式進行建模。在直觀的輪廓搜尋中基於外觀的形狀表達得到普遍應用。Hausdroff距離是對基於邊緣形狀的表達的最廣泛測量方法。

四、遮擋處理

  通常,遮擋可以分為三種情況:目標間遮擋、背景遮擋、自遮擋。對於目標之間的相互遮擋,可以選擇根據目標的位置和目標特徵的先驗知識來處理這一問題。而對於場景結構的導致的部分遮擋此方法則難以判斷,因為難以辨認究竟是目標形狀發生變化還是發生遮擋。所以,處理遮擋問題的通用方法是用線性或非線性動態建模方法對運動目標進行,並在目標發生遮擋時,預測目標的可能位置,一直到目標重新出現時再修正它的位置。可以用卡爾曼濾波器來實現估計目標的位置,也可以用粒子濾波對目標做狀態估計。或者使用:輪廓投影、光流特徵等方法。

五、多攝像頭目標跟蹤

  多攝像頭目標跟蹤的需求一般來自於以下兩方面:

  1)深度跟蹤和遮擋處理;

  2)擴大跟蹤場景區域。

  多攝像頭跟蹤中的一個重要問題是如何處理不同攝像頭之間的視角的對應關係。一般情況下可以人工定義,也可以根據觀測的場景和運動目標進行自動計算。

六、攝像頭運動下的目標跟蹤

  攝像頭運動時就沒法通過背景相減法獲取目標的具體位置和大小描述, 這種情況下對目標的特徵描述和目標跟蹤演算法的就要求較高。常用的方法有以下幾種:

質心跟蹤演算法

  這種跟蹤方式主要用於跟蹤有界目標,如飛機,目標和背景的差異較大。目標完全在視訊畫面內,跟蹤時,常常需要用一些影象預處理演算法,如對比度增強、影象去噪、雙極性增強等。

邊緣跟蹤演算法

  當要跟蹤的目標有一個或多個邊緣並且同時具有不確定的邊緣,此時邊緣跟蹤的效果最好。典型的跟蹤物件是發射中的火箭,它有很好的前邊緣,但是尾部邊緣卻由於噴氣而不確定。

場景鎖定跟蹤演算法

  該演算法主要用於在複雜場景的目標跟蹤。適合於從空中對監控地面或者地面場景的監控。這個演算法會跟蹤視訊畫面中的多個目標,然後跟據每個點的運動狀態,估計整個場景全域性運動,場景中的運動目標和運動目標的定位是自動選擇的。當跟蹤的目標移動到視訊畫面外時,新的目標可以被自動標識。

組合跟蹤演算法

  這種方法顧名思義就是利用兩種或兩種以上的具有互補特性的演算法的組合:如將質心類演算法和相關類演算法進行組合。組合後的演算法就能夠適合於目標大小、形狀、及表面特徵變化較大的場景。