OpenCV(22)SIFT尺度不变特征变换(纯理论)

SIFT算法(纯理论)

1、引言

        前面介绍了HarrisShi-Tomasi角点检测算法,这两种算法具有旋转不变性但不具有尺度不变性。以下图为例,在左侧小图中可以检测到角点,但是图像被放大后,在使用同样的窗口,就检测不到角点了。

        

2、原理

        尺度不变特征转换SIFT(Scale-invariant featuretransform)。它用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点并提取出其位置、尺度、旋转不变量,此算法由David Lowe在1999年所发表,2004年完善总结。应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对等领域。

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

3、步骤

1、尺度空间极值检测︰搜索所有尺度上的图像位置。通过高斯差分函数来识别潜在的对于尺度和旋转不变的关键点。
2、关键点定位︰在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。
3、关键点方向确定︰基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而保证了对于这些变换的不变性。
4、关键点描述︰在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度作为关键点的描述符,它允许比较大的局部形状的变形或光照变化。 

5、关键点匹配。舍弃一些次关键点。

1、尺度空间极值检测

   

 从上图可以明显看出,我们不能使用相同的窗口来检测具有不同比例的关键点。即便小拐角可以。但是要检测更大的拐角,我们将需要更大的窗口。为此,使用了比例空间滤波。找到具有各种σ值的图像的高斯拉普拉斯算子。LoG用作斑点检测器,可检测由于σ的变化而导致的各种大小的斑点。简而言之,σ用作缩放参数。上图中,低σ的高斯核对于较小的拐角给出较高的值,而高σ的高斯核对于较大的拐角而言非常合适。因此,我们可以找到整个尺度和空间上的局部最大值,这给了我们(x,y,σ)值的列表,这意味着在(x,y)在σ尺度上有一个潜在的关键点

        因此SIFT算法使用的是高斯差值,它是LoG的近似值。高斯差是作为具有两个不同σ的图像的高斯模糊差而获得的,设为σ。此过程是针对高斯金字塔中图像的不同八度完成的。如下图所示:

 一旦找到该DoG,便会在图像上搜索比例空间上的局部极值

例如,将图像中的一个像素与其8个相邻像素以及下一个比例的9个像素和前一个比例的9个像素进行比较。如果是局部极值,则可能是关键点。从根本上说,关键点是最好的代表。如下图所示:

 对于不同的参数,本文给出了一些经验数据,可以概括为:octaves=4,缩放尺度=5,初始σ=1.6,k=2等作为最佳值。

2、关键点定位

        

        一旦找到潜在的关键点位置,就必须对其进行优化以获取更准确的结果。他们使用了标度空间的泰勒级数展开来获得更精确的极值位置,如果该极值处的强度小于阈值(根据论文为0.03),则将其拒绝。在OpenCV DoG中,此阈值称为**ContrastThreshold**,它对边缘的响应较高,因此也需要删除边缘

        为此,使用类似于Harris拐角检测器的概念。他们使用2x2的Hessian矩阵(H)计算主曲率。从哈里斯拐角检测器我们知道,对于边缘,一个特征值大于另一个特征值。因此,这里他们使用了一个简单的函数。如果该比率大于一个阈值(在OpenCV中称为**edgeThreshold**),则该关键点将被丢弃。

        因此,它消除了任何低对比度的关键点和边缘关键点剩下的就是很可能的目标点

3、方向分配

        现在,将方向分配给每个关键点以实现图像旋转的不变性。根据比例在关键点位置附近采取邻域,并在该区域中计算梯度大小和方向。创建了一个具有36个覆盖360度的bin的方向直方图(通过梯度幅度和σ等于关键点比例的1:5的高斯加权圆窗加权)。提取直方图中的最高峰,并且将其超过80%的任何峰也视为计算方向。它创建的位置和比例相同但方向不同的关键点。它有助于匹配的稳定性。

4、关键点描述

        现在创建了关键点描述符。在关键点周围采用了16x16的邻域。它分为16个4x4大小的子块。对于每个子块,创建8 bin方向直方图。因此共有128个bin值可用。它被表示为形成关键点描述符的向量。除此之外,还采取了几种措施来实现针对照明变化,旋转等的鲁棒性。

5、关键点匹配

        通过识别两个图像的最近邻,可以匹配两个图像之间的关键点。但是在某些情况下,第二个最接近的匹配可能非常接近第一个,它可能是由于噪音或其他原因而发生的。在那种情况下,采用最接近距离与第二最接近距离之比如果大于0.8,将被拒绝

参考资料

https://www.bilibili.com/video/BV1Fo4y1d7JL?p=49&spm_id_from=pageDriver

http://woshicver.com/Sixth/5_4_SIFT%EF%BC%88%E5%B0%BA%E5%BA%A6%E4%B8%8D%E5%8F%98%E7%89%B9%E5%BE%81%E5%8F%98%E6%8D%A2%EF%BC%89%E7%AE%80%E4%BB%8B/

https://blog.csdn.net/molihong28/article/details/89296677?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162933950516780255232704%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162933950516780255232704&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-89296677.ecpm_v1_rank_v29&utm_term=sift%E7%AE%97%E6%B3%95&spm=1018.2226.3001.4187

https://blog.csdn.net/qq_37374643/article/details/88606351?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162933950516780255232704%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162933950516780255232704&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-3-88606351.ecpm_v1_rank_v29&utm_term=sift%E7%AE%97%E6%B3%95&spm=1018.2226.3001.4187

https://www.bilibili.com/video/BV1Fo4y1d7JL?p=56&spm_id_from=pageDriver

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_(*^▽^*)_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值