尺度不變特徵轉換
维基百科,自由的百科全书
尺度不變特徵轉換(Scale-invariant feature transform 或 SIFT)是一種電腦視覺的演算法用來偵測與描述影像中的局部性特徵,它在空間尺度中尋找極值點,並提取出其位置、尺度、旋轉不變數,此演算法由 David Lowe 在1999年所發表,2004年完善總結。 [1]
其應用範圍包含物體辨識、機器人地圖感知與導航、影像縫合、3D模型建立、手勢辨識、影像追蹤和動作比對。
目录 |
特徵[编辑]
局部影像特徵的描述與偵測可以幫助辨識物體,SIFT 特徵是基於物體上的一些局部外觀的興趣點而與影像的大小和旋轉無關。 對於光線、雜訊、些微視角改變的容忍度也相當高。基於這些特性,它們是高度顯著而且相對容易擷取,在母數龐大的特徵資料庫中,很容易辨識物體而且鮮有誤認。
使用 SIFT特徵描述對於部分物體遮蔽的偵測率也相當高,甚至只需要3個以上的SIFT物體特徵就足以計算出位置與方位。
在現今的電腦硬體速度下和小型的特徵資料庫條件下,辨識速度可接近即時運算。
SIFT特徵的信息量大,適合在海量資料庫中快速準確匹配。
演算法[编辑]
尺度空間的極值偵測[编辑]
在這個階段,主要是偵測興趣點,也就是SIFT架構中的關鍵點。 影像在不同的尺度下用高斯濾波器(Gaussian filters)進行卷积(convolved),然後利用連續高斯模糊化影像差異來找出關鍵點。關鍵點是根據不同尺度下的高斯差(Difference of Gaussians,DoG)中的最大最小值所導出。 更具體的,DoG影像的
是由:
是在尺度
的條件下,由原始影像
与高斯模糊
进行卷积,例如 :
是尺度可變高斯函數 
關鍵點定位[编辑]
- 鄰近資料插補
- 捨棄不明顯關鍵點
- 消除邊緣回應
方位定向[编辑]
關鍵點鄰域圖元點的梯度方向分佈特性作為指定方向參數,使運算元具備旋轉不變性。
關鍵點描述子[编辑]
根據Lowe的建議,每個關鍵點使用16個種子點來描述,從而一個關鍵點就可以產生一個128維資料,即128維的SIFT特徵向量。
應用[编辑]
- 利用SIFT特徵進行物體辨識
- 機器人地圖感知與導航
- 全景圖縫合
- 3D掃瞄建模,辨識,追蹤
- 利用3D SIFT特徵進行人類行為辨識
參考資料[编辑]
- ^ Lowe, David G.. Object recognition from local scale-invariant features. Proceedings of the International Conference on Computer Vision, 2. 1999: pp. 1150–1157. doi:10.1109/ICCV.1999.790410.
- ^ Nowozin, Sebastian. autopano-sift. 2005 [2008-08-20].
外部链接[编辑]
- Sebastian Nowozin (C#)
- Andrea Vedaldi (Matlab/C)
- Andrea Vedaldi (C++)
- David Lowe (C/Matlab)
- Rob Hess (C)
- Dr Krystian Mikolajczyk (C)
- Stephan Saalfeld (Java)
- Adam Chapman / ChangChang Wu (Matlab-GPU implementation)
- Integrating Vision Toolkit (C++) (folder IVT/src/Features/SIFTFeatures, by Pedram Azad and Lars Pätzold)
- libsiftfast (Matlab/C++) 針對x86 SSE 指令集最佳化並使用OpenMP進行多核心運算. (提供Linux, Windows, 和 Mac 版本). LGPL授權
- lip-vireo (Linux 和Windows 版本)
- SIXT Scale Invariant Something Transform

是在尺度
的條件下,由原始影像
与高斯模糊
进行卷积,例如 :
