SIFT學習記錄

2021-07-30 17:20:39 字數 2027 閱讀 2518

csdn收藏功能還需要增強。。。

總綱:sift演算法詳解

sift演算法就是用不同尺度(標準差)的高斯函式對影象進行平滑,然後比較平滑後影象的差別,差別大的畫素就是特徵明顯的點。

1.zddhud 

2.bit         

3.cnbolgs 

筆記

1.高斯金字塔  (1)影象高斯平滑(2)降取樣

每組層數一樣 

相鄰兩組同一層尺度為二倍關係(平滑以及降取樣)

比較同尺度 上下相鄰尺度

(尺度是

δ)(相鄰層)

關鍵點區域

包含關鍵點的

5x5然後按照

2x2的模板橫豎移動,形成

4x4x8

的描述向量

步驟1構建尺度空間,檢測極值點,獲得尺度不變性

2特徵點過濾並進行經確定位,剔除不穩定的特徵點

3 在特徵點處提取特徵描述符,為特徵點分配方向直

4聲稱特徵描述子,利用特徵描述符尋找匹配點

5計算變換引數

當2幅影象的sift特徵向量生成以後,下一步就可以採用關鍵點特徵向量的歐式距離來作為2幅影象中關鍵點的相似性判定量度

尺度空間:

尺度就是受delta這個引數控制的表示

而不同的l(x,y,delta)就構成了尺度空間,實際上具體計算的時候即使連續的高斯函式,都要被離散為矩陣來和數字影象進行卷積操作

l(x,y,delta)=g(x,y,e)*i(x,y)

尺度空間=原始影象(卷積)乙個可變尺度的2維高斯函式g(x,y,e)

g(x,y,e) =[1/2*pi*e^2] * exp[ -(x^2 + y^2)/2e^2] 

為了更有效的在尺度空間檢測到穩定的關鍵點,提出了高斯差分尺度空間,利用不同尺度的高斯差分核與原始影象i(x,y)卷積生成

d(x,y,e)=(g(x,y,ke)-g(x,y,e))*i(x,y)

=l(x,y,ke)-l(x,y,e)

(為避免遍歷每個畫素點)

高斯卷積:

在組建一組尺度空間後,再組建下一組尺度空間,對上一組尺度空間的最後一幅影象進行二分之一取樣,得到下一組尺度空間的第一幅影象,然後進行像建立第一組尺度空間那樣的操作,得到第二組尺度空間,公式定義為

l(x,y,e) =g(x,y,e)*i(x,y)

高斯差分

在尺度空間建立完畢後,為了能夠找到穩定的關鍵點,採用高斯差分的方法來檢測那些在區域性位置的極值點,即採用倆個相鄰的尺度中的影象相減,即公式定義為:

d(x,y,e) = ((g(x,y,ke) -g(x,y,e)) * i(x,y) 

=l(x,y,ke) - l(x,y,e)

咱們再來具體闡述下構造d(x,y,e)的詳細步驟:

1、首先採用不同尺度因子的高斯核對影象進行卷積以得到影象的不同尺度空間,將這一**像作為金子塔影象的第一層。

2、接著對第一層影象中的2倍尺度影象(相對於該層第一幅影象的2倍尺度)以2倍畫素距離進行下取樣來得到金子塔影象的第二層中的第一幅影象,對該影象採用不同尺度因子的高斯核進行卷積,以獲得金字塔影象中第二層的一**像。

3、再以金字塔影象中第二層中的2倍尺度影象(相對於該層第一幅影象的2倍尺度)以2倍畫素距離進行下取樣來得到金字塔影象的第三層中的第一幅影象,對該影象採用不同尺度因子的高斯核進行卷積,以獲得金字塔影象中第三層的一**像。這樣依次類推,從而獲得了金字塔影象的每一層中的一**像,

4、對上圖得到的每一層相鄰的高斯影象相減,就得到了高斯差分影象,如下述第一幅圖所示。下述第二幅圖中的右列顯示了將每組中相鄰影象相減所生成的高斯差分影象的結果,限於篇幅,圖中只給出了第一層和第二層高斯差分影象的計算

近來不斷有人改進,其中最著名的有

surf

和csift。

1.二維高斯模糊和可分離核形式的快速實現

通過引入乙個臨時的t來避免跨行訪問資料,第二部分列模板

橫向移動

得到t並進行累加

2.模糊及程式實現

相鄰兩組同一層尺度為二倍關係(

sift開發記錄2

sift演算法的c 實現 使用opencv中提供的sift類庫,opencv2.3.1在vs2010中的配置參見日誌opencv2.3.1在vs2008和vs2010平台上安裝配置 方法一 建立乙個控制台應用程式 如下 include stdafx.h include highgui.h inclu...

SIFT演算法學習

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

SIFT演算法學習

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