sift算法详解

合集下载

SIFT算法详解

SIFT算法详解

SIFT算法详解Scale Invariant Feature Transform(SIFT)Just For Funzdd zddmail@对于初学者,从David G.Lowe的论文到实现,有许多鸿沟,本文帮你跨越。

1、SIFT综述尺度不变特征转换(Scale-invariant feature transform或SIFT)是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由David Lowe在1999年所发表,2004年完善总结。

其应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对。

此算法有其专利,专利拥有者为英属哥伦比亚大学。

局部影像特征的描述与侦测可以帮助辨识物体,SIFT 特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。

对于光线、噪声、些微视角改变的容忍度也相当高。

基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认。

使用SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位。

在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算。

SIFT特征的信息量大,适合在海量数据库中快速准确匹配。

SIFT算法的特点有:1. SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;2. 独特性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配;3. 多量性,即使少数的几个物体也可以产生大量的SIFT特征向量;4. 高速性,经优化的SIFT匹配算法甚至可以达到实时的要求;5. 可扩展性,可以很方便的与其他形式的特征向量进行联合。

SIFT算法可以解决的问题:目标的自身状态、场景所处的环境和成像器材的成像特性等因素影响图像配准/目标识别跟踪的性能。

SIFT算法详解及应用

SIFT算法详解及应用

SIFT算法详解及应用SIFT(Scale-Invariant Feature Transform)是一种图像处理算法,它能够在不同尺度、旋转、光照条件下进行特征点匹配。

SIFT算法是计算机视觉领域的一个重要算法,广泛应用于目标识别、图像拼接、图像检索等方面。

首先,尺度空间极值检测是指在不同尺度上检测图像中的极值点,即图像中的局部最大值或最小值。

这样可以使特征点能够对应不同尺度的目标,使算法对尺度变化有鲁棒性。

为了实现这一步骤,SIFT算法使用了高斯差分金字塔来检测尺度空间中的极值点。

接下来是关键点定位,即确定在尺度空间极值点的位置以及对应的尺度。

SIFT算法通过比较每个极值点与其周围点的响应值大小来判断其是否为关键点。

同时,为了提高关键点的稳定性和准确性,算法还会对关键点位置进行亚像素精确化。

然后是关键点方向的确定,即为每个关键点分配一个主方向。

SIFT算法使用图像梯度方向的直方图来确定关键点的方向。

这样可以使得特征描述子具有旋转不变性,使算法在目标旋转的情况下仍能进行匹配。

最后是关键点的描述。

SIFT算法使用局部图像的梯度信息来描述关键点,即构建关键点的特征向量。

特征向量的构建过程主要包括将关键点周围的图像划分为若干个子区域,计算每个子区域的梯度直方图,并将所有子区域的直方图拼接成一个特征向量。

这样可以使得特征向量具有局部不变性和对光照变化的鲁棒性。

SIFT算法的应用非常广泛。

首先,在目标识别领域,SIFT算法能够检测和匹配图像中的关键点,从而实现目标的识别和定位。

其次,在图像拼接方面,SIFT算法能够提取图像中的特征点,并通过匹配这些特征点来完成图像的拼接。

此外,SIFT算法还可以应用于图像检索、三维重建、行人检测等领域。

总结起来,SIFT算法是一种具有尺度不变性和旋转不变性的图像处理算法。

它通过提取图像中的关键点,并构建关键点的描述子,实现了对不同尺度、旋转、光照条件下的目标识别和图像匹配。

(完整word版)SIFT算法分析

(完整word版)SIFT算法分析

SIFT算法分析1 SIFT主要思想SIFT算法是一种提取局部特征的算法,在尺度空间寻找极值点,提取位置,尺度,旋转不变量。

2 SIFT算法的主要特点:a) SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性。

b)独特性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配.c) 多量性,即使少数的几个物体也可以产生大量SIFT特征向量。

d) 高速性,经优化的SIFT匹配算法甚至可以达到实时的要求。

e) 可扩展性,可以很方便的与其他形式的特征向量进行联合.3 SIFT算法流程图:4 SIFT 算法详细1)尺度空间的生成尺度空间理论目的是模拟图像数据的多尺度特征。

