SIFT--尺度空间、高斯金字塔

2023-12-07 03:38

本文主要是介绍SIFT--尺度空间、高斯金字塔,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 尺度空间
    • 高斯金字塔
      • 高斯模糊
      • 下采样
      • 高斯金字塔的构造过程
    • 差分高斯金字塔构造过程

SIFT成名已久,但理解起来还是很难的,一在原作者Lowe的论文对细节提到的非常少,二在虽然网上有许多相应博文,但这些博文云里雾里,非常头疼,在查看了许多资料了,下面贴出我自己的一些理解,希望有所帮助。


Lowe把SIFT分为四个阶段:构建尺度空间、关键点的定位、方向分配、特征描述符。下面分别从这四个阶段来阐述。

尺度空间

尺度空间是一个比较晦涩的概念,但尺度空间在自然空间中又是真是存在的,这里我们先从尺度谈起,在自然界物体都是由大小不同的实体组成,我们描述着些实体比如说房子、桌子一般会说有多高或者有多大,那么这个多高和多大一般所说就是长度和占地面积。在肉眼可见的情况下,我们常用厘米、米这样的标量尺度来描述长度和占地面积。而很少用纳米和微米这样很小的尺度。也就是说尺度是用来衡量一个量的一个标准。即我们可以用厘米来描述一个桌子多高,也可以用纳米来描述(当然生活中是没必要的)。
再来一个地图的例子,有世界地图和北京地图俩幅。在世界地图上(大尺度下)我们只能看到的是每一个国家的分布,但这个国家的仔细信息我们在这个尺度上是看不到的。但在北京地图上(小尺度下)我们就能清晰看出每一个街道或者商铺的名称。所以往往大尺度下关注的是物体的全局信息,如物体的轮廓等,小尺度下则更注重物体的细节。

以上,对现实中物体的描述一定要在一个十分重要的前提下进行,即对自然界建模时的尺度。当我们用一个机器视觉系统分析未知场景时,计算机没有办法预先知道图像中物体尺度,因此我们需要同时考虑图像在多尺度下的描述,获知感兴趣物体的最佳尺度。图像的尺度空间表达指的就是图像在所有尺度下的描述。

高斯金字塔

提到信号多尺度描述,容易想到信号的金字塔化。用金字塔来作为图像尺度的表示形式时一般有俩个步骤:

1、用低通滤波器进行平滑。
2、对平滑过的图像进行下采样。

在用金字塔来作为尺度变化的描述时,我们要明确一点:这里的低通滤波器只能用高斯滤波。因为高斯核是实现尺度变换的唯一线性核(Lindeberg等人已经证明过)。而且不同的高斯核组成的尺度空间具有半群结构、尺度不变性和旋转不变性等。当金字塔的核为高斯核时,我们称为高斯金字塔。

所以我们首先要做的就是把处于不同尺度下的图片用高斯金字塔表示出来。
高斯金字塔分俩步:高斯模糊、下采样。

高斯模糊

高斯模糊在这片博文中有讲到,具体细节不阐述,这里贴出公式。

 G(x,y,σ)=12πσ2e(x2+y2)/2σ2 

 σ  在高斯函数中为正态分布的标准差。在用高斯金字塔表示尺度形式时  σ  定义为尺度大小。

我们定义原图像大小为

 I(x,y) 

尺度空间定义为原图像与高斯模糊卷积得到,尺度空间的表达式为
 L(x,y,σ)=G(x,y,σ)I(x,y) 

很明显,在  σ>=0  才有意义,当  σ=0  表示对原图像无操作。当  σ  越大,尺度越大,也就是模糊程度越高。

下采样

生成对应的显示缩略图,分辨率是逐渐降低的。这里的下采样因子是2。
具体事例参见下图:
高斯金字塔

高斯金字塔的构造过程

这里我们先给出构造好的高斯金字塔,并解释其中用到的各种参数。
高斯金字塔
如图,这个高斯金字塔有5组(octave),每个Octave内又包含若干层。所有我们定义第一个参数   O  ,表示高斯金字塔的组数。
 σ  我们称为尺度参数,第一组第一层的尺度参数为  σ  ,且Lowe认为最优的  σ=1.6 
