這篇文章參考了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特徵是影象的區域性特徵,其對旋轉 尺度縮放 亮度變化保持不變性,對視角變化 放射變換 雜訊也保持一定程度的穩定性。獨特性好,...