文档库 最新最全的文档下载
当前位置:文档库 › 基于sift特征描述符的多尺度图像配准方法

基于sift特征描述符的多尺度图像配准方法

基于sift特征描述符的多尺度图像配准方法
基于sift特征描述符的多尺度图像配准方法

SIFT 特征提取算法详解

SIFT 特征提取算法总结 主要步骤 1)、尺度空间的生成; 2)、检测尺度空间极值点; 3)、精确定位极值点; 4)、为每个关键点指定方向参数; 5)、关键点描述子的生成。 L(x,y,σ), σ= 1.6 a good tradeoff

D(x,y,σ), σ= 1.6 a good tradeoff

关于尺度空间的理解说明:图中的2是必须的,尺度空间是连续的。在 Lowe 的论文中, 将第0层的初始尺度定为1.6,图片的初始尺度定为0.5. 在检测极值点前对原始图像的高斯平滑以致图像丢失高频信息,所以Lowe 建议在建立尺度空间前首先对原始图像长宽扩展一倍,以保留原始图像信息,增加特征点数量。尺度越大图像越模糊。 next octave 是由first octave 降采样得到(如2) , 尺度空间的所有取值,s为每组层数,一般为3~5 在DOG尺度空间下的极值点 同一组中的相邻尺度(由于k的取值关系,肯定是上下层)之间进行寻找

在极值比较的过程中,每一组图像的首末两层是无法进行极值比较的,为了满足尺度 变化的连续性,我们在每一组图像的顶层继续用高斯模糊生成了 3 幅图像, 高斯金字塔有每组S+3层图像。DOG金字塔每组有S+2层图像.

If ratio > (r+1)2/(r), throw it out (SIFT uses r=10) 表示DOG金字塔中某一尺度的图像x方向求导两次 通过拟和三维二次函数以精确确定关键点的位置和尺度(达到亚像素精度)?

直方图中的峰值就是主方向,其他的达到最大值80%的方向可作为辅助方向 Identify peak and assign orientation and sum of magnitude to key point The user may choose a threshold to exclude key points based on their assigned sum of magnitudes. 利用关键点邻域像素的梯度方向分布特性为每个关键点指定方向参数,使算子具备 旋转不变性。以关键点为中心的邻域窗口内采样,并用直方图统计邻域像素的梯度 方向。梯度直方图的范围是0~360度,其中每10度一个柱,总共36个柱。随着距中心点越远的领域其对直方图的贡献也响应减小.Lowe论文中还提到要使用高斯函 数对直方图进行平滑,减少突变的影响。

SIFT特征点提取与匹配算法

