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特征匹配的例子: