2018 8 22 粒子濾波

2021-08-25 11:45:07 字數 1330 閱讀 5607

一直都覺得粒子濾波是個挺牛的東西,每次試圖看文獻都被複雜的數學符號搞得看不下去。乙個偶然的機會發現了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的思想也是(比如用在最簡單的直線擬合上),既然我不知道直線方程是什麼,那我就隨機的取兩個點先算個直線出來,然後再看有多少點符合我的這條直線。哪條直線能獲得最多的點的支援,哪條直線就是目標直線。想法非常簡單,但效果很好。

原文:

無人駕駛高精度定位技術 3 粒子濾波

這是介紹機械人定位演算法的第四篇 粒子濾波。相對之前提到的卡爾曼濾波,它沒有線性高斯分布的假設 相對於直方圖濾波,它不需要對狀態空間進行區間劃分。粒子濾波的思想 粒子濾波演算法採用很多粒子對置信度bel x t 進行近似,每個粒子都是對t時刻機械人實際狀態的乙個猜測。越接近t時刻的正確狀態描述的粒子...

Flash Flex學習筆記 24 粒子效果

粒子 仍然要用到以前的小球類,不過稍加改造 package private function init void 增加了x,y軸的速度,其它沒變 原理 在舞台的某一區域放置大量小球例項,然後在某個時刻讓其向四面八方運動即可 即改變每個小球在x,y軸上的座標 問題 效率!讓cpu在每幀對於大量物件進行...

粒子濾波(PF Particle Filter)

粒子濾波 pf particle filter 與卡爾曼濾波 kalman filter 相比較 粒子濾波 pf particle filter 的思想基於蒙特卡洛方法 monte carlo methods 它是利用粒子集來表示概率,可以用在任何形式的狀態空間模型上。其核心思想是通過從後驗概率中抽...