SIFT中的尺度空间和传统图像金字塔
最近自己混淆了好多概念,一边弄明白的同时,也做了一些记录,分享一下。最近又发现了一个好同学的博客,很详细的讲了SIFT
想要得知图像中哪些是有意义的,必须先要明确这样一个问题:在一幅图像中,只有在一定的尺度范围内,一个物体才有意义。举一个例子,树枝这个概念,只有在几厘米到几米的距离去观察它,才能感知到它的确是树枝;如果在微米级或者千米级去观察,就不能感知到树枝这个概念了,这样的话可以感知到的是细胞或者是森林的概念。
因而,如果想要描述现实世界的结构,或者将三维物体映射到二维的图像上去,多尺度表示将会至关重要。多尺度表示的概念很容易理解,举例说明,绘制地图时会有比例尺的概念。世界地图中就只能够显示大洲大洋,以及较大的地域和国家;而一个城市地图,甚至可以详细的显示出每条街道。
这里需要强调一点,事物是实实在在的存在的,但是通过图像这个媒介,观察者可以感知到的概念是不同的。
一种比较老的尺度表示方法是图像金字塔。金字塔是结合降采样操作和平滑操作的一种图像表示方式。它的一个很大的好处是,自下而上每一层的像素数都不断减少,这会大大减少计算量;而缺点是自下而上金字塔的量化变得越来越粗糙,而且速度很快。(需要强调的是,这里的金字塔构造方法和小波金字塔的构造方法是类似的,对某一层的图像进行平滑之后,再做降采样,平滑目的是为了降采样后的像素点能更好的代表原图像的像素点,与多尺度表示中的平滑完全不是一个目的)
SIFT中提到的“尺度空间”(Scale-Space)表示法是多尺度表示的另外一种有效方法,它的尺度参数是连续的,并且所有尺度上空间采样点个数是相同的(实际上,一个尺度上得到的就是一幅图像,尺度空间采样点也就是该尺度上图像的像素点。也就是说,尺度空间表示法在各个尺度上图像的分辨率都是一样的)。尺度空间表示的主要思想是,由原始信号(例如一幅图像)生成一系列信号,并用这些信号来表示原始信号,这个过程中,精细尺度的信息被逐步的平滑掉(可以认为是细节信息被丢弃)。
尺度可变高斯函数
所以,这里的尺度空间和传统图像金字塔的表示是不同的,尺度空间可以理解为用高斯对图像做了卷积,图像的分辨率还是那么大,像素还是那么多,只是细节被平均(平滑)掉了,原因就是高斯了,用周围的信号比较弱的像素和中间那个信号比较强的点做平均,平均值当然比最强信号值小了,这就起到了平滑的作用。传统图像金字塔关键在于降采样,每四个像素,求平均作为一个像素,显然分辨率降低了。
下面就是Octave和sigma这两个参数的影响,行与行之间的差距,可以理解为金字塔或者降采样;行内部其实是因为高斯sigma参数作用的结果,高斯卷积其实是起到了一个平滑的作用:
下面这个就是DOG,高斯查分,其实这和边缘检测的原理是差不多的,通过查分,将边缘留下来了。这就是图像中的关键点的原始的结合,什么是关键点,最起码能够代表图像中有变化比较明显的特征点,但是,对于那些平滑的特征,如果丢失了,是不是可惜呢?
关于SIFT的理解,Cauthy的博文有几篇,了解的要比我深好多呢。
另外最近还有一种金字塔的表示,用来做金字塔匹配The Pyramid Match等,其原理其实是采样窗口的大小,采样窗口由小到大,包含的局部特征也会越来越丰富。关于这个,推荐两篇论文
1、The Pyramid Match: Efficient Matching for Retrieval and Recognition
2、Beyond Bags of Features: Spatial Pyramid Matching for Recognizing Natural Scene Categories

