SIFT特徵-尺度不變特徵理解
簡介
SIFT,即尺度不變特徵變換(Scale-invariant feature transform,SIFT),是用於圖像處理領域的一種描述。這種描述具備尺度不變性,可在圖像中檢測出關鍵點,是一種局部特徵描述子。該方法於1999年由David Lowe首先發表於計算機視覺國際會議(International Conference on Computer Vision,ICCV),2004年再次經David Lowe整理完善後發表於International journal of computer vision(IJCV)。截止2014年8月,該論文單篇被引次數達25000餘次。 函數
特色
- 對旋轉、尺度縮放、亮度變化保持不變性,對視角變化、噪聲等也存在必定程度的穩定性
- 獨特性,信息量豐富,適用於在海量特徵數據中進行快速,準確的匹配
- 多量性,即便少數幾個物體也能夠產生大量的Sfit特徵向量
- 可擴展性,能夠很方便的與其餘形式的特徵向量進行聯合
高斯圖像金字塔
理解
高斯圖像金字塔是把原圖像先放大一倍(如150✖150到300✖300),對這個放大後的圖像進行高斯濾波(以前講過的高斯模糊,能夠回去看一下),其中模糊半徑分別取σ、kσ、k^2σ等等,獲得若干個模糊後的圖像,這是第一組,而後依次按照比例爲2縮小圖像,如此重複,構建一個有若干組(Octave)的金字塔,每組分爲若干層。spa
補充
用O表示octave(第幾組),用L表示layer(第幾層),則(O,L)就表明高斯圖像空間中的肯定的一副圖像。3d
DOG金字塔
理解
DOG金字塔(Difference of Gaussian)就是高斯金字塔同一octave下相鄰兩層的差分構成的金字塔。 orm
解釋
之因此要構建差分金字塔,就是爲了找到在不一樣尺度和不一樣模糊程度下的不變特徵,而這正式SIFT要提取的"穩定"特徵。blog
空間極值點檢測
理解
這裏的空間極值點檢測,其實就是在DOG空間的一個octave下比較每個像素和它相鄰點的大小,看它是否比其餘點都要大。若是比周圍點都大,說明它是是局部的極值點(這一點咱們能夠類比一個二次函數,它的最低點是否是比周圍點都小,因此它是極值點,固然它也恰巧是最低點)。圖片
補充
這裏咱們要計算圖中打x的點是否是極值點,那麼咱們就要比較它與不一樣層以及同層的周圍一共26個點的大小,才能肯定它是否是空間的極值點。it
關鍵點精肯定位
理解
因爲咱們上面的操做都是在離散空間操做的,咱們知道,離散空間取到的極值點,並不必定是真正的極值點,因此咱們須要經過相似函數擬合的方式,對離散點進行擬合使之連續,在連續空間就很容易利用咱們的知識求取極值點。io
計算
咱們將DOG空間的泰勒展開式子當作其擬合函數,就能夠操做連續空間的函數了。 候選特徵點x,其偏移量定義爲Δx,其對比度爲D(x)的絕對值∣D(x)∣,對D(x)應用泰勒展開式 因爲x是D(x)的極值點,因此對上式求導並令其爲0,獲得 而後再把求得的Δx代入到D(x)的泰勒展開式中 設對比度的閾值爲T,若∣D(x^)∣≥T,則該特徵點保留,不然剔除掉。圖像處理
關鍵方向匹配
理解
上面說了,SIFT特徵具備旋轉不變性,而它的旋轉不變性就在於每個關鍵點都有一個基準方向,而這個基準方向是由圖像的局部決定和分配的。form
計算
梯度的模值和方向定義以下:
利用這個公式計算以關鍵點爲中心的領域內全部點的梯度方向(8個方向),計算完以後,咱們使用直方圖來統計領域內像素的梯度和方向。梯度直方圖將0~360度的方向分爲36個立柱,每柱10度。直方圖的峯值表明的是該關鍵點的主方向。爲了加強魯棒性,若是由立柱的值大於峯值的80%,咱們將其做爲關鍵點的輔方向。(下圖只花了8個方向)。
關鍵點描述
理解
關鍵點描述是對領域內高斯圖像直方圖統計結果的一種表示形式,咱們找到的特徵點參數有位置、尺度和方向。在關鍵點周圍的領域內,將其分爲m✖m個子塊,每一個子塊以中間點爲原點,分別計算梯度直方圖,生成局部向量,對該向量進行標準高斯函數加權處理,而後對特徵向量進行歸一化處理。每一個關鍵點在下圖中能夠產生2✖2✖8維向量做爲特徵向量。
David G.Lowed的實驗結果代表:對每一個關鍵點,採用448共128維向量的描述子進項關鍵點表徵,綜合效果最佳:
特徵點匹配
理解
有了目標圖片,對目標圖片計算SIFT特徵,而後用其特徵向量與已知特徵的特徵向量進行歐式距離匹配,其歐式距離越小,匹配度越高。