sift演算法,尺度不變特徵轉換,影象中的區域性特徵,在空間尺度中尋找極值點,並提取其位置、尺度、旋轉不變性。
步驟:1.空間極值點的檢測
2.關鍵點的定位
3.關鍵點方向的確定
4.關鍵點描述
糾結的一些問題:提取的特徵是什麼呢?邊緣?輪廓?區域性特徵,極值點,不同的尺度空間有同樣的極值點?這樣才能尺度不變。開始的理解就是一些邊緣的東西但是後來看到要剔除到邊緣響應的關鍵點。理解,剔除的是一些不穩定的邊緣響應的關鍵點,穩定的邊緣響應是留下的。鄰域內的尺度空間極值點,檢測出來的也是比較顯眼的點,變化比較大的點。我的理解,待進一步考證。
分步來說吧:
空間極值點的檢測
首先用高斯模糊的方法將獲得影象的不同尺度空間,獲得高斯金字塔(其中二維高斯模糊的時候才用分離的高斯模糊,xy方向上分別進行一維的高斯模糊,優勢:減少計算量和消除二維高斯矩陣產生的邊緣(為什麼呢,7*7的高斯模板會產生半徑為3的邊緣))。
尺度空間用高斯金字塔來表示。但是有高人指出尺度規範化的log(拉普拉斯高斯運算元)具有真正的尺度不變性,sift演算法裡使用高斯差分金字塔近似log運算元。dog只要將兩個相鄰的高斯影象相減就可以了。
空間極值點的檢測,關鍵點是由dog空間的區域性極值點組成的。通過同一組內相鄰兩個高斯影象之間進行比較完成的,上下兩個尺度和自己尺度裡的相鄰點進行比較8+9+9=26次比較。
關鍵點的定位
上面檢測到的極值點是,是在離散空間裡的極值點。
1.關鍵點的精確定位,離散空間的極值點不一定是真正的極值點。
上圖所示。需要對尺度空間的dog函式進行曲線擬合,來提高關鍵點的穩定性。反覆擬合,在此過程中獲取特徵點的精確位置(原位置加上擬合的偏移位量)以及尺度。在這個過程中還剔除了一些對比度低的關鍵點,不穩定因為。dog函式絕對值小於一定值的時候算是對比度低的關鍵點,剔除。
2.消除邊緣響應:檢測運算元的極值的主曲率,設定乙個閾值,低於這個閾值的保留反之刪除該關鍵點,閾值是乙個經驗值選取r=10.剔除的就是比較大的邊緣響應的極值點。這些點不穩定。
關鍵點方向的確定:使之後面可以保持旋轉不變性
使用影象梯度的方法確定區域性區域的穩定方向。對於在dog金字塔中檢測出來的關鍵點,採集其所在的高斯金字塔影象中3σ範圍內的畫素點的梯度和方向來表徵關鍵點的方向。具體方法採用直方圖統計,選取主方向的方法。
關鍵點的描述
我覺得這是乙個比較苦逼的問題。每個關鍵點都有三個參量:位置,方向和尺度。讓我再理解理解
試試通俗的解釋一下SIFT演算法
sift中文名為尺度不變特徵變換,我不知道為什麼叫這個名字,我覺得叫尺度變換特徵不變更合理。即sift特徵提取出來的影象的區域性特徵,其對旋轉 尺度縮放 亮度變化保持不變性,對視角變化 仿射變換 雜訊也保持一定程度的穩定性。大白話就是無論怎麼剪裁,旋轉,提取到的特徵點還是那些。尺度就是的大小,即在不...
梳理一下思路
編譯器 將各個子程式裝配到一起的程式。作業系統 硬體擴充套件指令集 資源管理器。所有的程式都是在它們之上建立起來,所以需要理解它們。並且高質量的實現它們,為了讓我們有乙個更好的向前邁進的基礎,我們必須這麼做。所以先易後難,首先實現乙個作業系統的核,敬請各位留意最近計畫。既然子程式的運用有助於 的重用...
把回溯理一下
趁著這個題目把回溯演算法理了一下。看了乙個部落格寫的很詳細 對於這道題,同樣可以將輸出的排列方式轉化為n個解空間的解,n為輸入串的數字個數。關鍵在於,求出某一組解result s1,s2,s3,sn 後,要回退到該組解的上乙個狀態,即result s1,s2,s3,sn 1 並在該狀態求出下一組解。...