热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Sift十大问

ScaleInvariantFeatureTransform(SIFT)十大问向经典致敬1为什么要讨论尺度空间2为什么要建立高斯金字塔3为什么是高斯滤波?4为什么高斯

     Scale Invariant Feature Transform(SIFT)  十大问

         向经典致敬

  

             

              1 为什么要讨论尺度空间

              2 为什么要建立高斯金字塔

              3 为什么是高斯滤波?

              4 为什么高斯差分金字塔可以粗定位极值点?


            ************************************************************************

             1 为什么要讨论尺度空间

图像尺度空间感受实例

   感受什么是尺度空间

2尺度空间方法的基本思想是:

在视觉信息处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得不同尺度下的视觉处理信息,然后综合这些信息以深入地挖掘图像的本质特征。尺度空间方法将传统的单尺度视觉信息处理技术纳入尺度不断变化的动态分析框架中,因此更容易获得图像的本质特征。尺度空间的生成目的是模拟图像数据多尺度特征。高斯卷积核是实现尺度变换的唯一线性核。

3尺度空间理论的动机:

a)       现实世界的物体由不同尺度的结构所组成;

b)       在人的视觉中,对物体观察的尺度不同,物体的呈现方式也不同;

c)       对计算机视觉而言,无法预知某种尺度的物体结构是有意义的,因此有必要将所有尺度的结构表示出来;

d)       从测量的角度来说,对物体的测量数据必然是依赖于某个尺度的,例如温度曲线的采集,不可能是无限的,而是在一定温度范围进行量化采集。温度范围即是选择的尺度;

e)       采用尺度空间理论对物体建模,即将尺度的概念融合入物理模型之中。

图像尺度空间理论

当用一个机器视觉系统分析未知场景时,计算机没有办法预先知道图像中物体尺度,因此,我们需要同时考虑图像在多尺度下的描述,获知感兴趣物体的最佳尺度。所以在很多时候,我们会在将图像构建为一系列不同尺度的图像集,在不同的尺度中去检测我们感兴趣的特征。

5  最为基础的四类尺度空间

线性尺度空间

非线性尺度空间

形尺度空间

数学形态学尺度空间

线性尺度空间方法较好地体现了视觉多尺度分析的思想, 因而最早广泛应用于图像滤波和深层结构分析。然而, 线性尺度空间具有以下明显缺陷: 一方面, 热扩散方程描述的是各向同性的扩散过程, 因此在光滑图像时, 任意象素点的灰度值在各个方向的扩散都相同, 这必然引起图像边缘模糊化; 另一方面, 对比度不变性和线性性是一对矛盾, 热扩散方程的线性性决定了它无法满足对比度不变性,随着尺度t 的增加, 图像逐渐光滑, 但图像的细节信息逐渐变得模糊, 且对比度发生了显著变化, 这是图像处理所不愿看到的。因此, 为克服线性尺度空间的缺陷, 必须研究非线性尺度空间方法。

非线性尺度空间

对比度不变性和仿射不变性,而这些性质是线性尺度空间方法所不具备的。

形(shape)尺度空间

线性尺度空间和非线性尺度空间关注的是图像的整个空间区域, 然而在视觉识别和分析中, 我们也常常关心图像中的某些局部区域( 例如水平集和水平线)。形尺度空间是通过演化围成局部区域的约当曲线来分析图像局部特征的多尺度分析方法。

数学形态学尺度空间

数学形态学的基本思想是: 通过调整所含参数, 逐渐简化图像, 但同时保持图像的基本形状,因此其分析图像的过程具有视觉多尺度分析的特征。将数学形态学纳入尺度空间框架, 它主要由膨胀和腐蚀两类基本算子构成,在一定条件下, 非线性尺度空间方法可以通过数学形态学中的膨胀( 或腐蚀) 算子和仿射不变迭代滤波算子来实现, 而反之亦然。这说明两种尺度空间方法在一定意义上是一致的。

参考:《计算机视觉中的尺度空间方法*》孙剑, 徐宗本

************************************************************************

 2 为什么要建立高斯金字塔

 

   金字塔是图像多尺度表示的主要形式,图像金字塔是以多分辨率来解释图像的一种有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低的图像集合。大小不同的图像获取的信息因此尺度问题会产生不同的信息,(第一问尺度空间可以解释这个小问题),一般抽样比例在水平和竖直方向上都为1/2,从而得到一系列的缩小的图像。

    高斯金字塔模仿的是图像的不同的尺度,尺度应该怎样理解?对于一副图像,你近距离观察图像,与你在一米之外观察,看到的图像效果是不同的,前者比较清晰,后者比较模糊,前者比较大,后者比较小,通过前者能看到图像的一些细节信息,通过后者能看到图像的一些轮廓的信息,这就是图像的尺度,图像的尺度是自然存在的,并不是人为创造的。

每个金字塔共n层。金字塔的层数根据图像的原始大小和塔顶图像的大小共同决定。

高斯金字塔则是金字塔的进一步优化,为了让尺度体现其连续性。分为阶和层两个概念,每个阶直接通过降采样,每层之间是通过不同的高斯核实现。

多尺度和多分辨率

尺度空间表达和金字塔多分辨率表达之间最大的不同是:

  • 尺度空间表达是由不同高斯核平滑卷积得到,在所有尺度上有相同的分辨率;
  • 而金字塔多分辨率表达每层分辨率减少固定比率。

