目標跟蹤的點跟蹤技術 1

2021-06-23 04:48:08 字數 2498 閱讀 3444

目標跟蹤技術按實際跟蹤物件可以分為點跟蹤和塊跟蹤。

所謂點跟蹤就是在初始影象幀的目標上找一些具有跟蹤價值的點,用點周圍的一小塊區域的特徵對其進行描述,在後續的影象幀中根據特徵描述尋找這些點移動到的新位置。

這裡需要解決三個問題。特徵點選擇、特徵點描述和特徵點匹配。

首先談一下特徵點選擇。用於跟蹤的特徵點周圍的紋理應該是複雜的。如果在一片白牆上選擇乙個特徵點,那麼顯然不可能知道下一幀影象中這個點到底在什麼地方。影象周圍的紋理越豐富,越容易和其他點區別開。

另外,某點周圍如果是比較單純的邊緣劃分,也不容易進行跟蹤用途,因為僅憑一條邊緣的變化無法了解物體的實際移動方向,這一問題稱為孔徑問題(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

之前在點跟蹤技術中介紹了兩種不同的跟蹤理論。一種是假設每個特徵點在前後兩幀的亮度是不變的,這就是光流法,但是大部分實際跟蹤問題都不能完全滿足這個假設。另一種是承認每個點是可變的,但變化是極小的,而且該點周圍的乙個鄰域的變化都是極小的,於是把點跟蹤變成塊匹配問題。實際上大部分跟蹤方法是不提取特徵點,而...

目標跟蹤方法 基於輪廓跟蹤

一 理論 該方法的基本思想是使用一組封閉的輪廓曲線來表徵目標,將曲線作為模板,在相鄰幀的邊緣影象中匹配並跟蹤該模板。該方法與基於區域的跟蹤方法相類似,都存在目標模板匹配和目標模板更新兩個環節,但是該方法是在二值化影象中匹配目標的輪廓模板,大大減小了計算量,提高了匹配的速度。主動輪廓模型方法是近些年來...