演算法、光流跟蹤以及粒子濾波演算法。最後將給出乙個各種跟蹤方法間的比較。
1、 camshift(continuously adaptive mean shift)跟蹤演算法
camshift演算法是一種基於均值漂移的演算法。均值移動的理論基礎是概率密度估計。均值移動的過程實際上就是在概率密度空間中尋找區域性極大點。從其全稱可知camshift的演算法基礎實際上是meanshift演算法,均值移動的操作過程可用如下幾步來表示:
(a) 計算以初始點x0
為中心的某一核窗所對應的均值移動向量mg(x0);
(b) 根據mg(x0)來移動核窗的中心位置,也即把mg(x0)中的加權平均值部分賦予x0
,把x0
作為新的初始點,並轉回步驟(a);
(c) 重複(a)、(b)過程,直到滿足某一預定的條件。
因此,均值移動過程就是尋找資料分布最密處的過程。
均值移動的實現過程可圖示為:
(1) 計算目標區域的均值、移動目標區域
(2) 重新計算目標區域均值,還存在移動向量,繼續移動目標區域
(3) 移動向量越來越小
(4) 找到區域性極大點,停止移動
以上過程只是一次meanshift演算法過程,在連續幀上使用meanshift演算法就是camshift跟蹤演算法。camshift同經典的均值移動跟蹤演算法的基本思想是相同的,所不同的它是建立在顏色概率分布圖和矩的基礎之上。camshift對室內環境下的目標跟蹤具有較高的魯棒性。
2、 光流跟蹤演算法
將三維空間中的目標和場景對應於二維影象平面運動時,他們在二維影象平面的投影就形成了運動,這種運動以影象平面亮度模式表現出來的流動就稱為光流。光流法是對運動序列影象進行分析的乙個重要方法,光流不僅包含影象中目標的運動資訊,而且包含了三維物理結構的豐富資訊,因此可用來確定目標的運動情況以及反映影象其它等資訊。
光流是空間運動物體在觀測成像面上的畫素運動的瞬時速度。光流的研究是利用影象序列中的畫素強度資料的時域變化和相關性來確定各自畫素位置的「運動
」,即研究影象灰度在時間上的變化與景象中物體結構及其運動的關係。一般情況下,光流由相機運動、場景
中目標運動或兩者的共同運動產生。光流計算方法大致可分為三類:基於匹配的、頻域的和梯度的方法。
(2) 基於頻域的方法利用速度可調的濾波組輸出頻率或相位資訊。雖然能獲得高精度的初始光流估計,但往往涉及複雜的計算。另外,進行可靠性評價也十分困難。
(3) 基於梯度的方法利用影象序列的時空微分計算2d速度場(光流)。由於計算簡單和較好的效果,基於梯度的方法得到了廣泛的研究。雖然很多基於梯度的光流估計方法取得了較好的光流估計,但由於在計算光流時涉及到可調引數的人工選取、可靠性評價因子的選擇困難,以及預處理對光流計算結果的影響,在應用光流對目標進行實時監測與自動跟蹤時仍存在很多問題。
光流法檢測運動物體的基本原理是:給影象中的每乙個畫素點賦予乙個速度向量,這就形成了乙個影象運動場,在運動的乙個特定時刻,影象上的點與三維物體上的點一一對應,這種對應關係可由投影關係得到,根據各個畫素點的速度向量特徵,可以對影象進行動態分析。如果影象中沒有運動物體,則光流向量在整個影象區域是連續變化的。當影象中有運動物體時,目標和影象背景存在相對運動,運動物體所形成的速度向量必然和鄰域背景速度向量不同,從而檢測出運動物體及位置。採用光流法進行運動物體檢測的問題主要在於大多數光流法計算耗時,實時性和實用性都較差。但是光流法的優點在於光流不僅攜帶了運動物體的運動資訊,而且還攜帶了有關景物三維結構的豐富資訊,它能夠在不知道場景的任何資訊的情況下,檢測出運動物件。
然而,在實際應用中,由於遮擋性、多光源、透明性和雜訊等原因,使得光流場基本方程的灰度守恆假設條件不能滿足,不能求解出正確的光流場,同時大多數的光流計算方法相當複雜,計算量巨大,不能滿足實時的要求,因此,一般不被對精度和實時性要求比較高的監控系統所採用。
3、 粒子濾波跟蹤演算法
粒子濾波演算法有很多變種,以rob hess
實現的這種最基本的粒子濾波演算法為例。它的核心思想是隨機取樣和重要性重取樣。在不知道目標在**的情況下,隨機向場景中分散粒子,撒完粒子後,根據特徵相似度計算每個粒子的重要性,然後在重要的地方多撒粒子,不重要的地方少撒粒子。所以說粒子濾波較之蒙特卡洛濾波計算量較小。這種思想雖然簡單,但效果往往很好。
粒子濾波實現對目標的跟蹤通常分以下四個步驟:
(1)
初始化階段
-提取跟蹤目標特徵
該階段要人工指定跟蹤目標,程式計算跟蹤目標的特徵,比如可以採用目標的顏色特徵。這點和
camshift
演算法類似,不能實現自動初始化。但我們可以在初始時給定乙個顏色樣本,實現程式的半自動初始化。然後計算該區域色調
(hue)
空間的直方圖,即為目標的特徵。直方圖可以用乙個向量來表示,所以目標特徵就是乙個
n*1的向量v。
(2)
搜尋階段—分撒搜尋粒子
獲取目標特徵後,在場景中分撒許多搜尋粒子去搜尋目標物件。粒子分撒有許多種方式。比如,a) 均勻分撒。即在整個影象平面均勻的撒粒子(uniform distribution);b)在上一幀得到的目標附近按照高斯分布來放,可以理解成,靠近目標的地方多放,遠離目標的地方少放。rob hess的**用的是後一種方法。粒子放出去後按照初始化階段得到的目標特徵(色調直方圖,向量v)計算它所處的位置處影象的顏色特徵,得到乙個色調直方圖,向量vi,計算該直方圖與目標直方圖的相似性(直方圖匹配)。相似性有多種度量,最簡單的一種是計算sum(abs(vi-v))。每個粒子算出相似度後再做一次歸一化,使得所有的粒子得到的相似度加起來等於1。
(3) 決策階段
分撒出去的每個粒子將返回其所處位置的影象資訊。比如,「一號粒子處影象與目標的相似度是0.3」,「二號粒子處影象與目標的相似度是0.02」,「三號粒子處影象與目標的相似度是0.0003」,「n號粒子處影象與目標的相似度是0.013」然後做加權平均。設n號粒子的影象畫素座標是(xn,yn),它報告的相似度是wn,於是目標最可能的畫素座標x = sum(xn*wn),y = sum(yn*wn)。
(4) 重取樣階段resampling
(2)->(3)->(4)->(2)如是反覆迴圈,即完成了目標的動態跟蹤。
4、 其他跟蹤演算法及優缺點
將其他一些常用的跟蹤演算法及優缺點形成了乙個表,其原理不做贅述,可參閱相關文獻。
參考[1] 《基於均值移動的人臉跟蹤簡介》未公開
[2]
[3] aidia – adaptive inte***ce for display interaction
[4]
視覺跟蹤綜述
視覺跟蹤綜述 zouxy09 qq.com 1 camshift continuously adaptive mean shift 跟蹤演算法 camshift演算法是一種基於均值漂移的演算法。均值移動的理論基礎是概率密度估計。均值移動的過程實際上就是在概率密度空間中尋找區域性極大點。從其全稱可知c...
視覺跟蹤綜述
演算法 光流跟蹤以及粒子濾波演算法。最後將給出乙個各種跟蹤方法間的比較。1 camshift continuously adaptive mean shift 跟蹤演算法 camshift演算法是一種基於均值漂移的演算法。均值移動的理論基礎是概率密度估計。均值移動的過程實際上就是在概率密度空間中尋找...
視覺跟蹤綜述
演算法 光流跟蹤以及粒子濾波演算法。最後將給出乙個各種跟蹤方法間的比較。1 camshift continuously adaptive mean shift 跟蹤演算法 camshift演算法是一種基於均值漂移的演算法。均值移動的理論基礎是概率密度估計。均值移動的過程實際上就是在概率密度空間中尋找...