高斯卷积核是实现尺度变换的唯一线性核,于是一副二维图像的尺度空间定义为: ),(),,(),,(y x I y x G y x L *=σσ 其中 ),,(σy x G 是尺度可变高斯函数,2)(22/21),,(22σπσσy xe y x G +-=(x,y )是空间坐标,σ是尺度坐标。

σ大小决定图像的平滑程度,大尺度对应图像的概貌特征,小尺度对应图像的细节特征。

大的σ值对应粗糙尺度(低分辨率),反之,对应精细尺度(高分辨率)。

为了有效的在尺度空间检测到稳定的关键点,提出了高斯差分尺度空间(DOG scale —space )。

利用不同尺度的高斯差分核与图像卷积生成。

),,(),,(),()),,(),,((),,(σσσσσy x L k y x L y x I y x G k y x G y x D -=*-= DOG 算子计算简单,是尺度归一化的LoG 算子的近似。

图像金字塔的构建:图像金字塔共O 组,每组有S 层,下一组的图像由上一组图像降采样得到。

图1由两组高斯尺度空间图像示例金字塔的构建, 第二组的第一副图像由第一组的第一副到最后一副图像由一个因子2降采样得到.图2 DoG算子的构建:图1 Two octaves of a Gaussian scale-space image pyramid with s =2 intervals. The first image in the second octave is created by down sampling to last image in the previous图2 The difference of two adjacent intervals in the Gaussian scale—space pyramid create an interval in the difference—of—Gaussian pyramid (shown in green)。

SIFT算法提取特征总结

SIFT算法提取特征总结

SIFT算法提取特征总结SIFT(Scale-Invariant Feature Transform)算法是一种用于图像特征提取的算法,它能够从图像中提取出具有尺度不变性的关键点,并计算出这些关键点的描述子,从而实现图像的匹配、识别等任务。

下面将对SIFT算法进行总结。

一、SIFT算法的基本思想1.构建高斯金字塔:通过不同尺度的高斯滤波器对原始图像进行平滑,得到一系列不同尺度的图像。

2.构建高斯差分金字塔:对高斯金字塔进行相邻层之间的差分,得到一系列不同尺度的差分图像。

3.寻找关键点:在每个尺度的差分图像中,通过比较一个像素与其周围的26个像素,判断是否为极值点,这些极值点即为关键点。

4.精确定位关键点位置:通过插值计算关键点的亚像素位置。

5.确定关键点的尺度和方向:根据关键点的尺度和梯度方向,构建关键点的方向直方图,找到主方向。

6.计算关键点的描述子:根据关键点周围的图像局部梯度,构建特征向量,得到关键点的描述子。

二、SIFT算法的特点1.尺度不变性:SIFT算法通过高斯金字塔和高斯差分金字塔的构建,使得算法对图像的尺度变化具有不变性,能够在不同尺度上检测到相同的关键点。

2.旋转不变性:SIFT算法通过确定关键点的主方向,将关键点的描述子旋转到相同的方向,使得算法对图像的旋转变化具有不变性。

3.具有唯一性:SIFT算法通过极值点检测和亚像素插值,能够找到图像中稳定的关键点,并且能够通过描述子计算,使得关键点具有唯一性。

4.强鲁棒性:SIFT算法通过对图像局部梯度的计算,能够对光照、噪声等变化具有鲁棒性,使得算法具有较好的稳定性。

三、SIFT算法的应用1.图像匹配:通过提取图像的关键点和描述子,将两幅图像进行特征点的匹配,从而实现图像的对齐、拼接等任务。

2.物体识别:通过提取物体图像的SIFT特征,并建立特征数据库,可以对未知图像进行特征的匹配和识别,实现物体的检测和识别。

3.目标跟踪:将目标物体的SIFT特征提取出来,并通过匹配目标特征和图像中的特征点,可以进行目标的跟踪和定位。

sift算法计算旋转参数

sift算法计算旋转参数

sift算法计算旋转参数SIFT算法是一种常用的图像特征提取算法,它可以用于计算图像的旋转参数。

本文将介绍SIFT算法的原理和计算旋转参数的步骤。

一、SIFT算法原理SIFT(Scale Invariant Feature Transform)算法是由David Lowe于1999年提出的一种图像处理算法,它主要用于图像特征提取和匹配。

SIFT算法通过寻找图像中的关键点,并提取关键点周围的特征描述子,从而实现对图像的特征提取和匹配。

SIFT算法的主要步骤包括:尺度空间极值检测、关键点定位、方向分配、特征描述和特征匹配。

其中,关键点定位和方向分配是计算旋转参数的关键步骤。

二、计算旋转参数的步骤1. 尺度空间极值检测SIFT算法首先对输入图像进行尺度空间的构建,通过高斯金字塔和DOG(Difference of Gaussian)计算得到图像的尺度空间。

然后,在每组DOG图像中寻找极值点,用于标记潜在的关键点。

2. 关键点定位在寻找极值点的基础上,SIFT算法采用了稳定的关键点定位方法,通过比较极值点与周围像素的梯度和曲率信息,筛选出稳定的关键点。

这些关键点具有尺度和旋转不变性,可以在不同尺度和旋转角度的图像中进行匹配。

3. 方向分配为了使关键点具有旋转不变性,SIFT算法为每个关键点分配一个主方向。

具体做法是在关键点周围的区域中计算梯度直方图,找到梯度最大的方向作为主方向。

这样,即使图像发生旋转,关键点的描述子仍然可以进行匹配。

4. 特征描述在确定了关键点的尺度和旋转参数后,SIFT算法采用了局部图像块的特征描述方法。

它将关键点周围的图像区域分成若干个子区域,并计算每个子区域的梯度直方图。

然后,将这些直方图组合成一个特征向量,形成关键点的描述子。

5. 特征匹配SIFT算法使用特征向量进行特征匹配。

常用的方法是计算两个图像之间的欧氏距离,找到距离最小的匹配对。

通过特征匹配,可以实现对图像的旋转参数的计算。

SIFT特征提取算法

SIFT特征提取算法

SIFT特征提取算法SIFT(Scale-Invariant Feature Transform)特征提取算法是一种用于图像的局部特征分析的算法。

它能够提取出图像中的关键点,并对这些关键点进行描述,从而可以用于图像匹配、物体识别等应用领域。

本文将详细介绍SIFT算法的原理和过程。

1.尺度空间构建SIFT算法首先通过使用高斯滤波器来构建图像的尺度空间,以便在不同尺度下检测关键点。

高斯滤波器可以通过一系列的高斯卷积操作实现,每次卷积之后对图像进行下采样(降低分辨率),得到不同尺度的图像。

2.关键点检测在尺度空间构建完成后,SIFT算法使用差分运算来检测关键点。

差分运算可以通过对图像进行高斯平滑操作来实现,然后计算相邻尺度之间的差分图像。

对差分图像进行极值检测,即寻找局部最大和最小值的像素点,这些像素点就是图像中的关键点。

3.关键点精确定位关键点的精确定位是通过拟合关键点周围的局部图像来实现的。

SIFT算法使用了一种高度鲁棒的方法,即利用关键点周围梯度的方向和大小来进行拟合。

具体来说,SIFT算法在关键点周围计算图像的梯度幅值和方向,并构建梯度直方图。

然后通过在梯度直方图中寻找局部极值来确定关键点的方向。

4.关键点描述关键点的描述是为了提取关键点周围的特征向量,用于后续的匹配和识别。

SIFT算法使用了一种局部特征描述算法,即将关键点周围的图像区域划分为小的子区域,并计算每个子区域的梯度方向直方图。

然后将这些直方图组合起来,构成一个维度较高的特征向量。

5.特征向量匹配在完成关键点描述之后,SIFT算法使用一种近似的最近邻方法来进行特征向量的匹配。

具体来说,使用KD树或者暴力匹配的方法来寻找两幅图像中最相似的特征向量。

通过计算特征向量之间的距离,可以找到最相似的匹配对。

6.尺度不变性SIFT算法具有尺度不变性的特点,即对于图像的缩放、旋转和视角变化等变换具有较好的鲁棒性。

这是因为在特征提取的过程中,SIFT算法对图像进行了多尺度的分析,并利用了关键点周围的梯度信息进行描述。

SIFT算法详解及应用(课件)

SIFT算法详解及应用(课件)

• 高斯模糊具有线性可分的性质,也可以在二维图像上对两个独立的一 维空间分别进行计算。这样可以大大减少了运算的次数。
• 对一幅图像进行多次连续高斯模糊的效果与一次更大的高斯模糊可以 产生同样的效果,大的高斯模糊的半径是所用多个高斯模糊半径平方 和的平方根。例如,使用半径分别为 6 和 8 的两次高斯模糊变换得 到的效果等同于一次半径为 10 的高斯模糊效果, 62 82 10 根据这个关系,使用多个连续较小的高斯模糊处理不会比单个高斯较 大处理时间要少。
SIFT
Scale Invariant Feature Transform
Octave 5 Octave 4 Octave 3

8

4

2

Octave 2


Octave 1
2013/7/11
17
关键点检测的相关概念
• 高斯图像金字塔共o组、s层, 则有:
SIFT
Scale Invariant Feature Transform
SIFT
Scale Invariant Feature Transform
0.00002292 0.00078633 0.00655965 0.01330373 0.00655965 0.00078633 0.00002292
0.00000067 0.00002292 0.00019117 0.00038771 0.00019117 0.00002292 0.00000067
高斯函数
( x xi )2 ( y yi )2 G xi , yi , exp 2 2 2 2 1
L x, y, G x, y, * I x, y

SIFT算法详解及应用

SIFT算法详解及应用

SIFT算法详解及应用SIFT(Scale-Invariant Feature Transform)是一种在计算机视觉中常用的特征点提取算法,由David Lowe在1999年提出,并在2004年的论文中进行了详细阐述。

SIFT算法可以在不同尺度和旋转下保持图像的特征点不变性,因此在图像拼接、目标识别、图像匹配等领域具有广泛的应用。

1.尺度空间构建:SIFT算法使用高斯差分函数来检测不同尺度下的特征点。

通过在图像中采用不同尺度的高斯滤波,构建尺度空间,从而检测到不同尺度的图像特征。

2.关键点提取:在构建的尺度空间中,SIFT算法通过在每个像素点检测局部极值点来获取关键点。

具体的做法是对每个像素点在尺度空间上进行比较,找出该点与它相邻像素点和尺度上的极值,从而得到关键点。

3. 关键点定位:在关键点提取后,SIFT算法通过利用二阶偏导数的Hessian矩阵来对关键点进行进一步定位。

Hessian矩阵可以描述图像对灰度变化的响应,通过计算关键点周围像素点的Hessian矩阵,可以对关键点进行精确定位。

4.方向分配:在关键点定位后,SIFT算法为每个关键点分配一个主导方向。

通过对关键点周围的图像梯度进行统计,找到梯度方向分布最大的方向作为主导方向,以此来保证关键点对旋转具有不变性。

5.特征描述:在分配了主导方向后,SIFT算法使用局部图像梯度的方向直方图来描述关键点的局部特征。

将关键点周围的16x16邻域划分为4x4的小格子,计算每个小格子内的梯度方向直方图,最终得到一个128维的特征向量来表示关键点的局部特征。

1.尺度不变性:SIFT算法通过在不同尺度下检测特征点,使得算法对于图像缩放具有不变性。

这一特性使得SIFT在目标识别和图像匹配等领域具有广泛应用,可以应对不同尺寸的目标和场景。

2.旋转不变性:SIFT算法通过为每个关键点分配主导方向,使得算法对于图像旋转具有不变性。

这一特性使得SIFT在图像拼接和图像匹配中能够应对图像的旋转变换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2、高斯模糊
SIFT 算法是在不同的尺度空间上查找关键点,而尺度空间的获取需要使用高斯模糊来 实现,Lindeberg 等人已证明高斯卷积核是实现尺度变换的唯一变换核,并且是唯一的线性 核。本节先介绍高斯模糊算法。
2.1 二维高斯函数
高斯模糊是一种图像滤波器,它使用正态分布(高斯函数)计算模糊模板,并使用该模板 与原图像做卷积运算,达到模糊图像的目的。 N 维空间正态分布方程为:
G (r ) =
1 2πσ
2
N
e −r
2
/(2 σ 2 )
(1-1)
其中, σ 是正态分布的标准差, σ 值越大,图像越模糊(平滑)。r 为模糊半径,模糊半 径是指模板元素到模板中心的距离。如二维模板大小为 m*n,则模板上的元素(x,y)对应的高 斯计算公式为:
G ( x, y ) =
1
2πσ 2
3.1 尺度空间理论
尺度空间(scale space)思想最早是由 Iijima 于 1962 年提出的,后经 witkin 和 Koenderink 等人的推广逐渐得到关注,在计算机视觉领域使用广泛。 尺度空间理论的基本思想是: 在图像信息处理模型中引入一个被视为尺度的参数, 通过 连续变化尺度参数获得多尺度下的尺度空间表示序列, 对这些序列进行尺度空间主轮廓的提 取,并以该主轮廓作为一种特征向量,实现边缘、角点检测和不同分辨率上的特征提取等。 尺度空间方法将传统的单尺度图像信息处理技术纳入尺度不断变化的动态分析框架中, 更容易获取图像的本质特征。 尺度空间中各尺度图像的模糊程度逐渐变大, 能够模拟人在距 离目标由近到远时目标在视网膜上的形成过程。 尺度空间满足视觉不变性。该不变性的视觉解释如下:当我们用眼睛观察物体时,一方 面当物体所处背景的光照条件变化时, 视网膜感知图像的亮度水平和对比度是不同的, 因此 要求尺度空间算子对图像的分析不受图像的灰度水平和对比度变化的影响, 即满足灰度不变 性和对比度不变性。另一方面,相对于某一固定坐标系,当观察者和物体之间的相对位置变 化时,视网膜所感知的图像的位置、大小、角度和形状是不同的,因此要求尺度空间算子对 图像的分析和图像的位置、 大小、 角度以及仿射变换无关, 即满足平移不变性、 尺度不变性、 欧几里德不变性以及仿射不变性。
n = log 2 {min( M , N )} − t , t ∈ [0, log 2 {min( M , N )}) (3-3)
其中 M, 为原图像的大小,t 为塔顶图像的最小维数的对数值。 对于大小为 512*512 N 如, 的图像,金字塔上各层图像的大小如表 3.1 所示,当塔顶图像为 4*4 时,n=7,当塔顶图像 为 2*2 时,n=8。 表 3.1 512*512 图像金字塔顶层图像大小与层数的关系 图像大小 金字塔层数 512 1 216 2 128 3 64 4 16 5 8 6 4 7 2 8 1 9
高斯模板是中心对称的。 下图是 5*5( σ = 0.6 )的高斯模板卷积计算示意图。
图 2.2 二维高斯卷积
a) 原图
b)
σ = 0.6
c) σ = 10.0
d) σ = 10.0 (边缘处理) 图 2.3 二维高斯模糊效果图
2.3 分离高斯模糊
如图 2.3 所示,使用二维的高斯模板达到了模糊图像的目的,但是会因模板矩阵的关系 而造成边缘图像缺失(2.3 b,c), σ 越大,缺失像素越多,丢弃模板会造成黑边(2.3 d)。更重要 的是当变大时,高斯模板(高斯核)和卷积运算量将大幅度提高。根据高斯函数的可分离性, 可对二维高斯模糊函数进行改进。 高斯函数的可分离性是指使用二维矩阵变换得到的效果也可以通过在水平方向进行一 维高斯矩阵变换加上竖直方向的一维高斯矩阵变换得到。 从计算的角度来看, 这是一项有用 的特性,因为这样只需要 O ( n × M × N ) + O ( m × M × N ) 次计算,而二维不可分的矩阵则需 要 O ( m × n × M × N ) 次计算,其中,m,n 为高斯矩阵的维数,M,N 为二维图像的维数。 另外,两次一维的高斯卷积将消除二维高斯矩阵所产生的边缘。
3.2 尺度空间的表示
一个图像的尺度空间 L( x, y, σ ) ,定义为一个变化尺度的高斯函数 G ( x, y, σ ) 与原图像
I ( x, y ) 的卷积。
L ( x, y , σ ) = G ( x , y , σ ) ∗ I ( x, y )
其中, ∗ 表示卷积运算,
(3-1)
G ( x, y , σ ) =
2.2 图像的二维高斯模糊
根据σ的值,计算出高斯模板矩阵的大小( (6σ + 1) × (6σ + 1) ),使用公式(1-2)计算高 斯模板矩阵的值,与原图像做卷积,即可获得原图像的平滑(高斯模糊)图像。为了确保模板 矩阵中的元素在[0,1]之间,需将模板矩阵归一化。5*5 的高斯模板如表 2.1 所示。 表 2.1 5*5 的高斯模板(σ=0.6) 6.58573e-006 0.000424781 0.00170354 0.000424781 6.58573e-006 0.000424781 0.0273984 0.109878 0.0273984 0.000424781 0.00170354 0.109878 0.440655 0.109878 0.00170354 0.000424781 0.0273984 0.109878 0.0273984 0.000424781 6.58573e-006 0.000424781 0.00170354 0.000424781 6.58573e-006
尺度不变特征变换匹配算法详解 Scale Invariant Feature Transform(SIFT) Just For Fun
张东东
zddmail@
对于初学者,从 David G.Lowe 的论文到实现,有许多鸿沟,本文帮你跨越。
SIFT 1、SIFT 综述
尺度不变特征转换(Scale-invariant feature transform 或 SIFT)是一种电脑视觉的算法用来 侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、 旋 转不变量,此算法由 David Lowe 在 1999 年所发表,2004 年完善总结。 其应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D 模型建立、手势辨 识、影像追踪和动作比对。 此算法有其专利,专利拥有者为英属哥伦比亚大学。 局部影像特征的描述与侦测可以帮助辨识物体,SIFT 特征是基于物体上的一些局部外 观的兴趣点而与影像的大小和旋转无关。 对于光线、 噪声、 些微视角改变的容忍度也相当高。 基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨 识物体而且鲜有误认。使用 SIFT 特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需 要 3 个以上的 SIFT 物体特征就足以计算出位置与方位。在现今的电脑硬件速度下和小型的 特征数据库条件下,辨识速度可接近即时运算。SIFT 特征的信息量大,适合在海量数据库 中快速准确匹配。 SIFT 算法的特点有: 1. SIFT 特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角 变化、仿射变换、噪声也保持一定程度的稳定性; 2. 独特性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、 准确的匹配; 3. 多量性,即使少数的几个物体也可以产生大量的 SIFT 特征向量; 4. 高速性,经优化的 SIFT 匹配算法甚至可以达到实时的要求;
3.3 高斯金字塔的构建
尺度空间在实现时使用高斯金字塔表示,高斯金字塔的构建分为两部分: 1. 对图像做不同尺度的高斯模糊; 2. 对图像做降采样(隔点采样)。
图 3.1 高斯金字塔 图像的金字塔模型是指,将原始图像不断降阶采样,得到一系列大小不一的图像,由大 到小,从下到上构成的塔状模型。原图像为金子塔的第一层,每次降采样所得到的新图像为 金字塔的一层(每层一张图像),每个金字塔共 n 层。金字塔的层数根据图像的原始大小和塔 顶图像的大小共同决定,其计算公式如下:
图 2.1 二维高斯曲面 理论上来讲, 图像中每点的分布都不为零, 这也就是说每个像素的计算都需要包含整幅 图像。在实际应用中,在计算高斯函数的离散近似时,在大概 3σ距离之外的像素都可以看 作不起作用,这些像素的计算也就可以忽略。通常,图像处理程序只需要计算
(6σ + 1) × (6σ + 1) 的矩阵就可以保证相关像素影响。
1
2πσ 2
e

