当前位置:   article > 正文

SIFT四部曲之——高斯滤波_高斯滤波再做差

高斯滤波再做差

版权声明:本文为博主原创文章,未经博主允许不得转载。博客不用于商业活动,博主对博客的使用,拥有最终解释权 
本文为原创作品,未经本人同意,禁止转载,禁止用于商业用途!本人对博客使用拥有最终解释权 
欢迎关注我的网上图书室:晨凫追风和 微信公众号:青春当追风

 

或许网络上有各位牛人已经对sift算法进行各种的详解和说明,我(小菜鸟)在翻阅各种资料和对opencv中的代码进行反推之后,终于理解该算法。并记录之,供大家一起交流学习!这个博文主要记录了我的学习历程,或许对你有帮助,或许可以启发你,或许你只是一笑而过!没关系,至少自己总结过。

这篇文章主要是对sift算法的每一个步骤,每一个参数进行说明,并在最后用matlab实现该算法,从理论到代码实现或许需要考虑方方面面,但是它并不是那么的难!

1、算法简介

开始之前要例行一些东西,对sift的简单介绍如果不想看直接跳到第二部分,没问题!

Sift(Scale-invariant feature transform)尺度不变特征转换,CV界中赫赫有名的算法,由David Lowe(图1的老头)提出,该算法受专利保护,专利权属于英属哥伦比亚大学。

图1 David Lowe

Sift算法可以将一幅图像映射(变换)为一个局部特征向量集;特征向量具有平移、缩放、旋转不变性,同时对光照变化、仿射及投影变换也有一定的不变性。

SIFT算法的特点有:(只是理论,所以看看就好)

1.SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;

2.独特性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配;

3.多量性,即使少数的几个物体也可以产生大量的特征向量;

4.高速性,经优化的匹配算法甚至可以达到实时的要求;

5.可扩展性,可以很方便的与其他形式的特征向量进行联合。

SIFT算法可以解决的问题:

目标的自身状态、场景所处的环境和成像器材的成像特性等因素影响图像配准目标识别跟踪的性能。而算法在一定程度上可解决:

1.目标的旋转、缩放、平移

2.投影变换

3.光照影响

4.目标遮挡

5.杂物场景

SIFT算法的实质是在不同的尺度空间上查找关键点,并计算出关键点的方向。所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。

SIFT算法可以分解为如下四步:

1.高斯差分(DoG)滤波:搜索所有尺度上的图像位置。通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。

2.尺度空间的极值检测和关键点位置确定:对DoG金字塔中的每一层,进行尺度空间的极值检测(极大值和极小值),把每一个极值点作为候选点,在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。

3.关键点方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。

4.构建关键点特征描述符:在每个关键点周围的内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。

2.高斯差分(DoG)滤波:

在这个部分开始之前,首先要普及一下一些相关的知识点。

2.1图像尺度空间

在图像信息处理中引入一个名为尺度的参数,通过对图像进行一些变换,获得在多个尺度空间下的图像空间序列,对这些序列可以进行一些特征的提取等操作,可以实现边缘,角点检测和不同分辨率上的特征提取。

对这个尺度空间的理解:它可以模拟人在距离目标由近到远的过程中,目标在视网膜当中形成的图像的过程。尺度越大图像越模糊,相当于我们观察远处物体,这时候关注该物体的轮廓。如下图,我们看到远方只有两个人的外形,并不能看到衣服上的花纹。

尺度空间满足视觉不变性。

  • 满足灰度不变性和对比度不变性:当我们用眼睛观察物体时,当物体所处背景的光照条件变化时,视网膜感知图像的亮度水平和对比度是不同的,因此要求尺度空间算子对图像的分析不受图像的灰度水平和对比度变化的影响。
  • 满足平移不变性、尺度不变性、欧几里德不变性以及仿射不变性:相对于某一固定坐标系,当观察者和物体之间的相对位置变化时,视网膜所感知的图像的位置、大小、角度和形状是不同的,因此要求尺度空间算子对图像的分析和图像的位置、大小、角度以及仿射变换无关。

一个图像的尺度空间表示在该尺度下,该坐标处的值。

2.2二维高斯函数和高斯模糊

下面这些只是一些基础性的知识,公式并不需要推导,接受就好。

高斯滤波器,使用正态分布计算的一种卷积模板(基本概念,这不懂的话,需要自己入门),利用高斯滤波器和图像进行卷积运算,可对图像进行模糊处理。公式如下(这是一个二维的高斯滤波器):

二维高斯曲面如下:

图3 高斯二维曲面

其中为正态分布的标准差,在高斯模糊中,它越大,图像越模糊。这里要定义一个模糊半径,

表示模板元素到模板中心的距离。

当然上面只是一个连续的曲面,在对图像进行高斯模糊的过程中需要的是高斯模板,这个模板和图像卷积便可得到高斯模糊图像。正态分布中,在大于3*的范围之外存在的概率占仅0.3%,所以在3*的范围之外,那些像素所起作用基本可以忽略不计了,所以高斯模板只需要计算的大小即可。根据的值计算可以计算出高斯模板。

最后提几条高斯模糊的特性(后面的理解中会被用到)

  1. 高斯模糊具有圆对称性,模板是中心对称的
  2. 高斯模糊具有线性可分的性质,这样在计算卷积的时候就可以利用一行和一列的两个矩阵和图像进行卷积,可以大
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/959121
推荐阅读
相关标签
  

闽ICP备14008679号