SIFT演算法與SURF演算法特徵檢測效率對比

masikkk發表於2013-07-17

SIFT和SURF演算法都是特徵檢測中較常用的演算法,SURF是對SIFT的一種改進,尤其在效率上有明顯提升。

下面的實驗給出了SIFT演算法和SURF演算法在特徵檢測效率上的對比,

所用的SIFT原始碼來自Rob.Hess,下載地址:http://robwhess.github.io/opensift/

SURF原始碼來自Chris.Evan的OpenSURF,下載地址:http://www.chrisevansdev.com/computer-vision-opensurf.html

SURF特徵檢測中的綠色箭頭表示暗背景中的亮點(laplacian符號為0),粉色箭頭表示亮背景中的暗點(laplacian符號為1)。


(1) 影象尺寸:288 * 400

                                                                                                    

   檢測圖中的SIFT特徵點用時:0.308204秒,特徵點個數:354                  檢測圖中的SURF特徵點用時:0.10825秒,特徵點個數:119


(2) 影象尺寸:244 * 265

                                                        

            檢測圖中的SIFT特徵點用時:0.61654秒,特徵點個數:879                                        檢測圖中的SURF特徵點用時:0.145502秒,特徵點個數:213


(2)影象尺寸:520 * 387

         

      檢測圖中的SIFT特徵點用時:1.19946秒,特徵點個數:1795       檢測圖中的SURF特徵點用時:0.270752秒,特徵點個數:419


(4)影象尺寸:640 * 480

  

    檢測圖中的SIFT特徵點用時:0.58695秒,特徵點個數:594         檢測圖1中的SURF特徵點用時:0.268403秒,特徵點個數:301


(5)影象尺寸:400 * 300

         

      檢測圖中的SIFT特徵點用時:0.12064秒,特徵點個數:50          檢測圖中的SURF特徵點用時:0.153961秒,特徵點個數:196


可以看到,一般來說,SURF演算法的效率是SIFT演算法的3倍左右,而檢測出的特徵點的個數是SIFT演算法的1/3左右,當然也和影象大小、紋理複雜程度、演算法引數設定有關。從第(5)組例子中可以看出,SURF演算法在邊緣抑制上做的似乎沒有SIFT好,好多邊緣都被檢測成了特徵點,從而導致特徵點個數多於SIFT。

參考

SIFT演算法與SURF演算法特徵檢測效率對比

相關文章