• 尺度空间

    • 高斯金字塔

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

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


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

尺度空间

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

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

高斯金字塔

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

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

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

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

高斯模糊

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

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

\ G(x,y,\sigma) =\frac{1}{2\pi \sigma^2}e^{-{(x^2+y^2)}/2\sigma^2} \
 σ  \ \sigma \ 在高斯函数中为正态分布的标准差。在用高斯金字塔表示尺度形式时  σ  \ \sigma\ 定义为尺度大小。

我们定义原图像大小为

 I(x,y) 

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

 L(x,y,σ)=G(x,y,σ)⨂I(x,y) 

\ L(x,y,\sigma)=G(x,y,\sigma)\bigotimes I(x,y)\
很明显,在  σ>=0  \ \sigma>=0\ 才有意义,当  σ=0  \ \sigma=0\ 表示对原图像无操作。当  σ  \ \sigma\ 越大,尺度越大,也就是模糊程度越高。

下采样

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

高斯金字塔的构造过程

这里我们先给出构造好的高斯金字塔,并解释其中用到的各种参数。

如图,这个高斯金字塔有5组(octave),每个Octave内又包含若干层。所有我们定义第一个参数  O  \ \ O\ ,表示高斯金字塔的组数。
 σ  \ \sigma\ 我们称为尺度参数,第一组第一层的尺度参数为 σ  \ \sigma\ ,且Lowe认为最优的 σ=1.6  \ \sigma=1.6 \ 。
且组间尺度关系倍数为2,如第二组的尺度参数是第一组尺度参数的俩倍(同一层的俩倍)。但组内尺度参数是不同的,且有比例关系 σn=kn−1⋅σ1  \ \sigma_n=k^{n-1}\cdot \sigma_1\ , σ1  \ \sigma_1\ 指的是该组的第一层尺度,  k  \ \ k\ 称为比例系数,作者给出  k=21s  \ \ k=2^{\frac{1}{s}} \ 。这个关系适用于高斯金字塔的所有层。

具体步骤:

1、为获取更多的稳定的特征点数目,对原始图像做放大一倍操作,得到尺度参数 σ=1  \ \sigma=1\ (作者这里假定原始图像已有σ=0.5  \sigma=0.5 \ 的高斯模糊)
2、所以为了得到第一组第一层图片的 σ=1.6  \ \sigma=1.6\ ,运用高斯模糊的半群性质。要对放大后的图像作 1.62−(0.5×2)2−−−−−−−−−−−−−√  \ \sqrt{1.6^2-(0.5\times2)^2} \ 的高斯平滑。
3、得到第一组第一层图片的尺度后,运用公式 σn=k⋅σ1  \ \sigma_n=k\cdot\sigma_1 \ 通过高斯模糊分别计算其它层的结果。
4、我们将第一组倒数第三层的图片作比例因子为2的降采样,结果作为第二组的第一层(第二组第一层的尺度是第一组第一层尺度的俩倍)。同理,运用公式 σn=k⋅ 2σ1  \ \sigma_n=k\cdot\ 2 \sigma_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,σ) 

\\D(x,y,\sigma)=(G(x,y,k\sigma)-G(x,y,\sigma))\bigotimes I(x,y) =L(x,y,k\sigma)-L(x,y,\sigma) \
简单来说, 高斯金字塔每一组内相邻俩层的图片相减得到差分高斯金字塔。具体见下图。

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

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

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

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

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

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

\ \sigma , 2^{\frac {1}{3}}\sigma,2^{\frac {2}{3}}\sigma,2^{\frac {3}{3}}\sigma,2^{\frac {4}{3}}\sigma,2^{\frac {5}{3}}\sigma \
相应的差分高斯金字塔中的尺度为:

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

\ \sigma , 2^{\frac {1}{3}}\sigma,2^{\frac {2}{3}}\sigma,2^{\frac {3}{3}}\sigma,2^{\frac {4}{3}}\sigma \
极值点只能在差分高斯金字塔的中间三层取得,我们依次写下可以取得极值点的尺度:

 213σ,223σ,233σ,243σ,2⋅213σ,2⋅223σ,2⋅233σ,2⋅243⋯ 

\ 2^{\frac{1}{3}}\sigma,2^{\frac{2}{3}}\sigma,2^{\frac{3}{3}}\sigma,2^{\frac{4}{3}}\sigma,\,\,\,\,2\cdot2^{\frac{1}{3}}\sigma,2\cdot2^{\frac{2}{3}}\sigma,2\cdot2^{\frac{3}{3}}\sigma,2\cdot2^{\frac{4}{3}}\cdots\

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

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

