浅显易懂SIFT

致敬Lowe

SIFT共分为四步:
1.尺度空间极值检测:尺度空间是什么鬼?极值又是什么鬼?容我一一道来。尺度空间,说的是,我们要在不同的尺度下来检测,说的是我们在什么地方检测;极值,说的是,我们要检测的是什么,检测的是极值。一句话来说是这样的:我们要在不同尺度的图片上分别检测不同尺度下的极值。所以说,最后我们检测出来的那些极值,对应的是不同尺度下的极值,而这些不同尺度下的极值,经过筛选,最后对应的,就是一个个关键点,而一个个关键点,对应的,就是一个个descriptor!这个稍后再聊。

下面来详细说说这个极值点是怎么检测的:
首先,我们想想,我们检测一个图片上的特征点一般是用什么方式呢?高斯滤波!滤,滤,滤,滤的就是那些不是很重要的部分,得到重要的部分,比如说,轮廓或者纹理。高斯滤波使用什么公式呢?下面:
图像的尺度空间被定义为函数L(x,y,σ),它是由可变尺度高斯函数G(x,y,σ)与输入图像I(X,Y)的卷积产生的:
在这里插入图片描述
其中*是x和y中的卷积运算.并且:

在这里插入图片描述
随着参数的变化,滤波的程度不一样,最后形成一组图片,如下图:
在这里插入图片描述
这个是在某个图像尺度下的一组滤波图像(Octave1)。

然后,我们通过对这组图片相减,得到高斯差分函数,进一步得到更加代表特征的像素点,如下图:
在这里插入图片描述

然后,我们下采样,得到一组尺度不同的一组滤波图像(Octave2)——这个操作就是为了满足尺度不同的时候,我们也能有对应不同尺度的关键点——即尺度不变的真谛!
在这里插入图片描述

再然后呢,我们就对左边的一组一组不同尺度图片中的点检测了!检测哪些点是极值!看图:
在这里插入图片描述
通过比较一个像素(用X标记)与当前和相邻尺度(用圆圈标记)的3×3区域中的26个邻居来检测高斯差分图像的最大值和最小值。


2.关键点定位:好了,现在我们已经得到了不同尺度下的极值了,然后,我们通过稳定性度量(比如标度采样之类的),来筛选一下其中满足条件的那些点,作为关键点;然后,我们光得到这些关键点的位置可不行,我们还得加点东西。简单来说,我们以{位置尺度(即图片大小),方向}来表示关键点
在这里插入图片描述
该图显示了关键点选择的阶段。(a)233x189像素的原始图像。(b)在高斯差值函数的最大值和最小值处的初始832个关键点位置。关键点显示为表示比例,方向和位置的向量。(c)在对最小对比度应用阈值后,仍然存在729个关键点。(d)最终的536个关键点仍然在主曲率比率的额外阈值之后。

没错,我们就是用黄色的箭头来表示一个个关键点的。这个箭头是怎么计算的呢?接着往下看。


3.方向分配:首先说一说为什么要给关键点分配方向,假设我们现在通过相机拍摄了一个物体的好多照片,我们怎么才能把这些图片很好的融合在一起?我们首先要把这个物体的方向给确定,这样所有的照片拍摄的物体我们就知道它的绝对方向了,这样我们才能更好地利用图像的信息。而同时,我们也要考虑,我们拍摄的照片, 很可能是不同的尺度,而且拍摄的物体的大小也不能保证一致,所以我们才需要不同尺度下的参考!这就是为什么要加尺度这么一个属性的原因。

方向的计算很简单,但是很好用:
对于每个图像样本,L(x,y),在此尺度下,使用像素差异预先计算梯度幅度m(x,y)和方向θ(x,y):
在这里插入图片描述
上面的公式计算箭头长度,下面的公式计算箭头方向,完美。
方向直方图中的峰值对应于局部梯度的主导方向。检测直方图中的最高峰,然后使用在最高峰的80%内的任何其他局部峰也创建具有该方向的关键点。 因此,对于具有相似幅度的多个峰值的位置,将在相同位置和比例但是不同方向上创建多个关键点。只有大约15%的点被分配了多个方向,但这些对于匹配的稳定性有很大贡献。最后,抛物线拟合最接近每个峰的3个直方图值,以插入峰值位置获得更好的准确性。


4.关键点描述符:下面来说说为什么要有这个东西,不是说{位置,尺度,方向}已经都有了吗?为什么还需要这个东西?descriptor是什么玩意?怎么就凭空出来个这么个玩意?Lowe想干嘛?这里我又要致敬一下Lowe了,真TM的是天才!这位老爷爷觉得吧,光有这个不行,根本就不够用,准确率根本不够高,我得精益求精:

在这里插入图片描述
看到上面这个图了吧?什么玩意?跟蝌蚪似的?难道是显微镜下看到的。。。别想歪了。首先说明一下左边这个图是怎么来的:我们首先取出一个关键点,以该关键点为中心画个圆,然后在圆内取样,图片里取了8*8=64个点;我们计算每个图像梯度幅度和方向,并以此来表示采样点。图像梯度的方向就是箭头的方向,图像梯度的幅度就是箭头的长度。再来说下右边的图,我们把左边的采样点分为4个区域,然后我们进行矢量求和。我们把其中最长的那个作为descriptor的主方向——重点来了——Lowe把所有的箭头都相对于主方向旋转了一下,什么意思?看下图:
在这里插入图片描述
黑色箭头是主方向。
发现问题了吗?如何通过上面的方向确定了主方向,无论你怎么旋转,我们都能知道该物体的绝对方向了!也就是说,我们拿到了一把可以确定方向的钥匙!但是恐怖的不在这里,你们想想咱们的主方向是谁的主方向?是每个关键点的主方向!我们得到了每一个关键点的主方向,所以,我们可以用这个主方向去匹配每一对图像的关键点了!


over

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值