《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Camshift和Kalman濾波的自動(dòng)跟蹤算法
基于Camshift和Kalman濾波的自動(dòng)跟蹤算法
來(lái)源:微型機(jī)與應(yīng)用2011年第24期
梁 娟, 項(xiàng) 俊, 侯建華
(中南民族大學(xué) 電子信息工程學(xué)院,湖北 武漢430074)
摘要: 針對(duì)傳統(tǒng)的Camshift算法在跟蹤時(shí)需要手動(dòng)定位目標(biāo),在顏色干擾、遮擋等復(fù)雜背景中容易跟丟目標(biāo)的問題,提出了一種基于Camshift和Kalman濾波的自動(dòng)跟蹤算法。首先利用幀間差分法和Canny邊緣檢測(cè)法分割出運(yùn)動(dòng)目標(biāo)的完整區(qū)域,然后用提取出的目標(biāo)區(qū)域初始化Camshift算法的初始搜索窗口,從而實(shí)現(xiàn)了目標(biāo)的自動(dòng)跟蹤。當(dāng)背景中存在相似顏色干擾或者目標(biāo)被嚴(yán)重遮擋時(shí),采用Kalman濾波與Camshift算法相結(jié)合的改進(jìn)算法進(jìn)行跟蹤。實(shí)驗(yàn)結(jié)果表明,本文改進(jìn)算法在目標(biāo)被嚴(yán)重遮擋、顏色干擾等情況下仍能有效、穩(wěn)健地跟蹤。
Abstract:
Key words :

摘  要: 針對(duì)傳統(tǒng)的Camshift算法在跟蹤時(shí)需要手動(dòng)定位目標(biāo),在顏色干擾、遮擋等復(fù)雜背景中容易跟丟目標(biāo)的問題,提出了一種基于Camshift和Kalman濾波的自動(dòng)跟蹤算法。首先利用幀間差分法Canny邊緣檢測(cè)法分割出運(yùn)動(dòng)目標(biāo)的完整區(qū)域,然后用提取出的目標(biāo)區(qū)域初始化Camshift算法的初始搜索窗口,從而實(shí)現(xiàn)了目標(biāo)的自動(dòng)跟蹤。當(dāng)背景中存在相似顏色干擾或者目標(biāo)被嚴(yán)重遮擋時(shí),采用Kalman濾波與Camshift算法相結(jié)合的改進(jìn)算法進(jìn)行跟蹤。實(shí)驗(yàn)結(jié)果表明,本文改進(jìn)算法在目標(biāo)被嚴(yán)重遮擋、顏色干擾等情況下仍能有效、穩(wěn)健地跟蹤。
關(guān)鍵詞: 目標(biāo)跟蹤; Camshift算法; Kalman濾波; 幀間差分法; Canny邊緣檢測(cè)


    視頻序列中運(yùn)動(dòng)目標(biāo)的跟蹤是計(jì)算機(jī)視覺領(lǐng)域的一個(gè)重要的研究課題,它已廣泛應(yīng)用于電子監(jiān)控系統(tǒng)、智能交通管理、醫(yī)學(xué)、軍事等多個(gè)領(lǐng)域。近年來(lái),國(guó)內(nèi)外許多學(xué)者對(duì)該領(lǐng)域進(jìn)行了大量的研究,并且提出了許多不同的跟蹤方法,如基于模型的跟蹤方法[1]、基于特征的跟蹤方法[2]、基于區(qū)域的跟蹤方法[3]和基于輪廓的跟蹤方法[4]等。Camshift(Continuously Adaptive Mean Shift)算法是一種基于顏色特征匹配的跟蹤方法,該算法原理簡(jiǎn)單,具有實(shí)時(shí)性、穩(wěn)定性和較強(qiáng)的魯棒性,在簡(jiǎn)單背景中有較好的跟蹤效果。但傳統(tǒng)的Camshift算法是一種半自動(dòng)的跟蹤算法,目標(biāo)的初始大小和位置需要手動(dòng)選擇,而且在背景中存在相似顏色干擾、遮擋等情況下容易跟蹤失敗。
    本文針對(duì)Camshift 算法的這些不足,提出了一種基于Camshift和Kalman濾波的自動(dòng)跟蹤算法,采用幀間差分法和Canny邊緣檢測(cè)算法自動(dòng)定位運(yùn)動(dòng)目標(biāo),當(dāng)遇到遮擋和顏色干擾時(shí),引入Kalman濾波器對(duì)運(yùn)動(dòng)目標(biāo)的位置進(jìn)行預(yù)測(cè)。實(shí)驗(yàn)驗(yàn)證了該改進(jìn)算法對(duì)遮擋和顏色干擾的魯棒性和有效性。
