尺度空间

真实世界的物体只有在一定尺度上才有意义,例如我们能够看到放在桌子上的水杯,但对于整个银河系,这个水杯是不存在的。物体的这种多尺度的本质在自然界中是普遍存在的。尺度空间就是试图在数字图像领域复制这个概念。又比如,对于某幅图像,我们是想看到叶子还是想看到整棵树,如果是树,那么我们就应该有意识的去除图像的细节部分(如叶子、细枝等)。在去除细节部分的过程中,我们一定要确保不能引进新的错误的细节。因此在创建尺度空间的过程中,我们应该对原始图像逐渐的做模糊平滑处理。进行该操作的唯一方法是高斯模糊处理,因为已经被证实,高斯函数是唯一可能的尺度空间核。

(我简单的把尺度空间理解为,一副图像通过缩小后,会产生很多尺度空间,给定的一副图像我们只能进行缩小;同一个组的图像的分辨率相同,但是组内的图像依次看起来模糊,细节的部分被省略,尽大可能保留了图像的主要信息,以便于后面的特征点检测;各个组之间图像的分辨率依次减小;我们得到各类尺度空间的目的是为了检测图像中的特征点,当图像模糊、进一步缩小后,检测到的特征点可能是原图的一个区域,因此每个特征点会有半径的属性)

极值检测

为了在连续的尺度下检测图像的特征点,需要建立 DoG 金字塔,而 DoG 金字塔的建立又离不开高斯金字塔的建立,如下图所示,左侧为高斯金字塔,右侧为 DoG 金字塔。

(下图只显示了两组尺度空间图像,两组图像的分辨率是一样的,但是每组图像里,上层图像比下层图像模糊,上面的那组图像的分辨率要小于下面的那组图像,上面的图像进行了缩小;右侧每层的尺度空间图像数目都比左侧少一个,因为左侧的每相邻的两层图像相减得到右侧的一层图像,)

极值点的搜索是在 DoG 金字塔内进行的,这些极值点就是候选的特征点。在搜索之前,我们需要在 DoG 金字塔内剔除那些像素值过小的点,因为这些像素具有较低的对比度,它们肯定不是稳定的特征点。极值点的搜索不仅需要在它所在尺度空间图像的邻域内进行,还需要在它的相邻尺度空间图像内进行,如图 2 所示。

特征点的定位

极值点的求取是在 DoG 尺度图像内进行的, DoG 图像的一个特点就是对图像边缘有很强的响应。一旦特征点落在图像的边缘上,这些点就是不稳定的点。这是因为一方面图像边缘上的点是很难定位的,具有定位的歧义性;另一方面这样的点很容易受到噪声的干扰而变得不稳定。因此我们一定要把这些点找到并剔除掉。它的方法与 Harris 角点检测算法相似,即一个平坦的 DoG 响应峰值往往在横跨边缘的地方有较大的主曲率,而在垂直边缘的方向上有较小的主曲率。

(这一个步骤主要是去掉检测到的极值点中的图像边缘点)

方向角度的确定

(确定特征点方向角度时,我们首先要确定该特征点的半径,半径和该图像的尺度有关,确定半径后,统计特征点周围各个方向半径内的像素梯度幅值和,10度为一个方向,方向统计和最大的表示该特征点的方向。)

特征点描述符生成

目前为止,我们已经为关键点赋予了坐标位置、尺度信息以及方向。现在我们需要一组向量将这个关键点表达出来,并且这组向量不单包括关键点,还应包括关键点周围对其有贡献的像素点。我们还期望这组向量对仿射变换、光照变换等具有一定的鲁棒性,这些不变特性将会作为目标匹配的依据。

描述子的基本思路:通过对关键点周围图像区域分块,计算块内梯度直方图,生成具有独特性的向量,这个向量是该区域图像信息的一种抽象,具有唯一性。

(特征点描述符表示这个特征点独特性的地方,区别与其他特征点的地方,找出区别主要根据特征点周围的像素值,计算特征点周围的像素值的梯度直方图,根据周围像素直方图来唯一描述特征点,通常一个特征点需要计算周围4*4个子区域,每个子区域涉及8个方向,所以每个特征点有4*4*8=128维)

参考自:

https://blog.csdn.net/dcrmg/article/details/52561656

http://blog.csdn.net/zhaocj/article/details/42124473

http://blog.csdn.net/liuheng0111/article/details/51234163

