SIFT原理(尺度不变特征变换匹配算法:Scale-invariant feature transform)
SIFT算法分解为如下四步:
- 尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。
- 关键点定位:在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。
- 方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。
- 关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。
高斯模糊
通常,图像处理程序只需要计算 ( 6 σ + 1 ) ∗ ( 6 σ + 1 ) (6\sigma + 1)*(6\sigma + 1) (6σ+1)∗(6σ+1)的矩阵就可以保证相关像素影响。根据 σ \sigma σ的值,计算出高斯模板矩阵的大小。同时,为了确保模板矩阵中的元素在[0,1]之间,需将模板矩阵归一化。
G ( x , y , σ ) = 1 2 π σ 2 e − ( x − m / 2 ) 2 + ( y − n / 2 ) 2 2 σ 2 G(x,y,\sigma) = \frac{1}{2\pi \sigma^2} e^{-\frac{(x-m/2)^2+(y-n/2)^2}{2\sigma^2}} G(x,y,σ)=2πσ21e−2σ2(x−m/2)2+(y−n/2)2
分离高斯模糊
造成边缘图像缺失, σ \sigma σ越大,图像边缘缺失像素越多。
二维矩阵变换得到的效果也可以通过在水平方向进行一维高斯矩阵变换加上竖直方向的一维高斯矩阵变换得到。
** 优点 **
- 加速计算。因为这样只需要 O ( n ∗ M ∗ N ) + O ( m ∗ M ∗ N ) O(n*M*N)+O(m*M*N) O(n∗M∗N)+O(m∗M∗N)次计算,而二维不可分的矩阵则需要次计算O(mnM*N),其中,m,n为高斯矩阵的维数,M,N为二维图像的维数。
- 两次一维的高斯卷积将消除二维高斯矩阵所产生的边缘。(关于消除边缘的论述如下图2.4所示, 对用模板矩阵超出边界的部分——虚线框,将不做卷积计算。如图2.4中x方向的第一个模板15,将退化成13的模板,只在图像之内的部分做卷积。
尺度空间极值检测
尺度空间理论的基本思想
在图像信息处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得多尺度下的尺度空间表示序列,对这些序列进行尺度空间主轮廓的提取,并以该主轮廓作为一种特征向量,实现边缘、角点检测和不同分辨率上的特征提取等。
尺度空间满足视觉不变性
- 当我们用眼睛观察物体时,一方面当物体所处背景的光照条件变化时,视网膜感知图像的亮度水平和对比度是不同的,因此要求尺度空间算子对图像的分析不受图像的灰度水平和对比度变化的影响,即满足灰度不变性和对比度不变性。
- 另一方面,相对于某一固定坐标系,当观察者和物体之间的相对位置变化时,视网膜所感知的图像的位置、大小、角度和形状是不同的,因此要求尺度空间算子对图像的分析和图像的位置、大小、角度以及仿射变换无关,即满足平移不变性、尺度不变性、欧几里德不变性以及仿射不变性
尺度空间的表示
一个图像的尺度空间, L ( x , y , σ ) L(x,y,\sigma) L(x,y,σ)定义为一个变化尺度的高斯函数 G ( x , y , σ ) G(x,y,\sigma) G(x,y,σ)与原图像 I ( x , y ) I(x,y) I(x,y)的卷积。
KaTeX parse error: Undefined control sequence: \* at position 31: … G(x,y,\sigma) \̲*̲ I(x,y)
σ \sigma σ是尺度空间因子,值越小表示图像被平滑的越少,相应的尺度也就越小。大尺度对应于图像的概貌特征,小尺度对应于图像的细节特征。
高斯金字塔的构建
尺度空间在实现时使用高斯金字塔表示,高斯金字塔的构建分为两部分:
- 对图像做不同尺度的高斯模糊;
- 对图像做降采样(隔点采样,大小减为一半)。
-
金字塔层数
每个金字塔共n层。金字塔的层数根据图像的原始大小和塔顶图像的大小共同决定,其计算公式如下:
n = log 2 m i n ( M , N ) − t t ϵ [ 0 , log 2 m i n ( M , N ) ) n = \log_2 {min(M,N)} - t t\epsilon [0,\log_2 {min(M,N)}) n=log2min(M,N)−ttϵ[0,log2min(M,N))
其中M,N为原图像的大小,t为塔顶图像的最小维数的对数值。如,对于大小为512512的图像,金字塔上各层图像的大小如表3.1所示,当塔顶图像为44时,n=7,当塔顶图像为2*2时,n=8。
-
金字塔每层的组(Octave)
图像金字塔每层的一张图像使用不同参数做高斯模糊,使得金字塔的每层含有多张高斯模糊图像,将金字塔每层多张图像合称为一组(Octave).
另外,降采样时,高斯金字塔上一组图像的初始图像(底层图像)是由前一组图像的倒数第三张图像隔点采样得到的。
第0组(即第-1组): 0 1 2 3 4 5
第1组: 6 7 8 9 10 11
第2组: ?
则第2组第一张图片根据第一组中索引为9的图片降采样得到,其它类似
高斯差DOG分金字塔
- 高斯拉普拉斯函数\sigma^2 \nabla^2 G
尺度归一化的高斯拉普拉斯函数的极大值和极小值同其它的特征提取函数(梯度,Hessian或Harris角特征比较),能够产生最稳定的图像特征。 - 高斯差分函数
与尺度归一化的高斯拉普拉斯函数非常近似,利用差分近似代替微分,则有:
σ 2 ∇ 2 G = ∂ G ∂ σ ≈ G ( x , y , k σ