目標跟蹤方法 CamShift 演算法

2021-07-13 10:10:42 字數 1240 閱讀 3200

一、概述

二、演算法流程

具體步驟如下:

步驟二:根據獲得的顏色直方圖將原始輸入影象轉化成顏色概率分布影象,

該過程稱為「反向投影"。所謂直方圖反向投影,就是輸入影象在已知目標顏色直方圖的條件下的顏色概率密度分布圖,包含了目標在當前幀中的相干資訊。對於輸入影象中的每乙個畫素,查詢目標模型顏色直方圖,對於目標區域內的畫素,可得到該畫素屬於目標畫素的概率,而對於非目標區域內的畫素,該概率為0。

步驟三:mean shift迭代過程。

即右邊大矩形框內的部分,它是 camshift 演算法的核心,目的在於找到目標中心在當前幀中的位置。首先在顏色概率分布圖中選擇搜尋視窗的大小和初始位置,然後計算搜尋視窗的質心位置。設畫素點(i, j)位於搜尋視窗內,i(i, j)是顏色直方圖的反向投影圖中該畫素點對應的值,定義搜尋視窗的零階矩 m00 和一階矩m10,m01如下:

則搜尋視窗的質心位置為:(m10/m00, m01/m00)。

接著調整搜尋視窗中心到質心。零階矩反映了搜尋視窗尺寸,依據它調整視窗大小,並將搜尋視窗的中心移到質心,如果移動距離大於設定的閾值,則重新計算調整後的視窗質心,進行新一輪的視窗位置和尺寸調整。直到視窗中心與質心之間的移動距離小於閾值,或者迭代次數達到某一最大值,認為收斂條件滿足,將搜尋視窗位置和大小作為下一幀的目標位置輸入,開始對下一幀影象進行新的目標搜尋。

三、總結

camshift演算法改進了 mean-shift 跟蹤演算法的第二個缺陷,在跟蹤過程中能夠依

據目標的尺寸調節搜尋視窗大小,對 有尺寸變化的目標可準確定位。但是,一方

面 camshfit 演算法在計算目標模板直方圖分布時,沒有使用核函式進行加權處理,

也就是說目標區域內的每個畫素點在目標模型中有著相同的權重,故 camshfit 算

法的抗噪能力低於mean-shift

跟蹤演算法。另一方面,camshift 演算法中沒有定義候

選目標,直接利用目標模板進行跟蹤。除此以外,camshift 演算法採用 hsv 色彩空

間的h分量建立目標直方圖模型,仍然只是依據目標的色彩資訊來進行跟蹤,當

目標與背景顏色接近或者被其他物體遮擋時,camshift 會自動將其包括在內,導



Camshift目標跟蹤

camshift演算法是continuously adaptive mean shift algorithm的簡稱。它是乙個基於meansift的改進演算法。它首次由gary r.bradski等人提出和應用在人臉的跟蹤上,並取得了不錯的效果。由於它是利用顏色的概率資訊進行的跟蹤,使得它的執行效率比...

CamShift跟蹤演算法

ifdef ch pragma package opencv endif define cv no backward compatibility ifndef eic include cv.h include highgui.h include stdio.h include ctype.h end...

目標跟蹤演算法 Camshift函式 學習筆記

在這一節中,主要講目標跟蹤的乙個重要的演算法camshift,因為它是連續自使用的meanshift,所以這2個函式opencv中都有,且都很重要。為了讓大家先達到乙個感性認識。這節主要是看懂和執行opencv中給的sample並稍加修改。camshift函式的原型為 rotatedrect cam...