基於粒子濾波的物體跟蹤

2021-06-12 06:43:06 字數 1333 閱讀 6922

一直都覺得粒子濾波是個挺牛的東西,每次試圖看文獻都被複雜的數學符號搞得看不下去。乙個偶然的機會發現了rob hess(實現的這個粒子濾波。從**入手,一下子就明白了粒子濾波的原理。根據維基百科上對粒子濾波的介紹(粒子濾波其實有很多變種,rob hess實現的這種應該是最基本的一種,sampling importance resampling (sir),根據重要性重取樣。下面是我對粒子濾波實現物體跟蹤的演算法原理的粗淺理解:

1)初始化階段-提取跟蹤目標特徵

該階段要人工指定跟蹤目標,程式計算跟蹤目標的特徵,比如可以採用目標的顏色特徵。具體到rob hess的**,開始時需要人工用滑鼠拖動出乙個跟蹤區域,然後程式自動計算該區域色調(hue)空間的直方圖,即為目標的特徵。直方圖可以用乙個向量來表示,所以目標特徵就是乙個n*1的向量v。

2)搜尋階段-放狗

好,我們已經掌握了目標的特徵,下面放出很多條狗,去搜尋目標物件,這裡的狗就是粒子particle。狗有很多種放法。比如,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)如是反覆迴圈,即完成了目標的動態跟蹤。

根據我的粗淺理解,粒子濾波的核心思想是隨機取樣+重要性重取樣。既然我不知道目標在**,那我就隨機的撒粒子吧。撒完粒子後,根據特徵相似度計算每個粒子的重要性,然後在重要的地方多撒粒子,不重要的地方少撒粒子。所以說粒子濾波較之蒙特卡洛濾波,計算量較小。這個思想和ransac演算法真是不謀而合。ransac的思想也是(比如用在最簡單的直線擬合上),既然我不知道直線方程是什麼,那我就隨機的取兩個點先算個直線出來,然後再看有多少點符合我的這條直線。哪條直線能獲得最多的點的支援,哪條直線就是目標直線。想法非常簡單,但效果很好。

基於粒子濾波的物體跟蹤

一直都覺得粒子濾波是個挺牛的東西,每次試圖看文獻都被複雜的數學符號搞得看不下去。乙個偶然的機會發現了rob hess 實現的這個粒子濾波。從 入手,一下子就明白了粒子濾波的原理。根據維基百科上對粒子濾波的介紹 粒子濾波其實有很多變種,rob hess實現的這種應該是最基本的一種,sampling i...

粒子濾波實現物體跟蹤

粒子濾波實現物體跟蹤的演算法原理 1 初始化階段 提取跟蹤目標特徵 該階段要人工指定跟蹤目標,程式計算跟蹤目標的特徵,比如可以採用目標的顏色特徵。具體到rob hess的 開始時需要人工用滑鼠拖動出乙個跟蹤區域,然後程式自動計算該區域色調 hue 空間的直方圖,即為目標的特徵。直方圖可以用乙個向量來...

20170330 濾波 基於粒子濾波的物體跟蹤

一直都覺得粒子濾波是個挺牛的東西,每次試圖看文獻都被複雜的數學符號搞得看不下去。乙個偶然的機會發現了rob hess 實現的這個粒子濾波。從 入手,一下子就明白了粒子濾波的原理。根據維基百科上對粒子濾波的介紹 粒子濾波其實有很多變種,rob hess實現的這種應該是最基本的一種,sampling i...