Camshift算法(1)

      Camshift算法是Continuously Adaptive Mean Shift algorithm的簡稱。它是一個基於MeanSift的改進算法。它首次由Gary R.Bradski等人提出和應用在人臉的跟蹤上,並取得了不錯的效果。由於它是利用顏色的概率信息進行的跟蹤,使得它的運行效率比較高。Camshift算法的過程由下面步驟組成:

(1)確定初始目標及其區域;

(2)計算出目標的色度(Hue)分量的直方圖;

(3)利用直方圖計算輸入圖像的反向投影圖(後面做進一步的解釋);

(4)利用MeanShift算法在反向投影圖中迭代收索,直到其收斂或達到最大迭代次數。並保存零次矩;

(5)從第(4)步中獲得收索窗口的中心位置和計算出新的窗口大小,以此爲參數,進入到下一幀的目標跟蹤。(即跳轉到第(2)步);

幾點說明:

1. 在輸入圖像進行反向投影圖之前在HSV空間內做了一個閥值處理,用以濾掉一些噪聲。

2. 反向投影圖則是概率分佈圖,在反向投影圖中某一像素點的值指的是這個點符合目標的概率分佈的概率是多少,或者直接說其爲目標圖像像素點的像素點是多少。計算方法爲:根據像素點的像素值查目標的直方圖,其對應像素值的概率是多少就做爲該點在反向投影圖中的值。

3. Camshit算法到底是怎樣自適應調整窗口的大小的。擴大:Canshift算法在計算窗口大小前,在MeanShift算出的窗口的四個方向上增大了TOLERANCE,即高和寬都增大了2TOLERANCE(此值自己調整設置),這纔有可能使得窗口能夠變大。縮小:在擴大的窗口內重新計算0階矩,1階矩和2階矩,利用矩的值重新計算高和寬。因此Camshif算法相當於在MeanShift的結果上,再做了一個調整,從而使得跟蹤的窗口大小能夠隨目標的大小變化。

優點:算法的效率比較高,如果能利用多少特徵做出來的統計直方圖,我估計實驗效果會更好。

缺點:(1)只利用顏色統計做的跟蹤,在背景有相似顏色時,會出現跟蹤錯誤的情況。(2)不能做多目標跟蹤。(3)由於它只在初始位置(而不是從每個像素點)開始迭代,所以有可能在初始位置錯了後,收斂的位置還是原位置(即跟丟了後,可能會找不回來)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章