張長春,黃 英,楊 剛
摘 要:在智能監控系統中,通過幀差法對運動物體的識別、定位,利用卡爾曼濾波算法對目標運動進行預測、跟蹤,從而控制攝像頭轉動,跟蹤目標物,使目標物體始終出現監控畫面的中心。在此采用卡爾曼濾算法,進行目標運動的預估,利用Matlab對其仿真。仿真結果顯示跟蹤效果非常好,證明采用該算法來跟蹤動目標物有效可行,具有一定的研究價值。
關鍵詞:卡爾曼濾波;幀差法;運動目標跟蹤;Matlab
中圖分類號:TP391.41文獻標識碼:A
文章編號:1004-373X(2009)20-054-03
Application and Simulation of Kalman Filter in Moving Target Tracking
ZHANG Changchun,HUANG Ying,YANG Gang
(College of Automation,Guangdong Technology University,Guangzhou,510006,China)
Abstract: In the intelligence video monitor system,making use of the frame subtraction method to identify,locate the moving objects,Kalman filter is used to predict the moving object,in order to control the video camera turn and track the moving target,making the moving target in the center of the monitor image all along.Focusing on the tracking of moving targets throngh using Kalman filtering method,simulation results show that the effect of tracting is very pefect,it has good values.
Keywords:Kalman filter;frame subtraction method;moving target tracking;Matlab
0 引 言
隨著視頻分析技術、圖像處理、模式識別的發展,計算機視覺理論已經得到了廣泛的應用,但是,目前的發展仍然不夠成熟,智能化的視頻監控系統就是計算機視覺領域的一個備受關注的前沿課題。
在智能視頻監控系統中,往往需要攝像機能夠及時跟蹤運動目標物,那么如何準確跟蹤,已成為智能化視頻監控系統中一項重要的技術,在此借助Kalman濾波算法跟蹤動態目標。當對某一目標進行跟蹤時,首先需要觀測所跟蹤的目標物,通常所得到觀測信息中不僅包含所需要信號,而且還包含隨機觀測噪聲和干擾信號。如何通過對一系列帶有觀測噪聲和干擾信號的觀測數據進行處理,從中得到所需要的各種參量的估計值,并由已有的觀測數據預測未來目標的運動狀態是預測跟蹤方法的關鍵問題。卡爾曼濾波采用遞推算法原理是利用系統噪聲和觀測噪聲的統計特性,以系統觀測量為輸入,以所要估計值為輸出,對目標當前運動狀態做估計并對未來運動狀態預測,核心思想是: 利用前一時刻對當前時刻的預測和當前的觀察值來更新對狀態量的估計(得到當前時刻的最優預測值),從而求出下一時刻的預測值,實現遞歸的預測,達到及時準確跟蹤的效果。
1 卡爾曼濾波方程
1.1 卡爾曼濾波方程
Kalman濾波是對一個動態系統狀態序列進行線性最小方差估計的算法,預測時具有無偏、穩定和最優的特點。推導Kalman濾波的公式有多種途徑,在此,直接利用最小方差準則,對Kalman濾波的遞推公式做簡要的推導。
設系統的狀態方程和測量方程分別為:
Χk=φk/k-1Χk-1+Γk-1Wk-1
Ζk=ΗkΧk+Vk
式中: Χk為k時刻的n維狀態矢量,即被估計矢量;φk/(k-1)為n×n維狀態轉移矩陣;Γk-1為n×n維動態噪聲矩陣;Vk為n維動態噪聲;Ηk為k時刻測量矩陣。其中,動態噪聲Wk與觀測噪聲Vk是互不相關的零均值白噪聲序列,即對所有的k,j有:
EWk=0,EVk=0
cov(Wk ,Wj ) = EWk WTj = Qk δkj
cov (VK ,Vj ) = EVk VTj=Rk δkj
cov(Wk ,Wj ) = EWk VTj= 0
式中:Q為動態噪聲方差;R為觀測噪聲方差陣。
1.2 卡爾曼濾波方程的推導過程
觀測值Χk和最優估計值k,采用某一線性組合Ak-1+BΖk作為Χk濾波估計值。觀測值和估計值有誤差,要求其均方誤差陣為最小,則由狀態方程和測量方程可以推出:
假設:k時候估計誤差為 k,其均方誤差陣為Pk,即:
k=Xk-(Ak-1+BΖk)Pk = EkTk
于是:
Pk=E(Χk-Ak-1-BΖk)(Χk-Ak-1-BΖk)T
Pk/(k-1)=φk/(k-1) P(k-1) φTk/k-1+ Γ k-1 QkΓ Tk-1
展開得:
Pk =[B-Pk/(k-1)Ηk(ΗkPk/(k-1)ΗTk)T](ΗkΓ k/(k-1) ΗTk +
Rk )[B-Pk/(k-1)Ηk(ΗkPk/(k-1) ΗTk)-1] +
[Pk/(k-1)-Pk/(k-1)Ηk(ΗkPk/(k-1)ΗTk+Rk)-1ΗkPk/(k-1)]+
[Pk/(k-1)-Pk/(k-1)Ηk(ΗkPk/(k-1)ΗTk+Rk)-1ΗkPk/(k-1)] +
[(1-BΗk)φk/(k-1)-A]Ηk(ΗkPk/(k-1)ΗTkRk)-1ΗkPk/(k-1)
式中的第1項和第3項都是非負定陣,而第2項與待定系數矩陣A,B無關,因此為使達到最小,應取A和使第1項和第3項都等于0,即取:
B=Kk=Pk/(k-1)ΗTk(ΗkPk/(k-1)ΗTk +Rk)-1
A=(1-KkΗk)φk/(k-1)k=Ak-1+BΖk =
φk/(k-1)Xk-1+Kk(Ζk-Ηkφk/(k-1)k-1)Pk=
(1-KkΗk)Pk/(k-1)
綜合上述結果,可以得到一組卡爾曼濾波遞推方程:
X(k/k)=Xk/(k-1)+K(k)[Zk-HXk/(k-1)](1)
Xk/(k-1)=ΦX(k-1)/(k-1)(2)
Kk=Pk/(k-1)HT[HPk/(k-1)HT+Rk]-1(3)
Pk/(k-1)=ΦP(k-1)/(k-1)ΦT+ΓQk-1ΓT(4)
Pk/k=[1-KkH]Pk/(k-1)(5)
2 卡爾曼濾波在跟蹤運動物中的應用
在監視過程中,通過幀差法識別運動目標時,通過型心定位,確定運動目標的中心坐標,然后采用卡爾曼濾波的方法,對運動目標進行跟蹤。對于攝像頭目標跟蹤,采用時間等間隔采樣,希望在觀測到某一時刻目標位置時,能夠及時預估計出下一個時刻出現的最大可能位置,以便于攝像頭及時調整角度快速跟蹤目標。在已知系統初始狀態時,根據當前觀測值用卡爾曼濾波得到X(1),進而預測X(2),具體卡爾曼濾波方程如式(1)~式(5)所示。卡爾曼進一步預測:
X(k+1)/k=ΦXk/k(6)
式中:Xk/(k-1)和Pk/(k-1)是狀態預測值及其最小預測均方誤差矩陣;Kk為卡爾曼濾波增益矩陣;Zk為觀測信息;Xk/k和Pk/k為修正的狀態估計值及誤差協方差矩陣。假設目標在平面內運動,當運動目標進入攝像頭的觀測的觀測的范圍,首先假設攝像頭及圖像處理具有坐標定位的功能,攝像頭在拍到圖像之后,可以根據這些信息獲得k時刻對信號所做出的估計出發,根據式(2)對k時刻的狀態信號Kk進行預估,在測得k時刻的目標當前坐標位置后;然后用式(1)獲得目標的真實狀態最優估計值Xk/k;然后利用預估計算法,由式(6)對預測值進行修正計算目標k+1時刻最大可能位置的觀測值X(k+1)/k,根據坐標位置可獲得目標的偏轉角度,根據偏轉角度控制攝像頭的轉動的時間,從而保持跟蹤目標始終出現到在監控畫面的中間。
3 利用Matlab仿真跟蹤目標過程
用標準卡爾曼濾波對目標進行估計和預測,首先對目標物建立數學模型,以二維空間為例對目標運動物進行預測跟蹤,從圖像中通過幀差法識別運動目標,從中取得運動目標物的的中心坐標值,以中心坐標值作為跟蹤對象。運動目標物數學模型可表示為:
x=t;y=t
其狀態方程,測量方程:
Χk=φk/(k-1)Χk-1+Γk-1Wk-1
Ζk=ΗkΧk+Vk
狀態變量:
Xk=[xk,k,yk,k]
首先建立卡爾曼濾波連續狀態方程:
X(t)=AX(t-1)+BW(t)(7)
Z(t)=CX(t)+DV(t)(8)
狀態轉移矩陣、動態噪聲矩陣、測量矩陣、測量噪聲矩陣分別為:
A=0100
0000
0001
0000
B=00
10
01
00
C=1000
0010D=1001
再將式(7)、式(8)轉換成離散狀態方程:
Xk+1=AXk+BWk(9)
Zk=CXk+DVk(10)
動態噪聲方差矩陣、觀測噪聲方差矩陣:
Q=5eye(2) R=5eye(2)
動態噪聲矩陣、觀測噪聲矩陣:
W=sqrt(Q)*randn(2,100)
V=sqrt(R)*randn(2,100)
取采樣時間t=1 s,設實際觀測值:X預測的最優估計值為: X_hat預設實際觀測點(x,y),兩個坐標值的運動軌跡分別為正弦曲線,余弦曲線假設初始狀態變量為:
X=[40 2 20 3]
x(i+1)=10sin(i);y(i+1)=5cos(i);
利用卡爾曼濾波算法,分別跟蹤這兩個坐標值。
4 仿真結果
仿真結果如圖1~圖4所示。
圖1 實際x坐標運動曲線與預測運動曲線
圖2 實際x坐標運動速度曲線與預測運動速度曲線
圖3 實際y坐標運動曲線與預測運動曲線
圖4 實際y坐標運動速度曲線與預測運動速度曲線
5 結 語
運動目標跟蹤技術在智能監控、視頻圖像等領域起重要的作用,在此闡述了基于卡爾曼濾波算法跟蹤運動目標的基本思想和公式以及在跟蹤運動目標物的應用,并進行了仿真驗證。仿真結果表明卡爾曼濾波能夠很好地預測跟蹤目標的運動,具有很好的實時跟蹤效果。該方法彌補了以往圖像跟蹤滯后的缺點,但是在坐標速度的跟蹤上還沒有達到預期的效果,以后將繼續深入研究。
進一步的研究工作是如何準確建立跟蹤目標的數學模型,優化Kalman濾波算法,分析模型誤差,以及考慮x,y方向上隨機加速度擾動的影響,以取得更好的跟蹤效果。
參考文獻
[1]蔣志凱.數字濾波與卡爾曼濾波[M].北京:科學技術出版社,1993.
[2]宋文堯,張牙.卡爾曼濾波[M].北京:科學技術出版社,1991.
[3]李在銘.數字圖像處理壓縮與識別技術[M].成都:電子科技大學出版社,2000.
[4]孫江波.基于嵌入式Linux的視頻監控系統設計[M].武漢工業學院學報,2006,25(3):31-36.
[5]楊建全,梁華,王成友.視頻監控技術的發展與現狀[J].現代電子技術,2006,29(21):84-88.
[6]卡爾曼濾波的應用[EB/OL].http://baike.baidu.com/view/302394.html.
[7]什么是卡爾曼濾波[EB/OL].http://hi.baidu.com/xiaoqiang0416/blog/item/49fdacec42d56c2162d09f8b.html.
[8]楊學超,劉文萍.視頻圖像序列中的運動目標檢測技術[J].計算機應用與軟件,2008(1):215-217.