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