卡爾曼濾波

2021-07-22 23:10:11 字數 1716 閱讀 8405

卡爾曼濾波本來是控制系統課上學的,當時就沒學明白,以為以後也不用再見到它了,可惜沒這麼容易,後來學計算機視覺和影象處理,發現用它的地方更多了,沒辦法的時候只好耐心學習和理解了。一直很想把學習的過程記錄一下,讓大家少走彎路,可惜總也沒時間和機會,直到今天。

我一直有乙個願望,就是把抽象的理論具體化,用最直白的方式告訴大家--不提乙個生澀的詞,不寫乙個數學公式,像講故事一樣先把道理說明白,需要知道細節的同學可以自己去查所有需要知道的一切。因為學習的過程告訴我,最難的其實是最初和這個理論和應用背景親和的過程--這些理論它究竟是做什麼的,又是怎麼做到的。可惜我們能看到的關於這些理論的資料大多數都是公式的堆砌並且假定我們明白許多「基本的道理」,其實這些「基本的道理」往往是我們最難想象和超越的。以卡爾曼濾波為例,讓我們嘗試一種不同的學習方法。

相信所有學習卡爾曼濾波的同學首先接觸的都是狀態方程和觀測方程,學過控制系統的同學可能不陌生,否則,先被那兩個看起來好深奧的公式給嚇跑了,關鍵是還不知道他們究竟是幹什麼的,什麼是狀態,什麼是觀測。如果再看到後面的一大串遞迴推導增益,實在很暈很暈,更糟糕的是還沒整明白的時候就已經知道卡爾曼濾波其實已經不夠使了,需要extended kalmanfilter 和particle filter了。

其實我們完全不用理會這些公式。先來看看究竟卡爾曼濾波是做什麼的,理解了卡爾曼濾波,下面的就順其自然了。

用一句最簡單的話來說,卡爾曼濾波是來幫助我們做測量的,大家一定不明白測量幹嘛搞那麼複雜?測量長度拿個尺子比一下,測量溫度拿溫度表測一下不就完了嘛。的確如此,如果你要測量的東西很容易測準確,沒有什麼隨機干擾,那真的不需要勞駕卡爾曼先生。但在有的時候,我們的測量因為隨機干擾,無法準確得到,卡爾曼先生就給我們想了個辦法,讓我們在干擾為高斯分布的情況下,得到的測量均方誤差最小,也就是測量值擾動最小,看起來最平滑。

舉個例子最容易明白:

忍不住拿小兔子做個例子,

最近養了只小兔子,

有了這個權值,下面的事情就很好辦了。

很顯然卡爾曼先生是利用多次觀察和估計來達到目的的,我們也只能一步一步地調整我們的觀察和估計值,來漸漸達到準確的測量,所以整個演算法是遞迴的,需要多次重複調整的。調整的過程也很簡單,就是把實測值(稱出來的體重)和估計值(書上得來的體重)比較一下,如果估計值比測量值小,那就把估計值加上他們之間的偏差作為新的估計值,當然前面要加個係數,就是我們前面說的加權係數,這個地方我要寫個公式,因為很簡單就能說明白

比如我們的觀查值是z,估計值是x, 那麼新的估計值就應該是 xnew  =  x  + k ( z-x),從這個公式可以看到,如果x估計小了,那麼新的估計值會加上乙個量k ( z-x), 如果估計值大了,大過z了,那麼新的估計值就會減去乙個量k ( z-x),這就保證新的估計值一定比現在的準確,一次一次遞迴下去就會越來越準卻了,當然這裡面很有作用的也是這個k,也就是我們前面說的權值,書上都把他叫卡爾曼增益。(xnew  =  x  + k ( z-x) = x ×(1-k) + kz ,也就是說估計值x的權值是1-k,而觀察值z的權值是k,究竟k 取多大,全看估計值和觀察值以前的表現,也就是他們的方差情況了)。

順便就把extended kalman filter和particle filter提一下,因為高斯模型有時不適用,於是有了extended kalman filter,而particle filter是用於多個物件的,比如除了兔子我還有只貓,他們的體重有乙個聯合概率模型,每乙個物件就是乙個particle。無論是卡爾曼濾波還是particle濾波,都是概率分布傳遞的過程,卡爾曼傳遞的是高斯分布,particle filter 傳遞的是高斯混合分布,每乙個峰代表乙個動物在我們的例子。

卡爾曼 卡爾曼濾波 1

今天主要介紹一下卡爾曼濾波器,所謂卡爾曼濾波器其實是一種最優化遞迴數字處理演算法 optimal recursive data processing algorithm 卡爾曼濾波器應用 既然我們有了測量儀器,這些測量儀器可以目標給出準確測量值。還需要卡爾曼濾波器進行估計嗎?下面解釋一下為什麼需要卡...

卡爾曼 基礎卡爾曼濾波

卡爾曼濾波器是一種基礎 定位演算法。原理非常簡單易懂。核心過程可以用乙個圖說明 本質上就是這兩個狀態過程的迭代,來逐步的準確定位。更新 更具感測器獲取到比較準確的位置資訊後來更新當前的 問位置,也就是糾正 的錯誤。你可能要問為什麼有感測器的資料了還要進行更新?因為在現實世界中感測器是存在很多雜訊干擾...

卡爾曼濾波

卡爾曼濾波演算法 首先引入乙個離散控制過程的系統,用乙個線性隨機微分方程來描述 x k a x k 1 b u k w k 系統的測量值 z k h x k v k x k 是k時刻的系統狀態,u k 是k時刻對系統的控制量。a和b是系統引數,對於多模型系統,他們為矩陣。z k 是k時刻的測量值,h...