SIFT算法中概念简单解释相关推荐

  1. SLAM-Visual Navigation学习之SIFT算法与代码详解

    ** SIFT算法 ** 文章目录 SIFT算法 一.特征点,关键点,角点? 二.前置知识 1.尺度 2.卷积 3.高斯函数 4.高斯卷积(模糊) 三.SIFT算法的引入 Harris算法缺陷: 1. ...

  2. CS131-专题7:图像特征(SIFT算法)

    速记要点: SIFT是什么:全称Scale Invariant Feature Transform尺度不变特征转换,2004年的论文.可以检测出图像中的局部特征点. SIFT算法特点: 稳定性:SIF ...

  3. SIFT算法学习心得

    文章转自:http://www.yongblog.com/archives/256.html 这篇文章主要介绍 SIFT 算法.希望通过对 SIFT 算法的总结来更加深入地了解"尺度不变特征 ...

  4. SIFT算法详解——图像特征提取与匹配

    文章目录 前言 一.建立高斯差分金字塔 1.建立高斯金字塔 2.建立高斯差分金字塔 3.建塔过程中参数的设定及相关细节问题 二.关键点(key points)位置确定 1.阈值化 2.在高斯差分金字塔 ...

  5. 【计算机视觉】局部图像描述子:SIFT算法

    文章目录 [计算机视觉]局部图像描述子:SIFT算法 1. SIFT算法的原理 1.1 SIFT算法的目标与思想 1.1.1 算法目标 1.1.2 算法思想 1.2 尺度空间的思想和表示 1.2.1 ...

  6. 简明解释算法中的大O符号

    http://blog.jobbole.com/55184/ 伯乐在线导读:2009年1月28日Arec Barrwin在StackOverflow上提问,"有没有关于大O符号(Big O ...

  7. 如何简单解释 MapReduce算法

    原文地址:如何简单解释 MapReduce 算法 在Hackbright做导师期间,我被要求向技术背景有限的学生解释MapReduce算法,于是我想出了一个有趣的例子,用以阐释它是如何工作的. 例子 ...

  8. python 最小二乘回归 高斯核_数据科学中最简单也最重要的算法:线性回归

    全文共1794字,预计学习时长15分钟 线性回归是数据科学中最简单也是最重要的算法.无论面试的工作领域是数据科学.数据分析.机器学习或者是量化研究,都有可能会遇到涉及线性回归的具体问题.要想熟练掌握线 ...

  9. 余弦向量相似性和SIFT算法在股票相似性中的使用(1)

    最近,我在做关于股票相似性的东西.就是对于不同股票或者同一股票在不同时间段内的走势的相似判断.取个例子: 下图为原股票的K线图(使用JFREEChart生成) 然后在我们的K线图集中选出最相似的几个K ...

最新文章

  1. 简述BT下载技术及其公司发展现状
  2. 今天做项目时,用到了好多关于js的知识点,有的忘记了,然后晚上回来自己整理一番,明天继续整理。哈哈,分享给大家。...
  3. 非单身勿点,这里是单身汪专属情人节~
  4. BZOJ 4212: 神牛的养成计划
  5. Voyage 联合创始人目击苹果无人车,推测其计算堆栈集成在传感器中
  6. golang中的goredis
  7. 三种常见字符编码简介:ASCII、Unicode和UTF-8
  8. LeetCode Algorithm 530. 二叉搜索树的最小绝对差
  9. Java 泛形通配符 ?
  10. 用Github实现URL转发
  11. 9260ac网卡linux驱动,intel wireless-ac 9260 driver
  12. threejs的shader材质 颜色混合函数mix
  13. python 正则表达式(3.24)
  14. POSCMS 后台友情链接增加所属栏目分类功能
  15. 截取某个字符串之前的字符
  16. Android StepsView 步骤控件
  17. 基于python的停车场管理系统的设计与实现/智能停车管理系统
  18. VGGNet网络结构
  19. 【软件安装】MySQL8.0安装图文教程及可视化工具Navicat安装
  20. SPSSAU综合评价方法汇总

热门文章

  1. 美团点评移动网络优化实践
  2. 2016,你最不应该错过的热门技术文章
  3. Webpack构建性能优化指南
  4. 短期记忆容量必需有限
  5. $.getJSON()
  6. 每天一个Linux命令(17)--whereis命令
  7. BZOJ2819 Nim(DFS序)
  8. BZOJ 2150: 部落战争 最大流
  9. 实验五 — — Java网络编程及安全
  10. SilverLight之我见