引言

尺度不变特征转换(Scale-invariant feature transform或SIFT)是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由 David Lowe在1999年所发表,2004年完善总结。SIFT算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。

四个步骤

  1. 尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。

  2. 关键点定位:在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。

  3. 方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。

  4. 关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。

本文沿着Lowe的步骤,参考Rob Hess及Andrea Vedaldi源码,详解SIFT算法的实现过程。

尺度空间理论

自然界中的物体随着观测尺度不同有不同的表现形态,例如我们形容建筑物用“米”,观测分子、原子等用“纳米”。更形象的例子比如Google地图,滑动鼠标轮可以改变观测地图的尺度,看到的地图绘制也不同;还有电影中的拉伸镜头等。尺度空间中各尺度图像的模糊程度逐渐变大,能够模拟人在距离目标由近到远时目标在视网膜上的形成过程,尺度越大图像越模糊

SIFT特征表达

为什么讨论尺度空间理论

计算机分析未知场景时并不预先知道图像中物体的尺度,需要同时考虑图像在多尺度下的描述,获知感兴趣物体的最佳尺度。另外如果不同的尺度下都有同样的关键点,那么在不同的尺度的输入图像下就都可以检测出来关键点匹配,也就是尺度不变性,图像的尺度空间表达就是图像在所有尺度下的描述。

SIFT特征表达

高斯金字塔

图像的金字塔模型是指,将原始图像不断降阶采样,得到一系列大小不一的图像,由大到小,从下到上构成的塔状模型。原图像为金子塔的第一层,每次降采样所得到的新图像为金字塔的一层(每层一张图像),每个金字塔共n层。金字塔的层数根据图像的原始大小和塔顶图像的大小共同决定,其计算公式如下:

n=log2{min(M,N)}t,t[0,log2{min(M,N)})

其中M,N为原图像的大小,t为塔顶图像的最小维数的对数值。如,对于大小为512×512的图像,金字塔上各层图像的大小如表所示,当塔顶图像为4×4时,n=8,当塔顶图像为2×2时,n=9。

图像大小 512 216 128 64 32 16 8 4 2 1
金字塔层数 1 2 3 4 5 6 7 8 9 10

2002年Mikolajczyk在详细的实验比较中发现尺度归一化的高斯拉普拉斯函数σ22G的极大值和极小值同其它的特征提取函数,例如:梯度、Hessian或Harris角特征比较,能够产生最稳定的图像特征。而Lindeberg早在1994年就发现高斯差分函数(Difference of Gaussian ,简称DOG算子)与尺度归一化的高斯拉普拉斯函数σ22G非常近似:

Gσ=σ2G

利用差分近似代替微分,则有:

σ2G=GσG(x,y,kσ)G(x,y,σ)kσσ


G(x,y,kσ)G(x,y,σ)(k1)σ22G

实际上k-1是个常数,并不影响极值点位置的求取。

SIFT特征表达

左边是高斯差分函数,右边是高斯拉普拉斯函数,要求高斯拉式函数的极值,问题就可以转化为:

求解高斯差分函数的极值

也就是可以使用更高效的高斯差分算子代替拉普拉斯算子在Dog的相应值图像上进行极值检测:
D(x,y,σ)=(G(x,y,kσ)G(x,y,σ))×I(x,y)=L(x,y,kσ)L(x,y,σ)

尺度空间参数

σ(o,s)=σ02o+sS o[0,...,O],s[0,...S+2]

则有:

σ(o+1,s)σ(o,s+1)=σ02o+1+sS=2×σ02o+sS=2×σ(o,s)=σ02o+s+1S=21S×σ02o+sS=21S×σ(o,s)

也即是组间尺度呈2倍关系,组内层间呈21S倍关系,若令k=21S则所有的尺度序列可以写作:
2o1(σ,kσ,k2σ,...,kS+2σ),k=21S

其中,o为金字塔组数,需要S个尺度时每组金字塔有S+3层高斯图像。

k=21S,S=3k3=21S×3=213×3=2

优点

(1)SIFT特征具有旋转、尺度、平移、视角及亮度不变性,有利于对目标特征信息进行有效表达。
(2)SIFT特征对参数调整鲁棒性好,在进行特征描述时,根据场景需要可调整适宜的特征点数量,以便进行特征分析。

缺点

计算过程繁琐,如果不借助硬件加速或专门的图像处理器很难达到实时要求。

与其他特征的对比

项目 LBP HOG SIFT
优点 计算简单,灰度/旋转不变性 计算高效 尺度/旋转/仿射不变
缺点 表示较为单一 不具有旋转不变性 计算实现较复杂
领域 结构化特征表达,人脸/指纹识别等 非刚性目标检测,允许目标有一定的形变,如人体检测 适用于图像匹配

参考

SIFT算法详解
SIFT特征详解
OpenCV SIFT原理详解

相关文章:

  • 2021-11-15
  • 2021-08-20
  • 2018-05-19
  • 2021-09-07
  • 2021-11-27
  • 2021-11-27
猜你喜欢
  • 2021-10-12
  • 2021-11-29
  • 2021-11-10
  • 2021-12-07
  • 2021-09-21
  • 2021-11-19
  • 2021-12-17
相关资源
相似解决方案