SIFT--尺度空间、高斯金字塔相关推荐

  1. Sift中尺度空间、高斯金字塔、差分金字塔(DOG金字塔)、图像金字塔

    本文为转发文章,只作私人记录用途.原文及其相关讨论请移步: https://blog.csdn.net/dcrmg/article/details/52561656 一. 图像金字塔 图像金字塔是一种 ...

  2. AI笔记: 计算机视觉之SIFT特征检测: 尺度空间、二维高斯函数、高斯金字塔

    SIFT概述 SIFT的全称是Scale Invariant Feature Transform(尺度不变特征变换),是由加拿大教授David G.Lowe在1999年发表于计算机视觉国际会议,200 ...

  3. 图像金字塔、高斯金字塔、差分金字塔(DOG金字塔)、尺度空间、DoG (Difference of Gaussian)角点检测

    [图像金字塔] 图像金字塔是一种以多分辨率来解释图像的结构,通过对原始图像进行多尺度像素采样的方式,生成N个不同分辨率的图像.把具有最高级别分辨率的图像放在底部,以金字塔形状排列,往上是一系列像素(尺 ...

  4. OpenCV SIFT源码讲解——构建高斯金字塔

    目录 一.构建方法 二.函数重要点注释 一.构建方法 高斯金字塔每层图像的尺度为:.理论上金字塔每层图像可以从原图做的高斯滤波得到.但是实际操作中,每组的第一张影像(除第一组)是上一组倒数第三张影像降 ...

  5. 高斯金字塔的构建步骤

    转自: https://www.cnblogs.com/starfire86/p/5735061.html SIFT(Scale-Invariant Feature Transform,尺度不变特征转 ...

  6. 【图像超分辨率】遥感数据的高斯金字塔尺度上推方法研究

    0 引言: 本文提出了一种利用高斯金字塔的图像模糊特性进行遥感数据尺度上推的方法,在对金字塔每一层的数据高斯模糊的基础上,通过多次连续的降采样,得到一系列不同尺度的数据,从而满足实际应用的空间分辨率要 ...

  7. 高斯金字塔matlab,图像处理之高斯金字塔(matlab)

    高斯金字塔可以作为 图像特征提取 的预处理步骤 ---------------------------------------------------------------------------- ...

  8. 图像金字塔和高斯金字塔

    一:图像金字塔 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构.图像金字塔实际上是一张图片在不同尺度下的集合,即原图的上采样和下采样集合.金 ...

  9. 【C++】高斯金字塔和拉普拉斯金字塔原理和实现

    [C++]高斯金字塔和拉普拉斯金字塔原理和实现 图像中各个像素与其相邻像素之间的有很强的相关性,包含的信息也十分丰富,目标的尺寸有大有小,对比度有强有弱,此时就需要一个"显微镜"或 ...

最新文章

  1. Python Django 基于通用视图实现图片的显示功能代码示例
  2. 多商户商城源码_如何利用多商户B2B2C多商户商城系统后台组件玩转商城?
  3. DBSAN密度聚类算法
  4. python中的namespace
  5. windows 给安装目录命令权限
  6. c#如何调用php接口方法参数类型,c# – .NET:使用通用接口参数调用Assembly obj的GetInterface方法...
  7. iOS开发文档(中文)
  8. 微型计算机硬件调研报告,计算机硬件市场调研报告
  9. 裁员先兆?腾讯员工吐槽:公司发起PIP,PCG的鹅们,自求多福吧
  10. lattice开发错误集合
  11. octobercms 源码分析-1
  12. 【大学生软件测试基础】飞机票预定系统 - 因果图 - 测试用例
  13. [Algorithmic Toolbox学习笔记][week6]Placing Parentheses
  14. 如何增长U盘的寿命- 小技巧
  15. JS复制文本到粘贴板,前端H5移动端点击按钮复制文本到粘贴板。
  16. Android 电话系统框架介绍
  17. dubbo启动不成功 解决
  18. Why We're Breaking Up with CSS-in-JS?
  19. 2019中国(深圳)IT领袖峰会大咖云集 引爆IT朋友圈...
  20. 神州信息承建辽宁“农村产权交易服务平台”获中央农办认可!

热门文章

  1. 练习——MySQL 查询
  2. Java使用OSS进度条方法上传文件很慢
  3. Symbian S60 blog
  4. C语言中的左移位和右移位
  5. nvidia显卡旧版驱动下载地址
  6. 树莓派练手小项目---基于树莓派构建天气查询系统,实现内容的网页自动化检索功能
  7. SQL语句批量去除、替换掉某列(字段)中包含的某个字符串
  8. “我这个白痴,招到了一堆只会“谷歌”的程序员!”
  9. 中国人的“门当户对”还那么重要吗?
  10. 如何通过python 控制多台 安卓手机?