1. 程式人生 > >SURF特徵點檢測

SURF特徵點檢測

SURF演算法是對SIFT演算法的改進,其基本結構、步驟與SIFT相近,但具體實現的過程有所不同。SURF演算法的優點是速度遠快於SIFT且穩定性好。

1.構建Hessian矩陣,構造高斯金字塔尺度空間

SIFT採用的是DoG影象,而SURF採用的是Hessian矩陣行列式近似值影象。

每個畫素點都可以求出一個H矩陣,H矩陣 有一個判別式,判別式的值是H矩陣的特徵值,可以利用判定結果的符號將所有點分類,根據判別式取值正負,來判斷該點是或不是極值點。

高斯濾波等一系列操作之後,得到每個畫素的H行列式決定值,並用這個值來判別特徵點。

金字塔影象中分為很多層,每一層叫做一個octave,每一個octave中又有幾張尺度不同的圖片。

(SIFT改變圖片大小,SURF中改變濾波器的大小,影象保持不變)

2.利用非極大值抑制初步確定特徵點

類似SIFT,檢測過程中使用與該尺度層影象解析度相對應大小的濾波器進行檢測。

3.精確定位極值點

這裡也和SIFT演算法中的類似,採用了3維線性插值法得到亞畫素級的特徵點,同時也去掉那些值小於一定閾值的點,增加極值使檢測到的特徵點數量減少,最終只有幾個特徵最強點會被檢測出來。

4.選取特徵點的主方向

統計鄰域內的harr小波特徵,即在特徵點的鄰域內(半徑為6S,S為所在尺度),統計60度扇形內所有點的水平harr小波特徵和垂直harr小波特徵總和,harr小波的尺寸變長為4S,60度扇形以一定間隔進行旋轉,最後將最大值那個扇形的方向作為該特徵點的主方向。

5.構造SURF特徵點描述運算元

取一個正方形框,框的邊長也是20S(S是所檢測到該特徵點所在的尺度),該框帶方向,即第4步檢測出來的主方向。把框分為4*4個子區域,每個子區域統計5*5個畫素的水平方向和垂直方向的harr小波特徵(方向都相對主方向而言),該harr小波特徵為水平方向值之和,水平方向絕對值之和,垂直方向值之和,垂直方向絕對值之和。

所以,每個區域4個值,每個特徵點就是16*4=64維向量,這能加快匹配速度。