SIFT--方向分配

在得到合適的特徵點位置後,爲每個特徵點分配方向,從而使描述子能實現圖像旋轉不變性,這也是我們SIFT第三步方向分配的主要目的。

SIFT中方向分配主要從以下幾個步驟進行。

1、計算梯度幅值和幅角
需要根據檢測到的特徵點的局部圖像結構求得一個方向基準。我們使用圖像梯度方向求取該局部結構的穩定方向。對於已經檢測到的特徵點,我們知道該特徵點的尺度值 σ  ,因此根據這一尺度值,求得最接近這一尺度值的高斯圖像:

 L(x,y)=G(x,y,σ)I(x,y) 

該特徵點的梯度:
這裏寫圖片描述

使用有限差分,計算以特徵點爲中心,以 3×1.5σ 爲半徑的區域內圖像梯度的幅角和幅值(模值),幅值和幅角的計算如下:

 m(x,y)=(L(x+1,y)L(x1,y))2+(L(x,y+1)L(x,y1))2 

 σ(x,y)=tan1((L(x,y+1)L(x,y1))/(L(x+1,y)L(x1,y))) 

2、加權處理
每個加入梯度直方圖的採樣點梯度幅值都要進行權重處理,加權採用圓形高斯加權函數,其 σ  值爲特徵點尺度的1.5倍。

由於SIFT只考慮了尺度和旋轉不變性,並沒有考慮仿射不變性。通過高斯加權,使特徵點附近的梯度幅值有較大的權重,這樣可以彌補因沒有仿射不變性而產生的特徵點不穩定的問題。

3、生成方向梯度直方圖
在完成特徵點鄰域的高斯圖像的梯度計算後,使用直方圖統計鄰域內像素的梯度方向和幅值。梯度方向直方圖的橫軸是梯度方向角,縱軸是梯度方向角對應的梯度幅度累加值。

梯度方向直方圖將 0o360o  的範圍,分爲36個柱,每 10o  一個柱。直方圖的峯值代表了改特徵點處鄰域內圖像梯度的主方向,也即該特徵點的主方向。如下是一個 8×8  的鄰域,以直方圖統計該鄰域內的方向,計算出峯值方向,如下:
這裏寫圖片描述

4、輔方向
當梯度方向直方圖中,當存在另一個相當於主峯值80%能量的峯值時,則將這個方向認爲是該特徵點的輔方向。一個特徵點可能會被指定具有多個方向(一個主方向,一個以上輔方向),這可以增強匹配的魯棒性,具體就是把該特徵點複製成多份特徵點,並將方向值分別賦給這些複製後的特徵點,通常離散的梯度方向直方圖進行插值擬合處理,這樣可以求得更精確的方向角度值。

以上,在獲得了圖像的特徵點主方向後,每個特徵點有三個信息 (x,y,σ,θ)  :位置、尺度、方向,前倆個值是使用SIFT特徵點檢測得到的,特徵點的主方向就是我們這一步求得的。



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