精华内容
下载资源
问答
  • SIFT 特征提取
    2018-03-27 02:07:20
    SIFT(Scale-invariant feature transform) 是一种提取局部特征的技术。它将图片中的较为稳定的特征点提取出来,进行处理后生成描述符,形成独特的SIFT特征。这些特征具有尺度,旋转不变性,可以利用这些SIFT特征对图像进行匹配,识别。越是感受到SIFT在计算机视觉领域的应用之广,越是能够受到这篇论文的优美。


    SIFT特征提取主要包括四个步骤:
    1.使用DoG寻找候选兴趣点
    2.精确定位兴趣点的位置
    3.根据梯度方向,分配兴趣点的方向
    4.使用128维向量描述兴趣点


    1.使用DoG寻找候选兴趣点


    首先介绍DoG函数

    定义对图像做高斯卷积:

    其中,


    就是我们常用的高斯函数。σ代表的就是尺度,参数不同,对应不同的尺度


    DoG(Difference of Gaussian)就是不同尺度的高斯核相减的差值。


    这个函数是这篇论文的第一个创新点,采用DoG函数近似LoG函数,LoG函数已经被证明能够用来提取多尺度的特征点,参考博文https://blog.csdn.net/ghost__2011/article/details/79588573
    而LoG函数的定义是





    可以考虑是用差分方法近似

    移项,得到:


    这就是我们的DoG函数,(k-1)是一个常数项,对极值点的位置不会造成影响,和DoG方法的计算量要小于LoG,从而实现了计算量上的优化。


    从图中可以看出,LoG函数和DoG函数是比较近似的。DoG检测的目的就是采用近似LoG方法在图像中寻找尺度不变得兴趣点。

    接下来就是这篇论文的第二个创新点,建立高斯金字塔,建立高斯的目的,是为了给兴趣点增加尺度信息。

    建立高斯金字塔的步骤是:
    1.先将原始图片升采样,长宽均为原始图像的两倍
    2.将原始图像不断做降采样,每次长宽都为上一次的二分之一(降采样可以先对图像进行高斯模糊后进行)
    3.固定一个值s,这是我们希望两个降采样尺度间的尺度间隔,(因为完全的连续是不可能的,我们只能使它近似连续)DoG函数的运算就是讲两个经过不同高斯核卷积过的图像求出差积,而高斯金字塔的目的,是为了让图像在尺度上产生连续,从而计算出兴趣点响应最大的尺度。降采样其实就是改变了原始图像的尺度,这个地方的s就是我们在两个降采样尺度中又细分了s份,考虑DoG会减掉一层,而头尾的两层在采集极值的算法中(第5步)不能用,如果我们希望DoG的到的金字塔有s个间隔,那在模糊的金字塔就应该有s+3层。

    也就是说,我们需要对每一个1,2步得到的图片进行s+3次高斯模糊运算,得到高斯金字塔,尺度的选取如上图所示,用σ,kσ一次模糊。

    k这样定义的原因是每次降采样的尺度为尺度的两倍。
    4.第三步构建了高斯金字塔后,再相邻相减就可以的到DoG金字塔。
    5.我们选取的候选兴趣点就是差分金字塔在相邻尺度,中26个相邻值中的极大极小值。

    最后得到的候选特征点就包括了三个信息,x,y坐标,σ所在的尺度

    2.精确定位兴趣点的位置

    空间尺度函数的泰勒展开式为:

    对上式求导并让他等于零得到

    带回泰勒级数


    舍弃

    这样做的目的是舍弃那些不明显的关键点

    接下来是消除边缘响应,这样做的目的是因为DoG对边缘点的检测也相当敏感,容易受到噪声影响,为了提高兴趣点的可靠性,需要排除掉这些边缘的点。
    主要思路是,计算关键点的主曲率,对于在边上的关键点而言,穿过边缘方向的主曲率会远远大于沿着边缘方向上的主曲率,因此其主曲率的远大于位于角点的比值。

    其中,

    假设


    判断主曲率考虑用(r+1)²和r的比值,SIFT建议使用r=10,实际上这就是对


    的优化。

    3.根据梯度方向,分配兴趣点的方向

    排除掉一些不好的点后,我们考虑给每个兴趣点添加方向信息,从而达到旋转不变的性质。
    采用兴趣点对应尺度作为模板计算

    以特征点为中心,r=3*1.5σ为半径,方向分解为10度一个柱,共36个柱,采用高斯加权对窗口内的梯度量进行加权,形成36个柱的直方图,以最高的柱为兴趣点的方向,为描述符增加方向信息。
    如果有别的柱值达到最大柱值的80%,则认为这个方向同样为兴趣点的方向,复制出一个兴趣点。
    这样每一个兴趣点就拥有了坐标(算两个),尺度,方向四个信息。

    4.使用128维向量描述兴趣点

    在介绍SIFT最酷的一步之前我先介绍一个图

    我们进过3的计算,会得到每个点的梯度量,以及梯度方向。
    这个图中箭头方向就代表梯度方向,而箭头的长度就代表了梯度量。
    考虑刚才我们为每一个兴趣点添加了方向信息,现在我们要对方向进行归一化,使兴趣点拥有方向不变性。

    我们要做的就是一个范围内的方向,都随着主方向一起旋转,而主方向旋转到x轴的方向。
    这个范围可以简化定义为16*16的像素,实际SIFT考虑于尺度等有关系。
    计算公式为

    接下来将范围内的每一个方向,梯度量信息分为4*4个部分,如果简化为16*16个像素,就对应每个部分为4*4个像素。
    接着,对每一个部分中的方向,以45度为一个柱,共八个柱,对梯度量进行高斯加权后生成直方图。


    这个图中一个小格子对应上面描述的一个部分。方向代表的45度一个的柱方向,箭头长度对应的是加权后的梯度量,4*4个部分,在乘上8个方向,得到了一个128维的向量
    这个向量就是SIFT的特征点描述符。匹配两个特征点就是对两个向量进行距离运算。
    SIFT的应用非常广泛,也非常酷,考虑以后会对应用写一篇博客。

    更多相关内容
  • 实现人脸识别的特征提取特征,使用SIFT算法,可运行。Matlab环境。
  • sift特征提取代码 基于RGB颜色空间的颜色特征SIFT特征提取 ##目录 ##背景介绍 本项目是我参加大学生创新项目的一部分,我们将要创建一个旅游推荐系统,通过用户输入的图片进行相关的图像处理,最后得到与输入图片...
  • sift特征提取与匹配C++代码,1000行完整代码,超详细注释,基本每五...1.提取特征点算法(包括尺度空间的极值探测、关键点的精确定位、确定关键点的主方向、关键点的描述); 2.匹配算法 3.运行需要调用openCV3.4.0库。
  • 本文实例为大家分享了利用opencv实现SIFT特征提取与匹配的具体代码,供大家参考,具体内容如下 1、SIFT 1.1、sift的定义 SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),是用于图像处理领域...
  • sift提取特征描述子,对图像进行处理,利用os.system()函数执行sift.exe文件
  • opencv实现的SIFT算法源码,包含图像的SIFT特征提取算法,以及图像之间的基于SIFT特征的匹配算法
  • matlab版本的源码,有详细的sift特征提取和匹配的步骤介绍,具体sift是什么我就不多说了。这个matlab版本的源码就是供初学者学习之用。本人也是刚刚学习,代码亲字试过,希望对大家有帮助,大家一起学习
  • sift特征提取,摄像头实时图像检测代码
  • sift特征提取代码 基于RGB颜色空间的颜色特征SIFT特征提取 ##目录 ##背景介绍 本项目是我参加大学生创新项目的一部分,我们将要创建一个旅游推荐系统,通过用户输入的图片进行相关的图像处理,最后得到与输入图片...
  • SIFT特征提取+匹配

    2018-10-20 14:31:35
    该程序调用opencv库函数实现的SIFT特征提取及匹配,其中有两组图片以供测试。程序配置库为opencv2.4.9+vs2013。
  • 1.基于MATLAB实现的SIFT特征提取算法 2.简单易用,有详细的实现过程 3.加入了Image Visualizer函数
  • 文章目录计算机视觉第三次实验——SIFT特征提取与检索一,安装VLfeat1.1 下载地址1.2 注意二,获取像素集三,描述子代码了实现3.1 代码3.2 结果四,匹配描述子代码实现4.1代码4.2 结果五,给定一张输入的图片,在...
  • SIFT特征提取

    2018-10-24 22:46:55
    SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),“尺度”的直观第一印象就是大小,尺度不变就是和图片的大小没有关系,简单的SIFT的理解是最后检测出来的特征点匹配适用于所有尺寸的图像
  • 用opencv+VS2012实现的SIFT特征提取与匹配算法,已编译通过,直接打开就能运行
  • 一个很赞的sift特征提取的matlab程序,这里面的函数都是自定义的,可以实现两幅图像的对应相同点的连接,下通过sift特征匹配的
  • matlab sift特征提取

    2015-10-21 11:00:50
    本人也是刚刚学习,代码亲字试过,希望对大家有帮助,大家一起学习交流,我也是从别人那考来的代码
  • 在MATLAB上实现SIFT特征提取,内含MATLAB源代码,以及文档使用说明,帮助你快速进行相关开发
  • matlab实现sift提取特征点代码程序 SIFT算法的相关实现 自己用matlab写的sift特征点检测与匹配程序,运行能通过
  • MATLAB源码,SIFT图像拼接特征点匹配 MATLAB源码,SIFT图像拼接特征点匹配 MATLAB源码,SIFT图像拼接特征点匹配 MATLAB源码,SIFT图像拼接特征点匹配
  • OpenCV3.0实现SIFT特征提取+RANSAC剔除误匹配点,首先进行提取SIFT特征点。然后再通过RANSAC剔除误匹配点
  • SIFT特征提取算法的FPGA实时实现.pdf
  • SIFT特征提取算法实验

    2021-01-06 11:19:31
    SIFT特征提取算法实验 SIFT特征提取算法 1.1 算法定义 1.2 SIFT特征提取算法实验: 1.3 构造数据集 检测提取感兴趣点 2.1代码实现: 2.2.绘制特征点代码分析: 提取数据集中每张图片的SIFT特征并展示 3.1实现对比: ...
  • Sift特征提取

    2018-05-18 11:21:43
    Sift特征提取代码 C++实现 包括Ransac拟合算法 可以用于全景图像拼接或者其他需要特征提取的地方
  • SIFT特征提取C++

    2011-10-31 22:14:28
    Sift是David Lowe于1999年提出的局部特征描述子,可以处理两幅图像之间发生平移、旋转、...SIFT算法是一种提取局部特征的算法,也是一种模式识别技术,其基本思想是在尺度空间寻找极值点,提取位置,尺度,旋转不变量

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,392
精华内容 7,356
关键字:

sift特征提取