所以,金字塔多分辨率生成较快,且占用存储空间少;而多尺度(只进行高斯滤波)表达随着尺度参数的增加冗余信息也变多。多尺度表达的优点在于图像的局部特征可以用简单的形式在不同尺度上描述;而金字塔表达没有理论基础,难以分析图像局部特征。

Sift的高斯金字塔就是高斯滤波+金字塔,一般有4阶(分辨率上的区分),每一阶有5层(不同的高斯参数进行滤波)。

 ************************************************************************

3 为什么是高斯滤波?

    高斯核是唯一可以产生多尺度空间的线性核《Scale-space theory: A basic tool for analysing structures atdifferent scales》

使用高斯滤波器对图像进行尺度空间金塔塔图的构建,让这个尺度空间具有下面的性质:

1 加权平均和有限的孔径效应  2 层叠平滑

3 局部极值传递性            4 尺度伸缩不变性

高斯模版是圆对称的,且卷积的结果使原始像素值有最大的权重,距离中心越远的相邻像素值权重也越小。在实际应用中,在计算高斯函数的离散近似时,在大概3σ距离之外的像素都可以看作不起作用,这些像素的计算也就可以忽略。所以,通常程序只计算(6σ+1)*(6σ+1)就可以保证相关像素影响。

高斯模糊另一个很厉害的性质就是线性可分:使用二维矩阵变换的高斯模糊可以通过在水平和竖直方向各进行一维高斯矩阵变换相加得到。O(N^2*m*n)次乘法就缩减成了O(N*m*n)+O(N*m*n)次乘法。(N为高斯核大小,m,n为二维图像高和宽)

*******************************************************************************

   4 为什么高斯差分金字塔可以粗定位极值点? 

下面先讲解一下拉普拉斯算子:

        人眼更敏感的地方往往是图像细节,因此我们感兴趣的是图像灰度突变的开始点与结束点以及沿着灰度斜坡处的微分性质。
一阶微分的性质:
1) 在恒定灰度区域的微分值为零
2) 在灰度台阶或斜坡处为分支非零
3) 沿着斜坡的微分值非零
二阶微分性质:
1) 在恒定灰度区域微分值为零
2) 在灰度台阶或胁迫的起点处微分值非零
3) 沿着斜坡的微分值非零

       很明显一阶微分不仅在图像灰度跳变的地方非零,在灰度斜坡处也非零,这样可以产生粗边缘;而二阶微分只在图像灰度跳变的地方非零,可以产生一个双边缘。二阶微分对精细细节具有较强的相应。

我们更加关注各向同性的滤波器,所谓的各向同性是旋转不变的,即将原图像进行旋转后进行滤波处理给出的结果与先对图像进行滤波然后再旋转的结果相同。

因此我们希望用一个二阶微分且是各向同性的——》其中最简单各向同性微分二阶算子就是拉普拉斯算子了

转化为俩个变量的离散拉普拉斯算子:


       Laplace算子是通过对图像进行微分操作实现边缘检测的,所以对离散点和噪声比较敏感。于是,首先对图像进行高斯卷积滤波进行降噪处理,再采用Laplace算子进行边缘检测,就可以提高算子对噪声和离散点的鲁棒性,如此,拉普拉斯高斯算子Log (Laplace of Gaussian)就诞生了。

高斯-拉普拉斯算子其实就是:先对图像进行高斯模糊,然后再求二阶导数,二阶导数等于0处对应的像素就是图像的边缘

因为高斯差算子(DOG)与高斯-拉普拉斯(LOG)存在关系,所以使用了高斯差分算子,那么下面看看他们的关系。

首先直接说出结论:

  1 高斯差分计算简单,速度快,因为它利用高斯卷积的减法运算。但通过减法取代LoG核的计算过程,显著减少了运算次数。

  2高斯差分是对尺度归一化的一个很好的近似,而尺度归一化的空间具有真正的尺度不变性。     

 

一幅二维图像在不同尺度空间可以表示由图像的高斯核卷积得到:

      ,   

      D(x,y,z)=\frac{s}{ss}

       构建高斯差尺度空间DOG: 

     

      

在实际计算时,使用高斯金字塔每组中相邻上下两层图像相减,得到高斯差分图像,然后进行极值检测,关键点是由DOG空间的局部极值点       组成的。SIFT里面:一个像点与同层的8个,上下分别9个像素,一共26个像素点进行比较,都大或者都小则记录为极值点。




参考:SIFT算法详解

           小魏的修行路




推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • 设计模式——模板方法模式的应用和优缺点
    本文介绍了设计模式中的模板方法模式,包括其定义、应用、优点、缺点和使用场景。模板方法模式是一种基于继承的代码复用技术,通过将复杂流程的实现步骤封装在基本方法中,并在抽象父类中定义模板方法的执行次序,子类可以覆盖某些步骤,实现相同的算法框架的不同功能。该模式在软件开发中具有广泛的应用价值。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • 本文介绍了一种图的存储和遍历方法——链式前向星法,该方法在存储带边权的图时时间效率比vector略高且节省空间。然而,链式前向星法存图的最大问题是对一个点的出边进行排序去重不容易,但在平行边无所谓的情况下选择这个方法是非常明智的。文章还提及了图中搜索树的父子关系一般不是很重要,同时给出了相应的代码示例。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
author-avatar
victor
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有