2012年4月24日 星期二

Particle Filter tracking

先假設tracking符合Markov性質



Xk表示在時間k目標的位置Vk表示在時間k的系統誤差



Zk表示在時間k測量到的目標位置nk表示在時間k的測量誤差

根據Chapman-Kolmogorov equation






Markov性質下



Chapman-Kolmogorov equation可化簡成下式






所以p(xk|z1:k-1)可得如下公式,其中1:k-1表示由時間1到k-1





上式中p(xk-1|z1:k-1)在時間k-1時已經求得且p(xk|xk-1)可由xk=fk(xk-1,vk-1)計算得到

在時間k時,假設已經得到zk










其中p(zk|xk)可由測量公式zk=hk(xk,nk)得到

合併以上式子可得,其中alpha為上式的1/p(zk|z1:k-1)就是正規化因子


Prior Distribution : P(x0)  通常我們會假設為均勻分布
Transition Model : P(xt|xt-1)表示在兩個frame間目標物的移動情形
Observation Model : P(yt,xt) 表示在xt位置點上是否為目標物的likelihood

以下是Rob Hess的程式示例
他對p(xt|xt-1)有兩種,一種是當作常態分布,即當前位置的附近出現機率較高
一種是考慮速度,加速度的估計
 Rob Hess考慮了second-order的動態方程式




即需考慮前兩個frame的位置,速度,加速度和雜訊來估計Xt
Observation Model p(yt|xt) 的部分他使用hsv histogram-base model



















上面D是對原來目標物和現在的xt上的物體hsv相似度

這裡的Particle Filter他是使用sequential Monte Carlo sampling
所以particle會有weight使得particle的分佈接近filter估計的分佈






底下是說明


















當上一個frame的p(xt-1|y1:t-1)經過particle filter求出且resample之後
下一個frame
我們利用transition model估計出新的位置(xt|y1:t-1)
經過transition model移動過的新的particle分布可視為是p(xt|xt-1)
因為上一個frame時的weight會使weight高的particle在同一個位置有多個particle所以可視為是






我們利用這新位置的所有particle算出這一個frame的histogram和上一frame的histogram比較相似度p(yt|xt)計算likelihood當作新的weight

把所有的weight乘particle相加起來其實就是指所有particle的分佈情形










新的particle filter分布p(xt|yt)即利用所有這些particle的likelihood







選出最高的weight的particle就是我們的估計位置(xt|y1:t-1)

再利用所有particle的weight可重新resample作出新的particle,依weight高的地方灑出較多的particle

反覆上述動作即為PF



1 則留言: