Sift与Surf的区别

       surf是在sift的基础上改进而生,不仅提高了计算速度,而且更加安全鲁棒性,两者的实现原理很相似,对于两者的区别,也极大程度地体现在了他们的实现步骤上,为了更好地理解两者,可以结合实现方法来分析它们之间的不同。

     1.构造图像金字塔尺度空间:

       sift:计算高斯差分图像(DoG),用于find特征点;金字塔图像中,由于同一个octave中,图像的大小(尺寸)一样但模糊程度(尺度)不同,而不同octave中图像的尺度和尺寸均不一样,所以为了得到不同size的图像,在sift中需要进行下采样操作,也因此在进行高斯模糊时,无需改变卷积模板的尺寸。当然同一层而言,模板的尺度也是不同的。

         surf:基于高斯图像,计算每一个像素点的Hessian矩阵行列式,利用该行列式近似得到变换图像,用于find特征点;与sift正好相反,surf里去掉了下采样这一过程,取而代之的是:不同octave层,改变模板的尺寸,但图片size一直保持不变;

     2.利用非极大值抑制粗定位特征点

     3.利用插值得到亚像素特征,进而精准定位特征点

     4.确定特征点的主方向:

         sift:对于sift而言,在sift特征点邻域内进行Histogram of Gradient统计,找到最大的bin方向或者大于80%处最大bin的多个方向作为特征点的主方向,这样一个特征点就有可能有不止一个的主方向;

         surf:与sift不同,surf是统计特征点邻域内的Histogram of Haar wavelet responses,从一个扇形方向开始,每次以固定步长进行旋转,找到其中最大响应的扇形,将其方向作为主方向;这里的haar特征主要计算水平和垂直两个方向的haar小波响应累加值;

      5.确定特征描述子:

          这里两者是一样的,不同的只是描述子的维数;在特征点周围取16*16的邻域,将其划分成每块size为4*4的小区域,共有4*4个,对于每一个小区域,根据方向梯度的不同,决定了最后得到的描述子的不同。

          sift:由于采用8方向作为主方向,所以描述子的维度为4*4*8=128;

          sur:只有水平和垂直两个方向的haar小波响应,但是考虑到the polarity of intensity images,同时还要计算两个方向haar响应的绝对值的累加,这样一来,每个小区域就有4维,所以最后得到的描述子维度为4*4*4=64;不难看出surf将描述子的长度由sift的128个浮点数精简到了64个浮点数,更加简洁了,因此计算速度就提升了。

       6.利用L1范数归一化descriptor


详细的关于sift和surf可以参考博文:http://www.cnblogs.com/tornadomeet/archive/2012/08/16/2643168.html


      

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值