且组间尺度关系倍数为2,如第二组的尺度参数是第一组尺度参数的俩倍(同一层的俩倍)。但组内尺度参数是不同的,且有比例关系  σn=kn1σ1   σ1  指的是该组的第一层尺度,   k  称为比例系数,作者给出   k=21s  。这个关系适用于高斯金字塔的所有层。

具体步骤:

1、为获取更多的稳定的特征点数目,对原始图像做放大一倍操作,得到尺度参数  σ=1  (作者这里假定原始图像已有 σ=0.5  的高斯模糊)
2、所以为了得到第一组第一层图片的  σ=1.6  ,运用高斯模糊的半群性质。要对放大后的图像作  1.62(0.5×2)2  的高斯平滑。
3、得到第一组第一层图片的尺度后,运用公式  σn=kσ1  通过高斯模糊分别计算其它层的结果。
4、我们将第一组倒数第三层的图片作比例因子为2的降采样,结果作为第二组的第一层(第二组第一层的尺度是第一组第一层尺度的俩倍)。同理,运用公式  σn=k 2σ1  通过高斯模糊分别计算其它层的结果。
5、将第二组第三层的图片做比例因子为2的降采样,结果作为第三层第一组的结果,同样要注意初始尺度的变化,其它处理跟第二组同。
6、后面每组的处理都跟前面相同。

差分高斯金字塔构造过程

顺便阐述差分金字塔的构造过程,然后再贴出解释
在Lindeberg的论文《Scale-space theory: A basic tool for analysing structures at different scales》 指出尺度规范化的LoG算子具有真正的尺度不变性。即我们可以在不同尺度的图像(已经经过高斯卷积)上进行拉普拉斯运算(二阶导数),并求极值点,从而求出关键点。但这样做运算很大,Lowe做了近似处理。将高斯差分算子DOG近似于LoG算子。

差分高斯金字塔的公式如下:

D(x,y,σ)=(G(x,y,kσ)G(x,y,σ))I(x,y)=L(x,y,kσ)L(x,y,σ) 

简单来说, 高斯金字塔每一组内相邻俩层的图片相减得到差分高斯金字塔。具体见下图。

差分高斯金字塔

极值点的检测是在差分高斯金字塔中进行的,Lowe提出每一层极值点是在三维空间中比较获得的,即这个极值点是同相邻俩层和本层周围点共26个点比较得出的,注意这里极值点是备选关键点,后面还要进一步处理,具体如下图:
极值点检测

高斯金字塔和差分高斯金字塔整个过程见下图:

高斯金字塔和差分高斯金字塔

一些解释:因为Lowe原文中对具体实现细节描述甚少,网上的一些资料也都是交代的模模糊糊,比如每层间的尺度的计算,都讲的不清楚,我也只贴出具体关系和已理解的部分。

1、高斯金字塔中每层图片数如何确立?
高斯金字塔每个Octave必须有s+3幅picture。因为极值点检测是在差分高斯金字塔中进行的,即每一层的极值点是必须有相邻俩层比较才能得出。所以差分高斯金字塔每组必须有s+2幅picture,因为差分高斯金字塔是由高斯金字塔相邻俩幅picture减去得来。所以反推得出高斯金字塔中每组有s+3幅picture。作者推荐   s=3 

2、尺度空间的连续性如何体现?
Lowe设  s=3  ,且有   k=21s  ,则第一组中的尺度依次为:

 σ,213σ,223σ,233σ,243σ,253σ 

相应的差分高斯金字塔中的尺度为:
 σ,213σ,223σ,233σ,243σ 

极值点只能在差分高斯金字塔的中间三层取得,我们依次写下可以取得极值点的尺度:
 213σ,223σ,233σ,243σ,2213σ,2223σ,2233σ,2243 

我们可以发现这些数据是离散连续的,也就是说通过高斯金字塔描述的尺度空间是连续的,
这样在尺度空间的极值点确定过程中,我们不会漏掉任何一个尺度上的极值点。

3、下一组的第一层图片如何得到?
下一组第一层的图片由上一组倒数第三层下采样得到。由  2  中可知,倒数第三层的尺度为   233σ=2σ  ,所以第二组第一层图片的尺度正好是第一组第一层的俩倍。
具体过程也有从Lowe的源码反推的,这里不贴了。

这篇关于SIFT--尺度空间、高斯金字塔的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/464373

相关文章

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【机器学习】高斯网络的基本概念和应用领域

