1. 程式人生 > >特徵點匹配——SIFT演算法詳解

特徵點匹配——SIFT演算法詳解

之前在學習三維重建的過程中,瞭解過SIFT演算法,現在老師要求詳細的瞭解SIFT演算法,看看能不能對它進行改進,於是又詳細的看了一遍SIFT演算法。記錄一下。

一、SIFT演算法綜述

SIFT(Scale Invariant Feature Transform)全稱尺度不變特徵變換,是1999年Lowe提出的一種區域性特徵描述運算元,在2004年得到了改善。
SIFT運算元是把影象中檢測到的特徵點用一個128維的特徵向量進行描述,因此一幅影象經過SIFT演算法後表示為一個128維的特徵向量集,該特徵向量集具有對影象縮放,平移,旋轉不變的特徵,對於光照、仿射和投影變換也有一定的不變性,是一種非常優秀的區域性特徵描述演算法。
SIFT演算法的流程分別為:

  1. 尺度空間極點檢測
  2. 關鍵點精確定位
  3. 關鍵點的方向確定
  4. 特徵向量的生成

下面將會依次對這幾步進行介紹。

二、尺度空間極點檢測

2.1 尺度空間

特徵點的檢測就需要知道特徵點的位置和尺度,需要位置的原因顯而易見,而需要尺度的原因則是因為真實世界中的物體只有在一定尺度下才有意義。我們尋找的特徵點就是要找到在連續的尺度空間下位置不發生改變的點。
構建尺度空間的目的就是找到在尺度變化中具有不變性的位置,可以使用連續的尺度變化,即在尺度空間中所有可能的尺度變化中找到穩定的特徵點,通過這種方式找到的極點可以保證在影象縮放和旋轉變化中具有不變性。
經過前人證明,尺度空間核心是高斯函式。因此假設I

(x,y)是原始影象,G(x,y,σ)是尺度空間可變的高斯函式,則一個影象的尺度空間可以定義為

