SIFT笔记(尺度不变特征变换)

一.建立高斯差分金字塔

Octave1为组1,每组内又有好多层。同一大小论层,不同大小论组。

用不同的尺度(方差也叫尺度)对原图片进行卷积,得的Octave1;再由Octave1隔点取点,即第一个像素点保留,第二个像素点不要,第三个像素点保留....这样边长就变成了原来的一半,图片就缩小了 ,我们再用不同尺度进行卷积就得到Octave2,以此类推。

高斯金字塔其作用就是建立一个类似人眼近大远小的功能,高斯核是数学上唯一能模拟近处清晰远处模糊的。

这个就是5层为一组,每相邻的两层相减就得到了高斯差分金字塔

注:

建议的参数取值:

o为组数,M、N为原图片的宽和高;S为层数;n为你期望提取特征的照片数量

你用一个尺度为0.5的高斯核去卷积,再用一个尺度为1.52的高斯核去卷积,与直接用一个尺度为1.6的高斯核卷积效果相同。

第一组:第一层用σ,第二层用kσ,第n层用,.....

第二组:第一层尺度取上一组的倒数第三组的值,然后依次每层乘k,

......

 

二、关键点的位置的确定

关键点就是稳定的点(通常就是极值点)

1.阈值化

n为你想提取多少张图片的特征的图片数量;

如果一个像素点的值小于阈值,则其极有可能为一个噪声。

 

2.在高斯差分金字塔中找极值

  2.1 找到亚像素位置的极值点

在横轴、纵轴、尺度三个方向的附近26个点中找极值(9+9+8个),此时找出的极值点为离散的极值点,因为像素是离散的,尺度空间也是离散的(下一层是上一层的k倍),所以中间可能有很多像素点未取到。因此现在找的的极值点可能是真正极值点附近的一个点(亚像素位置的极值点)。

  2.2调整极值点的位置

其中  , (称为位移量)

其中导数的算法如下,方格中的0就代表f0,1就代表f1.....h为像素点间距

在X0处的泰勒展开是对X0处的近似

  2.3舍去低对比度的点

其中T为0.04,n为你想提取多少张图片的特征的图片数量。

对比度太低,也认为其是一个噪声。

  2.4边缘效益的去除

要求在两个方向上曲率变化差不多,否则就很可能为一个边缘。

边缘效益的去除用到了海森矩阵。海森矩阵的特征值与其曲率成正比,因此可以用海森矩阵描述局部的曲率。

但是算特征值有些麻烦,我们就用海森矩阵的迹与行列式代替。(设α,β为其两个特征值,α>β),

如果行列式小于0直接舍去,因为曲率异号就表示已经有边缘效应了。用迹的平方除以行列式

 

三.为关键点赋予方向

离像素点近的地方梯度影响大(1.5σ),将梯度的赋值相加统计,实际上分了36个方向,每10°为一个方向。主方向就是统计出来值最大的方向,辅方向就是次大方向。

 

四.构建关键点描述符

KNN(K-Nearest Neighbor)算法:找两个图片当中所有描述符中找距离最近的两个点,其最有可能为同一关键点,将其连接起来。

描述符:即128维的向量(128个数),要通过描述符用KNN算法将两张图中对应的关键点匹配起来。关键点的匹配要用到描述符。

4.1.旋转不变性

首先将关键点周围的点区域旋转到主方向上,是因为希望SIFT具有旋转不变性,即将图片旋转一下其,描述符不发生变化。

4.2.确定选取区域的大小

m取3,d此处为4(就是区域横向与纵向划分的个数),小区域的边长就是mσ

4.3.描述符的计算

将所选区域分为(d 乘d个)4x4=16个子区域,通过高斯加权在每个子区域统计8个方向的梯度,就有8x16=128个数,按顺序写出来就是描述符。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值