SIFT演算法學習小記

pamxy發表於2013-07-10

轉自:http://www.cnblogs.com/saintbird/archive/2008/08/20/1271943.html

    Sift是David Lowe於1999年提出的區域性特徵描述子,並於2004年進行了更深入的發展和完善。Sift特徵匹配演算法可以處理兩幅影象之間發生平移、旋轉、仿射變換情況下的匹配問題,具有很強的匹配能力。在Mikolajczyk對包括Sift運算元在內的十種區域性描述子所做的不變性對比實驗中,Sift及其擴充套件演算法已被證實在同類描述子中具有最強的健壯性。

 

    總體來說,Sift運算元具有以下特性:

   (1)Sift特徵是影象的區域性特徵,對平移、旋轉、尺度縮放、亮度變化、遮擋和噪聲等具有良好的不變性,對視覺變化、仿射變換也保持一定程度的穩定性。

   (2)獨特性好,資訊量豐富,適用於在海量特徵資料庫中進行快速、準確的匹配。

   (3)多量性,即使少數的幾個物體也可以產生大量Sift特徵向量。

   (4)速度相對較快,經優化的Sift匹配演算法甚至可以達到實時的要求。

   (5)可擴充套件性強,可以很方便的與其他形式的特徵向量進行聯合。

 

     Sift特徵匹配演算法主要包括兩個階段,一個是Sift特徵的生成,即從多幅影象中提取對尺度縮放、旋轉、亮度變化無關的特徵向量;第二階段是Sift特徵向量的匹配。

     Sift特徵的生成一般包括以下幾個步驟:

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

                  

     2、特徵點過濾並進行精確定位;

                  

     3、為特徵點分配方向值;

                 

     4、生成特徵描述子。 

    以特徵點為中心取16*16的鄰域作為取樣視窗,將取樣點與特徵點的相對方向通過高斯加權後歸入包含8個bin的方向直方圖,最後獲得4*4*8的128維特徵描述子。示意圖如下:

                 


    當兩幅影象的Sift特徵向量生成以後,下一步就可以採用關鍵點特徵向量的歐式距離來作為兩幅影象中關鍵點的相似性判定度量。取圖1的某個關鍵點,通過遍歷找到影象2中的距離最近的兩個關鍵點。在這兩個關鍵點中,如果次近距離除以最近距離小於某個闕值,則判定為一對匹配點。

    一些Sift特徵匹配的例子:

         

           

 


相關文章