SIFT演算法和SURF演算法區別
共同點:
SIFT/SURF為了實現不同影象中相同場景的匹配,主要包括三個步驟:
1、尺度空間的建立;
2、特徵點的提取;
3、利用特徵點周圍鄰域的資訊生成特徵描述子
4、特徵點匹配。
如果兩幅影象中的物體一般只是旋轉和縮放的關係,加上影象的亮度及對比度的不同,要在這些條件下要實現物體之間的匹配,SIFT演算法的先驅及其發明者想到只要找到多於三對物體間的匹配點就可以通過射影幾何的理論建立它們的一一對應。
如何找到這樣的匹配點呢?SIFT/SURF作者的想法是首先找到影象中的一些“穩定點”,這些點是一些特殊的點,不會因為視角的改變、光照的變化、噪音的干擾而消失,比如角點、邊緣點、暗區域的亮點以及亮區域的暗點。這樣如果兩幅影象中有相同的景物,那麼這些穩定點就會在兩幅影象的相同景物上同時出現,這樣就能實現匹配。因此,SIFT/SURF演算法的基礎是穩定點。
SIFT/SURF提取的穩定點,首先都要求是區域性極值。但是,當兩個物體的大小比例不一樣時,大影象的區域性極值點在小影象的對應位置上有可能不是極值點。於是SIFT/SURF都採用影象金字塔的方法,每一個截面與原影象相似,這樣兩個金字塔中就有可能包含大小最近似的兩個截面了。
這樣找到的特徵點會比較多,經過一些處理後濾掉一些相對不穩定的點。
接下來如何去匹配相同物體上對應的點呢?SIFT/SURF的作者都想到以特徵點為中心,在周圍鄰域內統計特徵,將特徵附加到穩定點上,生成特徵描述子。在遇到旋轉的情況下,作者們都決定找出一個主方向,然後以這個方向為參考座標進行後面的特徵統計,就解決了旋轉的問題。
共同的大問題有以下幾個:
1、為什麼選用高斯金字塔來作特徵提取?
為什麼是DOG的金字塔?因為它接近LOG,而LOG的極值點提供了最穩定的特徵,而且DOG方便計算(只要做減法。)
為什麼LOG的極值點提供的特徵最穩定,有參考文獻,未看。
但是直觀上怎麼理解?如果相鄰Octave的sigma不是兩倍關係還好理解:如果兩幅影象只是縮放的關係,那麼假設第一個Octave找到了小一倍影象的極值點,那麼大一倍影象的極值點會在下一個Octave找到相似的。但是現在,如果把大一倍影象進行一次下采樣(這樣和小的影象就完全一樣了),進行Gauss濾波時,兩個影象濾波係數(sigma)是不一樣的,不就找不到一樣的極值點了麼?不理解。
2、Hessian矩陣為什麼能用來篩選極值點?
SIFT先利用非極大抑制,再用到Hessian矩陣進行濾除。SURF先用Hessian矩陣,再進行非極大抑制。SURF的順序可以加快篩選速度麼?(Hessian矩陣濾除的點更多?)
3、為什麼採用梯度特徵作為區域性不變特徵?
這與人的視覺神經相關。採用梯度作為描述子的原因是,人的視覺皮層上的神經元對特定方向和空間頻率的梯度相應很敏感,經過SIFT作者的一些實驗驗證,用梯度的方法進行匹配效果很好。
4、為什麼可以採用某些特徵點的區域性不變特徵進行整幅影象的匹配?
從直觀的人類視覺印象來看,人類視覺對物體的描述也是區域性化的,基於區域性不變特徵的影象識別方法十分接近於人類視覺機理,通過區域性化的特徵組合,形成對目標物體的整體印象,這就為區域性不變特徵提取方法提供了生物學上的解釋,因此區域性不變特徵也得到了廣泛應用。
還有:
影象中的每個區域性區域的重要性和影響範圍並非同等重要,即特徵不是同等顯著的,其主要理論來源是Marr的計算機視覺理論和Treisman的特徵整合理論,一般也稱為“原子論”。該理論認為視覺的過程開始於對物體的特徵性質和簡單組成部分的分析,是從區域性性質到大範圍性質。
SIFT/SURF都是對特徵點的區域性區域的描述,這些特徵點應該是影響重要的點,對這些點的分析更加重要。所以在區域性不變特徵的提取和描述時也遵循與人眼視覺注意選擇原理相類似的機制,所以SIFT/SURF用於匹配有效果。
不同點的比較:
從部落格上看到一個總結,我修改了一些內容。大家可以參看以下連結:
SIFT | SURF | |
尺度空間 | DOG與不同尺度的圖片卷積 | 不同尺度的box filters與原圖片卷積 |
特徵點檢測 | 先進行非極大抑制,再去除低對比度的點。再通過Hessian矩陣去除邊緣的點 | 先利用Hessian矩陣確定候選點,然後進行非極大抑制 |
方向 | 在正方形區域內統計梯度的幅值的直方圖,找max對應的方向。可以有多個方向。 | 在圓形區域內,計算各個扇形範圍內x、y方向的haar小波響應,找模最大的扇形方向 |
特徵描述子 | 16*16的取樣點劃分為4*4的區域,計算每個區域的取樣點的梯度方向和幅值,統計成8bin直方圖,一共4*4*8=128維 | 20*20s的區域劃分為4*4的子區域,每個子區域找5*5個取樣點,計算取樣點的haar小波響應,記錄∑dx, ∑dy, ∑|dx|,∑|dy|,一共4*4*4=64維 |
效能的比較:
論文:A comparison of SIFT, PCA-SIFT and SURF 對三種方法給出了效能上的比較,源圖片來源於Graffiti dataset,對原影象進行尺度、旋轉、模糊、亮度變化、仿射變換等變化後,再與原影象進行匹配,統計匹配的效果。效果以可重複出現性為評價指標。
比較的結果如下:
method | Time | Scale | Rotation | Blur | Illumination | Affine |
Sift | common | best | best | common | common | good |
Pca-sift | good | good | good | best | good | best |
Surf | best | common | common | good | best | good |
由此可見,SIFT在尺度和旋轉變換的情況下效果最好,SURF在亮度變化下匹配效果最好,在模糊方面優於SIFT,而尺度和旋轉的變化不及SIFT,旋轉不變上比SIFT差很多。速度上看,SURF是SIFT速度的3倍。