計算機視覺 總結 使用粒子濾波進行目標跟蹤

2021-09-30 11:41:26 字數 1283 閱讀 3756

1.      基本思想

粒子濾波(wiki)本質上是一種表示概率分布的方法,思想和蒙特卡洛方法(wiki)近似。蒙特卡洛方法是用頻率來近似概率,而粒子濾波方法中是使用粒子分布的密集程度來近似表示概率分布,這種方法可以形象的表示為向乙個帶磁力的平面拋灑鐵粉,磁力大(概率大)的地方鐵粉就比較密集。同樣的,如果粒子帶權重的話,也可以通過權重的大小來表示概率密度的分布。而後一種帶權重的表示方法也被用於粒子濾波跟蹤過程中。

而目標跟蹤,就是在得到觀測(當前幀的影象)之後,對狀態(目標的位置)的後驗概率的估計。當然,數學原理上是用貝葉斯濾波那一套從頭開始推到相當複雜,但是在實際使用的時候,要做各種簡化的假設(馬爾可夫假設、高斯分布假設等等),最終得到乙個比較簡單的形式。

2.      基本步驟

一般粒子濾波的步驟簡化到最後分為以下三步:

a.      初始化粒子,當前粒子一般權重相等,在目標附近高斯分布

b.      得到新一幀的影象,根據此幀影象,對原來的粒子的權重進行調整,得到乙個狀態的估計,確定當前目標位置(加權平均,或取權重最大的粒子等)

c.      粒子的演化,回到b

不考慮數學基礎(也就是不解決「為什麼這樣就可以」的問題)的話,其實就是這麼簡單。

3.      重取樣

上述基本的粒子濾波過程有這樣乙個問題:在粒子演化的過程中,容易出現乙個粒子的權重特別大,而其他粒子的權重都特別小,以至於對最終結果都沒有影響,這樣的話很大一部分的計算量就耗費在了對最終結果沒什麼影響的粒子上了。這是粒子濾波的一種退化。

解決這一問題的方法有很多,經常用到的就是重取樣的方法。

重取樣,就是在上述退化現象很嚴重的時候,重新生成一遍粒子,當然,也可以每一幀影象都重新生成一遍粒子。生成粒子的原則是,以舊粒子的權重為概率生成新粒子,得到新粒子的權重相同。那麼,在權重很大的舊粒子附近就會出現很多個新粒子,而在權重較小的舊粒子附近的新粒子就會很少,甚至沒有。重取樣過後,所有粒子的權重相同,對最終結果的影響也相同,這就解決了粒子濾波的退化問題。

4.      例程

a.      確定初始時目標的位置,提取目標的顏色特徵,即顏色直方圖,8*8*4(h*s*v)

b.      初始化粒子,當前粒子一般權重相等,在目標附近高斯分布

c.      獲取新一幀的影象,提取粒子區域的影象特徵,即顏色直方圖。根據顏色直方圖和目標的顏色直方圖之間的***距離,確定粒子的權重

d.      根據粒子的權重,以加權平均的方式確定出目標的位置

e.      根據粒子的權重,對粒子進行重取樣,回到c

以上步驟中顏色特徵可以換成其他影象特徵,相應的粒子權重的計算過程也可以進行改變。

計算機視覺 高斯濾波

brycezou 163.com 1 一維高斯分布 g x 1 2 e x22 22 二維高斯分布 g x,y 12 2e x2 y 22 2 對於影象,常用二維零均值的高斯函式構建濾波器模板。include include using namespace std define pi 3.14159...

(計算機視覺)計算機視覺基礎

opencv cximage cimg freeimage opencv中vc庫的版本與visual studio版本的對應關係 vc8 2005 vc9 2008 vc10 2010 vc11 2012 vc12 2013 vc14 2015 vc15 2017 visual studio中的輔助...

計算機視覺關於濾波的處理

一 攝像頭的呼叫 include include using namespace std using namespace cv void main 二 讀取並轉為灰度圖的 讀一張,存入到矩陣,1為rgb三通道,0為灰度圖 cvtcolor imagegrag,imagegrag,cv rgb2gra...