L(x,y,σ)=G(x,y,σ)I(x,y)(1)
其中,表示的是卷積運算,σ表示尺度空間的大小,σ越大則表示越模糊,表示影象的概貌,σ越小則表示越清晰,表示影象的細節。高斯函式G(x,y,σ)定義為G(x,y,σ)=12πσ2e(x2+y2)/2σ2(2)經過一系列的尺度空間變換和二倍的下采樣,最終得到高斯金字塔。
需要注意的是公式1中的影象I(x,y)具有無限的解析度,也就是說他的尺度σ=0,即I(x,y)=L(x,y,0)。也就是說公式1得到的尺度空間影象L(x,y,σ)是由尺度尺度空間為0的影象L
(x,y,0
生成的,但是現實生活中是不存在尺度空間為0,即具有無限解析度的影象的。在Lowe的論文中,他們給定原圖一個很小的尺度空間,為0.5。因此由一個小尺度空間影象L(x,y,σ1)生成一個大的尺度空間影象L(x,y,σ2)的過程為L(x,y,σ2)=G(x,y,σ22σ21)L(x,y,σ1)(3)其中,G(x,y,σ22σ21)=12π(σ22σ21)ex2+y22(σ22σ21)(4)由於實際中尺度為0的影象是無法得到的,因此我們得到的尺度影象的基準影象一定是由公式3得到的,這在SIFT演算法的實現過程中尤為重要,不理解這裡以後SIFT演算法的實現看起來回比較吃力。

2.2 高斯差分

為了在尺度空間中找到穩定不變的極值點,在SIFT演算法中使用了高斯差分(DOG)函式D(x,y,σ),定義為

D(x,y,σ)=[G(x,y,kσ)G(x,y,σ)]I(x,y)=L(x,y,kσ)L(x,y,σ)其中kσσ是連續的兩個影象的平滑尺度,所得到的差分影象再高斯差分金字塔中。
選擇高斯差分函式的原因如下:
1. 計算簡單,因為L(x,y,σ)是一定需要計算的,而D(x,y,σ)只需要執行減法。
2. 高斯拉普拉斯運算元LoG(Laplacian of Gaussian),即影象的二階導數,能夠在不同的尺度下檢測到影象的斑點特徵,從而檢測到影象中尺度變化下的位置不動點,但是LoG的運算效率不高。而DoG是LoG的近似。DoG和LoG的關係如下述所示:σ2G=GσG(x,y,

相關推薦

特徵匹配——SIFT演算法

之前在學習三維重建的過程中,瞭解過SIFT演算法,現在老師要求詳細的瞭解SIFT演算法,看看能不能對它進行改進,於是又詳細的看了一遍SIFT演算法。記錄一下。 一、SIFT演算法綜述 SIFT(Scale Invariant Feature Transfo

SIFT演算法(這篇對演算法講解的還是相當清楚的)

尺度不變特徵變換匹配演算法詳解 Scale Invariant Feature Transform(SIFT) Just For Fun 對於初學者,從David G.Lowe的論文到實現,有許多鴻溝,本文幫你跨越。 1、SIFT綜述 尺度不變特徵轉換(

特徵匹配——ORB演算法介紹

《ORB: an efficient alternative to SIFT or SURF》是Rublee等人在2011年的ICCV上發表的一篇有關於特徵點提取和匹配的論文,這篇論文介紹的方法跳出了SIFT和SURF演算法的專利框架,同時以極快的執行速度贏得了

圖論演算法----二分圖匹配----匈牙利演算法

一、一些相關概念 1、二分圖的概念: 二分圖又稱作二部圖,是圖論中的一種特殊模型。 設G=(V,E)是一個無向圖。 如果頂點集V可分割為兩個互不相交的子集X和Y,並且圖中每條邊連線的兩個頂點一個在X

特徵匹配——FREAK演算法介紹

FREAK演算法是ICCV 2012上的一篇關於特徵點檢測與匹配的論文《FREAK: Fast Retina Keypoint》上提出的,從文章標題中可以看出來該演算法的一個特點是快速,另外一個特點就是該演算法是被人眼識別物體的原理上得到啟發提出的。 看過我之

尺度不變特徵變換匹配演算法Scale Invariant Feature Transform(SIFT)

 對於初學者,從David G.Lowe的論文到實現,有許多鴻溝,本文幫你跨越。 如果你學習SIFI得目的是為了做檢索,也許OpenSSE更適合你,歡迎使用。 1、SIFT綜述 尺度不變特徵轉換(Scale-invariant feature transform

第二篇 特徵匹配以及openvslam中的相關實現

配置檔案 在進入正題之前先做一些鋪墊,在openvslam中,配置檔案是必須要正確的以.yaml格式提供,通常需要指明使用的相機模型,ORB特徵檢測引數,跟蹤引數等。 #==============# # Camera Model # #==============# Camera.name: "EuRoC

二分圖最大權值匹配 KM演算法 模板 KM演算法+模板

KM演算法詳解+模板  大佬講的太好了!!!太好了!!!  http://www.cnblogs.com/wenruo/p/5264235.html KM演算法用來求二分圖最大權完美匹配。 本文配合該博文服用更佳:趣寫算法系列之--匈牙利演算法 &nbs

bi-interval匹配演算法

一、引數說明 T=ACGTCTCGAGACGT |T|=14 T[i]=第i個鹼基 T[i,j]=第i到第j個鹼基的字串 Ti  整個的字串 S:S(i)是第i小的陣列的位置 B[i]=尾綴陣列 C(a)共四個值,分別為C(A)C(C)C(G)C(T)

Harris角檢測演算法

Harris角點演算法 特徵點檢測廣泛應用到目標匹配、目標跟蹤、三維重建等應用中,在進行目標建模時會對影象進行目標特徵的提取,常用的有顏色、角點、特徵點、輪廓、紋理等特徵。現在開始講解常用的特徵點檢測,其中Harris角點檢測是特徵點檢測的基礎,提出了應用鄰近畫素

二分圖最大匹配之Hopcroft-Karp演算法

Hopcroft-Karp演算法 原連結 該演算法由John.E.Hopcroft和Richard M.Karp於1973提出,故稱Hopcroft-Karp演算法。 原理 為了降低時間複雜度,可以在增廣匹配集合M時,每次尋找多條增廣路徑。這樣就可以進一步降低時間複雜度

【OpenCV學習筆記】三十七、特徵檢測與匹配(二)——SIFT特徵匹配

特徵檢測與匹配(二)——SIFT特徵點匹配 1.SIFT特徵點提取 2.繪製特徵點 3.特徵點描述符(特徵向量)提取 4.使用暴力匹配器進行暴力匹配 5.對匹配結果進行篩選(依據DMatch結構體中的float型別變數distance進行篩選) 6.繪製匹配結果 先上ppt

Sift特徵匹配過程

由步驟一我們已經獲得了圖片的特徵點向量集合。現在來看看特徵點匹配,特徵點匹配的一個應用就是物體的識別,比如說我有2張圖片A和B,圖片的內容相同,只是圖片的大小尺寸不同。假設A圖片尺寸比較大,且我們已經採用sift演算法對圖片A和B都進行了檢測,獲得了它們的特徵點集合,

KMP字串匹配演算法

  KMP演算法利用匹配失敗後的資訊,儘量減少模式串與主串的匹配次數以達到快速匹配的目的。具體實現就是實現一個next()函式,函式本身包含了模式串的區域性匹配資訊。時間複雜度O(m+n)。 Next()函式的詳解 把將要進行next計算的字串S分成 k ,j 前後兩串,k代表前串開頭所在的序號,j

KM演算法+模板(二分圖最大權值匹配

KM演算法用來求二分圖最大權完美匹配。 本文沒有給出KM演算法的原理,只是模擬了一遍演算法的過程。另,博主水平較差,發現問題歡迎指出,謝謝!!!! 現在有N男N女,有些男生和女生之間互相有好感,我們將其好感程度定義為好感度,我們希望把他們兩兩配對,並且最後希

【OpenCV】SURF演算法之視訊影象實時特徵匹配

OpenCV原始碼中有關於SURF演算法的靜態影象特徵點匹配,就將其改進為動態視訊影象實時獲取特徵點並將其與目標影象進行特徵點匹配。 考慮到如果沒有獲取到連續幀影象,即有黑色影象被攝像頭捕捉到,此時FLANN演算法則失效,因為FLANN演算法是無法處理黑色影象的,它必須能採

模式串匹配之KMP演算法

KMP演算法,是由Knuth,Morris,Pratt共同提出的模式匹配演算法,其對於任何模式和目標序列,都可以線上性時間內完成匹配查詢,而不會發生退化,是一個非常優秀的模式匹配演算法。但是相較於其他模式匹配演算法,該演算法晦澀難懂,第一次接觸該演算法的讀者往往會看得一頭

PTAL1-054 福到了(15 分)演算法與坑分析

“福”字倒著貼,寓意“福到”。不論到底算不算民俗,本題且請你編寫程式,把各種漢字倒過來輸出。這裡要處理的每個漢字是由一個 N x N 的網格組成的,網格中的元素或者為字元“@”或者為空格。而倒過來的漢字所用的字元由裁判指定。 輸入格式: 輸入在第一行中給出倒過來的漢字所用的字

面試演算法之字串匹配演算法,Rabin-Karp演算法

既然談論到字串相關演算法,那麼字串匹配是根本繞不過去的坎。在面試中,面試官可能會要你寫或談談字串的匹配演算法,也就是給定兩個字串,s 和 t, s是要查詢的字串,t是被查詢的文字,要求你給出一個演算法,找到s在t中第一次出現的位置,假定s為 acd, t為a

SIFT特徵檢測,特徵描述,特徵匹配理解

前面提到了Harris角點檢測,此方法一個很明顯的缺點是不能解決尺度變化不變性,因為Harris中檢測一個點是不是角點是看這個點所在patch和周圍各個方向patch是否有明顯變化,可是尺度變化後這個方法不適用,SIFT利用差分高斯金字塔解決了這個問題。SIFT特徵點檢測步驟