SIFT中的尺度空间和传统图像金字塔的更多相关文章
- OpenCV-Python 图像金字塔 | 二十
目标 在本章中, 我们将学习图像金字塔 我们将使用图像金字塔创建一个新的水果"Orapple" 我们将看到以下功能:cv.pyrUp(),cv.pyrDown() 理论 通常,我们 ...
- Sift中尺度空间、高斯金字塔、差分金字塔(DOG金字塔)、图像金字塔
转自:https://blog.csdn.net/dcrmg/article/details/52561656 一. 图像金字塔 图像金字塔是一种以多分辨率来解释图像的结构,通过对原始图像进行多尺度像 ...
- 图像金字塔、高斯金字塔、差分金字塔(DOG金字塔)、尺度空间、DoG (Difference of Gaussian)角点检测
[图像金字塔] 图像金字塔是一种以多分辨率来解释图像的结构,通过对原始图像进行多尺度像素采样的方式,生成N个不同分辨率的图像.把具有最高级别分辨率的图像放在底部,以金字塔形状排列,往上是一系列像素(尺 ...
- 图像金字塔(pyramid)与 SIFT 图像特征提取(feature extractor)
David Lowe(SIFT 的提出者) 0. 图像金字塔变换(matlab) matlab 对图像金字塔变换接口的支持(impyramid),十分简单好用. 其支持在reduce和expand两种 ...
- 图像金字塔及其在 OpenCV 中的应用范例(下)
前言 本文将主要讲解如何使用 OpenCV 实现图像分割,这也是图像金字塔在 OpenCV 中的一个重要应用. 关于图像分割 在计算机视觉领域,图像分割(Segmentation)指的是将数字图像细分 ...
- 图像金字塔及其在 OpenCV 中的应用范例(上)
前言 图像金字塔是计算机图形学中非常重要的一个概念. 本文将详细介绍这个概念,以及它的实现与应用. 图像金字塔的定义 图像金字塔是一组图像的集合,集合中的所有图像都是通过对某一图像连续降采样得到的一组 ...
- Atitit 图像金字塔原理与概率 attilax的理解总结qb23
Atitit 图像金字塔原理与概率 attilax的理解总结qb23 1.1. 高斯金字塔 ( Gaussianpyramid): 拉普拉斯金字塔 (Laplacianpyramid):1 1.2 ...
- SIFT解析(一)建立高斯金字塔
SIFT(Scale-Invariant Feature Transform,尺度不变特征转换)在目标识别.图像配准领域具有广泛的应用,下面按照SIFT特征的算法流程对其进行简要介绍对SIFT特征做简 ...
- OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放
这篇已经写得很好,真心给作者点个赞.题目都是直接转过来的,直接去看吧. Reference Link : http://blog.csdn.net/poem_qianmo/article/detail ...
随机推荐
- Postgresql死锁处理
今天遇到Postgresql的一个问题,部分表记录的update一直无效报错,初步判断为锁表,赶紧进行解决. 1. 查询死锁进程列表 select * from pg_stat_activity wh ...
- Varnish简介
Varnish介绍: Varnish是一个反向HTTP代理,有时也被称为HTTP的加速器或网络加速器:它存在于真实服务器的前面(可能有多级代理),将来自于客户端的请求中的部分内容存储在自身的内存中,以 ...
- Tomcat 设置
bin/catalina.bat--增加内存 set JAVA_OPTS=...后面加上 set JAVA_OPTS=-Xmx1024M -Xms512M -XX:MaxPermSize=256m c ...
- Eclipse创建Maven时提示错误could not resolve archetype
今天用Eclipse创建Maven多模块项目的时候提示错误: could not resolve archetype ******release from any of the configured ...
- C#字符串操作(參照圓友)
直接上實例代碼 staticvoid Main(string[] args) { string s =""; //(1)字符访问(下标访问s[i]) s ="ABCD&q ...
- java_method_下载导入模版
//调用方法 upDown.download(request, response, request.getRealPath("")+"/output/BlackNumbe ...
- python学习之——pip的安装与使用
安装步骤: 前提:已经安装python 1.下载安装包并解压: easy_install 地址:https://pypi.python.org/pypi/setuptools#downloads pi ...
- jQuery Ajax传递数组到asp.net web api参数为空
前端: var files = []; files.push({ FileName: "1.jgp", Extension: ".jgp", FileType: ...
- 使用dom元素和jquery元素实现简单增删改的练习
软件开发实际就是数据的增删改查,javascript前端开发也不例外.今天学了jquery框架的简单使用.于是用它实现简单的增删改,接着也用原始的javascript实现同样的功能,以便看出jquer ...
- dddddd
(function(window){ var com = function(box){ this.box = document.querySelector(box); } window.zhangle ...