SIFT算法与SURF算法特征检测效率对比
SIFT和SURF算法都是特征检测中较常用的算法,SURF是对SIFT的一种改进,尤其在效率上有明显提升。
SIFT与SURF源码
下面的实验给出了SIFT算法和SURF算法在特征检测效率上的对比,
- 所用的SIFT源码来自Rob.Hess,下载地址:http://robwhess.github.io/opensift/
注:此地址已失效,新地址:https://github.com/robwhess/opensift - SURF源码来自Chris.Evan的OpenSURF,下载地址:http://www.chrisevansdev.com/computer-vision-opensurf.html
注:此地址已失效,可在google code上搜索opensurf1,此外好多人从google code上将此项目导入GitHub了,比如
https://github.com/Erdos001/opensurf1
实验结果
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
(3)图像尺寸: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。
上一篇 2013年上半年总结
页面信息
location:
protocol
: host
: hostname
: origin
: pathname
: href
: document:
referrer
: navigator:
platform
: userAgent
: