SIFT演算法學習

2021-06-05 09:11:58 字數 1278 閱讀 5444

這篇文章參考了utkarsh的部落格,感覺他對sift的理解非常深刻,傳送門在此:sift--utkarsh

sift學習

1.  sift:scaleinvariant feature transform

不同影象間的特徵匹配是計算機視覺中的乙個焦點,如果是大致相似的(同樣的尺寸,同樣的方向),簡單的角點檢測(harris)是可行的。但是如果圖象有不同尺度和旋轉,你就需要尺度不變的特徵轉換(sift)。

2.  為毛sift牛叉

sift不僅僅是尺度不變,你可以改變下列幾項,一樣能獲得較好的結果。

²  尺度

²  旋轉

²  亮度(強度)

²  視角

下面是乙個例子:

我們要尋找這些目標:

這是我們搜尋的場景:

這是我們得到的結果:

大的矩形標識的是匹配的,小的矩形標識的是這些區域裡的單個特徵。注意這些大的矩形是根據目標的朝向和尺度來刻畫的。

3.  演算法

sift是乙個較複雜的演算法,所以我把整個演算法分割成幾個部分,這是整個大綱。

ø  構建乙個尺度空間

這是最初的準備工作,你要建立乙個原始的一組尺度圖來確保尺度不變。

ø  log近似

高斯拉普拉斯運算元對於查詢特徵點很有幫助,但是消耗太大,所以我們採用在之前建立的尺度圖來完成近似log的計算

ø  查詢特徵點

在之前快速近似策略上,我們嘗試查詢特徵點,在我們前一步的計算得到高斯差分(dog)中查詢極大值和極小值。

ø  捨棄不適合的特徵點

邊緣和低對比度區域是不合適的特徵點。去除它們使得演算法更有效和魯棒性。這裡使用了乙個類似harris角點的技術。

ø  對特徵點賦予方向

每個特徵點都會計算出乙個方向,它會涉及到更多的計算,這可以有效的去除方向的影響,使得它滿足方向不變性。

ø  產生sift特徵

4.  你能用sift幹什麼

檢索追蹤。。。。。。。。whatever you like

SIFT演算法學習

首先,如果開始就看公式的話會蒙,因此我首先看到一篇博文,這篇文章對sift演算法做了通俗易懂的解釋。看完這篇文章後對sift演算法有了感性的認識,之後我又看到了一篇寫得特別詳細的部落格。通過這篇文章對sift演算法的原理和基本步驟有了更好的認識。以上兩篇部落格對我的幫助很大!以上兩篇部落格都沒有關鍵...

SIFT演算法學習(1)

1.尺度引數 尺度英文名scale,直觀理解就是比例或者縮放。針對一幅影象,例如我們使用邊緣檢測運算元,以畫素為單位進行處理,這裡的尺度就是畫素級別。在現實世界,物體距離人眼遠或者近,距離遠了,尺度大,只能看到物體的輪廓 距離近了,尺度小,能看到物體的細節。在數字影象領域,不同的影象尺度,是由不同大...

SIFT演算法學習(2)

3.sift sift全稱為 scale invariant feature transform 即尺度不變特徵變換。sift演算法提取的 sift 特徵具有如下特性 sift特徵是影象的區域性特徵,其對旋轉 尺度縮放 亮度變化保持不變性,對視角變化 放射變換 雜訊也保持一定程度的穩定性。獨特性好,...