Sift特征点提取

Sift算法

算法简介

尺度不变特征转换即SIFT (Scale-invariant feature transform)。
1.它⽤来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量。

2.局部影像特征的描述与侦测可以帮助辨识物体,SIFT特征是基于物体上的⼀些局部外观的兴趣点⽽与影像的⼤⼩和旋转⽆关。

3.SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的⽅向。SIFT所查找到的关键点是⼀些⼗分突出,不会因光照,仿射变换和噪⾳等因素⽽变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。
在这里插入图片描述

算法操作步骤

图像金字塔

高斯金字塔

1.图像⾼斯⾦字塔(Gaussian Pyramid)是采⽤⾼斯函数对图像进⾏模糊以及降采样处理得到。
在这里插入图片描述
将一张图片处理成每组6张,每组的尺寸相同但模糊系数不同。模糊系数取值如下:
在这里插入图片描述降采样:
sigma 全取点 卷积
2sigma 隔点取点 卷积
当sigma的系数为2,4,8……时,开始降采样
上图第二个公式的含义:先用0.5的高斯核卷积,再用1.52的高斯核卷积与直接用1.6的高斯核卷积的效果相同!!
在这里插入图片描述
S:层数
n:欲提前特征的图片张数
在这里插入图片描述
竖直方向:尺度方向

高斯函数与图像卷积

根据3σ原则,使⽤NxN的模板在图像每⼀个像素点处操作,其中N=[(6σ+1)]且向上取最邻近奇数。
在这里插入图片描述

二维高斯卷积

分离高斯卷积

1.直接与图像卷积,速度⽐较慢,同时图像边缘信息也会损失严重。可以使⽤分离的⾼斯卷积(即先⽤1xN的模板沿着X⽅向对图像卷积⼀次,然后⽤Nx1的模板沿着Y⽅向对图像再卷积⼀次,其中N=[(6σ+1)]且向上取最邻近奇数),这样既省时也减⼩了直接卷积对图像边缘信息的严重损失。
在这里插入图片描述

高斯金子塔源码分析

在这里插入图片描述

高斯差分金字塔

图像平移尺度归一化就是指通过变换消除平移和比例缩放对图像的影响。

差分金字塔的建立

差分⾦字塔的是在⾼斯⾦字塔的基础上操作的,其建⽴过程是:在⾼斯⾦⼦塔中的每组中相邻两层相减(下⼀层减上⼀层)就⽣成⾼斯差分⾦字塔。

同一组每层相减,得到高斯差分金字塔。

疑问:差分前面每组有六层,为什么变成5层了?
在这里插入图片描述

差分金字塔源码分析

在这里插入图片描述

空间极值点(关键点)检测(最关键一步)

关键点是由DOG空间的局部极值点组成的,关键点的初步探查是通过同⼀组内各DoG相邻两层图像之间⽐较完成的。

极值点检测过程

极值点检测示意

在这里插入图片描述
n:欲提前特征的图片张数
绝对值太小有可能是噪声,所以不保留这些点
在这里插入图片描述

极值点检测源码分析

在这里插入图片描述

关键点定位

以上⽅法检测到的极值点是离散空间的极值点。
以下通过拟合三维⼆次函数来精确确定关键点的位置和尺度,同时去除低对⽐度的关键点和不稳定的边缘响应点(因为DoG算⼦(边缘提取)会产⽣较强的边缘响应),以增强匹配稳定性、提⾼抗噪声能⼒。

关键点精确定位

离散空间的极值点并不是真正的极值点。利⽤已知的离散空间点插值得到的连续空间极值点的⽅法叫做⼦像素插值。

在这里插入图片描述
为了提⾼关键点的稳定性,需要对尺度空间DoG函数进⾏曲线插值。利⽤DoG函数在尺度空间的Taylor展开式(插值函数)为:(接下来看不懂了)
(泰勒在此处的作用大概是无限趋近减小误差)
在这里插入图片描述

在这里插入图片描述
求得极值点处的偏移量,当它在任⼀维度上的偏移量⼤于0.5时(即x或y或 σ),意味着插值中⼼已经偏移到它的邻近点上,所以必须改变当前关键点的位置。同时在新的位置上反复插值直到收敛;也有可能超出所设定的迭代次数或者超出图像边界的范围,此时这样的点应该删除。
在这里插入图片描述
因为很可能也是噪声。

消除边缘响应

对边缘响应找到的一些理解:
在这里插入图片描述

在这里插入图片描述

⼀个定义不好的⾼斯差分算⼦的极值在横跨边缘的地⽅有较⼤的主曲率,⽽在垂直边缘的⽅向有较⼩的主曲率。DOG算⼦会产⽣较强的边缘响应,需要剔除不稳定的边缘响应点。
在这里插入图片描述
上式最后一步少写了一个平方。
α、β是行列式的特征值

精确定位中的泰勒插值源码分析

在这里插入图片描述

为关键点方向分配

为了使描述符具有旋转不变性,需要利⽤图像的局部特征为给每⼀个关键点分配⼀个基准⽅向。使⽤图像梯度的方法求取局部结构的稳定方向。
在这里插入图片描述
在高斯金字塔中找!!
在这里插入图片描述

统计梯度方向和梯度幅值,之后在梯度区域内投票。(实际上,每10°算一个方向,共36个幅角值,投票最高是主方向,其次是辅方向,辅方向要求大于主方向的80%,否则没有)
有两个方向的特征点按照:两个特征点处理。
在这里插入图片描述

特征点描述符

对于每⼀个关键点,拥有三个信息:位置、尺度以及⽅向。接下来就是为每个关键点建⽴⼀个描述符,使其不随各种变化⽽改变,⽐如光照变化、视⾓变化等等。并且描述符应该有较⾼的独特性,以便于提⾼特征点正确匹配的概率。

匹配关键点算法:KNN。
关键点的匹配需要描述符来匹配。
在这里插入图片描述

128维向量:
在这里插入图片描述
在这里插入图片描述

插值计算每个种⼦点⼋个⽅向的梯度
Sift描述符具有旋转不变形:所以要把关键点的坐标轴旋转到主方向,之后再统计稳定的描述符。
同学给我的解释::
在这里插入图片描述

在这里插入图片描述

本章疑问

疑问1:差分前面每组有六层,为什么变成5层了?
疑问2:向量的泰勒变换运算看不懂。
疑问3:三线性插值

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值