SIFT演算法與SURF演算法特徵檢測效率對比
SIFT和SURF演算法都是特徵檢測中較常用的演算法,SURF是對SIFT的一種改進,尤其在效率上有明顯提升。
下面的實驗給出了SIFT演算法和SURF演算法在特徵檢測效率上的對比,
SURF特徵檢測中的綠色箭頭表示暗背景中的亮點(laplacian符號為0),粉色箭頭表示亮背景中的暗點(laplacian符號為1)。
(1) 影象尺寸:288 * 400
檢測圖中的SIFT特徵點用時:0.308204秒,特徵點個數:354
(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。
參考