SIFT演算法學習小記
轉自: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特徵匹配的例子:
相關文章
- java學習小記Java
- MQ學習小記MQ
- Dubbo學習小記
- 正則學習小記
- Python學習小記Python
- Ruby/Elixir學習小記
- 042學習小記(1)
- 042學習小記(2)
- 【影像處理筆記】SIFT演算法原理與原始碼分析筆記演算法原始碼
- 演算法學習筆記演算法筆記
- 演算法學習之路|小賭怡情演算法
- 小墨學習記--微服務微服務
- 微信小程式學習筆記微信小程式筆記
- react小書學習筆記React筆記
- 學習es6小記
- Spring 學習小記(九)Spring
- Activiti 學習筆記 小結筆記
- oracle sqr工作學習小記Oracle
- LMF演算法學習筆記演算法筆記
- 機器學習演算法學習筆記機器學習演算法筆記
- 匈牙利演算法學習筆記演算法筆記
- 學習筆記----KM演算法筆記演算法
- 學習筆記----RMQ演算法筆記MQ演算法
- EM演算法學習筆記演算法筆記
- Floyd演算法學習筆記演算法筆記
- Tarjan 演算法學習筆記演算法筆記
- 演算法學習筆記:Kosaraju演算法演算法筆記
- ES模組語法學習小記
- 彙編學習小記(三)-查表
- 小魚JCL學習筆記(一)筆記
- 提升小波的學習筆記筆記
- sift演算法的編譯與實現演算法編譯
- 3.SIFT特徵提取與ransac演算法特徵演算法
- 4.SIFT特徵提取與ransac演算法特徵演算法
- OpenCV計算機視覺學習(13)——影像特徵點檢測(Harris角點檢測,sift演算法)OpenCV計算機視覺特徵演算法
- 演算法學習筆記(3.1): ST演算法演算法筆記
- 演算法學習筆記(1)- 演算法概述演算法筆記
- 類歐幾里得演算法學習筆記演算法筆記