( x−m / 2)2 +( y −n / 2)2 2σ 2
(3-2)
与公式(1-2)相同,m,n 表示高斯模板的维度(由 (6σ + 1) × (6σ + 1) 确定)。(x, y)代表图 像的像素位置。 σ 是尺度空间因子,值越小表示图像被平滑的越少,相应的尺度也就越小。 大尺度对应于图像的概貌特征,小尺度对应于图像的细节特征。
e

( x −m / 2)2 +( y −n / 2)2 2σ 2
(1-2)
在二维空间中,这个公式生成的曲面的等高线是从中心开始呈正态分布的同心圆,如图 2.1 所示。分布不为零的像素组成的卷积矩阵与原始图像做变换。每个像素的值都是周围相 邻像素值的加权平均。原始像素的值有最大的高斯分布值,所以有最大的权重,相邻像素随 着距离原始像素越来越远, 其权重也越来越小。 这样进行模糊处理比其它的均衡模糊滤波器 更高地保留了边缘效果。
5. 可扩展性,可以很方便的与其他形式的特征向量进行联合。 SIFT 算法可以解决的问题: 目标的自身状态、场景所处的环境和成像器材的成像特性等因素影响图像配准/目标识 别跟踪的性能。而 SIFT 算法在一定程度上可解决: 1. 目标的旋转、缩放、平移(RST) 2. 图像仿射/投影变换(视点 viewpoint) 3. 光照影响(illumination) 4. 目标遮挡(occlusion) 5. 杂物场景(clutter) 6. 噪声 SIFT 算法的实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。 SIFT 所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点, 如角点、边缘点、暗区的亮点及亮区的暗点等。 Lowe 将 SIFT 算法分解为如下四步: 1. 尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯微分函数来识别潜在的 对于尺度和旋转不变的兴趣点。 2. 关键点定位:在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。 关键点的选择依据于它们的稳定程度。 3. 方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所 有后面的对图像数据的操作都相对于关键点的方向、 尺度和位置进行变换, 从而提供对于这 些变换的不变性。 4. 关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。 这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。 本文沿着 Lowe 的步骤,参考 Rob Hess 及 Andrea Vedaldi 源码,详解 SIFT 算法的实现 过程。
相关文档
最新文档