引言 高斯网络(Gaussian Network)通常指的是一个概率图模型,其中所有的随机变量(或节点)都遵循高斯分布 文章目录 引言一、高斯网络(Gaussian Network)1.1 高斯过程(Gaussian Process)1.2 高斯混合模型(Gaussian Mixture Model)1.3 应用1.4 总结 二、高斯网络的应用2.1 机器学习2.2 统计学2.3

高斯平面直角坐标讲解,以及地理坐标转换高斯平面直角坐标

高斯平面直角坐标系(Gauss-Krüger 坐标系)是基于 高斯-克吕格投影 的一种常见的平面坐标系统,主要用于地理信息系统 (GIS)、测绘和工程等领域。该坐标系将地球表面的经纬度(地理坐标)通过一种投影方式转换为平面直角坐标,以便在二维平面中进行距离、面积和角度的计算。 一 投影原理 高斯平面直角坐标系使用的是 高斯-克吕格投影(Gauss-Krüger Projection),这是 横

高斯混合模型(GMM)的EM算法实现

在 聚类算法K-Means, K-Medoids, GMM, Spectral clustering,Ncut一文中我们给出了GMM算法的基本模型与似然函数,在EM算法原理中对EM算法的实现与收敛性证明进行了详细说明。本文主要针对如何用EM算法在混合高斯模型下进行聚类进行代码上的分析说明。 GMM模型: 每个 GMM 由 K 个 Gaussian 分布组成,每个 Gaussian 称为一个“C

【matlab】仿真4PSK调制信号在高斯信道下的性能,并与理论分析结果比较——仿真篇

三、4PSK调制信号在高斯信道下的性能仿真[--详细解析--] 1. MATLAB进行仿真程序如下: %{----------------------------------------------------------------------------- File: 说明文件

【matlab】仿真4PSK调制信号在高斯信道下的性能,并与理论分析结果比较——理论篇

1.     试编写程序,仿真4PSK调制信号在高斯信道下的性能,并与理论分析结果比较。   一、4PSK调制信号在高斯信道下的性能仿真 仿真4PSK的调制以及解调的仿真图,包括已调信号的波形,解调后的信号波形,眼图和误码率。 在仿真的基础上分析比较了各种调制方法的性能,并比较仿真模型与理论性能,证明了仿真模型是否有效。 目前,改进的数字调制方式主要有偏置正交相移键控,π/4正交差分相移

以人口金字塔图为例,在线绘制左右双侧堆叠条形图

导读: 人口金字塔(population pyramids)用于展示一个特定人口的年龄和性别分布。本质上是一种水平条形图。左侧是男性的数据,右侧是女性的数据。 Proc Natl Acad Sci U S A.文章《Demographic change and assimilation in the early 21st-century United States》fig 1的人口金字

机器学习项目——基于机器学习(RNN LSTM 高斯拟合 MLP)的锂离子电池剩余寿命预测方法研究(代码/论文)

完整的论文代码见文章末尾 以下为核心内容和部分结果 摘要 机器学习方法在电池寿命预测中的应用主要包括监督学习、无监督学习和强化学习等。监督学习方法通过构建回归模型或分类模型,直接预测电池的剩余寿命或健康状态。无监督学习方法则通过聚类分析和降维技术,识别电池数据中的潜在模式和特征。强化学习方法通过构建动态决策模型,在电池运行过程中不断优化预测策略和调整参数。上述方法不仅可以提高预测精度,还可以在

平均场变分推断:以混合高斯模型为例

文章目录 一、贝叶斯推断的工作流二、一个业务例子三、变分推断四、平均场理论五、业务CASE的平均场变分推断求解六、代码实现 一、贝叶斯推断的工作流 在贝叶斯推断方法中,工作流可以总结为: 根据观察者的知识,做出合理假设,假设数据是如何被生成的将数据的生成模型转化为数学模型根据数据通过数学方法,求解模型参数对新的数据做出预测 在整个pipeline中,第1点数据的生成过程

高斯模糊实现小结

转自:http://blog.csdn.net/zddblog/article/details/7450033 高斯模糊是一种图像滤波器,它使用正态分布(高斯函数)计算模糊模板,并使用该模板与原图像做卷积运算,达到模糊图像的目的。 N维空间正态分布方程为: 其中,σ是正态分布的标准差,σ值越大,图像越模糊(平滑)。r为模糊半径,模糊半径是指模板元素到模板中心的距离。如二维模板