目標跟蹤技術按實際跟蹤物件可以分為點跟蹤和塊跟蹤。
所謂點跟蹤就是在初始影象幀的目標上找一些具有跟蹤價值的點,用點周圍的一小塊區域的特徵對其進行描述,在後續的影象幀中根據特徵描述尋找這些點移動到的新位置。
這裡需要解決三個問題。特徵點選擇、特徵點描述和特徵點匹配。
首先談一下特徵點選擇。用於跟蹤的特徵點周圍的紋理應該是複雜的。如果在一片白牆上選擇乙個特徵點,那麼顯然不可能知道下一幀影象中這個點到底在什麼地方。影象周圍的紋理越豐富,越容易和其他點區別開。
另外,某點周圍如果是比較單純的邊緣劃分,也不容易進行跟蹤用途,因為僅憑一條邊緣的變化無法了解物體的實際移動方向,這一問題稱為孔徑問題(aperture problem),詳情可以參考以下鏈結。
因此,比較理想的特徵點應該在所謂「角點」的位置,即以該點為中心至少有兩個方向有明顯的色彩或亮度變化。
這一特性被harris描述為公式形式。
對於微小的移動(x, y),周圍區域的所有點移動前後的亮度差之和為
其中利用泰勒公式,近似有
應用以上近似關係,s可以寫成
根據之前分析,s應該受到x,y兩個方向的變化敏感,因此a的兩個特徵值都應較大。
可以設定乙個閾值,特徵值大於這個閾值的點就是用於跟蹤的特徵點。
因為計算特徵值運算較複雜,實際計算以下值
另外使用區域性極大抑制來減少候選點的數量。
以下是程式實現:
function pts = harris( i, k, thres, gsize, sigma )
if nargin < 2
k = 0.06;
endif nargin < 3
thres = 0.1;
endif nargin < 4
gsize = 7;
endif nargin < 5
sigma = 2;
endif ndims(i) > 2
i = rgb2gray(i);
endi = double(i);
[height, width] = size(i);
hx = [-1 0 1];
ix = imfilter(i, hx, 'replicate');
hy = [-1; 0; 1];
iy = imfilter(i, hy, 'replicate');
ix2 = ix .^2;
iy2 = iy .^2;
ixy = ix .* iy;
h = fspecial('gaussian', [gsize, gsize], sigma);
ix2 = filter2(h, ix2);
iy2 = filter2(h, iy2);
ixy = filter2(h, ixy);
r = zeros(height, width);
rmax = 0;
for i = 1 : height
for j = 1 : width
m = [ix2(i, j) ixy(i, j); ixy(i, j) iy2(i, j)];
r(i,j) = det(m) - k * (trace(m)) ^ 2;
if r(i,j) > rmax
rmax = r(i, j);
end;
end;
end;
thres = rmax * thres;
%non-maximum supression
localmax = zeros(height, width);
supradius = 1;
for y = supradius + 1 : height - supradius
for x = supradius + 1 : width - supradius
localmax(y, x) = ismax(r, supradius, x, y, thres);
endend[ptsc, ptsr] = find(localmax == 1);
pts = [ptsr, ptsc];
endfunction b = ismax(r, radius, x, y, thres)
if r(y, x) < thres
b = 0;
return;
end
for i = y - radius : y + radius
for j = x - radius : x + radius
if r(y, x) < r(i, j)
b = 0;
return;
endend
endb = 1;
end
效果如圖
目標跟蹤的點跟蹤技術 4
獲取特徵點後,sift用方向梯度直方圖描述每個特徵點的特徵。首先計算每個特徵點的梯度幅度和方向 然後計算特徵點周圍16x16範圍的每個點的梯度方向,對其中上下左右每4x4的區域,統計區域內各點的方向梯度直方圖。直方圖把360度角劃分為36個bin,計算前先用高斯平滑削弱邊緣的影響。16x16點的梯度...
目標跟蹤的塊跟蹤技術 1
之前在點跟蹤技術中介紹了兩種不同的跟蹤理論。一種是假設每個特徵點在前後兩幀的亮度是不變的,這就是光流法,但是大部分實際跟蹤問題都不能完全滿足這個假設。另一種是承認每個點是可變的,但變化是極小的,而且該點周圍的乙個鄰域的變化都是極小的,於是把點跟蹤變成塊匹配問題。實際上大部分跟蹤方法是不提取特徵點,而...
目標跟蹤方法 基於輪廓跟蹤
一 理論 該方法的基本思想是使用一組封閉的輪廓曲線來表徵目標,將曲線作為模板,在相鄰幀的邊緣影象中匹配並跟蹤該模板。該方法與基於區域的跟蹤方法相類似,都存在目標模板匹配和目標模板更新兩個環節,但是該方法是在二值化影象中匹配目標的輪廓模板,大大減小了計算量,提高了匹配的速度。主動輪廓模型方法是近些年來...