谷欣超,劉俊杰,才華,韓太林,楊勇
(1.長春理工大學 計算機科學技術學院,長春 130022;2.長春理工大學 電子信息工程學院,長春 130022)
基于Kalman濾波器的運動目標跟蹤算法
谷欣超1,劉俊杰1,才華2,韓太林2,楊勇1
(1.長春理工大學計算機科學技術學院,長春130022;2.長春理工大學電子信息工程學院,長春130022)
運動目標跟蹤是計算機視覺中的一個典型問題,如何能準確快速的跟蹤目標是研究的關鍵。提出了Kalman濾波器結合Camshift的改進算法。首先選取一段視頻圖像序列,通過背景差分法快速檢測出運動目標,初始化搜索窗口,用Kalmam濾波器預測目標位置,再用Camshift迭代算法計算目標最優(yōu)的位置,將結果作為Kalman濾波器進行下一次預測的估計值。實驗表明,當目標被嚴重遮擋或受到同色背景干擾時,本算法仍能快速準確的跟蹤運動目標。
背景差分法;Kalman濾波器;Camshift;目標跟蹤
一個完整的運動目標跟蹤系統(tǒng)一般包括兩部分內容,一是運動目標的檢測,二是運動目標的跟蹤[1]。靜態(tài)背景下的運動目標檢測主要應用于公共場所的視頻監(jiān)控,智能交通系統(tǒng)的實時監(jiān)控等。傳統(tǒng)的運動目標檢測算法有三種:光流法、背景差分法、幀間差分法[2-4]。本文所使用的運動目標檢測算法是背景差分法,它是目前運動目標檢測技術中應用最廣泛的一種方法。首先把不摻雜任何前景圖像和噪聲的背景圖像作為背景模型,通過當前幀圖像與背景模型作差分快速檢測出運動目標。常用的運動目標跟蹤算法主要分為以下幾種:基于區(qū)域匹配的跟蹤算法、基于特征點的跟蹤算法、基于輪廓的跟蹤算法、基于光流的跟蹤算法等。本文所使用的Camshift算法根據目標區(qū)域的灰度或顏色分布特征進行跟蹤,屬于區(qū)域匹配的跟蹤算法的。但Camshift算法需要手動選取運動目標,而且當目標與背景顏色接近或者目標被遮擋的情況下,算法實現的效果并不是很理想。
本文提出了Kalman濾波器與Camshift算法相結合的改進算法,用背景差分法檢測出運動目標,改變傳統(tǒng)Camshift算法需要手動選取運動目標的缺點[5-8]。通過Kalman濾波器預測目標所在位置,在此中心點用Camshift算法迭代搜索,更新Kalman濾波狀態(tài)。該算法能夠快速準確地跟蹤到運動目標,具有一定的魯棒性和準確性。
圖1 背景差分法的流程圖
背景差分法是用視頻序列中的不包含前景圖像和噪聲的一幀圖像作為背景,將以后各幀的每個像素的像素值與其背景的相應像素值相減,得到背景相減后的圖像,再進行二值化運算得到最后的圖像即為前景目標。由于背景差分法實現相對簡單、速度較快且便于在硬件上實現,因此被廣泛地使用于攝像機固定情況下的視頻監(jiān)控、運動目標檢測等應用中。背景差分法的實現流程圖如圖1所示。
(1)背景模型的建立
目前最常用的背景模型建立方法是統(tǒng)計平均法,將連續(xù)多幀視頻序列圖像的灰度平均值作為背景圖像。因為攝像機靜止的情況下,一段圖像序列中,背景相對于前景出現的次數更多,這樣抽取一段時間內的序列圖像,對于每個像素點,對所有幀取平均值,所求平均值就會和背景值接近。用式(1)表示:
(2)運動目標提取
獲取背景圖像后,用當前幀圖像與背景圖像作差分。取絕對值高于判決門限Tn的像素為運動目標,設置為1;低于判決門限值的為背景,設置為0,這樣經過處理后的圖像就為二值圖像:
該方法的優(yōu)缺點很明顯,優(yōu)點是計算簡單,易于實現,而且能快速完整的檢測出運動目標;缺點是不適用于攝像機運動或者背景實時變化的情況下,此外當光照發(fā)生變化時,該方法反應較慢,并不適用于光照變化較多的場景。
2.1Kalman濾波器
Kalman濾波器是一種對動態(tài)系統(tǒng)的狀態(tài)序列,求線性最小方差誤差估計的算法,利用動態(tài)的狀態(tài)方程和觀測方程來描述系統(tǒng)。它的基本思想是:首先建立描述隨機動態(tài)變量隨時間變化的先驗模型,然后在對隨機變量進行實時觀測的情況下,利用KF方程組實時獲得目標狀態(tài)基于全局信息的最優(yōu)估計值。Kalman濾波算法包含兩個模型:
狀態(tài)模型:
觀測模型:
其中,Xk是n×1維狀態(tài)向量,Ak是狀態(tài)轉移矩陣,n×n維,Bk是輸入矩陣,Wk是動態(tài)干擾(白噪聲)的隨機向量,協(xié)方差為Q;Zk是m×1維觀測向量,Hk是觀測矩陣,m×n維,Vk是觀測噪聲向量,協(xié)方差維R。
根據上述模型,Kalman濾波器可分為算法預測和進一步觀測的更新。其算法的具體流程如下:
算法的預測部分:
狀態(tài)預測方程:
誤差協(xié)方差預測方程:
進一步觀測的更新部分:
Kalman增益系數方程:
狀態(tài)修正方程:
誤差協(xié)方差修正方程:
根據Kalman濾波器原理則可知,跟蹤視頻中運動目標時,可以有效的預測出運動目標在下一幀圖像中可能出現的位置,減小搜索的范圍,當目標被部分遮擋或者與少量背景相近時,也能快速準確的跟蹤到目標。算法簡單、方便,能達到實時跟蹤的效果。
2.2基于Kalman濾波器的Camshift目標跟蹤算法
傳統(tǒng)的Camshift算法是基于Meanshift算法的擴展計算,是目標跟蹤中最常用的一種算法。該算法通過圖像的顏色直方圖獲得顏色概率分布圖,當目標運動時,圖像的顏色概率分布也隨之變化,因此可以根據圖像的顏色概率分布變化來跟蹤運動目標。算法的基本思想如下:首先將序列圖像由RGB顏色空間轉換到HSV空間,提取H分量做顏色直方圖,可以直觀的觀測到概率分布的大小,通過反向投影得到顏色概率分布圖。實際上顏色概率分布圖就是一個灰度圖像,然后計算圖像的零階距,一階距,以及搜索窗口的中心與質心的距離,找到滿足條件的位置即實現跟蹤。Camshift算法的實質就是對所有幀做Meanshift運算,并將上一幀的結果,也就是搜索窗的中心和大小作為下一幀搜索窗的初始值,經過反復迭代實現對運動目標的跟蹤。
傳統(tǒng)的Camshift算法有一些不足之處。它需要手動選取運動目標,容易受到光照等外界因素的干擾,而且當目標被遮擋或者與背景相似時,Camshift算法無法進行有效搜索,所以本文對算法進行一定的改進。
基于Kalman濾波器的Camshift目標跟蹤算法的具體步驟:
(1)從視頻序列中選取只有背景圖像的一幀圖像,對背景圖像建模,計算當前幀與背景幀圖像的差得到完整的運動目標。
(2)初始化搜索窗口,根據上一幀背景差分法得到的運動目標所在位置的最優(yōu)估計值,通過Kalman濾波器預測運動目標在當前幀所在的位置。
(3)通過反向投影建立顏色概率分布圖,在反向投影圖中利用Meanshift算法在Kalman濾波器預測的目標中心點領域內搜索迭代搜索,計算出運動目標的最優(yōu)位置。
(4)用Camshift算法計算的最優(yōu)值作為觀測值,更新Kalman濾波器。
(5)當出現背景顏色干擾或者目標被部分遮擋,用Kalman預測值作為觀測值,并更新Kalman濾波器。
(6)重復(2)~(5)步驟,反復循環(huán)實現運動目標的跟蹤。
算法的具體流程圖如圖2所示。
實驗對象為一段運動的小車的視頻圖像序列,首先選取一幀只有背景的圖像,用背景差分法檢測到運動目標,提取運動目標的輪廓并用橢圓框標記,用Camshift算法進行跟蹤。在小車所在目標區(qū)域內建立顏色概率分布直方圖,過程如圖3所示。
圖2 改進的Camshift算法流程圖
圖3 運動目標跟蹤
對同一段視頻的圖像序列用兩種算法作比較,過程如圖4和圖5所示。傳統(tǒng)Camshift目標跟蹤算法進行跟蹤時候,需要手動選擇一個初始搜索窗。而改進后的算法根據背景差分法直接能檢測出運動目標,并標記出運動目標。當跟蹤到第50幀時,目標被障礙物嚴重遮擋,搜索窗出現發(fā)散的現象,改進后的算法可以用Kalman濾波器預測目標所在的位置。當跟蹤到第70幀的時候,傳統(tǒng)的Camshift算法已無法有效跟蹤,而改進后的算法能繼續(xù)跟蹤,而且具有一定的穩(wěn)定性。
圖5 改進Camshift目標跟蹤算法
本文詳細的介紹了背景差分法,Kalman濾波器和Camshift算法的基本內容,提出了一種基于Kalman濾波器的Camshift目標跟蹤算法,通過背景差分法能夠快速和準確的檢測出運動目標,對目標的幾何特征提取的誤差小,改變了Camshift算法需要手動選取目標區(qū)域的特點,并且當目標被嚴重遮擋時,用改進后的算法依然能夠快速準確的捕捉到運動目標,實現了目標跟蹤持久和穩(wěn)定,具有很強的適應性和魯棒性。
[1] Mazinan A H,Amir-Latifi A.Applying mean shift,motion information and Kalman filtering approaches to object tracking[J].ISA transactions,2012,51(3):485-497.
[2] 鄔大鵬,程衛(wèi)平,于盛林.基于幀間差分和運動估計的Camshift目標跟蹤算法[J].光電工程,2010,37(1):55-60.
[3] 李剛,邱尚斌,林凌,等.基于背景差法和幀間差法的運動目標檢測方法[J].儀器儀表學報,2006,27(8):961-963.
[4] 李木勇,馮進良,唐勇,等.基于序列圖像中運動小目標檢測[J].長春理工大學學報:自然科學版,2007,30(2):22-25.
[5] 朱勝利,朱善安.基于卡爾曼濾波器組的Mean Shift模板更新算法[J].中國圖象圖形學報,2007,12(3):460-464.
[6] 李晶,范九倫.一種基于卡爾曼濾波的運動物體跟蹤算法[J].計算機應用研究,2010,27(8):3162-3164.
[7] 梁錫寧,楊剛,余學才,等.一種動態(tài)模板匹配的卡爾曼濾波跟蹤算法[J].光電工程,2010,37(10):29-33.
[8] 廉綠松,蔣漢元,曹穎.卡爾曼濾波方法在經緯儀圖像數字傳感系統(tǒng)中的應用[J].長春理工大學學報:自然科學版,2013,36(5):120-122+126.
Algorithm of Moving Object Tracking Based on Kalman Filter
GU Xinchao1,LIU Junjie1,CAI Hua2,HAN Tailin2,YANG Yong1
(1.School of Computer Science and Technology,Changchun University of Science and Technology,Changchun 130022;2.School of Electronics and Information Engineering,Changchun University of Science and Technology,Changchun 130022)
Moving target tracking is always a typical problem in the field of computer vision.It has been involved in many areas of technology of video image processing,pattern recognition and artificial intelligence.So it has a strong research value.For the researchers,the key of the study is how to more accurately and quickly track the target.In this paper,the Camshift algorithm isimproved by using Kalman filter.First of all,we should choose a video image sequence,we can quickly detect moving targets by background subtraction,Initialize search window,and we need to predict the target location with the Kalmam filter,then we can calculate the optimal target location with Camshift algorithm,finally,as a result of the estimated value of the Kalman filter for the next forecast.The experimental results show that when the target is blocked or interfere by the same color background,the improved algorithm is able to fast and accurately track the moving targets.
background subtraction;Kalman filter;Camshift;target tracking
TP391.41
A
1672-9870(2015)05-0136-04
2015-09-16
谷欣超(1976-),男,碩士,講師,E-mail:guxinchao@foxmail.com
楊勇(1970-),男,博士,教授,E-mail:yy@cust.edu.cn