運動目標跟蹤是視頻監控系統中不可缺少的環節。在特定的場景中,有一些經典的算法可以實現比較好的目標跟蹤效果。本文介紹了一般的目標跟蹤算法,對幾個常用的算法進行對比,並詳細介紹了粒子濾波算法和基於輪廓的目標跟蹤算法。最后簡單介紹了目標遮擋的處理、多攝像頭目標跟蹤和攝像頭運動下的目標跟蹤。
一、一般的目標跟蹤算法
一般將目標跟蹤分為兩個部分:特征提取、目標跟蹤算法。其中提取的目標特征大致可以分為以下幾種:
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)擴大跟蹤場景區域。
多攝像頭跟蹤中的一個重要問題是如何處理不同攝像頭之間的視角的對應關系。一般情況下可以人工定義,也可以根據觀測的場景和運動目標進行自動計算。
六、攝像頭運動下的目標跟蹤
攝像頭運動時就沒法通過背景相減法獲取目標的具體位置和大小描述, 這種情況下對目標的特征描述和目標跟蹤算法的就要求較高。常用的方法有以下幾種:
質心跟蹤算法
這種跟蹤方式主要用於跟蹤有界目標,如飛機,目標和背景的差異較大。目標完全在視頻畫面內,跟蹤時,常常需要用一些圖像預處理算法,如對比度增強、圖像去噪、雙極性增強等。
邊緣跟蹤算法
當要跟蹤的目標有一個或多個邊緣並且同時具有不確定的邊緣,此時邊緣跟蹤的效果最好。典型的跟蹤對象是發射中的火箭,它有很好的前邊緣,但是尾部邊緣卻由於噴氣而不確定。
場景鎖定跟蹤算法
該算法主要用於在復雜場景的目標跟蹤。適合於從空中對監控地面或者地面場景的監控。這個算法會跟蹤視頻畫面中的多個目標,然后跟據每個點的運動狀態,估計整個場景全局運動,場景中的運動目標和運動目標的定位是自動選擇的。當跟蹤的目標移動到視頻畫面外時,新的目標可以被自動標識。
組合跟蹤算法
這種方法顧名思義就是利用兩種或兩種以上的具有互補特性的算法的組合:如將質心類算法和相關類算法進行組合。組合后的算法就能夠適合於目標大小、形狀、及表面特征變化較大的場景。