詳解SIFT演算法

2021-08-20 16:54:59 字數 1630 閱讀 1843

sift(scale-invariant feature transform)尺度不變特徵變換演算法,其具體特徵有:

a:sift是影象的區域性特徵,其對旋轉,尺度縮放,亮度變化保持不變,對視角變化,仿射變換,雜訊也保持一定程度的穩定性;

b:區分性好,資訊量豐富,使用與海量特徵資料庫中進行快速,準確的匹配;

c:多量性,即使少數的幾個物體也可以產生大量的sift特徵向量;

d:高速性,經優化的sift匹配演算法甚至可以達到實時性要求;

e:可擴充套件性好,可以很方便的與其他形式的特徵向量進行聯合.

主要有以下幾個步驟:

構建尺度空間 (

高斯卷積;

影象下取樣;

高斯差分):

高斯差分尺度變換:

關鍵點獲取並精確定位

若乙個點在dog

尺度空間本層以及上下兩層26

個鄰域內是極值點,

該點為乙個特徵點

在極值點的比較中,

每一**像的首末兩層無法進行極值比較,

為了滿足尺度變化的連續性,

我們在每一**像的定曾繼續用高斯模糊生成3

幅影象,

高斯金字塔每組有s+3

層影象,dog

金字塔每組有s+2

層影象.

用harris corner

檢測器去除曲率不對稱的畫素點.

為特徵點分配向量

利用關鍵點鄰域畫素的梯度方向分布特性為每個關鍵點指定方向引數,

使運算元具有旋轉不變性.

l所用的尺度為每個關鍵點各自所在的尺度,

每個關鍵點有三個資訊:

位置,所在尺度,

方向;中心點的方向:

距離中心點越遠的領域對直方圖的貢獻越小;

具體做法:

以關鍵點為中心的鄰域視窗取樣,

並用直方圖統計鄰域畫素的梯度方向,

範圍(0-360

度)36

柱或者8

柱都可,

直方圖的峰值則代表了關鍵點處鄰域梯度的主方向,

即關鍵點的方向.

生成特徵描述子

a:旋轉主方向(

旋轉不變性)

首先將座標軸旋轉為關鍵點的方向,

以確保旋轉不變性;

b:為每個關鍵點產生128

維的特徵向量

乙個關鍵點由2*2

共4個種子組成,

每個種子有8

個方向向量資訊,

這種鄰域方向性資訊聯合的思想增強了演算法抗雜訊能力,

同時對於含有定位誤差的特徵匹配也提供了很好的相容性;

在每個4*4

的1/16

象限中,

通過加權梯度值加到直方圖8

個方向區間乙個,

計算出乙個梯度直方圖.

這樣就可以對每個feature

形成乙個4*4*8=128

維的描述子.

c:將特徵向量的長度歸一化處理(

光照不處理)

SIFT演算法總結

尺度不變特徵變換匹配演算法詳解 scale invariant feature transform sift 定義 尺度不變特徵變換是一種計算機視覺的演算法,用來偵測與描述影像中的區域性特徵,它在空間尺度中尋找極值點,並提取出其位置 尺度 旋轉不變數。應用範圍 物體辨識 機械人地圖感知與導航 影像縫...

SIFT演算法學習

這篇文章參考了utkarsh的部落格,感覺他對sift的理解非常深刻,傳送門在此 sift utkarsh sift學習 1.sift scaleinvariant feature transform 不同影象間的特徵匹配是計算機視覺中的乙個焦點,如果是大致相似的 同樣的尺寸,同樣的方向 簡單的角點...

SIFT演算法學習

首先,如果開始就看公式的話會蒙,因此我首先看到一篇博文,這篇文章對sift演算法做了通俗易懂的解釋。看完這篇文章後對sift演算法有了感性的認識,之後我又看到了一篇寫得特別詳細的部落格。通過這篇文章對sift演算法的原理和基本步驟有了更好的認識。以上兩篇部落格對我的幫助很大!以上兩篇部落格都沒有關鍵...