1 運(yùn)動(dòng)目標(biāo)檢測(cè)
    視頻序列中的運(yùn)動(dòng)目標(biāo)檢測(cè)是目標(biāo)跟蹤和目標(biāo)識(shí)別等高級(jí)處理的基礎(chǔ)。本文結(jié)合區(qū)域檢測(cè)和邊緣檢測(cè)的方法準(zhǔn)確地分割和定位出運(yùn)動(dòng)目標(biāo)。首先,利用幀間差分法得到目標(biāo)的差分圖像,對(duì)差分圖像進(jìn)行高斯濾波、二值化處理后采用Canny邊緣檢測(cè)算法得到目標(biāo)的邊緣輪廓信息,再進(jìn)一步提取出目標(biāo)的運(yùn)動(dòng)對(duì)象面,實(shí)現(xiàn)目標(biāo)標(biāo)定。在跟蹤過程中,用提取出的運(yùn)動(dòng)目標(biāo)初始化Camshift跟蹤算法的初始搜索窗口的大小,從而實(shí)現(xiàn)自動(dòng)跟蹤。
1.1 幀間差分法
   幀間差分法是最簡(jiǎn)單的背景估計(jì)方法,它取上一幀視頻圖像作為當(dāng)前幀的背景模型,在相鄰兩幀間根據(jù)基于像素的差分并且閾值化來(lái)提取出圖像中的運(yùn)動(dòng)區(qū)域。該算法原理簡(jiǎn)單、實(shí)時(shí)性強(qiáng),常常用于跟蹤的前期處理過程。該算法首先通過計(jì)算第k幀圖像和第k-1幀圖像的像素差得到差分后的圖像Dk;然后設(shè)置合適的二值化閾值T對(duì)Dk進(jìn)行二值化處理,得到二值化后的差分圖像Rk(x,y);最后對(duì)Rk(x,y)進(jìn)行形態(tài)學(xué)濾波及連通性分析,得到目標(biāo)運(yùn)動(dòng)區(qū)域。其中:

1.2 Canny邊緣檢測(cè)算法
    Canny邊緣檢測(cè)算子是Canny于1986年提出的一種基于最優(yōu)化算法的邊緣檢測(cè)算子,該算子具有高精度定位的特點(diǎn)。Canny提出三個(gè)嚴(yán)格的檢測(cè)標(biāo)準(zhǔn)評(píng)價(jià)邊緣檢測(cè)的質(zhì)量,分別是:高信噪比準(zhǔn)則、高定位精度準(zhǔn)則和單一邊緣響應(yīng)準(zhǔn)則。該算法的實(shí)現(xiàn)過程如下:
    (1)用高斯濾波器平滑圖像;
    (2)用一階偏導(dǎo)的有限差分計(jì)算梯度的幅值和方向;
    (3)對(duì)梯度幅值進(jìn)行非極大值抑制;
    (4)用雙閾值算法檢測(cè)和連接邊緣。
