先假設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
沒有留言:
張貼留言