首页 > 其他 > 详细

SIFT特征点提取

时间:2019-08-04 09:50:04      阅读:61      评论:0      收藏:0      [点我收藏+]

 

一、 SIFT算法

1、算法简介

      尺度不变特征转换即SIFT (Scale-invariant feature transform)是一种计算机视觉的算法。它用来侦测与描述影像中的局部性特征,

它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由 David Lowe在1999年所发表,2004年完善总结。

       其应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对。

      局部影像特征的描述与侦测可以帮助辨识物体,SIFT特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、些微视角改变的容忍度也相当高。基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认。使用 SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位。在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算。SIFT特征的信息量大,适合在海量数据库中快速准确匹配。

      SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。

2、SIFT算法流程图

技术分享图片

二、SIFT算法操作步骤

1、图像金字塔

1.1、高斯金字塔

图像高斯金字塔(Gaussian Pyramid)是采用高斯函数对图像进行模糊以及降采样处理得到。其形成过程可如下图所示:    

其中高斯模糊系数计算公式如下:

 技术分享图片

其中高斯模糊系数计算公式如下:

技术分享图片

1.1.1、高斯函数与图像卷积

根据3σ原则,使用NxN的模板在图像每一个像素点处操作,其中N=[(6σ+1)]且向上取最邻近奇数。

其操作如下图:

技术分享图片

1.1.2、分离高斯卷积

上面这样直接与图像卷积,速度比较慢,同时图像边缘信息也会损失严重。后来,后来、、、,不知哪位学者发现,可以使用分离的高斯卷积(即先用1xN的模板沿着X方向对图像卷积一次,然后用Nx1的模板沿着Y方向对图像再卷积一次,其中N=[(6σ+1)]且向上取最邻近奇数),这样既省时也减小了直接卷积对图像边缘信息的严重损失。

技术分享图片

1.1.3、高斯金子塔源码分析

for (o = 0; o < octvs; o++)//金字塔组数为octvs,
    for (i = 0; i < intvls + 3; i++)//每一组有intvls + 3 层,intvls一般为3
        {
        if (o == 0 && i == 0)//如果是第一组第1层
            gauss_pyr[o][i] = cvCloneImage(base);//base 为原始灰度图像经过升采样或降采样得到的图像
    /* base of new octvave is halved image from end of previous octave */
        else if (i == 0)//建立非第一组的第1层
            gauss_pyr[o][i] = downsample(gauss_pyr[o - 1][intvls]);//降采样图像
        /* blur the current octave‘s last image to create the next one */
        else//建立非第一组的非第1层
            {
            gauss_pyr[o][i] = cvCreateImage(cvGetSize(gauss_pyr[o][i - 1]),IPL_DEPTH_32F, 1);
            cvSmooth(gauss_pyr[o][i - 1], gauss_pyr[o][i],CV_GAUSSIAN, 0, 0, sig[i], sig[i]);// sig[i]为模糊系数
            }//cvSmooth 为平滑处理函数,也即模糊处理。CV_GAUSSIAN 为选用高斯函数对图像模糊

return gauss_pyr;//返回建好的金字塔

1.2、高斯差分金字塔

2002年Mikolajczyk在详细的实验比较中发现尺度归一化的高斯拉普拉斯函数的极大值和极小值同其它的特征提取函数,例如:梯度,Hessian或Harris角特征比较,能够产生最稳定的图像特征。而Lindeberg早在1994年就发现高斯差分函数(简称DOG算子)与尺度归一化的高斯拉普拉斯函数非常近似。如下式:

 技术分享图片

其中k-1是个常数,并不影响极值点位置的求取。

1.2.1、差分金字塔的建立

差分金字塔的是在高斯金字塔的基础上操作的,其建立过程是:在高斯金子塔中的每组中相邻两层相减(下一层减上一层)就生成高斯差分金字塔.      高斯差分金字塔其操作如下图:

技术分享图片

 

 

原文:https://blog.csdn.net/lingyunxianhe/article/details/79063547

SIFT特征点提取

原文:https://www.cnblogs.com/Jack-Elvis/p/11297216.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!