2 運(yùn)動(dòng)目標(biāo)跟蹤
    近年來(lái),Camshift跟蹤算法憑借其實(shí)時(shí)性和魯棒性的特點(diǎn)被大量關(guān)注。該算法利用目標(biāo)的顏色特征模型實(shí)現(xiàn)跟蹤,由于顏色的相對(duì)穩(wěn)定性,該算法可以解決部分遮擋及目標(biāo)形變問題。在簡(jiǎn)單背景下,該算法有較好的跟蹤效果,然而,在目標(biāo)被嚴(yán)重遮擋及存在大面積相似顏色干擾等復(fù)雜背景下,該算法會(huì)導(dǎo)致跟蹤失敗。本文提出了一種基于Camshift和Kalman濾波的改進(jìn)的跟蹤算法來(lái)解決這些問題。
2.1 Camshift算法
    Camshift算法即連續(xù)自適應(yīng)均值漂移算法,它是Meanshift算法的擴(kuò)展。該算法根據(jù)目標(biāo)的顏色概率分布信息實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)跟蹤。Camshift算法的處理過程由反向投影、Meanshift算法和Camshift算法三部分組成。
2.1.1反向投影
    首先將圖像從RGB空間轉(zhuǎn)換到HSV空間。HSV空間能精確地反映一些灰度信息和色彩信息,可以提高算法的穩(wěn)定性。由于HSV顏色空間中的H分量能直觀地反映物體顏色信息,且與亮度獨(dú)立,因此選擇圖像的H分量統(tǒng)計(jì)目標(biāo)的顏色直方圖,得到顏色概率查找表。最后將圖像中每個(gè)像素值用其顏色出現(xiàn)的概率替換,并將其得到的結(jié)果歸一化到[0,255]之間,從而得到顏色概率分布圖。色彩投影的流程如圖1所示。原圖圖像、H分量的顏色直方圖及對(duì)應(yīng)的概率分布圖如圖2 所示。

2.1.2 Meanshift算法

 


    Meanshift算法[5]是一種非參數(shù)密度梯度估計(jì)算法,其實(shí)質(zhì)是通過反復(fù)迭代搜索特征空間中樣本點(diǎn)最密集的區(qū)域,搜索點(diǎn)沿著樣本點(diǎn)密度增加的方向“漂移”到局部密度極大點(diǎn),從而達(dá)到跟蹤的目的。該算法因其原理簡(jiǎn)單、計(jì)算量小、實(shí)時(shí)性強(qiáng)被廣泛應(yīng)用于圖像分割和跟蹤等領(lǐng)域。該算法的實(shí)現(xiàn)過程如下:
    (1)設(shè)置搜索窗的初始大小和位置;
    (2)計(jì)算搜索窗的質(zhì)心;
    (3)將該搜索窗的中心移至質(zhì)心處;
    (4)重復(fù)步驟(2)和步驟(3),直至收斂或者搜索窗質(zhì)心移動(dòng)的距離小于事先設(shè)定的閾值。
    設(shè)I(x,y)是概率分布圖中位于(x,y)處的像素值,x、y在整個(gè)搜索窗范圍內(nèi)取值。則有:

2.1.3  Camshift算法
    Camshift算法[6-7]是對(duì)視頻序列中的所有幀作Meanshift運(yùn)算,并且將得到的搜索窗的大小和中心作為下一幀meanshift算法搜索窗的初始值。如此迭代下去,實(shí)現(xiàn)對(duì)目標(biāo)的跟蹤。算法的具體流程如圖3所示。

