基于Kalman的多目標(biāo)跟蹤處理之Kalman濾波

作為最早應(yīng)用在美國阿波羅登月項(xiàng)目上的kalman濾波绪氛,在很多領(lǐng)域都有不同的應(yīng)用懂傀,這篇文章主要對(duì)kalman的主要原理進(jìn)行介紹流强,并在最后的部分給出了一個(gè)簡單的實(shí)現(xiàn)慎玖。

狀態(tài)轉(zhuǎn)移

image

假設(shè)我們對(duì)于一輛汽車的狀態(tài)進(jìn)行觀測贮尖,觀測的狀態(tài)包括了位置和速度信息,該汽車在時(shí)刻t的狀態(tài)可以表示為

image

其中位置 Pt表示汽車的位置狀態(tài)趁怔,vt為汽車的速度狀態(tài)湿硝,考慮加速度ut,以及相鄰時(shí)間間隔△t,具體可以寫成

image

可以發(fā)現(xiàn)润努,上式中的狀態(tài)輸出為輸入的線性組合关斜,這也是為什么kalman濾波器又叫做最佳線性濾波器的原因

將上述線性組合用矩陣表示铺浇,為

image

其中令Ft表示狀態(tài)轉(zhuǎn)移矩陣痢畜,Bt為控制矩陣,分別為

image

這樣就可以得到Kalman濾波的第一個(gè)公式,狀態(tài)預(yù)測公式

image

這里的變量上面戴了個(gè)尖帽子丁稀,這是由于這個(gè)變量是個(gè)估計(jì)量繁涂,另外,變量右上角的-則表示這個(gè)變量是由上一時(shí)刻的推測得到二驰,既然是由推測得到,說明這個(gè)值是需要進(jìn)行修正的秉沼,后面我們將會(huì)具體介紹如何進(jìn)行修正桶雀。

image

回到上面的狀態(tài)預(yù)測公式,我們利用這個(gè)公式推測出當(dāng)前的狀態(tài)唬复,對(duì)當(dāng)前的狀態(tài)進(jìn)行預(yù)測會(huì)不會(huì)存在什么問題呢矗积?答案是肯定的,在預(yù)測的過程中敞咧,是會(huì)收到噪聲的影響的棘捣,含有的噪聲越大,我們預(yù)測得出的狀態(tài)它的不確定性就會(huì)越大休建。

關(guān)于這種不確定性乍恐,需要通過協(xié)方差矩陣進(jìn)行衡量。

下面就對(duì)協(xié)方差矩陣進(jìn)行了解测砂,協(xié)方差矩陣除了表示了兩個(gè)維度變量的方差茵烈,還體現(xiàn)了兩個(gè)維度變量之間的相關(guān)性。其矩陣中的正對(duì)角線即為兩個(gè)變量的方差砌些,負(fù)對(duì)角線則為兩個(gè)變量之間的協(xié)方差呜投,如果兩個(gè)變量的協(xié)方差值為正,說明兩個(gè)變量是正相關(guān)的存璃,為負(fù)則表示負(fù)相關(guān)仑荐,不相關(guān)即為0.

image

在搞清楚了如何衡量狀態(tài)預(yù)測過程中的不確定性后,可以理解的是纵东,這種不確定性并不會(huì)永恒不變粘招,我們?cè)诓粩噙M(jìn)行狀態(tài)預(yù)測的同時(shí),也需要了解這個(gè)時(shí)候狀態(tài)預(yù)測帶來的不確定性是如何變化的篮迎。

噪聲協(xié)方差矩陣的傳遞

這種不確定性的變化男图,我們將其定義為噪聲協(xié)方差矩陣的傳遞,也就是表明了不確定性在各個(gè)時(shí)刻時(shí)的傳遞關(guān)系甜橱,對(duì)于噪聲協(xié)方差矩陣的傳遞逊笆,可以表示為

image

上面的式子中有用到協(xié)方差矩陣的一個(gè)性質(zhì),

image

由上一時(shí)刻的噪聲協(xié)方差矩陣推測出當(dāng)前狀態(tài)下的噪聲協(xié)方差矩陣岂傲,在傳遞的過程中难裆,還需要考慮由于預(yù)測模型本身帶來的噪聲影響,用Q表示預(yù)測模型本身帶來的噪聲的協(xié)方差矩陣。

這個(gè)時(shí)候乃戈,我們已經(jīng)得到當(dāng)前時(shí)刻的狀態(tài)預(yù)測以及此時(shí)的噪聲協(xié)方差矩陣褂痰,當(dāng)我們完成預(yù)測,出現(xiàn)的一個(gè)新的問題就是症虑,這個(gè)預(yù)測的結(jié)果我們可以直接用嗎缩歪?答案顯然是不可以的,畢竟我們預(yù)測的值同實(shí)際的值之間還是存在一定偏差的谍憔,既然存在偏差匪蝙,就需要對(duì)預(yù)測的狀態(tài)進(jìn)行修正,也就是所謂的狀態(tài)更新习贫。

狀態(tài)更新

image

在對(duì)預(yù)測狀態(tài)進(jìn)行更新的時(shí)候逛球,需要考量預(yù)測狀態(tài)與觀測值之間的偏差,若觀測值為Zt,其可以表示為

image

其中H為觀測矩陣苫昌,v表示觀測過程中引入的噪聲颤绕,其協(xié)方差矩陣為R。假設(shè)這里我們只對(duì)汽車運(yùn)動(dòng)狀態(tài)中的位置進(jìn)行觀測祟身,那么此時(shí)的觀測矩陣可以寫成

image

