SIFT之三:生成描述子

以上兩篇文章中檢測在DOG空間中穩定的特徵點,lowe已經提到這些特徵點是比Harris角點等特徵還要穩定的特徵。下一步驟我們要考慮的就是如何去很好地描述這些DOG特徵點。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------


------------------------------------------------------------------------------------------------------------------------------------------------------------------

下面好好說說如何來描述這些特徵點。許多資料中都提到SIFT是一種局部特徵,這是因爲在SIFT描述子生成過程中,考慮的是該特徵點鄰域特徵點的分佈情況(而沒有利用全局信息)。本步驟中主要計算過程包括:確定特徵點的方向生成特徵描述符

確定特徵點方向

在特徵點的確定過程中,特徵點的座標以及尺度被確定下來(座標很重要,尺度更重要,到後來,你會發現尺度這個參量在整個描述子生成過程中越來越重要,因爲正是運用尺度參量實現的Scale-Invariant,尺度不變!),根據特徵點的尺度選擇高斯金字塔中的圖像,然後在這幅圖像上確定該特徵點的方向。這裏體現的正是尺度不變的思想。

特徵點方向的確定基於統計信息,以該特徵點爲中心,考察與該特徵距離爲**像素的梯度方向和梯度的幅值,梯度的方向和幅值的計算公式分別爲:

構造該點鄰域梯度方向直方圖,將一圓周360°劃分成36個槽,從0°開始每槽遞增10°。根據鄰域點的方向、梯度的幅值以及距離特徵點的遠近構建上述梯度方向直方圖,如下圖所示:


根據梯度直方圖,直方圖峯值所對應的的角度就是當前特徵點A的方向,同時如果某角度的梯度幅值和>=峯值的80%,那麼就產生一個新的特徵點B,這個點的座標、尺度等參數同A,但是角度不同。

至此,特徵點的方向確定完畢。

生成圖像局部描述符

到了本步驟,圖像中每個特徵點的座標、尺度以及方向都確定了,下面開始根據這些信息獲得描述子。

與上文中提到的確定特徵點方向類似,生成描述子也是根據以特徵點爲中心的圖像局部信息,首先根據特徵點的尺度選擇高斯金字塔中的圖像,然後計算特徵點鄰域範圍內各點的梯度方向和梯度的幅值,並根據上文得到的特徵點梯度方向更新這些梯度的方向,以此達到描述子的方向不變性。

方向不變性完成後,開始計算特徵描述符了。描述符計算過程同樣基於梯度方向直方圖,只是這次直方圖的槽是以45°劃分的(因此每個直方圖只有8個槽),而不是10°。具體過程如下圖所示:

統計每個4×4塊的方向梯度直方圖,爲了去除光照對描述子的影響,對梯度直方圖進行歸一化處理。然後將每個直方圖槽數據串聯即可得到SIFT描述子,lowe提出當梯度方向直方圖是4×4維的時候,SIFT描述子具有最好的區分度,因此這就誕生了老生長談的128維SIFT特徵向量,如下圖所示:


至此,SIFT特徵計算過程結束。


(轉載至 :honpey  http://blog.csdn.net/wendy709468104/article/details/8639634 )

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