2.2 改進(jìn)的Camshift算法
   傳統(tǒng)的Camshift算法原理簡(jiǎn)單、計(jì)算量小、實(shí)時(shí)性強(qiáng),能夠有效地解決目標(biāo)形變及部分遮擋等問題。然而,該算法在跟蹤時(shí)需要手動(dòng)選擇初始搜索窗口的大小,是一種半自動(dòng)的跟蹤算法;同時(shí),由于該算法在跟蹤過程中沒有利用目標(biāo)的方向、速度等運(yùn)動(dòng)信息,當(dāng)背景中存在大面積相似顏色干擾或者目標(biāo)被嚴(yán)重遮擋時(shí),該算法不能準(zhǔn)確地跟蹤目標(biāo),甚至導(dǎo)致跟蹤失敗。本文提出一種改進(jìn)算法克服以上問題。首先,結(jié)合幀間差分法和Canny邊緣檢測(cè)算法,準(zhǔn)確地提取出運(yùn)動(dòng)目標(biāo),根據(jù)提取出的運(yùn)動(dòng)目標(biāo)初始化Camshift跟蹤算法的初始搜索窗口,從而實(shí)現(xiàn)了自動(dòng)跟蹤。為了解決顏色干擾和嚴(yán)重遮擋的問題,本文引入Kalman濾波器,用Kalman濾波器預(yù)測(cè)Camshift算法中第K(K>2)幀搜索窗口的中心位置。具體的步驟為:先初始化Kalman濾波器,當(dāng)幀數(shù)K>2時(shí),用Kalman濾波器預(yù)測(cè)Camshift算法的搜索窗口位置;用Camshift算法計(jì)算目標(biāo)的最優(yōu)位置和大小;判斷背景中是否存在顏色干擾或者目標(biāo)被嚴(yán)重遮擋,若無(wú),則直接用Camshift算法計(jì)算出的目標(biāo)位置作為觀測(cè)值去更新Kalman濾波器;若有,則搜索窗口的大小會(huì)自動(dòng)變大或變小,此時(shí)用Camshift算法計(jì)算出的最優(yōu)位置是不準(zhǔn)確的,如果用該值作為觀測(cè)值去更新Kalman濾波器,Kalman濾波器將不能有效準(zhǔn)確地估計(jì)下一幀的目標(biāo)位置,最終會(huì)導(dǎo)致跟蹤丟失。此時(shí),用Kalman濾波器的預(yù)測(cè)值代替Camshift算法計(jì)算出的目標(biāo)位置作為觀測(cè)值去更新Kalman濾波器。本文中,用?琢判斷是否出現(xiàn)顏色干擾,用濾波器殘差r(k)和遮擋率β判斷目標(biāo)是否被嚴(yán)重遮擋。α、r(k)、β的計(jì)算公式如下:

其中,Rect_currenct為Camshift算法計(jì)算得到的目標(biāo)區(qū)域的大小,Rect_last為上一幀圖像目標(biāo)區(qū)域的大小, Rect_origin為初始搜索窗口的大小,x(k)、y(k)表示目標(biāo)位置的觀測(cè)值,x′(k)、y′(k)表示目標(biāo)位置的預(yù)測(cè)值。在本文中,當(dāng)?琢>2時(shí),認(rèn)為背景中存在大面積相似顏色干擾;當(dāng)r(k)>10且?茁<0.3時(shí),則認(rèn)為目標(biāo)被嚴(yán)重遮擋。該改進(jìn)算法流程圖如圖4所示。

3 實(shí)驗(yàn)結(jié)果及分析
    為了驗(yàn)證算法的有效性,本文在Pentium(R) 4, 3.00 GHz CPU,1  GB內(nèi)存,Windows XP操作系統(tǒng)的計(jì)算機(jī)上使用VS2005結(jié)合OPENCV函數(shù)庫(kù)來(lái)編寫程序。每幀圖像的大小為320×240。
3.1 運(yùn)動(dòng)目標(biāo)檢測(cè)與定位實(shí)驗(yàn)結(jié)果
    圖5顯示了運(yùn)動(dòng)目標(biāo)的提取結(jié)果,其中,圖5(a)是原始圖像序列中的一幀;圖5(b)是經(jīng)過幀間差分法、高斯濾波、二值化處理后結(jié)合Canny邊緣檢測(cè)算法得到的運(yùn)動(dòng)目標(biāo)的邊緣圖像;圖5(c)是提取出目標(biāo)的運(yùn)動(dòng)對(duì)象面;圖5(d)是運(yùn)動(dòng)目標(biāo)的標(biāo)定結(jié)果。從實(shí)驗(yàn)結(jié)果可以看出,幀間差分法結(jié)合Canny邊緣檢測(cè)的方法可以準(zhǔn)確地提取出運(yùn)動(dòng)目標(biāo)。

