【计算机视觉】SIFT原理

版权声明:Copyright [Qlei] All rights Reserved https://blog.csdn.net/qq_37367702/article/details/88609909

1、SIFT概述

  SIFT,全称为尺度不变特征变换(Scale-invariant feature transform)。由David Lowe提出,SIFT特征包括兴趣点检测器和描述子,SIFT描述子具有非常强的稳健性。SIFT描述符经常和许多不同的兴趣点检测器相结合使用,有时甚至在整幅图像上密集的使用。SIFT特征对于尺度,旋转和亮度都具有不变性,因此,它可以用于三维视角和噪声的可靠匹配。

SIFT可以解决的问题

  • 目标的旋转、缩放、平移(RST)

  • 图像仿射/投影变换(视点viewpoint)

  • 弱光照影响(illumination)

  • 部分目标遮挡(occlusion)

  • 杂物场景(clutter)

  • 噪声

2、SIFT算法实现步骤

2.1 尺度空间极值检测

高斯核是唯一的线性核,尺度空间理论的主要思想是利用高斯核对原始图像进行尺度变换,获得图像多尺度下的尺度空间表示序列,对这些序列进行尺度空间特征提取,二维高斯函数为

  在图像位置和尺度变化下,通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点.。

在这一步里面,主要是建立高斯金字塔和DOG(Difference of Gaussan)金字塔,然后在DOG金字塔里面进行极值检测,以初步确定特征点的位置和所在尺度。

(1)高斯金子塔

高斯金子塔的构建过程可分为两步: (1)对图像做高斯平滑; (2)对图像做降采样。 为了让尺度体现其连续性,在简单 下采样的基础上加上了高斯滤波。 一幅图像可以产生几组(octave) 图像,一组图像包括几层 (interval)图像。

高斯图像金字塔共o组、s层, 则有:σ——尺度空间坐标; s——sub-level层坐标; σ0——初始尺度; S——每组层数(一般为3~5)

最后可将组内和组间尺度 归为:

i——金字塔组数 n——每一组的层数。

(2)DOG(Difference of Gaussan)金字塔

DOG金字塔的第一层的尺度因子与高斯金字塔的第一层是一致的,其它阶也一样

(3)DOG空间的极值检测

在上面建立的DOG尺度空间金字塔中,为了检测到DOG空间的最大值和最小值,DOG尺度空间中中间层(最底层和最顶层除外)的每个像素点需要跟同一层的相邻8个像素点以及它上一层和下一层的9个相邻像素点总共26个相邻像素点进行比较,以确保在尺度空间和二维图像凯南都检测到局部极值,如下图所示。

2.2兴趣点定位

  尺度空间极值检测产生太多的关键点的候选人,其中一些是不稳定的。这些候选位置点通过滤波去除不稳定点。基于一些准则,比如认为低于对比度和位于边上的点不是兴趣点,我们可以去除一些候选兴趣点。

2.3 定向分配

  在这一步中,每个关键点指定一个或多个方向基于局部图像梯度方向。这是实现的关键一步旋转不变性,作为关键点描述符可以表示相对于这个方向,因此实现图像旋转不变性

确定特征点主方向

2.4 兴趣点描述

  上述兴趣点位置描述子给出了兴趣点的位置和尺度信息。为了实现旋转不变性,基于每个点周围图像梯度的方向和大小,SOFT描述子又引入了参考方向。SIFT描述子使用主方向描述参考方向。主方向使用方向直方图(以大小为权重)来度量。基于位置尺度和方向信息来描述子。

  首先创建一组方向直方图在4×4像素社区与8箱。这些直方图计算样本大小和方向值的16×16区域周围的关键点,这样每个直方图包 含4×4次区域的原始样本附近地区。高斯函数的大小进一步加权{\ displaystyle \σ}\σ等于一个描述符窗口的宽度的一半。描述符就变成了所有这些直方图的值的一个向量。因为有4×4 = 16直方图每8箱向量有128个元素。然后这个向量归一化单位长度以提高仿射不变性照明的变化。减少非线性的影响照明应用阈值为0.2和向量规范化。阈值的过程,也称为夹紧,可以提高匹配结果即使不存在非线性照明效果。[18]0.2阈值的经验选择,取代了固定阈值与一个系统计算,可以提高匹配结果。

2.5 兴趣点匹配

  目标的识别是通过两点 集内关键点描述子的比对来完成。具有128维的关键点描述子的相似 性度量采用欧式距离。于将一幅图像中的特征匹配到另一幅图像的特征,一种稳健的准则是使用这两个特征距离和两个最匹配特征距离的比率。相比于图像的其他特征,该准则保证能够找到足够相似的唯一特征。使用该方法可以使错误的匹配数降低。

  关键点的匹配可以采用穷举法来完成,但是这样耗费的时间太多,一 般都采用kd树的数据结构来完成搜索。搜索的内容是以目标图像的关 键点为基准,搜索与目标图像的特征点最邻近的原图像特征点和次邻 近的原图像特征点。

2.6 消除错配

通过相似性度量得到潜在匹配对,其中不可避免会产生一些错误匹配,所以需要根据集合限制和其他附加约束消除错配,提高鲁棒性。

参考资料

Python计算机视觉

SIFT算法

猜你喜欢

转载自blog.csdn.net/qq_37367702/article/details/88609909