得到觀測矩陣后奥务,利用實(shí)際觀測值和預(yù)期觀測值,可以計(jì)算兩者之間的殘差為

image

根據(jù)這個(gè)殘差月而,我們可以對(duì)預(yù)期的觀測值進(jìn)行修正汗洒,具體的修正表述為

image

其中Kt為kalman增益,它的作用主要是權(quán)衡預(yù)測狀態(tài)中的協(xié)方差矩陣P和觀測時(shí)候引入的噪聲協(xié)方差矩陣R的大小父款,根據(jù)兩者大小判斷最終的更新是相信預(yù)測模型還是觀測模型多一點(diǎn)溢谤。這個(gè)Kt的推導(dǎo)較為復(fù)雜,直接給出為

image

至此憨攒,我們可以得到當(dāng)前狀態(tài)的更新世杀,除了對(duì)狀態(tài)進(jìn)行更新,同樣的噪聲協(xié)方差矩陣也需要進(jìn)行更新肝集,更新公式為

image

綜上瞻坝,我們將kalman濾波的幾個(gè)公式放在一起,分成兩個(gè)部分杏瞻,一個(gè)部分進(jìn)行預(yù)測所刀,另外一個(gè)則進(jìn)行更新。

image

在搞清楚了Kalman濾波后捞挥,下面考慮如何利用一個(gè)簡單的例子進(jìn)行建模浮创,設(shè)小雷開著車,這輛車以1m/s的速度進(jìn)行行駛砌函,在100m的位置處停止斩披。

首先可以得到觀測值

Zt = 1:100;

前面有提到溜族,在觀測的時(shí)候會(huì)引入噪聲,所以我們給觀測值加了方差為1的高斯白噪聲垦沉,這個(gè)地方我又在生成的噪聲后面乘了0.2煌抒,目的是為了使例子的效果更加直觀,減小了觀測時(shí)的噪聲影響厕倍。

Zt_noise = randn(1,100);
Zt_noise = Zt_noise * 0.2;

所以最終構(gòu)建的觀測值就為

Zt = Zt + Zt_noise;

然后構(gòu)造預(yù)測模型中的預(yù)測初始狀態(tài)寡壮,狀態(tài)協(xié)方差矩陣

Xt = [0; 0];
Pt = [1 0; 0 1];

設(shè)置狀態(tài)轉(zhuǎn)移矩陣Ft,以及狀態(tài)轉(zhuǎn)移所在的預(yù)測模型本身帶來的噪聲的協(xié)方差矩陣Q

Ft = [1 1; 0 1];
Q = [0.0001 0; 0 0.0001];

除了上述需要構(gòu)建的變量外讹弯,觀察kalman濾波的五個(gè)公式诬像,我們還需要觀測矩陣和觀測噪聲的協(xié)方差矩陣R

H = [1 0];
R = 1;

最后直接利用kalman濾波的五個(gè)公式進(jìn)行不斷迭代計(jì)算,并將最后的結(jié)果plot了出來

for ii = 1:100
    Xt_ = Ft * Xt;
    Pt_ = Ft * Pt * Ft' + Q;
    Kt = Pt_ * H'/(H * Pt_ * H' + R);
    Xt = Xt_ + Kt * (Zt(ii) - H * Xt_);
    Pt = (eye(2) - Kt * H) * Pt_;
end

得到的Kalman濾波結(jié)果如下

image

這個(gè)系列的內(nèi)容基本寫完闸婴,有空接著寫。

題圖:RyanMcGuire芍躏,from Pixabay


0 (1).jpg
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末邪乍,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子对竣,更是在濱河造成了極大的恐慌庇楞,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件否纬,死亡現(xiàn)場離奇詭異吕晌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)临燃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門睛驳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人膜廊,你說我怎么就攤上這事乏沸。” “怎么了爪瓜?”我有些...
    開封第一講書人閱讀 162,823評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蹬跃,是天一觀的道長。 經(jīng)常有香客問我铆铆,道長蝶缀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評(píng)論 1 292
  • 正文 為了忘掉前任薄货,我火速辦了婚禮翁都,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘菲驴。我一直安慰自己荐吵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著先煎,像睡著了一般贼涩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上薯蝎,一...
    開封第一講書人閱讀 51,190評(píng)論 1 299
  • 那天遥倦,我揣著相機(jī)與錄音,去河邊找鬼占锯。 笑死袒哥,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的消略。 我是一名探鬼主播堡称,決...
    沈念sama閱讀 40,078評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼艺演!你這毒婦竟也來了却紧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤胎撤,失蹤者是張志新(化名)和其女友劉穎晓殊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伤提,經(jīng)...
    沈念sama閱讀 45,334評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡巫俺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肿男。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片介汹。...
    茶點(diǎn)故事閱讀 39,727評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖舶沛,靈堂內(nèi)的尸體忽然破棺而出痴昧,到底是詐尸還是另有隱情,我是刑警寧澤冠王,帶...
    沈念sama閱讀 35,428評(píng)論 5 343
  • 正文 年R本政府宣布赶撰,位于F島的核電站,受9級(jí)特大地震影響柱彻,放射性物質(zhì)發(fā)生泄漏豪娜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評(píng)論 3 326
  • 文/蒙蒙 一哟楷、第九天 我趴在偏房一處隱蔽的房頂上張望瘤载。 院中可真熱鬧,春花似錦卖擅、人聲如沸鸣奔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挎狸。三九已至扣汪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锨匆,已是汗流浹背崭别。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留恐锣,地道東北人茅主。 一個(gè)月前我還...
    沈念sama閱讀 47,734評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像土榴,于是被迫代替她去往敵國和親诀姚。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容