3.2 改進(jìn)的Camshift算法實(shí)驗(yàn)結(jié)果
    為了驗(yàn)證改進(jìn)的Camshift算法的有效性,本文將傳統(tǒng)Camshift算法的跟蹤效果與改進(jìn)的Camshift算法跟蹤效果進(jìn)行比較,比較結(jié)果如圖6和圖7所示。

'

     圖6為相似顏色干擾實(shí)驗(yàn),視頻序列的背景中有一個(gè)紅色袋子與運(yùn)動(dòng)目標(biāo)的顏色很相似。其中,圖6(a)為傳統(tǒng)Camshift算法的實(shí)驗(yàn)結(jié)果。從第110幀~第127幀,目標(biāo)越來(lái)越靠近紅色袋子,目標(biāo)區(qū)域也逐漸擴(kuò)大,將袋子誤認(rèn)為是目標(biāo)導(dǎo)致目標(biāo)定位不準(zhǔn)確。第172幀目標(biāo)離開袋子時(shí),跟蹤框仍停留在袋子上,最終導(dǎo)致跟蹤失敗。圖6(b)為改進(jìn)Camshift算法的實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的Camshift算法在背景中存在相似顏色干擾時(shí)仍能有效地跟蹤目標(biāo)。
  圖7為遮擋實(shí)驗(yàn),其中圖7(a)為傳統(tǒng)Camshift算法實(shí)驗(yàn)結(jié)果,圖7(b)為改進(jìn)的Camshift算法的實(shí)驗(yàn)結(jié)果。在圖7(a)中的第161幀時(shí),目標(biāo)被部分遮擋,Camshift算法通過縮小目標(biāo)區(qū)域的大小以消除目標(biāo)被遮擋部分的影響,實(shí)現(xiàn)對(duì)目標(biāo)的跟蹤。在第190幀時(shí),目標(biāo)被完全遮擋,顏色信息完全消失,搜索窗口收縮到最小值并停留在一個(gè)局部小區(qū)域內(nèi)。第280幀當(dāng)目標(biāo)再次出現(xiàn)時(shí)跟蹤丟失。在圖6(b)中的第190幀時(shí),目標(biāo)被嚴(yán)重遮擋,此時(shí)用本文改進(jìn)算法進(jìn)行跟蹤并設(shè)置搜索窗口的大小為初始搜索窗的大小。第280幀時(shí),目標(biāo)重新出現(xiàn),搜索窗口與目標(biāo)聯(lián)接,開始新的跟蹤。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的Camshift算法對(duì)遮擋有較好的魯棒性。
    本文提出了一種基于Kalman濾波與Camshift算法的改進(jìn)的自動(dòng)跟蹤算法。實(shí)驗(yàn)表明,本文所提出的改進(jìn)算法可以實(shí)時(shí)、準(zhǔn)確、自動(dòng)地跟蹤目標(biāo),并且對(duì)干擾和遮擋有較好的魯棒性。然而,本文是在背景靜止、目標(biāo)勻速運(yùn)動(dòng)的假設(shè)下完成的,如何提高算法在動(dòng)態(tài)復(fù)雜背景及目標(biāo)速度變化較大的情況下跟蹤的穩(wěn)定性,是需要進(jìn)一步研究的內(nèi)容。
參考文獻(xiàn)
[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] 周尚波, 胡鵬, 柳玉炯. 基于改進(jìn)Mean-Shift與自適應(yīng)Kalman濾波的視頻目標(biāo)跟蹤[J]. 計(jì)算機(jī)應(yīng)用, 2010,30
(6):1573-1576.
[6] 鄔大鵬, 程衛(wèi)平,于盛林. 基于幀間差分和運(yùn)動(dòng)估計(jì)的Camshift目標(biāo)跟蹤算法[J].光電工程, 2010,37(1):55-60. [7] 王江濤, 楊靜宇. 遮擋情況下基于Kalman均值偏移的目標(biāo)跟蹤[J]. 系統(tǒng)仿真學(xué)報(bào), 2007,19(18):4216-4220.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。