SIFT特征提取分析
sfit特征提取和匹配的具体步骤
sfit特征提取和匹配的具体步骤
SIFT(尺度不变特征变换)是一种用于图像处理和计算机视觉的特征提取和匹配算法。
它能够在不同尺度和旋转下提取出稳定的特征点,并且对光照变化和噪声有一定的鲁棒性。
SIFT特征提取的具体步骤包括:
1. 尺度空间极值检测,在不同尺度下使用高斯差分函数来检测图像中的极值点,用来确定关键点的位置和尺度。
2. 关键点定位,通过对尺度空间的极值点进行精确定位,使用Hessian矩阵来确定关键点的位置和尺度。
3. 方向分配,对关键点周围的梯度方向进行统计,确定关键点的主方向,使得特征具有旋转不变性。
4. 关键点描述,以关键点为中心,划分周围的区域为小区块,计算每个区块内的梯度方向直方图,构建特征向量。
SIFT特征匹配的具体步骤包括:
1. 特征点匹配,使用特征向量的距离来进行特征点的匹配,通常使用欧氏距离或者近邻算法进行匹配。
2. 鲁棒性检验,对匹配点进行鲁棒性检验,例如RANSAC算法可以剔除错误匹配点,提高匹配的准确性。
3. 匹配结果筛选,根据匹配点的特征向量距离或一致性进行筛选,得到最终的匹配结果。
总的来说,SIFT特征提取和匹配的具体步骤包括特征点检测、定位、描述以及匹配过程。
这些步骤能够帮助我们在图像处理和计算机视觉中提取出稳定的特征并进行准确的匹配,从而实现目标识别、图像配准等应用。
sift特征提取的几个主要步骤
sift特征提取的几个主要步骤SIFT(Scale-Invariant Feature Transform)是一种能够提取图像中的稳定、具有尺度不变性的特征点的算法,它广泛应用于计算机视觉和图像处理领域。
SIFT特征提取主要有以下几个主要步骤:1. 尺度空间构建(Scale Space Pyramid):SIFT算法首先通过使用不同尺度的高斯模糊函数对原始图像进行滤波,产生一系列图像金字塔,也称为尺度空间。
这是因为图像中的物体在不同尺度下具有不同的细节。
高斯金字塔的构建会产生一系列模糊程度不同的图像。
2. 特征点检测(Scale-Space Extrema Detection):在尺度空间中,SIFT算法通过在每个尺度上对图像进行梯度计算,并寻找图像中的极值点来检测潜在的关键点。
这些关键点通常是在空间和尺度上稳定的,它们能够在不同尺度和旋转下保持一定的不变性。
3. 关键点定位(Keypoint Localization):为了更准确地定位关键点,SIFT算法通过使用DoG(Difference of Gaussians)图像金字塔来检测潜在的关键点位置。
DoG图像是通过对高斯图像金字塔的相邻尺度进行相减得到的。
对DoG图像进行极值点检测可以找到潜在的关键点。
4. 关键点方向确定(Orientation Assignment):在确定了潜在的关键点位置后,SIFT算法会对每个关键点周围的领域计算梯度幅度和方向。
然后,使用梯度直方图来确定关键点的主要方向。
这样做能够使得后续的特征描述过程对旋转更具有鲁棒性。
5. 特征描述(Feature Description):在关键点方向确定后,SIFT算法会在每个关键点周围的邻域中构建一个针对尺度和旋转不变性的局部特征描述符。
这个描述符是由关键点周围的梯度直方图组成的,梯度直方图反映了关键点周围的图像局部特征。
6. 特征匹配(Feature Matching):在特征描述生成后,可以使用一些匹配算法来比较两个图像之间的特征点,找到两个图像中相对应的关键点对。
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特征提取出来,并通过匹配目标特征和图像中的特征点,可以进行目标的跟踪和定位。
图像处理中的特征提取和匹配算法
图像处理中的特征提取和匹配算法图像处理在日益热门的人工智能技术中扮演着一种重要的角色。
在图像处理中,特征提取和匹配算法是两个至关重要的步骤。
特征提取是通过分析图像的局部特点来创建描述图像内容的向量,而匹配是将不同图像的特征或特征向量进行比较,以确定它们是否相似。
本文将介绍几种常用的特征提取和匹配算法。
一、特征提取算法1.尺度不变特征变换(SIFT)SIFT是一种特征提取算法,它能够从不同的尺度和方向上提取图像的局部特征。
这种算法在检索和匹配图像中特别有用。
SIFT算法的基本思想是通过高斯差分算子得到一组尺度空间图像,通过高斯图像之间的差异来确定关键点,然后计算每个关键点的局部梯度的幅值和方向,最后形成一个基于梯度方向的特征描述符。
2.速度增强型稀疏编码(SLEEC)SLEEC是一种新型的高效特征提取算法。
与其他算法不同的是,SLEEC只需扫描一次训练数据即可获得最具代表性的特征。
该算法通过运用具有多个分辨率的降采样、随机稀疏和加速度分析三种技术提取特征,从而实现了比其他算法更高的准确性和速度。
二、特征匹配算法1.暴力匹配算法暴力匹配算法是一种基本的匹配算法,它实现了图像特征之间的精确匹配。
该算法通过比较两个图像之间的每个可能的匹配,来确定匹配的好坏。
虽然该算法的准确性很高,但是它非常耗时,因此只适用于小图像匹配。
2.基于Flann树的匹配算法基于Flann树的匹配算法通过对特征向量进行一系列分割和聚类,以快速找到大量数据中的相似匹配。
该算法不仅适用于大规模数据集,而且具有高效和稳定性。
3.随机抽样一致性算法(RANSAC)随机抽样一致性算法是一种常见的特征匹配算法。
该算法通过随机采样一对点来确定匹配,在这个过程中,通过迭代重复采样和检测结果,不断提高匹配模型的准确度。
结论:在图像处理和计算机视觉中,特征提取和匹配是核心算法。
不同的特征提取和匹配算法适用于不同的应用场合。
在实际应用中,为了达到对图像的快速识别和匹配,我们需要根据具体的需求,选择合适的特征提取和匹配算法。
图像局部特征提取方法综述
图像局部特征提取方法综述引言:图像是一种包含丰富信息的视觉表征形式,但如何从图像中提取有助于识别和描述图像内容的局部特征一直是计算机视觉领域的一个重要研究方向。
图像局部特征提取方法的目标是在不受图像整体变化的影响下,提取出能够表征图像局部结构和纹理信息的特征点。
本文将综述目前常用的图像局部特征提取方法,并对其优缺点进行评述。
一、经典的图像局部特征提取方法1. 尺度不变特征变换(Scale-Invariant Feature Transform, SIFT)SIFT是一种经典的图像局部特征提取算法,它通过检测极值点和描述关键区域的局部图像块的梯度分布来提取特征点。
SIFT算法具有旋转、平移和尺度不变性,且对光照变化和噪声有一定的鲁棒性。
然而,SIFT算法在计算时间和计算资源消耗方面存在一定的局限性。
2. 尺度空间极值法(Scale-Space Extrema, DoG)DoG是尺度空间极值法的一种实现方式,通过在不同尺度下对图像进行高斯平滑和差分运算,从而检测出具有较大尺度极值的特征点。
DoG算法具有尺度不变性,并且对图像的旋转、平移和仿射变换具有一定的鲁棒性。
然而,DoG算法在计算速度和尺度空间选择方面存在一些问题。
3. 快速特征检测(Fast Feature Detector, FAST)FAST算法是一种基于像素值比较的简单快速特征检测算法,它通过比较像素点和周围邻域像素点的灰度值大小来检测图像中的角点特征。
FAST算法具有快速检测速度和低计算复杂度的优点,适用于实时应用。
然而,FAST算法对旋转、尺度和光照变化较为敏感。
4. 加速稳健特征(Accelerated Robust Features, SURF)SURF算法是基于Hessian矩阵的加速稳健特征提取算法,它通过检测图像中的兴趣点、计算兴趣点的主方向和提取描述子来提取特征点。
SURF算法具有较快的计算速度和较好的尺度不变性。
然而,SURF算法在处理图像模糊和噪声方面相对较弱。
SIFT特征提取算法
SIFT特征提取算法SIFT(Scale-Invariant Feature Transform)特征提取算法是一种用于图像的局部特征分析的算法。
它能够提取出图像中的关键点,并对这些关键点进行描述,从而可以用于图像匹配、物体识别等应用领域。
本文将详细介绍SIFT算法的原理和过程。
1.尺度空间构建SIFT算法首先通过使用高斯滤波器来构建图像的尺度空间,以便在不同尺度下检测关键点。
高斯滤波器可以通过一系列的高斯卷积操作实现,每次卷积之后对图像进行下采样(降低分辨率),得到不同尺度的图像。
2.关键点检测在尺度空间构建完成后,SIFT算法使用差分运算来检测关键点。
差分运算可以通过对图像进行高斯平滑操作来实现,然后计算相邻尺度之间的差分图像。
对差分图像进行极值检测,即寻找局部最大和最小值的像素点,这些像素点就是图像中的关键点。
3.关键点精确定位关键点的精确定位是通过拟合关键点周围的局部图像来实现的。
SIFT算法使用了一种高度鲁棒的方法,即利用关键点周围梯度的方向和大小来进行拟合。
具体来说,SIFT算法在关键点周围计算图像的梯度幅值和方向,并构建梯度直方图。
然后通过在梯度直方图中寻找局部极值来确定关键点的方向。
4.关键点描述关键点的描述是为了提取关键点周围的特征向量,用于后续的匹配和识别。
SIFT算法使用了一种局部特征描述算法,即将关键点周围的图像区域划分为小的子区域,并计算每个子区域的梯度方向直方图。
然后将这些直方图组合起来,构成一个维度较高的特征向量。
5.特征向量匹配在完成关键点描述之后,SIFT算法使用一种近似的最近邻方法来进行特征向量的匹配。
具体来说,使用KD树或者暴力匹配的方法来寻找两幅图像中最相似的特征向量。
通过计算特征向量之间的距离,可以找到最相似的匹配对。
6.尺度不变性SIFT算法具有尺度不变性的特点,即对于图像的缩放、旋转和视角变化等变换具有较好的鲁棒性。
这是因为在特征提取的过程中,SIFT算法对图像进行了多尺度的分析,并利用了关键点周围的梯度信息进行描述。
SIFT特征提取及其在人脸识别中的应用
为每个关键点分配一个或多个方 向,以增强对图像旋转的鲁棒性。
4. 生成特征描述符
在关键点周围选取一定范围的邻 域,计算梯度方向直方图,生成 特征描述符。
1. 尺度空间极值检测
5. 特征匹配
在多个尺度空间上检测关键点位 置和尺度。
使用特征描述符进行相似度匹配, 找到图像之间的相似特征点。
02 人脸识别技术概述
通过改进特征描述符的设计,使其能够更好地适应尺度缩放和旋转变化,提高特征提取的 准确性。
提高对光照变化和遮挡问题的处理能力
通过引入更多的图像特征信息,或者采用其他算法来处理光照变化和遮挡问题,以增强 SIFT算法的性能。
降低计算复杂度
通过优化算法实现更高效的计算,例如采用并行计算、优化数据结构等方法,提高算法的 实时性和效率。
ORB算法是一种结合了SIFT和FAST特征检测器的算法, 通过使用旋转不变性、边缘信息和尺度空间来提高特征提 取的准确性和鲁棒性。
05 未来展望
SIFT算法的发展趋势
01
02
03
实时性提升
随着计算能力的增强, SIFT算法将进一步优化, 实现更快速的特征提取, 满足实时处理的需求。
多模态融合
结合深度学习技术,SIFT 算法将进一步发展多模态 特征融合,提升对复杂场 景的适应性。
sift特征提取及其在人脸识别中的 应用
目录
• SIFT特征提取算法简介 • 人脸识别技术概述 • SIFT在人脸识别中的应用 • SIFT算法的改进和优化 • 未来展望
01 SIFT特征提取算法简介
SIFT算法的起源和原理
01
02
03
SIFT(Scale-Invariant Feature Transform)算 法由David Lowe于1999 年提出,旨在解决图像尺 度、旋转和光照变化下的
SIFT特征点提取与匹配
SIFT特征点提取与匹配SIFT(Scale-Invariant Feature Transform)特征点提取与匹配是一种在计算机视觉领域广泛使用的图像特征提取和匹配算法。
它由David G. Lowe于1999年提出,并在后续的研究中得到了改进和优化。
关键点检测的目标是找到一些具有局部极值的图像点。
这里的局部极值是指该点所在位置的像素值在周围邻域中达到最大或最小值。
为了实现尺度不变性,SIFT算法使用了高斯金字塔来检测不同尺度下的关键点。
高斯金字塔是通过对原始图像进行多次平滑操作得到的一系列图像,每一层图像的尺度比上一层的尺度大约减少一半。
在每一层中,使用DoG (Difference of Gaussians)来寻找关键点。
DoG是通过对两个邻近的高斯平滑图像进行差分操作得到的,它可以提供图像中的边缘和角点等信息。
通过在每一层的DoG图像中找到局部极值点,即可得到关键点的粗略位置。
为了进一步提高关键点的准确性,还需要对这些粗略位置进行精细的插值。
最终得到的关键点具有尺度和旋转不变性,并且能够抵抗光照变化的影响。
描述子的计算是对关键点周围区域的图像内容进行编码,生成一个具有较高区分度的特征向量。
首先,将关键点周围的邻域划分为若干个子区域,每个子区域内的像素值作为一个特征向量的元素。
然后,对每个子区域内的像素值进行高斯加权,以减小光照变化对特征描述子的影响。
最后,对加权后的像素值进行方向直方图统计,得到一个具有旋转不变性的特征描述子。
对于每个关键点,都会得到一个128维的特征向量。
这些特征向量可以通过比较欧式距离来进行匹配。
SIFT特征点匹配是通过在两个图像中的特征描述子之间进行比较,找到最佳匹配的特征点对。
常用的匹配方法是计算两个特征向量之间的欧式距离,并将距离最小的两个特征点视为匹配点。
为了提高匹配的准确性和鲁棒性,还可以采用诸如RANSAC(RANdom SAmple Consensus)的算法来剔除错误匹配。
sift特征提取与匹配原理
SIFT特征提取与匹配原理的深入解析一、引言在图像处理和计算机视觉领域,尺度不变特征变换(Scale-Invariant Feature Transform,SIFT)是一种被广泛应用的算法。
SIFT特征提取与匹配原理是图像处理中的重要一环,对于图像识别、图像配准、3D建模、物体跟踪等应用具有重要意义。
本文将深入解析SIFT特征提取与匹配原理,包括其基本概念、算法流程、优缺点以及应用场景。
二、SIFT特征提取原理1. 尺度空间极值检测SIFT算法首先通过构建尺度空间,在不同尺度下搜索所有可能的特征点。
这个过程是通过高斯差分(Difference of Gaussians,DoG)来实现的,它可以有效地检测出图像中的局部极值点,这些点具有尺度不变性,即无论图像被放大或缩小,这些点都能被检测到。
2. 特征点定位在检测到局部极值点后,SIFT算法会进行精确的定位。
这个过程包括去除低对比度的点和边缘点,因为这些点不稳定且对噪声敏感。
通过拟合三维二次函数来精确确定特征点的位置和尺度。
3. 方向分配为了使描述符具有旋转不变性,SIFT算法会为每个特征点分配一个主方向。
这是通过计算特征点周围像素的梯度方向和大小来实现的。
主方向是通过直方图统计梯度方向并找到最大的峰值来确定的。
4. 描述符生成最后,SIFT算法会生成一个描述符,用于描述特征点周围的图像信息。
描述符是通过将特征点周围的区域划分为4x4的子区域,并计算每个子区域的梯度方向和大小直方图来生成的。
描述符是一个128维的向量,具有对尺度、旋转和光照变化的不变性。
三、SIFT特征匹配原理在生成了SIFT描述符后,就可以进行特征匹配了。
这个过程是通过计算两个描述符之间的欧氏距离来实现的。
距离越小,表示两个特征点越相似。
为了提高效率,通常会使用K-D树等数据结构来加速匹配过程。
此外,还可以使用RANSAC等算法来消除误匹配,提高匹配的准确性。
四、优缺点分析SIFT算法的优点主要体现在以下几个方面:1. 尺度、旋转和光照不变性:SIFT描述符具有对尺度、旋转和光照变化的不变性,这使得它在各种场景下都能取得较好的效果。
SIFT特征提取
一、SIFT简介
尺度不变特征转换(Scale-invariant feature transform, SIFT) 是一种用来检测与描述图像局部特征的算法,它通过在尺度空 间中寻找极值点作为特征点,具有旋转不变性以及尺度不变性。
此算法由 David Lowe在1999年所发表,2004年完善总结。其 应用范围包含物体辨识、机器人地图感知与导航、3D模型建立、 手势辨识、影像追踪和动作比对等。
四、特征描述子的生成
在检测到的特征点邻域像素集合上计算梯度幅值和梯度方向:
首先将坐标轴旋转为关键点的方向,以确保旋转不变 性。以关键点为中心取8×8的窗口。
计算关键点周围的16*16的窗口中每一个像素的梯度,而且使 用高斯下降函数降低远离中心的权重。
五、关键点匹配
在得到图像的特征向量之后,依次找出两幅图中相似度最高
的两个特征向量,完成对特征点的连线匹配。
谢谢观看
尺度空间 极值检测
特征点定 位
特征点方 向赋值
特征点描 述
特征点匹 配
二、尺度空间理论
基本思想:在图像信息处理模型中引入一个被视为尺度的参数, 通过连续变化尺度参数获得多尺度下的尺度空间表示序列,对 这些序列进行尺度空间主轮廓的提取,并以该主轮廓作为一种 特征向量,实现边缘、角点检测和不同分辨率上的特征提取等。
尺度空间的表示
LoG算子与DoG算子的区点检测
关键点的定位
低对比度的点(对噪声敏感) 去除不稳定的边界点
可以将上式写成矢量的形式如下:
令上式的一阶导数等于0,可以求得:
去除边缘响应
图1 未经筛选的特征图 图2 去除低对比度后的特征图 图3 消除边缘相应后的特征图
sift特征提取原理
sift特征提取原理
SIFT(Scale-Invariant Feature Transform)特征提取算法是一种在计算机视觉中常用的特征提取方法。
它能够在图像中提取出具有尺度不变性、旋转不变性和光照不变性的特征点。
SIFT特征提取的主要步骤如下:
1. 尺度空间极值点检测:通过高斯差分金字塔的方法,检测图像在不同尺度上的极值点,找到图像中的关键点。
2. 关键点定位:对尺度空间极值点进行精确定位,使用尺度空间的极值点和周围像素的梯度信息,计算关键点的位置和尺度。
3. 方向分配:为每个关键点分配一个主方向,使得关键点具有旋转不变性。
通过计算关键点周围的梯度方向直方图来确定主方向。
4. 关键点描述:使用关键点周围的局部图像块,根据主方向将关键点附近的图像数据进行归一化处理,并得到一个128维的描述子。
5. 特征点匹配:通过计算两幅图像中的特征点的相似度,进行特征点的匹配,从而找到两幅图像的对应点。
SIFT特征提取的原理主要基于尺度空间和梯度信息。
通过多
尺度的高斯模糊操作,可以提取出图像中不同尺度下的特征点,使得算法对于目标物体的尺度变化具有不变性。
而通过计算图
像的梯度信息,可以得到图像中的边缘信息,进一步提取出具有边缘特征的关键点。
同时,SIFT算法还利用图像的局部特征来描述关键点,使得算法对于图像的旋转和光照变化也具有一定的不变性。
总而言之,SIFT特征提取算法是一种基于尺度空间和梯度信息的特征提取方法,能够提取出具有尺度不变性、旋转不变性和光照不变性的特征点,对于图像匹配、物体识别等计算机视觉任务具有广泛应用。
图像识别中的特征提取算法综述
图像识别中的特征提取算法综述近年来,随着人工智能技术的迅猛发展,图像识别成为了热门的研究领域。
在图像识别的过程中,特征提取是至关重要的步骤。
本文将综述图像识别中的特征提取算法,并探讨它们在实际应用中的优劣。
一、传统特征提取算法1. 尺度不变特征变换(Scale-Invariant Feature Transform, SIFT)SIFT是一种使用尺度空间技术进行特征提取的算法。
它通过在不同尺度下对图像进行高斯滤波,并计算图像梯度的幅值和方向来提取图像的特征点。
SIFT算法具有尺度不变性和旋转不变性,对于物体的缩放、旋转、平移等变换有较强的鲁棒性。
2. 方向梯度直方图(Histogram of Oriented Gradient, HOG)HOG算法是一种基于局部梯度方向的图像特征描述子。
它将图像分成小的区域,计算每个区域内梯度方向的直方图,并将这些直方图拼接成一个特征向量。
HOG算法在行人检测、人脸识别等领域取得了良好的效果。
3. 主成分分析(Principal Component Analysis, PCA)PCA是一种常用的降维算法,也可用于图像的特征提取。
它通过计算图像的协方差矩阵的特征向量和特征值,找到图像的主要特征。
PCA算法广泛用于图像压缩和图像分类等领域。
二、深度学习中的特征提取算法1. 卷积神经网络(Convolutional Neural Network, CNN)CNN是一种深度学习算法,被广泛应用于图像识别领域。
CNN通过多层卷积和池化操作提取图像的局部特征,并通过全连接层进行分类。
相比于传统特征提取算法,CNN能够自动学习图像的高级特征,具有更好的表达能力和泛化能力。
2. 深度残差网络(Deep Residual Network, ResNet)ResNet是一种深度残差网络,通过引入残差模块解决了训练深层网络时的梯度消失问题。
ResNet可以自动学习高级特征,并在图像识别任务中取得了诸多突破性的成果。
SIFT特征点提取与匹配算法
SIFT特征点提取与匹配算法SIFT (Scale-Invariant Feature Transform) 特征点提取与匹配算法是一种在计算机视觉领域中常用的特征点提取与匹配方法。
它由David Lowe在1999年提出,并且成为了计算机视觉领域中广泛应用的算法之一、SIFT特征点提取与匹配算法的主要思想在于提取图像中具有独特性、不受尺度变化和旋转变化影响的局部特征点,并通过特征匹配找到两幅图像之间的对应关系。
SIFT算法主要分为4个步骤:尺度空间极值检测、关键点定位、方向分配和特征描述。
第一步,尺度空间极值检测。
该步骤旨在检测图像中所有尺度的极值点作为特征点的候选。
为了对图像进行不同尺度的检测,SIFT算法使用了高斯金字塔。
高斯金字塔是通过对原始图像进行一系列高斯模糊和下采样操作构建的图像金字塔。
在每一组金字塔中,通过计算图像在不同尺度下的拉普拉斯变换,得到图像的尺度空间表征。
然后,通过比较每一层相邻像素点的灰度,检测出具有极值的像素点。
这些极值点将被作为候选的关键点。
第二步,关键点定位。
在这一步骤中,SIFT算法对候选的关键点进行一系列的筛选,以保留稳定的关键点。
首先,使用插值的方法对关键点进行亚像素精确定位。
然后,根据图像的梯度信息计算关键点的主曲率,通过判断主曲率是否小于阈值,来筛选掉低对比度的关键点和边缘响应的关键点。
此外,通过计算关键点的梯度方向,可以为后续的方向分配做准备。
第三步,方向分配。
为了提高特征点的旋转不变性,在这一步骤中,SIFT算法为每个关键点分配一个主方向。
具体地,SIFT算法将关键点的周围区域分为若干个子区域,并计算每个子区域的梯度方向直方图。
通过找到直方图中的局部极大值,选择关键点的主方向。
这样,即使图像发生旋转,关键点的描述子也能够保持一致性。
第四步,特征描述。
在这一步骤中,SIFT算法为每个关键点生成一个128维的描述子。
描述子的生成主要通过计算关键点周围区域内的梯度信息。
SIFT特征提取算法
SIFT特征提取算法SIFT特征提取算法(Scale-Invariant Feature Transform)是一种计算机视觉领域广泛应用的特征提取算法,它具有尺度不变性和旋转不变性的特点,能够在图像中鲁棒地提取出关键点,并生成与这些关键点相关的描述子,以实现图像特征的匹配和识别。
SIFT特征提取算法包含以下几个重要的步骤:尺度空间极值检测、关键点定位、关键点方向确定、关键点描述子生成等。
首先,SIFT特征提取算法从一幅图像中构建尺度空间。
为了实现尺度不变性,SIFT算法利用高斯金字塔模拟不同尺度下的图像,通过对图像进行多次高斯模糊操作得到一系列尺度不同的图像。
然后,通过对这些图像进行差分运算,得到一组差分图像用于尺度空间极值检测。
接下来,SIFT算法从尺度空间极值检测结果中选取稳定的关键点。
在差分图像中,极值点表示着尺度空间中的局部最大值或最小值,这些极值点对应着图像中的关键点。
为了保证关键点的稳定性,SIFT算法会过滤掉一些不稳定的候选关键点,例如低对比度的关键点和边缘响应较大的关键点。
然后,对于选取的关键点,SIFT算法会计算它们的主方向。
利用关键点附近的梯度直方图,SIFT算法可以确定关键点的方向。
这个主方向可以提高后续描述子生成的旋转不变性。
最后,SIFT算法根据关键点的位置和主方向生成关键点的描述子。
在关键点周围的邻域内,SIFT算法通过计算邻域内像素的梯度幅值和方向,生成一个特征向量来描述关键点的外观特征。
这个特征向量被称为SIFT特征描述子,通常是一个128维的向量。
为了保证描述子的不变性,SIFT算法对特征向量进行了归一化和方向旋转等处理。
总结来说,SIFT特征提取算法通过尺度空间极值检测、关键点定位、关键点方向确定和关键点描述子生成等步骤,能够从图像中提取出具有尺度不变性和旋转不变性的关键点和描述子。
SIFT特征提取算法在计算机视觉领域有着广泛的应用,例如图像匹配、物体识别和三维重建等任务中都能够发挥重要作用。
SIFT特征提取算法详解
SIFT特征提取算法详解SIFT(Scale-Invariant Feature Transform)特征提取算法是一种用于在图像中寻找关键点的方法,该算法具有尺度不变性,能够提取出能够对图像进行描述的稳定的局部特征。
本文将从算法原理、关键步骤以及优缺点等方面进行详细解析。
一、算法原理SIFT算法的主要思想是通过寻找关键点和计算这些关键点的特征向量,来描述图像中的局部特征,并实现对尺度、旋转和亮度的不变性。
1.尺度空间极值检测SIFT算法首先通过DoG(Difference of Gaussian)来检测图像中的关键点。
DoG是指在不同尺度下的高斯平滑图像之间的差异,这样可以有效地检测出图像中的尺度空间极值点。
2.关键点精确定位通过在DoG金字塔中精确定位关键点,SIFT算法可以找到图像中的关键点。
该算法使用了Hessian矩阵的近似来计算特征点的位置和尺度,并用Taylor展开来精确计算特征点的位置。
3.方向分配为了使特征具有旋转不变性,SIFT算法通过计算特征点周围的梯度方向直方图来分配特征点的主方向。
具体步骤是确定特征点周围像素的梯度幅值和方向,并将方向分配到主方向上。
4.特征描述在计算了特征点的尺度和方向之后,SIFT算法通过计算特征点周围的局部图像块的梯度直方图来描述特征。
这些梯度直方图能够描述特征点周围的领域特征,并且具有尺度和旋转不变性。
二、关键步骤详解1.构建高斯金字塔SIFT算法首先对输入的图像进行平滑处理,然后通过不断降采样生成高斯金字塔。
高斯金字塔能够提供多尺度图像。
2.构建差分金字塔利用高斯金字塔计算DoG金字塔。
通过对相邻两层高斯图像进行差分操作,可以得到相应的两层DoG图像。
3.检测尺度空间极值点在DoG金字塔上,通过比较每一个像素点与其8邻域和相邻的26个像素点的像素值来确定极值点。
具体方法是通过比较每一层图像的像素值与周围像素值进行判定。
4.精确定位关键点通过利用Taylor展开公式来精确定位关键点的位置,这可以减小特征点在尺度和位置上的误差。
sift特征提取的几个主要步骤
sift特征提取的几个主要步骤SIFT特征提取的主要步骤SIFT(Scale-Invariant Feature Transform)是一种用于图像处理和计算机视觉的特征提取算法。
该算法能够在不受图像尺度、旋转和亮度变化的影响下,提取出图像中的关键特征点。
SIFT特征提取算法主要由以下几个步骤组成:1. 尺度空间极值检测SIFT算法首先通过构建高斯金字塔来寻找图像中的尺度空间极值点。
高斯金字塔是一系列的高斯模糊图像,每一层的图像都是前一层图像的2倍尺寸。
通过对不同尺度的图像进行高斯滤波,可以在不同尺度下检测到不同大小的特征。
2. 关键点定位在尺度空间极值检测的基础上,SIFT算法进一步在每个尺度空间上进行关键点的定位。
通过对图像的局部极值点进行精确定位,剔除低对比度和边缘响应较大的特征点,得到更加稳定和可靠的关键点。
3. 方向分配为了使SIFT特征具有旋转不变性,算法在每个关键点周围的邻域内计算图像梯度的方向直方图。
通过统计梯度方向的分布,选择主要的梯度方向作为关键点的主方向。
这样可以使得SIFT特征对图像的旋转具有不变性。
4. 特征描述在确定了关键点的位置和主方向之后,SIFT算法对每个关键点周围的邻域内进行特征描述。
通过计算关键点周围像素的梯度幅值和方向,生成一个128维的特征向量。
这个特征向量能够描述关键点周围的图像纹理信息,具有一定的旋转和尺度不变性。
5. 特征匹配SIFT算法最后通过特征向量的匹配来实现图像间的特征匹配。
在匹配过程中,通常采用欧氏距离或其他相似性度量来计算特征向量之间的距离。
通过比较距离的大小,可以找到最佳的匹配对。
SIFT特征提取算法的独特之处在于其对图像的尺度、旋转和亮度变化具有很好的不变性。
这使得SIFT特征在许多计算机视觉任务中具有广泛的应用,如目标识别、图像拼接、三维重建等。
尽管SIFT算法在计算复杂度和内存消耗方面相对较高,但由于其稳定性和鲁棒性,仍然是一种非常有价值的特征提取方法。
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 )。
图 1.1图1.1所展示的是建立DOG 的一种实用的方法。
SIFT特征提取算法总结
SIFT特征提取算法总结SIFT(Scale-Invariant Feature Transform)特征提取算法是一种旋转不变性和尺度不变性较强的特征提取算法,被广泛应用于计算机视觉领域中的图像配准、目标识别、三维重建等任务中。
SIFT算法由David Lowe在1999年提出,并在2004年发表了他的论文,成为一种经典的特征提取算法。
本篇文章将对SIFT特征提取算法进行总结和分析。
1.SIFT特征提取算法原理(1)尺度空间极值检测:在不同的尺度空间中寻找关键点。
SIFT算法使用高斯金字塔对图像进行尺度空间的离散采样。
在每个尺度空间中,通过构建DoG(Difference of Gaussian)金字塔来检测图像中的局部极值点。
(2)关键点定位:对尺度空间极值点进行精确定位以得到关键点。
在尺度空间中使用Hessian矩阵来估计关键点的位置和尺度,并通过亚像素插值来获得更加精确的关键点位置。
(3)方向分配:为每个关键点分配主方向。
SIFT算法在关键点周围的邻域内计算梯度方向直方图,选择梯度方向最大的方向作为该关键点的主方向。
(4)描述子生成:对关键点周围的邻域进行描述子的生成。
SIFT算法将关键点周围的邻域划分为一个个小区域,并计算每个小区域内的梯度方向直方图,从而生成描述子。
2.SIFT特征提取算法优点(1)尺度不变性:SIFT算法在不同尺度空间中检测图像的关键点,使得检测到的关键点能够具有尺度不变性。
(2)旋转不变性:SIFT算法对每个关键点分配主方向,通过旋转关键点周围的邻域来实现旋转不变性。
(3)良好的特征描述性:SIFT特征由128维向量表示,能够克服一些小范围内的图像变换,如亮度变化等。
(4)鲁棒性:SIFT算法对噪声、模糊等干扰具有较强的鲁棒性,适用于复杂的图像条件下提取特征。
3.SIFT特征提取算法应用SIFT特征提取算法广泛应用于计算机视觉领域中的图像配准、目标识别、三维重建等任务中。
SIFT特征提取算法详解
SIFT 特征提取算法总结主要步骤1)、尺度空间的生成;2)、检测尺度空间极值点;3)、精确定位极值点;4)、为每个关键点指定方向参数;5)、关键点描述子的生成。
L(x,y,σ), σ= 1.6 a good tradeoffD(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 theirassigned sum of magnitudes.利用关键点邻域像素的梯度方向分布特性为每个关键点指定方向参数,使算子具备旋转不变性。
图像特征提取算法的使用方法
图像特征提取算法的使用方法图像特征提取算法是计算机视觉领域中的一项重要技术,它通过对图像进行分析和处理,从中提取出具有代表性的信息,用于实现图像分类、目标检测、图像匹配等应用。
本文将介绍图像特征提取算法的基本原理和使用方法。
一、图像特征提取算法的基本原理图像特征提取算法主要基于图像的局部纹理、颜色、形状等特征进行分析。
以下是几种常见的图像特征提取算法及其基本原理:1. 尺度不变特征变换(SIFT)SIFT算法提取图像的局部不变特征,它通过检测关键点并为每个关键点计算一个局部描述子来实现。
SIFT算法具有旋转、尺度、亮度不变性,可以在图像中检测到对象的局部特征。
2. 霍夫变换(Hough Transform)霍夫变换算法主要用于检测图像中的直线和圆等形状。
它通过将图像空间投影到参数空间,再通过参数空间中的峰值来检测对象的形状。
3. 主成分分析(Principal Component Analysis, PCA)PCA算法通过将高维数据转换为低维数据,保留主要特征来进行特征提取。
它将图像中的像素点组成的高维向量进行降维操作,得到一组与原图像相关性最高的特征。
4. 纹理特征提取算法纹理特征提取算法主要利用图像的纹理信息进行特征提取。
常见的纹理特征提取算法包括局部二值模式(LBP)、灰度共生矩阵(GLCM)等。
以上是常见的几种图像特征提取算法,具体的使用方法会因算法而异。
二、图像特征提取算法的使用方法图像特征提取算法的使用方法主要包括以下几个步骤:1. 图像预处理在进行特征提取之前,需要对图像进行预处理,以减少噪声和增强图像的对比度。
常见的图像预处理方法包括灰度化、平滑化、边缘检测等。
根据具体的算法需求选择相应的预处理方法。
2. 特征提取选择合适的特征提取方法对图像进行特征提取。
根据不同的应用需求选择不同的特征提取算法。
如使用SIFT算法可以提取图像的关键点及其描述子,使用霍夫变换可以提取图像中的直线和圆等形状。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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(长宽分别减半),构成下一个子八度(高一层金字塔)。
尺度空间的所有取值,i为octave的塔数(第几个塔),s为每塔层数由图片size决定建几个塔,每塔几层图像(S一般为3-5层)。
0塔的第0层是原始图像(或你double 后的图像),往上每一层是对其下一层进行Laplacian变换(高斯卷积,其中σ值渐大,例如可以是σ, k*σ, k*k*σ…),直观上看来越往上图片越模糊。
塔间的图片是降采样关系,例如1塔的第0层可以由0塔的第3层down sample得到,然后进行与0塔类似的高斯卷积操作。
2. LoG近似DoG找到关键点<检测DOG尺度空间极值点>为了寻找尺度空间的极值点,每一个采样点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。
如图所示,中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点。
一个点如果在DOG尺度空间本层以及上下两层的26个领域中是最大或最小值时,就认为该点是图像在该尺度下的一个特征点,如图所示。
同一组中的相邻尺度(由于k的取值关系,肯定是上下层)之间进行寻找s=3的情况在极值比较的过程中,每一组图像的首末两层是无法进行极值比较的,为了满足尺度变化的连续性(下面有详解),我们在每一组图像的顶层继续用高斯模糊生成了 3 幅图像,高斯金字塔有每组S+3层图像。
DOG金字塔每组有S+2层图像.==========================================这里有的童鞋不理解什么叫“为了满足尺度变化的连续性”,现在做仔细阐述:假设s=3,也就是每个塔里有3层,则k=21/s=21/3,那么按照上图可得Gauss Space和DoG space 分别有3个(s个)和2个(s-1个)分量,在DoG space 中,1st-octave两项分别是σ,kσ; 2nd-octave两项分别是2σ,2kσ;由于无法比较极值,我们必须在高斯空间继续添加高斯模糊项,使得形成σ,kσ,k2σ,k3σ,k4σ这样就可以选择DoG space中的中间三项kσ,k2σ,k3σ(只有左右都有才能有极值),那么下一octave中(由上一层降采样获得)所得三项即为2kσ,2k2σ,2k3σ,其首项2kσ=24/3。
刚好与上一octave末项k3σ=23/3尺度变化连续起来,所以每次要在Gaussian space添加3项,每组(塔)共S+3层图像,相应的DoG金字塔有S+2层图像。
==========================================使用Laplacian of Gaussian能够很好地找到找到图像中的兴趣点,但是需要大量的计算量,所以使用Difference of Gaussian图像的极大极小值近似寻找特征点.DOG算子计算简单,是尺度归一化的LoG算子的近似,有关DOG寻找特征点的介绍及方法详见/abcjennifer/article/details/7639488,极值点检测用的Non-Maximal Suppression。
3. 除去不好的特征点这一步本质上要去掉DoG局部曲率非常不对称的像素。
通过拟和三维二次函数以精确确定关键点的位置和尺度(达到亚像素精度),同时去除低对比度的关键点和不稳定的边缘响应点(因为DoG算子会产生较强的边缘响应),以增强匹配稳定性、提高抗噪声能力,在这里使用近似Harris Corner检测器。
①空间尺度函数泰勒展开式如下:,对上式求导,并令其为0,得到精确的位置, 得②在已经检测到的特征点中,要去掉低对比度的特征点和不稳定的边缘响应点。
去除低对比度的点:把公式(2)代入公式(1),即在DoG Space的极值点处D(x)取值,只取前两项可得:若,该特征点就保留下来,否则丢弃。
③边缘响应的去除一个定义不好的高斯差分算子的极值在横跨边缘的地方有较大的主曲率,而在垂直边缘的方向有较小的主曲率。
主曲率通过一个2×2 的Hessian矩阵H求出:导数由采样点相邻差估计得到。
D的主曲率和H的特征值成正比,令α为较大特征值,β为较小的特征值,则令α=γβ,则(r + 1)2/r的值在两个特征值相等的时候最小,随着r的增大而增大,因此,为了检测主曲率是否在某域值r下,只需检测if (α+β)/ αβ> (r+1)2/r, throw it out. 在Lowe的文章中,取r=10。
4. 给特征点赋值一个128维方向参数上一步中确定了每幅图中的特征点,为每个特征点计算一个方向,依照这个方向做进一步的计算,利用关键点邻域像素的梯度方向分布特性为每个关键点指定方向参数,使算子具备旋转不变性。
为(x,y)处梯度的模值和方向公式。
其中L所用的尺度为每个关键点各自所在的尺度。
至此,图像的关键点已经检测完毕,每个关键点有三个信息:位置,所处尺度、方向,由此可以确定一个SIFT特征区域。
梯度直方图的范围是0~360度,其中每10度一个柱,总共36个柱。
随着距中心点越远的领域其对直方图的贡献也响应减小.Lowe论文中还提到要使用高斯函数对直方图进行平滑,减少突变的影响。
在实际计算时,我们在以关键点为中心的邻域窗口内采样,并用直方图统计邻域像素的梯度方向。
梯度直方图的范围是0~360度,其中每45度一个柱,总共8个柱, 或者每10度一个柱,总共36个柱。
Lowe论文中还提到要使用高斯函数对直方图进行平滑,减少突变的影响。
直方图的峰值则代表了该关键点处邻域梯度的主方向,即作为该关键点的方向。
直方图中的峰值就是主方向,其他的达到最大值80%的方向可作为辅助方向由梯度方向直方图确定主梯度方向该步中将建立所有scale中特征点的描述子(128维)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.关键点描述子的生成步骤通过对关键点周围图像区域分块,计算块内梯度直方图,生成具有独特性的向量,这个向量是该区域图像信息的一种抽象,具有唯一性。
5. 关键点描述子的生成首先将坐标轴旋转为关键点的方向,以确保旋转不变性。
以关键点为中心取8×8的窗口。
Figure.16*16的图中其中1/4的特征点梯度方向及scale,右图为其加权到8个主方向的效果。
图左部分的中央为当前关键点的位置,每个小格代表关键点邻域所在尺度空间的一个像素,利用公式求得每个像素的梯度幅值与梯度方向,箭头方向代表该像素的梯度方向,箭头长度代表梯度模值,然后用高斯窗口对其进行加权运算。
图中蓝色的圈代表高斯加权的范围(越靠近关键点的像素梯度方向信息贡献越大)。
然后在每4×4的小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,即可形成一个种子点,如图右部分示。
此图中一个关键点由2×2共4个种子点组成,每个种子点有8个方向向量信息。
这种邻域方向性信息联合的思想增强了算法抗噪声的能力,同时对于含有定位误差的特征匹配也提供了较好的容错性。
计算keypoint周围的16*16的window中每一个像素的梯度,而且使用高斯下降函数降低远离中心的权重。
在每个4*4的1/16象限中,通过加权梯度值加到直方图8个方向区间中的一个,计算出一个梯度方向直方图。
这样就可以对每个feature形成一个4*4*8=128维的描述子,每一维都可以表示4*4个格子中一个的scale/orientation. 将这个向量归一化之后,就进一步去除了光照的影响。
5. 根据SIFT进行Match生成了A、B两幅图的描述子,(分别是k1*128维和k2*128维),就将两图中各个scale(所有scale)的描述子进行匹配,匹配上128维即可表示两个特征点match上了。
实际计算过程中,为了增强匹配的稳健性,Lowe建议对每个关键点使用4×4共16个种子点来描述,这样对于一个关键点就可以产生128个数据,即最终形成128维的SIFT特征向量。
此时SIFT特征向量已经去除了尺度变化、旋转等几何变形因素的影响,再继续将特征向量的长度归一化,则可以进一步去除光照变化的影响。
当两幅图像的SIFT特征向量生成后,下一步我们采用关键点特征向量的欧式距离来作为两幅图像中关键点的相似性判定度量。
取图像1中的某个关键点,并找出其与图像2中欧式距离最近的前两个关键点,在这两个关键点中,如果最近的距离除以次近的距离少于某个比例阈值,则接受这一对匹配点。