SIFT 特征点匹配算法 基于SIFT 方法的图像特征匹配可分为特征提取和特征匹配两个部分,可细化分为五个部分: ① 尺度空间极值检测(Scale-space extrema detection ); ② 精确关键点定位(Keypoint localization ) ③ 关键点主方向分配(Orientation assignment ) ④ 关键点描述子生成(Keypoint descriptor generation ) ⑤ 比较描述子间欧氏距离进行匹配(Comparing the Euclidean distance of the descriptors for matching ) 1.1 尺度空间极值检测 特征关键点的性质之一就是对于尺度的变化保持不变性。因此我们所要寻找的特征点必须具备的性质之一,就是在不同尺度下都能被检测出来。要达到这个目的,我们可以在尺度空间内寻找某种稳定不变的特性。 Koenderink 和Lindeberg 已经证明,变换到尺度空间唯一的核函数是高斯函数。因此一个图像的尺度空间定义为:(,,)L x y σ,是由可变尺度的高斯函数(,,)G x y σ与输入图像(,)I x y 卷积得到,即: ),(),,(),,(y x I y x G y x L *=σσ (1.1) 其中:2222/)(221 ),,(σπσσy x e y x G +-= 在实际应用中,为了能相对高效地计算出关键点的位置,建议使用的是差分高斯函数(difference of Gaussian )(,,)D x y σ。其定义如下: ) ,,(),,() ,()),,(),,((),,(σσσσσy x L k y x L y x I y x G k y x G y x D -=*-= (1.2) 如上式,D 即是两个相邻的尺度的差(两个相邻的尺度在尺度上相差一个相乘系数k )。

SIFT特征点提取与匹配算法

二 特征点提取算法 1、基于SIFT (Scale Invariant Feature Transform )方法的图像特征匹配 参看David G. Lowe 的“Distinctive Image Features from Scale-Invariant Keypoints ” 基于SIFT 方法的图像特征匹配可分为特征提取和特征匹配两个部分,可细化分为五个部分: ① 尺度空间极值检测(Scale-space extrema detection ); ② 精确关键点定位(Keypoint localization ) ③ 关键点主方向分配(Orientation assignment ) ④ 关键点描述子生成(Keypoint descriptor generation ) ⑤ 比较描述子间欧氏距离进行匹配(Comparing the Euclidean distance of the descriptors for matching ) 1.1 尺度空间极值检测 特征关键点的性质之一就是对于尺度的变化保持不变性。因此我们所要寻找的特征点必须具备的性质之一,就是在不同尺度下都能被检测出来。要达到这个目的,我们可以在尺度空间内寻找某种稳定不变的特性。 Koenderink 和Lindeberg 已经证明,变换到尺度空间唯一的核函数是高斯函数。因此一个图像的尺度空间定义为:(,,)L x y σ,是由可变尺度的高斯函数(,,)G x y σ与输入图像(,)I x y 卷积得到,即: ),(),,(),,(y x I y x G y x L *=σσ (1.1) 其中:2222/)(221 ),,(σπσσy x e y x G +-= 在实际应用中,为了能计算的相对高效,所真正使用的是差分高斯尺度空间(difference of Gaussian )(,,)D x y σ。其定义如下: ) ,,(),,() ,()),,(),,((),,(σσσσσy x L k y x L y x I y x G k y x G y x D -=*-= (1.2) 如上式,D 即是由两个相邻的尺度的差(两个相邻的尺度在尺度上相差一个相乘系数k )。

基于SIFT特征的图像匹配

毕业设计(论文)题目基于SIFT特征的图像匹配 姓名张建华 学号0811111101 所在学院理学院 专业班级08信计 指导教师吴颖丹 日期2012 年 6 月 2 日

摘要 当今社会已经进入信息时代,随着计算机技术、通信技术和数学的发展,图像信息处理能力和水平也不断提高,相应的也得到更多关注、研究和更加广泛的应用。图像匹配是处理和解决各种图像信息的基础,已经成为虚拟现实和计算机可视化领域的研究热点。一直以来,研究人员对图像匹配技术进行了大量的研究,推出了许多匹配算法,其中特征匹配算法有着较高的精确度和稳定性。SIFT (Scale Invariant Feature Transform)特征匹配算法是Lowe提出来的用于图像特征匹配的算法,是目前特征匹配领域的热点,对图像的旋转,尺度缩放和亮度变换保持不变,对视角变换,仿射变换保持一定程度的稳定。SIFT特征点是图像的一种尺度不变局部特征点,具有独特性好,信息量丰富,多量性,高速性,可扩展性等特点。正是借助于这些特点,使得传统图像配准中的许多诸如前面提到的共性问题得到了很大程度的改善。该算法首先给出了尺度空间的生成方法,检测出极值点;接下来给出了SIFT特征点的提取步骤和精确定位极值点的方法;然后基于特征点邻域像素的梯度和方向生成了关键点的描述向量;最后根据特征向量给出了匹配方法,提取了SIFT的特征点,并其应用于图像匹配。 本文首先简要介绍了图像匹配所需的基础知识,然后详细介绍了SIFT算法的具体流程。通过大量的实验证明SIFT算法具有较强的匹配能力和鲁棒性,是一种较好的图像匹配算法。 关键字:SIFT; 图像匹配; 尺度空间; 极值点; 特征向量

SIFT算法分析

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

4 SIFT 算法详细 1)尺度空间的生成 尺度空间理论目的是模拟图像数据的多尺度特征。 高斯卷积核是实现尺度变换的唯一线性核,于是一副二维图像的尺度空间定义为: L( x, y, ) G( x, y, ) I (x, y) 其中G(x, y, ) 是尺度可变高斯函数,G( x, y, ) 2 1 2 y2 (x ) 2 e / 2 2 (x,y)是空间坐标,是尺度坐标。大小决定图像的平滑程度,大尺度对应图像的概貌特征,小尺度对应图像的细节特征。大的值对应粗糙尺度(低分辨率),反之,对应精细尺度(高分辨率)。 为了有效的在尺度空间检测到稳定的关键点,提出了高斯差分尺度空间(DOG scale-space)。利用不同尺度的高斯差分核与图像卷积生成。 D( x, y, ) (G( x, y,k ) G( x, y, )) I ( x, y) L( x, y,k ) L( x, y, ) 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

SIFT特征提取分析

SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest points, or corner points)及其有关scale 和orientation 的描述子得到特征并进行图像特征点匹配,获得了良好效果,详细解析如下: 算法描述 SIFT特征不只具有尺度不变性,即使改变旋转角度,图像亮度或拍摄视角,仍然能够得到好的检测效果。整个算法分为以下几个部分: 1. 构建尺度空间 这是一个初始化操作,尺度空间理论目的是模拟图像数据的多尺度特征。 高斯卷积核是实现尺度变换的唯一线性核,于是一副二维图像的尺度空间定义为: 其中G(x,y,σ) 是尺度可变高斯函数 (x,y)是空间坐标,是尺度坐标。σ大小决定图像的平滑程度,大尺度对应图像的概貌特征,小尺度对应图像的细节特征。大的σ值对应粗糙尺度(低分辨率),反之,对应精细尺度(高分辨率)。为了有效的在尺度空间检测到稳定的关键点,提出了高斯差分尺度空间(DOG scale-space)。利用不同尺度的高斯差分核与图像卷积生成。 下图所示不同σ下图像尺度空间:

关于尺度空间的理解说明:2kσ中的2是必须的,尺度空间是连续的。在 Lowe的论文中,将第0层的初始尺度定为1.6(最模糊),图片的初始尺度定为0.5(最清晰). 在检测极值点前对原始图像的高斯平滑以致图像丢失高频信息,所以Lowe 建议在建立尺度空间前首先对原始图像长宽扩展一倍,以保留原始图像信息,增加特征点数量。尺度越大图像越模糊。 图像金字塔的建立:对于一幅图像I,建立其在不同尺度(scale)的图像,也成为子八度(octave),这是为了scale-invariant,也就是在任何尺度都能够有对应的特征点,第一个子八度的scale为原图大小,后面每个octave为上一个octave降采样的结果,即原图的1/4(长宽分别减半),构成下一个子八度(高一层金字塔)。

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)(2 2/21),,(22σπσσy x e 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

尺度不变特征变换(Scale-invariant feature transform,SIFT

SIFT SIFT,即尺度不变特征变换(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。该方法于1999年由David Lowe 首先发表于计算机视觉国际会议(International Conference on Computer Vision,ICCV),2004年再次经David Lowe整理完善后发表于International journal of computer vision(IJCV) 。截止2014年8月,该论文单篇被引次数达25000余次。 算法介绍 SIFT由David Lowe在1999年提出,在2004年加以完善。SIFT在数字图像的特征描述方面当之无愧可称之为最红最火的一种,许多人对SIFT进行了改进,诞生了SIFT的一系列变种。SIFT 已经申请了专利。 SIFT特征是基于物体上的一些局部外观的兴趣点而与影像的大小和旋转无关。对于光线、噪声、微视角改变的容忍度也相当高。基于这些特性,它们是高度显著而且相对容易撷取,在母数庞大的特征数据库中,很容易辨识物体而且鲜有误认。使用SIFT特征描述对于部分物体遮蔽的侦测率也相当高,甚至只需要3个以上的SIFT物体特征就足以计算出位置与方位。在现今的电脑硬件速度下和小型的特征数据库条件下,辨识速度可接近即时运算。SIFT特征的信息量大,适合在海量数据库中快速准确匹配。 算法的特点 SIFT算法具有如下一些特点: 1.SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性; 2. 区分性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配; 3. 多量性,即使少数的几个物体也可以产生大量的SIFT特征向量; 4.高速性,经优化的SIFT匹配算法甚至可以达到实时的要求; 5.可扩展性,可以很方便的与其他形式的特征向量进行联合。 特征检测 SIFT特征检测主要包括以下4个基本步骤: 1尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。 2. 关键点定位 在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。 3. 方向确定 基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。 4. 关键点描述 在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。 特征匹配 SIFT特征匹配主要包括2个阶段: 第一阶段:SIFT特征的生成,即从多幅图像中提取对尺度缩放、旋转、亮度变化无关的特征向量。第二阶段:SIFT特征向量的匹配。 SIFT特征的生成一般包括以下几个步骤:

(完整版)SIFT算法原理.doc

3.1.1 尺度空间极值检测 尺度空间理论最早出现于计算机视觉领域,当时其目的是模拟图像数据的多尺度特征。 随后 Koendetink利用扩散方程来描述尺度空间滤波过程,并由此证明高斯核是实现尺度变 换的唯一变换核。Lindeberg, Babaud 等人通过不同的推导进一步证明高斯核是唯一的线性 核。因此,尺度空间理论的主要思想是利用高斯核对原始图像进行尺度变换,获得图像多尺度下的尺度空间表示序列,对这些序列进行尺度空间特征提取。二维高斯函数定义如下: G ( x, y, ) 1 2e( x2y2)/2 2 ( 5) 2 一幅二维图像,在不同尺度下的尺度空间表示可由图像与高斯核卷积得到: L( x, y, G( x, y, )* I ( x, y) ( 6)其中 (x,y)为图像点的像素坐标, I(x,y)为图像数据 , L 代表了图像的尺度空间。σ称为尺度空间因子,它也是高斯正态分布的方差,其反映了图像被平滑的程度,其值越小表征图像被平滑 程度越小,相应尺度越小。大尺度对应于图像的概貌特征,小尺度对应于图像的细节特征。 因此,选择合适的尺度因子平滑是建立尺度空间的关键。 在这一步里面,主要是建立高斯金字塔和DOG(Difference of Gaussian) 金字塔,然后在DOG 金字塔里面进行极值检测,以初步确定特征点的位置和所在尺度。 (1)建立高斯金字塔 为了得到在不同尺度空间下的稳定特征点,将图像I (x, y) 与不同尺度因子下的高斯核 G ( x, y,) 进行卷积操作,构成高斯金字塔。 高斯金字塔有o 阶,一般选择 4 阶,每一阶有s 层尺度图像,s 一般选择 5 层。在高斯金字塔的构成中要注意,第 1 阶的第l 层是放大 2 倍的原始图像,其目的是为了得到更多的 特征点;在同一阶中相邻两层的尺度因子比例系数是k ,则第 1 阶第 2 层的尺度因子是k ,然后其它层以此类推则可;第 2 阶的第l 层由第一阶的中间层尺度图像进行子抽样获得,其尺度因子是k 2 ,然后第 2 阶的第 2 层的尺度因子是第 1 层的k 倍即k 3 。第 3 阶的第 1 层由第 2 阶的中间层尺度图像进行子抽样获得。其它阶的构成以此类推。 (2) 建立DOG 金字塔 DOG 即相邻两尺度空间函数之差,用 D (x, y, ) 来表示,如公式(3)所示: D (x, y, ) (G( x, y, k ) G (x, y, ))* I (x, y) L( x, y, k ) L (x, y, ) (7) DOG 金字塔通过高斯金字塔中相邻尺度空间函数相减即可,如图 1 所示。在图中,DOG 金字塔的第l 层的尺度因子与高斯金字塔的第l 层是一致的,其它阶也一样。

尺度空间理论和SIFT算法小结

尺度空间理论 尺度空间(scalesPace)思想最早由Iijima 于1962年提出([l]),但当时并未引起算机视觉领域研究者们的足够注意,直到上世纪八十年代,witkin([2])Koenderink([3])等人的奠基性工作使得尺度空间方法逐渐得到关注和发展。此后,随着非线性扩散方程、变分法和数学形态学等方法在计算机视觉领域中的广泛应用,尺度空间方法进入了快速发展阶段。尺度空间方法本质上是偏微分方程对图像的作用。 尺度空间方法的基本思想是:在视觉信息(图像信息)处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得不同尺度下的视觉处理信息,然后综合这些信息以深入地挖掘图像的本质特征。尺度空间方法将传统的单尺度视觉信息处理技术纳入尺度不断变化的动态分析框架中,因此更容易获得图像的本质特征。尺度空间的生成目的是模拟图像数据的多尺度特征。高斯卷积核是实现尺度变换的唯一线性核。 尺度空间是一个用来控制观察尺度或表征图像数据多尺度自然特性的框架;信号的尺度空间表征是信号的特征结构集合并包含有一个连续的尺度参量(即观察尺度)。尺度空间理论[8]是通过对原始图像进行尺度变换,获得图像多尺度下的尺度空间表示序列,对这些序列进行尺度空间主轮廓的提取,并以该主轮廓作为一种特征向量,实现边缘、角点检测和不同分辨率上的特征提取等。尺度空间表示是一种基于区域而不是基于边缘的表达,它无需关于图像的先验知识。与通过减小图像尺寸而提高计算效率的其他多尺度或多分辨率表达相比,尺度空间表示由平滑获得,在多由尺度上都保持了不变的空间取样,但对同一特征而言,它在粗糙尺度上对应更多的像素点,这样就使得对这些数据的计算任务得到连续的简化。尺度空间表示的另一个重要特征,就是基于尺度的结构特性能以一种简单的方式解析的表达,不同尺度上的特征可以一种精确的方式联系起来。作为尺度空间理论中的一个重要概念,尺度空间核被定义为:in out f K f *= (1) 对于所有的信号in f ,若它与变换核K 卷积后得到的信号out f 中的极值(一阶微分过零点数)不超过原图像的极值,则称K 为尺度空间核,所进行的卷积变换称为尺度变换。尺度空间表示通过平滑获得,可描述为),(σx 空间(?y 呢?),x 和σ分别为位置参数和尺度参数。当采用不同尺度的平滑函数对同一图像进行滤波时,得到的一簇图像就是原始图像相对于该平滑函数的尺度空间,σ为尺度空间坐标。 在高斯尺度空间,同一类型特征点和边缘在不同的尺度上具有因果性,即当尺度变化时,新的特征点可能出现,而老的特征点可能移位或消失。这种因果性带来的含糊性是固有的,不可避免的,不能企求消除,但可以减小。然而,由于高斯核[9] 具有线性、平移不变性、旋转不变性和子集特性等特性,可以证明,

SIFT算法实现原理步骤

SIFT 算法实现步骤 :1 关键点检测、2 关键点描述、3 关键点匹配、4 消除错配点 1关键点检测 1.1 建立尺度空间 根据文献《Scale-space theory: A basic tool for analysing structures at different scales 》我们可知,高斯核是唯一可以产生多尺度空间的核,一个图像的尺度空间,L (x,y,σ) ,定义为原始图像I(x,y)与一个可变尺度的2维高斯函数G(x,y,σ) 卷积运算。 高斯函数 高斯金字塔 高斯金子塔的构建过程可分为两步: (1)对图像做高斯平滑; (2)对图像做降采样。 为了让尺度体现其连续性,在简单 下采样的基础上加上了高斯滤波。 一幅图像可以产生几组(octave ) 图像,一组图像包括几层 (interval )图像。 高斯图像金字塔共o 组、s 层, 则有: σ——尺度空间坐标;s ——sub-level 层坐标;σ0——初始尺度;S ——每组层数(一般为3~5)。 当图像通过相机拍摄时,相机的镜头已经对图像进行了一次初始的模糊,所以根据高斯模糊的性质: -第0层尺度 --被相机镜头模糊后的尺度 高斯金字塔的组数: M 、N 分别为图像的行数和列数 高斯金字塔的组内尺度与组间尺度: 组内尺度是指同一组(octave )内的尺度关系,组内相邻层尺度化简为: 组间尺度是指不同组直接的尺度关系,相邻组的尺度可化为: 最后可将组内和组间尺度归为: ()22221 ()(),,exp 22i i i i x x y y G x y σπσσ??-+-=- ???()()(),,,,*,L x y G x y I x y σσ=Octave 1 Octave 2 Octave 3 Octave 4Octave 5σ2σ 4σ8 σ … … … … … 0()2s S s σσ=0init init pre pre σσσσσ=?-?init σpre σ()() 2log min ,3O M N ??=-?? 1 12S s s σσ+=1()2s S S o o s σσ++=222s S s S S o o σσ+=121 2(,,,) i n k k k σσσσ--12 S k =

OpenCV SIFT特征算法详解与使用

SIFT概述 SIFT特征是非常稳定的图像特征,在图像搜索、特征匹配、图像分类检测等方面应用十分广泛,但是它的缺点也是非常明显,就是计算量比较大,很难实时,所以对一些实时要求比较高的常见SIFT算法还是无法适用。如今SIFT算法在深度学习特征提取与分类检测网络大行其道的背景下,已经越来越有鸡肋的感觉,但是它本身的算法知识还是很值得我们学习,对我们也有很多有益的启示,本质上SIFT算法是很多常见算法的组合与巧妙衔接,这个思路对我们自己处理问题可以带来很多有益的帮助。特别是SIFT特征涉及到尺度空间不变性与旋转不变性特征,是我们传统图像特征工程的两大利器,可以扩展与应用到很多图像特征提取的算法当中,比如SURF、HOG、HAAR、LBP等。夸张一点的说SIFT算法涵盖了图像特征提取必备的精髓思想,从特征点的检测到描述子生成,完成了对图像的准确描述,早期的ImageNet 比赛中,很多图像分类算法都是以SIFT与HOG特征为基础,所有SIFT算法还是值得认真详细解读一番的。SIFT特征提取归纳起来SIFT特征提取主要有如下几步: ?构建高斯多尺度金字塔 ?关键点精准定位与过滤 ?关键点方向指派 ?描述子生成 构建高斯多尺度金字塔 常见的高斯图像金字塔是每层只有一张图像,大致如下: 上述的是通过图像金字塔实现了多分辨率,如果我们在每一层高斯金字塔图像生成的时候,给予不同的sigma值,这样不同的sigam就会产生不同模糊版本的图像,在同一层中就是实现不同尺度的模糊图像,再结合高斯金

字塔,生成多个层多个尺度的金字塔,就是实现了图像的多尺度金字塔。同一张图像不同尺度高斯模糊如下: 为了在每层图像中检测 S 个尺度的极值点,DoG 金字塔每层需 S+2 张图像,因为每组的第一张和最后一张图像上不能检测极值,DoG 金字塔由高斯金字塔相邻两张相减得到,则高斯金字塔每层最少需 S+3 张图像,实际计算时 S 通常在2到5之间。SIFT算法中生成高斯金字塔的规则如下(尺度空间不变性): 关键点精准定位与过滤 对得到的每层DOG图像,计算窗口3x3x3范围除去中心点之外的26点与中心点比较大小,寻找最大值或者最小值(极值点),如下图:

SIFT特征提取

SIFT特征提取 SIFT特征提取-应用篇标签: matlabimage2012-03-18 10:43 34643人阅读 评论(36) 收藏 举报分类:C/C++(132)Computer Vision(101)版权声明:本文为博主原创文章,未经博主允许不得转载。 SIFT特征具有缩放、旋转特征不变性,下载了大牛的matlab 版SIFT特征提取代码,解释如下:1.调用方法:将文件加入matlab目录后,在主程序中有两种操作:op1:寻找图像中的Sift特征:[csharp] view plaincopy[image, descrips, locs] = sift('scene.pgm'); showkeys(image, locs); op2:对两幅图中的SIFT特征进行匹配:[csharp] view plaincopymatch('scene.pgm','book.pgm'); 由于scene和book两图中有相同的一本书,但orientation 和size都不同,可以发现所得结果中Sift特征检测结果非常好。 2.代码下载地址:http://www.cs.ubc.ca/~lowe/keypoints/ 3.

想用自己的图片进行调用:[csharp] view plaincopyi1=imread('D:\Images\New\Cars\image_0001.jpg' ); i2=imread('D:\Images\New\Cars\image_0076.jpg'); i11=rgb2gray(i1); i22=rgb2gray(i2); imwrite(i11,'v1.jpg','quality',80); imwrite(i22,'v2.jpg','quality',80); match('v1.jpg','v2.jpg'); experiment results: scenebook compare resultEXP2:C代码:[cpp] view plaincopy// FeatureDetector.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "highgui.h" #include "cv.h" #include "vector" #include "opencv\cxcore.hpp" #include "iostream" #include "opencv.hpp" #include "nonfree.hpp" #include "showhelper.h" using namespace cv; using namespace std; int _tmain(int argc, _TCHAR* argv[]) { //Load Image Mat c_src1 = imread( "..\\Images\\3.jpg"); Mat c_src2 = imread("..\\Images\\4.jpg"); Mat src1 = imread( "..\\Images\\3.jpg", CV_LOAD_IMAGE_GRAYSCALE); Mat src2 = imread( "..\\Images\\4.jpg",

相关文档