張長春,黃 英,楊 剛
摘 要:在智能監(jiān)控系統(tǒng)中,通過幀差法對運(yùn)動物體的識別、定位,利用卡爾曼濾波算法對目標(biāo)運(yùn)動進(jìn)行預(yù)測、跟蹤,從而控制攝像頭轉(zhuǎn)動,跟蹤目標(biāo)物,使目標(biāo)物體始終出現(xiàn)監(jiān)控畫面的中心。在此采用卡爾曼濾算法,進(jìn)行目標(biāo)運(yùn)動的預(yù)估,利用Matlab對其仿真。仿真結(jié)果顯示跟蹤效果非常好,證明采用該算法來跟蹤動目標(biāo)物有效可行,具有一定的研究價值。
關(guān)鍵詞:卡爾曼濾波;幀差法;運(yùn)動目標(biāo)跟蹤;Matlab
中圖分類號:TP391.41文獻(xiàn)標(biāo)識碼: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 引 言
隨著視頻分析技術(shù)、圖像處理、模式識別的發(fā)展,計算機(jī)視覺理論已經(jīng)得到了廣泛的應(yīng)用,但是,目前的發(fā)展仍然不夠成熟,智能化的視頻監(jiān)控系統(tǒng)就是計算機(jī)視覺領(lǐng)域的一個備受關(guān)注的前沿課題。
在智能視頻監(jiān)控系統(tǒng)中,往往需要攝像機(jī)能夠及時跟蹤運(yùn)動目標(biāo)物,那么如何準(zhǔn)確跟蹤,已成為智能化視頻監(jiān)控系統(tǒng)中一項重要的技術(shù),在此借助Kalman濾波算法跟蹤動態(tài)目標(biāo)。當(dāng)對某一目標(biāo)進(jìn)行跟蹤時,首先需要觀測所跟蹤的目標(biāo)物,通常所得到觀測信息中不僅包含所需要信號,而且還包含隨機(jī)觀測噪聲和干擾信號。如何通過對一系列帶有觀測噪聲和干擾信號的觀測數(shù)據(jù)進(jìn)行處理,從中得到所需要的各種參量的估計值,并由已有的觀測數(shù)據(jù)預(yù)測未來目標(biāo)的運(yùn)動狀態(tài)是預(yù)測跟蹤方法的關(guān)鍵問題??柭鼮V波采用遞推算法原理是利用系統(tǒng)噪聲和觀測噪聲的統(tǒng)計特性,以系統(tǒng)觀測量為輸入,以所要估計值為輸出,對目標(biāo)當(dāng)前運(yùn)動狀態(tài)做估計并對未來運(yùn)動狀態(tài)預(yù)測,核心思想是: 利用前一時刻對當(dāng)前時刻的預(yù)測和當(dāng)前的觀察值來更新對狀態(tài)量的估計(得到當(dāng)前時刻的最優(yōu)預(yù)測值),從而求出下一時刻的預(yù)測值,實現(xiàn)遞歸的預(yù)測,達(dá)到及時準(zhǔn)確跟蹤的效果。
1 卡爾曼濾波方程
1.1 卡爾曼濾波方程
Kalman濾波是對一個動態(tài)系統(tǒng)狀態(tài)序列進(jìn)行線性最小方差估計的算法,預(yù)測時具有無偏、穩(wěn)定和最優(yōu)的特點(diǎn)。推導(dǎo)Kalman濾波的公式有多種途徑,在此,直接利用最小方差準(zhǔn)則,對Kalman濾波的遞推公式做簡要的推導(dǎo)。
設(shè)系統(tǒng)的狀態(tài)方程和測量方程分別為:
Χk=φk/k-1Χk-1+Γk-1Wk-1
Ζk=ΗkΧk+Vk
式中: Χk為k時刻的n維狀態(tài)矢量,即被估計矢量;φk/(k-1)為n×n維狀態(tài)轉(zhuǎn)移矩陣;Γk-1為n×n維動態(tài)噪聲矩陣;Vk為n維動態(tài)噪聲;Ηk為k時刻測量矩陣。其中,動態(tài)噪聲Wk與觀測噪聲Vk是互不相關(guān)的零均值白噪聲序列,即對所有的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為動態(tài)噪聲方差;R為觀測噪聲方差陣。
1.2 卡爾曼濾波方程的推導(dǎo)過程
觀測值Χk和最優(yōu)估計值k,采用某一線性組合Ak-1+BΖk作為Χk濾波估計值。觀測值和估計值有誤差,要求其均方誤差陣為最小,則由狀態(tài)方程和測量方程可以推出:
假設(shè):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項都是非負(fù)定陣,而第2項與待定系數(shù)矩陣A,B無關(guān),因此為使達(dá)到最小,應(yīng)取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)
綜合上述結(jié)果,可以得到一組卡爾曼濾波遞推方程:
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 卡爾曼濾波在跟蹤運(yùn)動物中的應(yīng)用
在監(jiān)視過程中,通過幀差法識別運(yùn)動目標(biāo)時,通過型心定位,確定運(yùn)動目標(biāo)的中心坐標(biāo),然后采用卡爾曼濾波的方法,對運(yùn)動目標(biāo)進(jìn)行跟蹤。對于攝像頭目標(biāo)跟蹤,采用時間等間隔采樣,希望在觀測到某一時刻目標(biāo)位置時,能夠及時預(yù)估計出下一個時刻出現(xiàn)的最大可能位置,以便于攝像頭及時調(diào)整角度快速跟蹤目標(biāo)。在已知系統(tǒng)初始狀態(tài)時,根據(jù)當(dāng)前觀測值用卡爾曼濾波得到X(1),進(jìn)而預(yù)測X(2),具體卡爾曼濾波方程如式(1)~式(5)所示。卡爾曼進(jìn)一步預(yù)測:
X(k+1)/k=ΦXk/k(6)
式中:Xk/(k-1)和Pk/(k-1)是狀態(tài)預(yù)測值及其最小預(yù)測均方誤差矩陣;Kk為卡爾曼濾波增益矩陣;Zk為觀測信息;Xk/k和Pk/k為修正的狀態(tài)估計值及誤差協(xié)方差矩陣。假設(shè)目標(biāo)在平面內(nèi)運(yùn)動,當(dāng)運(yùn)動目標(biāo)進(jìn)入攝像頭的觀測的觀測的范圍,首先假設(shè)攝像頭及圖像處理具有坐標(biāo)定位的功能,攝像頭在拍到圖像之后,可以根據(jù)這些信息獲得k時刻對信號所做出的估計出發(fā),根據(jù)式(2)對k時刻的狀態(tài)信號Kk進(jìn)行預(yù)估,在測得k時刻的目標(biāo)當(dāng)前坐標(biāo)位置后;然后用式(1)獲得目標(biāo)的真實狀態(tài)最優(yōu)估計值Xk/k;然后利用預(yù)估計算法,由式(6)對預(yù)測值進(jìn)行修正計算目標(biāo)k+1時刻最大可能位置的觀測值X(k+1)/k,根據(jù)坐標(biāo)位置可獲得目標(biāo)的偏轉(zhuǎn)角度,根據(jù)偏轉(zhuǎn)角度控制攝像頭的轉(zhuǎn)動的時間,從而保持跟蹤目標(biāo)始終出現(xiàn)到在監(jiān)控畫面的中間。
3 利用Matlab仿真跟蹤目標(biāo)過程
用標(biāo)準(zhǔn)卡爾曼濾波對目標(biāo)進(jìn)行估計和預(yù)測,首先對目標(biāo)物建立數(shù)學(xué)模型,以二維空間為例對目標(biāo)運(yùn)動物進(jìn)行預(yù)測跟蹤,從圖像中通過幀差法識別運(yùn)動目標(biāo),從中取得運(yùn)動目標(biāo)物的的中心坐標(biāo)值,以中心坐標(biāo)值作為跟蹤對象。運(yùn)動目標(biāo)物數(shù)學(xué)模型可表示為:
x=t;y=t
其狀態(tài)方程,測量方程:
Χk=φk/(k-1)Χk-1+Γk-1Wk-1
Ζk=ΗkΧk+Vk
狀態(tài)變量:
Xk=[xk,k,yk,k]
首先建立卡爾曼濾波連續(xù)狀態(tài)方程:
X(t)=AX(t-1)+BW(t)(7)
Z(t)=CX(t)+DV(t)(8)
狀態(tài)轉(zhuǎn)移矩陣、動態(tài)噪聲矩陣、測量矩陣、測量噪聲矩陣分別為:
A=0100
0000
0001
0000
B=00
10
01
00
C=1000
0010D=1001
再將式(7)、式(8)轉(zhuǎn)換成離散狀態(tài)方程:
Xk+1=AXk+BWk(9)
Zk=CXk+DVk(10)
動態(tài)噪聲方差矩陣、觀測噪聲方差矩陣:
Q=5eye(2) R=5eye(2)
動態(tài)噪聲矩陣、觀測噪聲矩陣:
W=sqrt(Q)*randn(2,100)
V=sqrt(R)*randn(2,100)
取采樣時間t=1 s,設(shè)實際觀測值:X預(yù)測的最優(yōu)估計值為: X_hat預(yù)設(shè)實際觀測點(diǎn)(x,y),兩個坐標(biāo)值的運(yùn)動軌跡分別為正弦曲線,余弦曲線假設(shè)初始狀態(tài)變量為:
X=[40 2 20 3]
x(i+1)=10sin(i);y(i+1)=5cos(i);
利用卡爾曼濾波算法,分別跟蹤這兩個坐標(biāo)值。
4 仿真結(jié)果
仿真結(jié)果如圖1~圖4所示。
圖1 實際x坐標(biāo)運(yùn)動曲線與預(yù)測運(yùn)動曲線
圖2 實際x坐標(biāo)運(yùn)動速度曲線與預(yù)測運(yùn)動速度曲線
圖3 實際y坐標(biāo)運(yùn)動曲線與預(yù)測運(yùn)動曲線
圖4 實際y坐標(biāo)運(yùn)動速度曲線與預(yù)測運(yùn)動速度曲線
5 結(jié) 語
運(yùn)動目標(biāo)跟蹤技術(shù)在智能監(jiān)控、視頻圖像等領(lǐng)域起重要的作用,在此闡述了基于卡爾曼濾波算法跟蹤運(yùn)動目標(biāo)的基本思想和公式以及在跟蹤運(yùn)動目標(biāo)物的應(yīng)用,并進(jìn)行了仿真驗證。仿真結(jié)果表明卡爾曼濾波能夠很好地預(yù)測跟蹤目標(biāo)的運(yùn)動,具有很好的實時跟蹤效果。該方法彌補(bǔ)了以往圖像跟蹤滯后的缺點(diǎn),但是在坐標(biāo)速度的跟蹤上還沒有達(dá)到預(yù)期的效果,以后將繼續(xù)深入研究。
進(jìn)一步的研究工作是如何準(zhǔn)確建立跟蹤目標(biāo)的數(shù)學(xué)模型,優(yōu)化Kalman濾波算法,分析模型誤差,以及考慮x,y方向上隨機(jī)加速度擾動的影響,以取得更好的跟蹤效果。
參考文獻(xiàn)
[1]蔣志凱.數(shù)字濾波與卡爾曼濾波[M].北京:科學(xué)技術(shù)出版社,1993.
[2]宋文堯,張牙.卡爾曼濾波[M].北京:科學(xué)技術(shù)出版社,1991.
[3]李在銘.數(shù)字圖像處理壓縮與識別技術(shù)[M].成都:電子科技大學(xué)出版社,2000.
[4]孫江波.基于嵌入式Linux的視頻監(jiān)控系統(tǒng)設(shè)計[M].武漢工業(yè)學(xué)院學(xué)報,2006,25(3):31-36.
[5]楊建全,梁華,王成友.視頻監(jiān)控技術(shù)的發(fā)展與現(xiàn)狀[J].現(xiàn)代電子技術(shù),2006,29(21):84-88.
[6]卡爾曼濾波的應(yīng)用[EB/OL].http://baike.baidu.com/view/302394.html.
[7]什么是卡爾曼濾波[EB/OL].http://hi.baidu.com/xiaoqiang0416/blog/item/49fdacec42d56c2162d09f8b.html.
[8]楊學(xué)超,劉文萍.視頻圖像序列中的運(yùn)動目標(biāo)檢測技術(shù)[J].計算機(jī)應(yīng)用與軟件,2008(1):215-217.