時書政 火箭軍士官學校
CamShift算法是基于連續圖像顏色動態變化的概率分布獲得的一種有效的目標跟蹤算法,具有魯棒性強和實時性好等優點。它利用目標的顏色特征在視頻圖像中找到運動目標所在的位置和大小,在下一幀視頻圖像中,用運動目標當前的位置和大小初始化搜索窗口,重復這個過程就可以實現對目標的連續跟蹤。當追蹤有色目標時,CamShift算法從圖像的顏色直方圖獲得顏色概率分布。當目標隨時間運動時,圖像的顏色概率分布也隨著變化,因此可以根據圖像顏色的概率分布變化來追蹤目標。
CamShift算法的整個過程如圖1所示,虛框部分是CamShift算法的核心,也就是MeanShift算法,目的是在視頻圖像中找到運動目標所在的位置。MeanShift算法是基于圖像顏色的靜態概率分布進行的,而CamShift算法則基于圖像顏色的動態概率分布。在連續的視頻圖像序列中,運動目標的大小和位置的變化容易導致相應的概率分布動態變化,CamShift算法建立被跟蹤目標的顏色概率模型后,可將視頻圖像轉化為顏色概率分布圖,然后在第一幀圖像初始化一個矩形搜索窗,對以后的每一幀圖像,CamShift能夠自動調節搜索窗的大小和位置,定位被跟蹤目標的中心和大小,并用當前幀定位的結果來預測下一幀圖像中目標的中心和大小。其算法實現步驟如下:
1)將整幅圖像設為搜尋區域;
2)初始化搜索窗口的初始位置;
3)計算搜索窗口內的彩色概率分布,此區域的大小比搜索窗口要稍微大一點;
4)運行MeanShift,獲得搜索窗口新的位置和大小;
5)在下一幀視頻圖像中,用步驟4獲得的值初始化搜索窗口的位置和大小,跳轉到步驟3繼續運行直至收斂(或者形心移動的距離小于事先設定的閾值)。

設(x ,y)為搜索窗口中的像素位置,I (x ,y)是投影圖中(x ,y)處的像素值。定義搜索窗口的零階矩和一階矩分別如下:

目標中長軸的方向角為:
