一、高斯金字塔
金字塔的層是由降采樣得到的,而每一層又有多張圖像,其他的圖像是由初始的一張經過高斯模糊的得到的。
注意的是:高斯金字塔有層,而金字塔的每一層有一組圖像,這一組圖像也形成了層。注意兩個層的區別。

1、降采樣時,高斯金字塔上一組圖像的初始圖像(底層圖像)是由前一組圖像的倒數第三張圖像隔點采樣得到的。
2、為了讓尺度體現其連續性,高斯金字塔在簡單降采樣的基礎上加上了高斯濾波。如圖3.1所示,將圖像金字塔每層的一張圖像使用不同參數做高斯模糊,使得金字塔的每層含有多張高斯模糊圖像,這也就是每一組有多層的原因了(當前組的其他圖像是根據【1】那張圖像進行高斯模糊得到。以此類推)
3、每一組有幾層圖像(組:金字塔的層)
金字塔層數(組)計算公式:

其中M,N為原圖像的大小,t為塔頂圖像的最小維數的對數值(對數底為2)。

二、高斯差分金字塔
1、起源:
2002年Mikolajczyk在詳細的實驗比較中發現尺度歸一化的高斯拉普拉斯函數的極大值和極小值同其它的特征提取函數,例如:梯度,Hessian或Harris角特征比較,能夠產生最穩定的圖像特征。
而Lindeberg早在1994年就發現高斯差分函數(Difference of Gaussian ,簡稱DOG算子)與尺度歸一化的高斯拉普拉斯函數非常近似。因此就用差分逼近,從而叫做高斯差分金字塔。
2、公式:


3、使用高斯金字塔每組中相鄰上下兩層圖像相減,得到高斯差分圖像

關鍵點是由DOG空間的局部極值點組成的。假如每組含4層的高斯差分金子塔,只能在中間兩層中進行兩個尺度的極值點檢測,其它尺度則只能在不同組中進行。為了在每組中檢測S個尺度的極值點,則DOG金字塔每組需S+2層圖像,而DOG金字塔由高斯金字塔相鄰兩層相減得到,則高斯金字塔每組需S+3層圖像,實際計算時S在3到5之間。
4、在最開始建立高斯金字塔時,要預先模糊輸入圖像來作為第0個組的第0層的圖像,這時相當於丟棄了最高的空域的采樣率。因此通常的做法是先將圖像的尺度擴大一倍來生成第-1組。我們假定初始的輸入圖像為了抗擊混淆現象
5、離散空間的極值點並不是真正的極值點(因為采樣的過程中丟失了一些信息):利用已知的離散空間點插值得到的連續空間極值點的方法叫做子像素插值(注:具體方法我還沒有理解清楚)

三、關鍵點方向分配
為了使描述符具有旋轉不變性,需要利用圖像的局部特征為給每一個關鍵點分配一個基准方向。使用圖像梯度的方法求取局部結構的穩定方向。對於在DOG金字塔中檢測出的關鍵點點,采集其所在高斯金字塔圖像3σ鄰域窗口內像素的梯度和方向分布特征。梯度的模值和方向如下:

采用直方圖來統計梯度和方向:類似hog
直方圖的峰值方向代表了關鍵點的主方向
將檢測出的含有位置、尺度和方向的關鍵點即是該圖像的SIFT特征點。
四、SIFT的缺點
SIFT在圖像的不變特征提取方面擁有無與倫比的優勢,但並不完美,仍然存在:
1. 實時性不高。
2. 有時特征點較少。
3. 對邊緣光滑的目標無法准確提取特征點。
大致了解了sift,至於有些細節還不能很好的學習到。
參考:https://blog.csdn.net/zddblog/article/details/7521424
