摘 要: 針對傳統(tǒng)的Camshift算法在跟蹤時需要手動定位目標(biāo),在顏色干擾、遮擋等復(fù)雜背景中容易跟丟目標(biāo)的問題,提出了一種基于Camshift和Kalman濾波的自動跟蹤算法。首先利用幀間差分法和Canny邊緣檢測法分割出運動目標(biāo)的完整區(qū)域,然后用提取出的目標(biāo)區(qū)域初始化Camshift算法的初始搜索窗口,從而實現(xiàn)了目標(biāo)的自動跟蹤。當(dāng)背景中存在相似顏色干擾或者目標(biāo)被嚴(yán)重遮擋時,采用Kalman濾波與Camshift算法相結(jié)合的改進算法進行跟蹤。實驗結(jié)果表明,本文改進算法在目標(biāo)被嚴(yán)重遮擋、顏色干擾等情況下仍能有效、穩(wěn)健地跟蹤。
關(guān)鍵詞: 目標(biāo)跟蹤; Camshift算法; Kalman濾波; 幀間差分法; Canny邊緣檢測
視頻序列中運動目標(biāo)的跟蹤是計算機視覺領(lǐng)域的一個重要的研究課題,它已廣泛應(yīng)用于電子監(jiān)控系統(tǒng)、智能交通管理、醫(yī)學(xué)、軍事等多個領(lǐng)域。近年來,國內(nèi)外許多學(xué)者對該領(lǐng)域進行了大量的研究,并且提出了許多不同的跟蹤方法,如基于模型的跟蹤方法[1]、基于特征的跟蹤方法[2]、基于區(qū)域的跟蹤方法[3]和基于輪廓的跟蹤方法[4]等。Camshift(Continuously Adaptive Mean Shift)算法是一種基于顏色特征匹配的跟蹤方法,該算法原理簡單,具有實時性、穩(wěn)定性和較強的魯棒性,在簡單背景中有較好的跟蹤效果。但傳統(tǒng)的Camshift算法是一種半自動的跟蹤算法,目標(biāo)的初始大小和位置需要手動選擇,而且在背景中存在相似顏色干擾、遮擋等情況下容易跟蹤失敗。
本文針對Camshift 算法的這些不足,提出了一種基于Camshift和Kalman濾波的自動跟蹤算法,采用幀間差分法和Canny邊緣檢測算法自動定位運動目標(biāo),當(dāng)遇到遮擋和顏色干擾時,引入Kalman濾波器對運動目標(biāo)的位置進行預(yù)測。實驗驗證了該改進算法對遮擋和顏色干擾的魯棒性和有效性。
1 運動目標(biāo)檢測
視頻序列中的運動目標(biāo)檢測是目標(biāo)跟蹤和目標(biāo)識別等高級處理的基礎(chǔ)。本文結(jié)合區(qū)域檢測和邊緣檢測的方法準(zhǔn)確地分割和定位出運動目標(biāo)。首先,利用幀間差分法得到目標(biāo)的差分圖像,對差分圖像進行高斯濾波、二值化處理后采用Canny邊緣檢測算法得到目標(biāo)的邊緣輪廓信息,再進一步提取出目標(biāo)的運動對象面,實現(xiàn)目標(biāo)標(biāo)定。在跟蹤過程中,用提取出的運動目標(biāo)初始化Camshift跟蹤算法的初始搜索窗口的大小,從而實現(xiàn)自動跟蹤。
1.1 幀間差分法
幀間差分法是最簡單的背景估計方法,它取上一幀視頻圖像作為當(dāng)前幀的背景模型,在相鄰兩幀間根據(jù)基于像素的差分并且閾值化來提取出圖像中的運動區(qū)域。該算法原理簡單、實時性強,常常用于跟蹤的前期處理過程。該算法首先通過計算第k幀圖像和第k-1幀圖像的像素差得到差分后的圖像Dk;然后設(shè)置合適的二值化閾值T對Dk進行二值化處理,得到二值化后的差分圖像Rk(x,y);最后對Rk(x,y)進行形態(tài)學(xué)濾波及連通性分析,得到目標(biāo)運動區(qū)域。其中:
1.2 Canny邊緣檢測算法
Canny邊緣檢測算子是Canny于1986年提出的一種基于最優(yōu)化算法的邊緣檢測算子,該算子具有高精度定位的特點。Canny提出三個嚴(yán)格的檢測標(biāo)準(zhǔn)評價邊緣檢測的質(zhì)量,分別是:高信噪比準(zhǔn)則、高定位精度準(zhǔn)則和單一邊緣響應(yīng)準(zhǔn)則。該算法的實現(xiàn)過程如下:
(1)用高斯濾波器平滑圖像;
(2)用一階偏導(dǎo)的有限差分計算梯度的幅值和方向;
(3)對梯度幅值進行非極大值抑制;
(4)用雙閾值算法檢測和連接邊緣。
2 運動目標(biāo)跟蹤
近年來,Camshift跟蹤算法憑借其實時性和魯棒性的特點被大量關(guān)注。該算法利用目標(biāo)的顏色特征模型實現(xiàn)跟蹤,由于顏色的相對穩(wěn)定性,該算法可以解決部分遮擋及目標(biāo)形變問題。在簡單背景下,該算法有較好的跟蹤效果,然而,在目標(biāo)被嚴(yán)重遮擋及存在大面積相似顏色干擾等復(fù)雜背景下,該算法會導(dǎo)致跟蹤失敗。本文提出了一種基于Camshift和Kalman濾波的改進的跟蹤算法來解決這些問題。
2.1 Camshift算法
Camshift算法即連續(xù)自適應(yīng)均值漂移算法,它是Meanshift算法的擴展。該算法根據(jù)目標(biāo)的顏色概率分布信息實現(xiàn)運動目標(biāo)跟蹤。Camshift算法的處理過程由反向投影、Meanshift算法和Camshift算法三部分組成。
2.1.1反向投影
首先將圖像從RGB空間轉(zhuǎn)換到HSV空間。HSV空間能精確地反映一些灰度信息和色彩信息,可以提高算法的穩(wěn)定性。由于HSV顏色空間中的H分量能直觀地反映物體顏色信息,且與亮度獨立,因此選擇圖像的H分量統(tǒng)計目標(biāo)的顏色直方圖,得到顏色概率查找表。最后將圖像中每個像素值用其顏色出現(xiàn)的概率替換,并將其得到的結(jié)果歸一化到[0,255]之間,從而得到顏色概率分布圖。色彩投影的流程如圖1所示。原圖圖像、H分量的顏色直方圖及對應(yīng)的概率分布圖如圖2 所示。
2.1.2 Meanshift算法
Meanshift算法[5]是一種非參數(shù)密度梯度估計算法,其實質(zhì)是通過反復(fù)迭代搜索特征空間中樣本點最密集的區(qū)域,搜索點沿著樣本點密度增加的方向“漂移”到局部密度極大點,從而達到跟蹤的目的。該算法因其原理簡單、計算量小、實時性強被廣泛應(yīng)用于圖像分割和跟蹤等領(lǐng)域。該算法的實現(xiàn)過程如下:
(1)設(shè)置搜索窗的初始大小和位置;
(2)計算搜索窗的質(zhì)心;
(3)將該搜索窗的中心移至質(zhì)心處;
(4)重復(fù)步驟(2)和步驟(3),直至收斂或者搜索窗質(zhì)心移動的距離小于事先設(shè)定的閾值。
設(shè)I(x,y)是概率分布圖中位于(x,y)處的像素值,x、y在整個搜索窗范圍內(nèi)取值。則有:
2.1.3 Camshift算法
Camshift算法[6-7]是對視頻序列中的所有幀作Meanshift運算,并且將得到的搜索窗的大小和中心作為下一幀meanshift算法搜索窗的初始值。如此迭代下去,實現(xiàn)對目標(biāo)的跟蹤。算法的具體流程如圖3所示。
2.2 改進的Camshift算法
傳統(tǒng)的Camshift算法原理簡單、計算量小、實時性強,能夠有效地解決目標(biāo)形變及部分遮擋等問題。然而,該算法在跟蹤時需要手動選擇初始搜索窗口的大小,是一種半自動的跟蹤算法;同時,由于該算法在跟蹤過程中沒有利用目標(biāo)的方向、速度等運動信息,當(dāng)背景中存在大面積相似顏色干擾或者目標(biāo)被嚴(yán)重遮擋時,該算法不能準(zhǔn)確地跟蹤目標(biāo),甚至導(dǎo)致跟蹤失敗。本文提出一種改進算法克服以上問題。首先,結(jié)合幀間差分法和Canny邊緣檢測算法,準(zhǔn)確地提取出運動目標(biāo),根據(jù)提取出的運動目標(biāo)初始化Camshift跟蹤算法的初始搜索窗口,從而實現(xiàn)了自動跟蹤。為了解決顏色干擾和嚴(yán)重遮擋的問題,本文引入Kalman濾波器,用Kalman濾波器預(yù)測Camshift算法中第K(K>2)幀搜索窗口的中心位置。具體的步驟為:先初始化Kalman濾波器,當(dāng)幀數(shù)K>2時,用Kalman濾波器預(yù)測Camshift算法的搜索窗口位置;用Camshift算法計算目標(biāo)的最優(yōu)位置和大??;判斷背景中是否存在顏色干擾或者目標(biāo)被嚴(yán)重遮擋,若無,則直接用Camshift算法計算出的目標(biāo)位置作為觀測值去更新Kalman濾波器;若有,則搜索窗口的大小會自動變大或變小,此時用Camshift算法計算出的最優(yōu)位置是不準(zhǔn)確的,如果用該值作為觀測值去更新Kalman濾波器,Kalman濾波器將不能有效準(zhǔn)確地估計下一幀的目標(biāo)位置,最終會導(dǎo)致跟蹤丟失。此時,用Kalman濾波器的預(yù)測值代替Camshift算法計算出的目標(biāo)位置作為觀測值去更新Kalman濾波器。本文中,用?琢判斷是否出現(xiàn)顏色干擾,用濾波器殘差r(k)和遮擋率β判斷目標(biāo)是否被嚴(yán)重遮擋。α、r(k)、β的計算公式如下:
其中,Rect_currenct為Camshift算法計算得到的目標(biāo)區(qū)域的大小,Rect_last為上一幀圖像目標(biāo)區(qū)域的大小, Rect_origin為初始搜索窗口的大小,x(k)、y(k)表示目標(biāo)位置的觀測值,x′(k)、y′(k)表示目標(biāo)位置的預(yù)測值。在本文中,當(dāng)?琢>2時,認(rèn)為背景中存在大面積相似顏色干擾;當(dāng)r(k)>10且?茁<0.3時,則認(rèn)為目標(biāo)被嚴(yán)重遮擋。該改進算法流程圖如圖4所示。
3 實驗結(jié)果及分析
為了驗證算法的有效性,本文在Pentium(R) 4, 3.00 GHz CPU,1 GB內(nèi)存,Windows XP操作系統(tǒng)的計算機上使用VS2005結(jié)合OPENCV函數(shù)庫來編寫程序。每幀圖像的大小為320×240。
3.1 運動目標(biāo)檢測與定位實驗結(jié)果
圖5顯示了運動目標(biāo)的提取結(jié)果,其中,圖5(a)是原始圖像序列中的一幀;圖5(b)是經(jīng)過幀間差分法、高斯濾波、二值化處理后結(jié)合Canny邊緣檢測算法得到的運動目標(biāo)的邊緣圖像;圖5(c)是提取出目標(biāo)的運動對象面;圖5(d)是運動目標(biāo)的標(biāo)定結(jié)果。從實驗結(jié)果可以看出,幀間差分法結(jié)合Canny邊緣檢測的方法可以準(zhǔn)確地提取出運動目標(biāo)。
3.2 改進的Camshift算法實驗結(jié)果
為了驗證改進的Camshift算法的有效性,本文將傳統(tǒng)Camshift算法的跟蹤效果與改進的Camshift算法跟蹤效果進行比較,比較結(jié)果如圖6和圖7所示。
'
圖6為相似顏色干擾實驗,視頻序列的背景中有一個紅色袋子與運動目標(biāo)的顏色很相似。其中,圖6(a)為傳統(tǒng)Camshift算法的實驗結(jié)果。從第110幀~第127幀,目標(biāo)越來越靠近紅色袋子,目標(biāo)區(qū)域也逐漸擴大,將袋子誤認(rèn)為是目標(biāo)導(dǎo)致目標(biāo)定位不準(zhǔn)確。第172幀目標(biāo)離開袋子時,跟蹤框仍停留在袋子上,最終導(dǎo)致跟蹤失敗。圖6(b)為改進Camshift算法的實驗結(jié)果。實驗結(jié)果表明,改進的Camshift算法在背景中存在相似顏色干擾時仍能有效地跟蹤目標(biāo)。
圖7為遮擋實驗,其中圖7(a)為傳統(tǒng)Camshift算法實驗結(jié)果,圖7(b)為改進的Camshift算法的實驗結(jié)果。在圖7(a)中的第161幀時,目標(biāo)被部分遮擋,Camshift算法通過縮小目標(biāo)區(qū)域的大小以消除目標(biāo)被遮擋部分的影響,實現(xiàn)對目標(biāo)的跟蹤。在第190幀時,目標(biāo)被完全遮擋,顏色信息完全消失,搜索窗口收縮到最小值并停留在一個局部小區(qū)域內(nèi)。第280幀當(dāng)目標(biāo)再次出現(xiàn)時跟蹤丟失。在圖6(b)中的第190幀時,目標(biāo)被嚴(yán)重遮擋,此時用本文改進算法進行跟蹤并設(shè)置搜索窗口的大小為初始搜索窗的大小。第280幀時,目標(biāo)重新出現(xiàn),搜索窗口與目標(biāo)聯(lián)接,開始新的跟蹤。實驗結(jié)果表明,改進的Camshift算法對遮擋有較好的魯棒性。
本文提出了一種基于Kalman濾波與Camshift算法的改進的自動跟蹤算法。實驗表明,本文所提出的改進算法可以實時、準(zhǔn)確、自動地跟蹤目標(biāo),并且對干擾和遮擋有較好的魯棒性。然而,本文是在背景靜止、目標(biāo)勻速運動的假設(shè)下完成的,如何提高算法在動態(tài)復(fù)雜背景及目標(biāo)速度變化較大的情況下跟蹤的穩(wěn)定性,是需要進一步研究的內(nèi)容。
參考文獻
[1] KIM H K, KIM J D. Region-based shape descriptor invariant to rotation, scale and translation[J]. Signal Processing: Image Communication, 2000,16(1-2):87-93.
[2] SCHOLKOPF B. Statistical learning and kernel methods[M]. Technology Report MSR_TR, 2002.
[3] BADENAS J, BOBER M, PLA F. Motion and intensitybased segmentation and its application to traffic monitoring[C]. Proceedings of ICIAP 1310,1997:502-509.
[4] LIN Y T, CHANG Y L. Tracking deformable objects with the Active Contour Model[C]. Proceedings IEEE (ICMCS’ 1997), 1997:608-609.
[5] 周尚波, 胡鵬, 柳玉炯. 基于改進Mean-Shift與自適應(yīng)Kalman濾波的視頻目標(biāo)跟蹤[J]. 計算機應(yīng)用, 2010,30
(6):1573-1576.
[6] 鄔大鵬, 程衛(wèi)平,于盛林. 基于幀間差分和運動估計的Camshift目標(biāo)跟蹤算法[J].光電工程, 2010,37(1):55-60. [7] 王江濤, 楊靜宇. 遮擋情況下基于Kalman均值偏移的目標(biāo)跟蹤[J]. 系統(tǒng)仿真學(xué)報, 2007,19(18):4216-4220.