特征点检测算法
fast特征点检测算法用途

fast特征点检测算法用途
fast(Features from Accelerated Segment Test)特征点检
测算法是一种用于计算机视觉和图像处理领域的算法,它的主要用
途包括但不限于以下几个方面:
1. 特征匹配,fast算法可以用于在图像中检测关键点,然后
将这些关键点用于图像配准和特征匹配。
这在目标跟踪、图像拼接
和三维重建等领域都是非常重要的应用。
2. 物体识别,在物体识别和目标检测中,fast算法可以用于
提取图像中的关键点,从而帮助识别和定位物体。
这对于自动驾驶、安防监控等领域有着重要的应用。
3. 视觉SLAM,在视觉SLAM(Simultaneous Localization and Mapping)中,fast算法可以用于提取图像中的特征点,从而进行
环境的建模和相机定位,这对于无人机、机器人和增强现实等应用
具有重要意义。
4. 图像配准,在图像配准中,fast算法可以用于检测图像中
的关键点,然后将这些关键点用于图像的配准和校正,这对于医学
影像处理、遥感图像处理等领域都是非常重要的。
总的来说,fast特征点检测算法在计算机视觉和图像处理领域具有广泛的应用,可以帮助提取图像中的关键信息,从而实现图像配准、目标识别、SLAM等多种应用。
sift特征点检测算法原理

sift特征点检测算法原理SIFT特征点检测算法原理SIFT(Scale-Invariant Feature Transform)是一种用于在图像中检测和描述局部特征的算法。
它的原理是通过在不同尺度空间中寻找关键点,并计算这些关键点的局部特征描述子,从而实现图像的特征匹配和识别。
1. 尺度空间构建SIFT算法首先通过高斯金字塔构建尺度空间,以便在不同尺度下检测出特征点。
高斯金字塔是通过对原始图像进行多次降采样得到的一系列图像,每个图像都是前一层图像的二分之一。
在每一层图像上应用高斯滤波器,得到一系列平滑图像。
2. 关键点检测在构建好的尺度空间中,SIFT算法使用Difference of Gaussian (DoG)来检测关键点。
DoG是通过对相邻两层平滑图像进行相减得到的,可以有效地检测出图像中的边缘和角点。
在DoG图像中,局部极值点被认为是潜在的关键点。
3. 关键点定位为了准确定位关键点的位置,SIFT算法采用了尺度空间极值点的精确定位方法。
它使用T aylor展开式对DoG图像进行拟合,通过求解极值点的二阶导数来精确定位关键点的位置。
同时,为了排除低对比度的关键点和边缘响应的干扰,SIFT算法会对关键点进行一定的筛选。
4. 方向分配为了使特征描述子具有旋转不变性,SIFT算法对每个关键点分配一个主方向。
它通过计算关键点周围像素的梯度方向直方图,找出主要梯度方向,并将其作为关键点的方向。
这样可以保证特征描述子在旋转变换下具有一定的稳定性。
5. 特征描述在关键点的周围区域内构建特征描述子,用于表示关键点的局部特征。
SIFT算法将关键点周围的图像区域划分为若干个子区域,并在每个子区域内计算梯度方向直方图。
最后将这些直方图连接起来,得到一个具有128维特征向量的特征描述子。
通过以上步骤,SIFT算法可以在图像中检测出大量的关键点,并为每个关键点生成一个128维的特征描述子。
这些特征描述子具有尺度不变性、旋转不变性和光照不变性等特点,可以用于图像匹配、物体识别和三维重建等应用领域。
BRISK特征点检测匹配算法的探究

BRISK特征点检测匹配算法的探究BRISK(Binary Robust Invariant Scalable Keypoints)特征点检测算法是一种用于计算机视觉领域的关键点检测和匹配的算法。
它在快速特征点检测和匹配方面表现出色,同时保持了很强的稳健性。
本文将探讨BRISK算法的原理、流程以及应用,并讨论其在图像处理领域的重要性。
BRISK算法的原理是基于二进制描述符的尺度不变性的。
它使用了一种基于样本比较和像素对比的方法来检测图像中的关键点。
该算法首先在图像中提取角点,然后对这些角点进行描述符计算,最后通过描述符的匹配来实现特征点的匹配。
BRISK算法的优点在于其对旋转、尺度和亮度变化有很好的鲁棒性,可以在图像中检测到各种实际场景下的关键点。
1.对图像进行预处理:将RGB图像转换为灰度图像,并进行高斯平滑处理。
2. 提取角点:使用FAST算法或Harris角点检测器提取图像中的角点。
3.计算描述符:在每个角点周围采样一些采样点,计算这些采样点的灰度值和周围像素的对比情况。
4.特征匹配:对每个检测到的关键点,通过描述符的比较来进行特征点匹配。
在BRISK算法中,描述符的计算是其核心部分。
描述符通常是一个二进制字符串,用于表示特征点周围的像素对比情况。
在BRISK中,描述符的计算通过对周围像素的样本点进行对比来实现。
这种方法具有很好的尺度不变性和鲁棒性,能够在各种环境下准确地匹配特征点。
BRISK算法在图像处理领域有着广泛的应用。
它可以用于目标跟踪、图像拼接、三维重建等不同领域。
在目标跟踪中,BRISK算法可以用于检测目标物体在不同帧之间的位置变化,实现目标的跟踪和定位。
在图像拼接中,BRISK算法可以用于寻找不同图像中相似的特征点,从而实现图像的拼接。
在三维重建中,BRISK算法可以用于检测图像中的特征点,从而实现对物体的三维重建。
总的来说,BRISK算法是一种性能优越的特征点检测和匹配算法,具有很好的尺度不变性和稳健性。
ORB特征点检测匹配算法

ORB特征点检测匹配算法ORB (Oriented FAST and Rotated BRIEF) 特征点检测匹配算法是一种用于计算机视觉中特征点提取和描述的算法。
它结合了FAST角点检测器和BRIEF描述符,具有旋转不变性和快速计算速度,被广泛应用于目标识别、图像拼接、三维重建等领域。
ORB算法的主要步骤包括特征点检测、特征描述和特征匹配。
1.特征点检测:ORB算法采用FAST角点检测器进行特征点检测,FAST角点检测器是一种高速的角点检测算法,通过比较中心点像素值和其周围相邻像素值的差异来判断是否为角点。
FAST角点检测器在角度变化和尺度变化下具有一定的鲁棒性。
ORB算法在FAST角点检测的基础上进行改进,引入了旋转不变性,通过计算像素的灰度质心,来判断角点的旋转方向,并计算角点的方向和尺度。
2.特征描述:ORB算法使用BRIEF描述符对特征点进行描述,BRIEF是一种二进制描述符,它通过随机选择一组像素对,并比较它们的亮度值来生成一个二进制串。
BRIEF描述符具有较低的计算复杂度和存储空间需求,适合于在实时性要求较高的场景中使用。
为了提高旋转不变性,ORB算法在BRIEF描述符的基础上引入了方向校正,将旋转不变特征描述符 (Rotated BRIEF) 与尺度不变特征描述符(Scale Invariant Feature Transform, SIFT) 结合起来。
在计算BRIEF描述符之前,ORB算法将图像进行多个尺度的高斯模糊操作,计算每个尺度下的图像金字塔,并在每个金字塔层级上计算BRIEF描述符。
3.特征匹配:特征点匹配是ORB算法的最后一步,通过计算特征点之间的距离来确定匹配关系。
ORB算法使用汉明距离 (Hamming Distance) 来衡量两个二进制描述符的相似性,汉明距离越小表示两个特征点越相似。
为了提高匹配的鲁棒性,ORB算法采用了基于最近邻和次近邻距离比的匹配策略,只有当最近邻距离比次近邻距离的阈值小于一个阈值时,才认为匹配成功。
BRISK特征点描述算法详解

BRISK特征点描述算法详解BRISK(Binary Robust Invariant Scalable Keypoints)是一种特征点描述算法,采用二进制表示的方法,能够在保持精度的同时降低计算复杂度。
本文将详细介绍BRISK算法的原理和步骤。
1.特征点检测BRISK算法使用FAST(Features from Accelerated Segment Test)角点检测算法来检测图像中的特征点。
FAST算法通过比较像素点与其周围像素点的亮度差异来判断是否为角点。
2.特征点方向计算在BRISK算法中,将特征点附近的像素点划分为环形区域,并计算每个环上的像素点的方向。
具体而言,将特征点附近的点分为16个环,每个环上有一定数量的像素点。
然后,计算每个像素点的方向,以特征点为原点,对特征点周围的像素点进行方向计算。
这样可以为后续的特征点描述提供方向信息。
3.特征点描述BRISK算法的核心是特征点的描述。
在BRISK算法中,将特征点的描述子划分为固定大小的网格,每个小格子中有若干个像素点。
对于每个小格子中的像素点,通过比较其亮度与周围像素点的亮度差异来判断是否为关键点。
如果是关键点,则将其对应的二进制位设为1,否则设为0。
最终将每个小格子中的二进制串拼接起来,形成特征点的描述子。
4.特征点匹配在得到图像中的特征点和它们的描述子之后,可以通过比较两个图像中的特征点的描述子来进行特征点的匹配。
BRISK算法使用哈希函数和汉明距离来计算特征点之间的相似度。
具体而言,通过哈希函数将每个特征点的描述子映射为一个哈希码,然后通过比较两个哈希码的汉明距离来判断它们的相似度。
汉明距离越小,说明两个特征点越相似。
5.优势与不足BRISK算法具有多种优点。
首先,它采用了二进制描述子,可以大大降低计算复杂度,提高算法的速度。
同时,二进制描述子可以在保持精度的同时减少存储空间。
其次,BRISK算法在特征点检测时引入了尺度不变性,可以适应不同尺度的图像。
找特征点的算法SIFT和SURF算法

找特征点的算法SIFT和SURF算法SIFT算法和SURF算法是用于图像特征点的检测与描述的两种经典算法。
它们在图像处理、计算机视觉和模式识别等领域得到广泛应用。
下面将分别介绍SIFT算法和SURF算法,并对其原理和应用进行详细阐述。
一、SIFT算法(Scale-Invariant Feature Transform)SIFT算法是由Lowe于1999年提出的一种用于图像特征点检测与描述的算法。
它通过分析图像的局部特征来提取与尺度无关的特征点,具有尺度不变性、旋转不变性和仿射不变性等优点。
1.特征点检测SIFT算法首先通过高斯差分金字塔来检测图像中的特征点。
高斯差分金字塔是由一系列模糊后再进行差分操作得到的,通过不同尺度的高斯核函数对图像进行卷积,然后对结果进行差分运算,得到图像的拉普拉斯金字塔。
在拉普拉斯金字塔上,通过寻找局部最大值和最小值来确定特征点的位置。
2.特征点描述在确定特征点的位置后,SIFT算法使用梯度直方图表示特征点的局部特征。
首先,计算特征点周围邻域内每个像素点的梯度幅值和方向,然后将邻域分为若干个子区域,并统计每个子区域内的梯度幅值和方向的分布,最后将这些统计结果组合成一个向量作为特征点的描述子。
3.特征点匹配SIFT算法通过计算特征点描述子之间的欧式距离来进行特征点的匹配。
欧式距离越小表示两个特征点越相似,因此选择距离最近的两个特征点作为匹配对。
二、SURF算法(Speeded Up Robust Features)SURF算法是由Bay等人于2024年提出的一种在SIFT算法的基础上进行改进的图像特征点检测与描述算法。
它通过加速特征点的计算速度和增强特征点的稳定性来提高算法的实时性和鲁棒性。
1.特征点检测SURF算法使用Hessian矩阵来检测图像中的特征点。
Hessian矩阵是图像的二阶导数矩阵,通过计算Hessian矩阵的行列式和迹来确定图像的局部最大值和最小值,从而找到特征点的位置。
2_3_SIFT特征点检测

2_3_SIFT特征点检测SIFT(Scale-invariant feature transform)是一种用于检测和描述图像中的特征点的算法。
它是由David Lowe在1999年提出的,并在2004年发表了经典的论文。
SIFT特征点检测在计算机视觉领域被广泛应用于图像匹配、目标识别等任务中。
SIFT算法的主要思想是通过寻找局部特征的最稳定的特征点,并提取出这些特征点的描述子。
为了实现尺度不变性,SIFT算法首先使用DoG (差值高斯)算子对图像进行多尺度的高斯模糊,然后通过比较相邻尺度下的高斯差分图像来寻找极值点(潜在的关键点)。
通过对图像的不同尺度进行处理,SIFT算法能够检测到不同尺度下的特征点。
在尺度空间上找到关键点之后,SIFT算法还会对这些关键点进行精确定位。
它使用了拟合二次曲面的方法,通过对DoG函数进行泰勒展开,来估计关键点的位置和尺度。
通过对DoG函数的二阶导数进行计算,SIFT算法可以判断关键点是否位于边缘,从而排除掉一些不稳定的关键点。
除了关键点的位置和尺度外,SIFT算法还提供了关键点的方向信息。
为了实现旋转不变性,SIFT算法在关键点附近计算图像梯度的方向直方图,并选择梯度最大的方向作为关键点的主方向。
这样,在后续的特征描述中,将使用关键点的主方向来进行旋转校正,从而提高匹配的稳定性。
在确定了关键点的位置、尺度和方向之后,SIFT算法还会提取出关键点的描述子。
对每个关键点的邻域区域进行块划分,并对每个块内的像素进行高斯加权,进而计算每个像素点的梯度幅值和方向。
最后,将这些梯度信息组成一个向量,就得到了关键点的描述子。
关键点的描述子具有高度的区分性和不变性,可以用于匹配和识别任务中。
SIFT算法在图像处理领域有很多优点。
首先,它具有尺度不变性,可以检测到不同尺度下的特征点。
其次,SIFT算法对光照变化和视角变化具有一定的鲁棒性。
此外,SIFT算法能够提取出具有较高区分度的特征点描述子,这对于特征匹配和图像识别来说非常重要。
FAST特征点检测算法

FAST特征点检测算法⼀原始⽅法简介在局部特征点检测快速发展的时候,⼈们对于特征的认识也越来越深⼊,近⼏年来许多学者提出了许许多多的特征检测算法及其改进算法,在众多的特征提取算法中,不乏涌现出佼佼者。
从最早期的Moravec,到Harris,再到SIFT、SUSAN、GLOH、SURF算法,可以说特征提取算法层出不穷。
各种改进算法PCA-SIFT、ICA-SIFT、P-ASURF、R-ASURF、Radon-SIFT等也是搞得如⽕如荼,不亦乐乎。
上⾯的算法如SIFT、SURF提取到的特征也是⾮常优秀(有较强的不变性),但是时间消耗依然很⼤,⽽在⼀个系统中,特征提取仅仅是⼀部分,还要进⾏诸如配准、提纯、融合等后续算法。
这使得实时性不好,降系了统性能。
Edward Rosten和Tom Drummond两位⼤神经过研究,于2006年在《Machine learning for high-speed corner detection》中提出了⼀种FAST特征点,并在2010年稍作修改后发表了《Features From Accelerated Segment Test》,简称。
注意:FAST只是⼀种特征点检测算法,并不涉及特征点的特征描述。
FAST详解FAST特征的定义FAST的提出者Rosten等将FAST⾓点定义为:若某像素与其周围邻域内⾜够多的像素点相差较⼤,则该像素可能是⾓点。
FAST算法的步骤1、上图所⽰,⼀个以像素p为中⼼,半径为3的圆上,有16个像素点(p1、p2、...、p16)。
2、定义⼀个阈值。
计算p1、p9与中⼼p的像素差,若它们绝对值都⼩于阈值,则p点不可能是特征点,直接pass掉;否则,当做候选点,有待进⼀步考察;3、若p是候选点,则计算p1、p9、p5、p13与中⼼p的像素差,若它们的绝对值有⾄少3个超过阈值,则当做候选点,再进⾏下⼀步考察;否则,直接pass掉;4、若p是候选点,则计算p1到p16这16个点与中⼼p的像素差,若它们有⾄少9个超过阈值,则是特征点;否则,直接pass掉。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
特征点检测算法一、SIFT(Scale Invariant Feature Transform)算法基本原理及主要特征1、SIFT 算法基本原理SIFT 算子是图像匹配算法中性能较好的算子,基于SIFT 算法的特征图像配准可大致分为特征的检测、描述和匹配。
特征检测是在尺度空间中进行的,首先生成图像尺度空间,然后检测尺度空间中的局部极值点,再通过剔除低对比度点和边缘响应点对局部极值点进行精确定位;在对特征进行描述时,先计算每个极值点的主方向,对极值点为中心的区域进行直方图梯度方向统计,生成特征描述子;最后,通过特征描述子寻找匹配的特征,建立图像之间的联系。
1.1关键点的检测高斯卷积核是实现尺度变换的唯一线性变换核,一幅图像在尺度空间中可表示为图像和可变高斯核函数的卷积,采用高斯金字塔(LaplacianofGaussian ,LoG )算子表示如下:(,,)(,,)(,)L x y G x y I x y σσ=⊗其中,I(x,y)为输入的二维图像,222()/221(,,)2x y G x y e σσπσ-+=为可变高斯核函数,σ为可变核。
图像尺度空间的形成是通过将图像与具有可变核的高斯滤波器进行卷积,从而得到图像的高斯金字塔LoG 。
David 指出,高斯金字塔LoG 共分为O 组,每组S+3层,S 为σ与2σ之间的层数,S 一般取2或3。
每组的高斯金字塔的形成是通过输入图像与级联滤波器进行卷积得到,下面以S=2为例,对高斯金字塔LoG 的形成过程进行详细说明。
当S=2时,每组的高斯金字塔共有5层,共由四级的级联滤波器得到。
对于第一组的高斯金字塔LoG 形成过程如下图所示:图1-1 级联滤波器的构造如图所示,输入图像0I 由初始图像I 经高斯核为σ的滤波器得到,输出图像i I (i=1,…,4)由输入图像0I 分别经级联滤波器Ⅰ、Ⅱ、Ⅲ和Ⅳ得到。
第一组高斯金字塔LoG 为图1中虚线包括的五幅图像(0,1,...,4)i I i =,每幅图像对应的高斯核为(0,1,...,4)ik i σ=,表示图像(0,1,...,4)i I i =可看成初始图像I 经核为(0,1,...,4)i k i σ=的高斯函数得到。
第二组高斯金字塔LoG 的每层图像大小都是第一组高斯金字塔LoG 中图像大小的1/4,其输入图像是第一组高斯金字塔LoG 中第S 层图像经采样率为2的采样过程得到。
当S 取2时,第二组高斯金字塔LoG 的输入图像'0I 为上面提到的图像1I 采样得到的。
输入图像'I 再经过四级的级联滤波器得到输出图像'(0,1,...,4)i I i =,级联滤波器的结构与第一组高斯金字塔LoG 一致,图像'(0,1,...,4)i I i =构成了第二组高斯金字塔LoG 。
依此类推,共生成O=4组的高斯金字塔LoG 。
为了有效的在尺度空间检测到稳定的关键,Lowe 构造了差分金字塔DoG (DifferenceofGaussian ),它是通过对相邻层的卷积结果进行差值处理获得的,其表达式如下:(,,)((,,)(,,))(,)(,,)(,,)D x y G x y k G x y I x y L x y k L x y σσσσσ=-⊗=-图1-2给出了第一组、第二组高斯金字塔LoG 和差分金字塔DoG 的构造过程。
图1-2 高斯金字塔LoG 和差分金字塔DoG 的构造过程如图所示,差分金字塔DoG 是由高斯金字塔LoG 相邻层相减得到的。
其中,高斯金字塔LoG 共有O 组,每组共有S+3层图像;差分金字塔DoG 共有O 组,每组共有S+2层图像。
每个像素点与周围8个像素点以及相邻尺度的2×9个共26个像素点比较大小,若为极大值点或为极小值点,则该像素点是候选极值点,候选极值点在每组的中间S 层中产生。
当S=2时,候选极值点在差分金字塔DoG 的中间2层产生,如图中红色方框所示。
1.2极值点的筛选经过差分金字塔DoG 中的极值检测之后,需要对候选的极值点进行筛选,得到真正的极值点。
极值点的筛选包括两部分,一个是低对比度点的抑制,另一个是边缘响应点的去除。
低对比度点的抑制是指剔除响应值小于给定阈值的点,边缘响应点的去除是指将候选点中的大曲率的边缘点筛选掉。
由于差分金字塔DoG 检测到的极值点的位置坐标均为整数,而实际的特征点不一定位于整数坐标位置上。
因此,在进行极值点筛选之前,先要通过三维二次函数对特征点的位置进行精确定位,再通过计算该位置的DoG 响应值及曲率来筛选得到真正的极值点。
差分金字塔DoG 在候选极值点周围的泰勒展开式如下:2000021()()()()()2T T D D D X D X X X X X X X X X ∂∂=+-+--∂∂ 其中,X=(x,y,σ)为特征点的位置和尺度信息的向量,X 0为候选特征点的位置和尺度信息的向量,D(X 0)为该点的差分金字塔DoG 值。
对上式两边关于(X-X 0)求导并令一阶导数为零,则有:212ˆD D X X X-∂∂=∂∂ 计算差分金字塔DoG 在候选极值点处的一阶和二阶偏导数,通过上式来估计特征点与候选极值点之间的关系。
当X的x 或y 模值超过0.5时,表明真正的特征点是偏向于周围的另外一点,此时需要对候选极值点的位置进行调整,并重新估计,直到X的x 或y 模值均在0.5以内为止。
对特征点位置进行精确定位后,将X代入上述泰勒展开,则有 01ˆˆ()()2T D D X D X X X∂=+∂ 当|D X|<0.3时,候选极值点将作为低对比度点去除。
位于图像边缘处假的特征点在边缘交叉处的主曲率较大,而在垂直方向上主曲率较小,因此可以利用这个性质除去假的特征点。
Hessian 矩阵与主曲率存在比例关系,二维 Hessian 矩阵的定义如下:xx xy xy yy D D H D D ⎡⎤=⎢⎥⎣⎦主曲率大小的判别不需要计算Hessian 矩阵的特征值,通过矩阵的迹和行列式值的比值就可以判别。
设矩阵H 的特征值为α和β,且满足αγβ=,γ为比例系数,1γ>,矩阵H 的迹和行列式值计算如下:()xx yy Tr H D D αβ=+=+2()()xx yy xy Det H D D D αβ=-=将特征值的关系带入到矩阵的迹和行列式的比值中得到:22222()()()(1)()Tr H Det H αβγββγαβγβγ+++=== 以上比值随γ的增大而增大,故应将该比值设定在一定的范围内,Lowe 文章中取10γ=。
1.3 方向描述子的生成利用关键点邻域像素的梯度分布特性来计算关键点主方向。
点坐标为(x ,y)处的梯度幅值和方向分别为:(,)M x y =1(,)tan (((,1)(,1))/((1,)(1,)))x y L x y L x y L x y L x y θ-=+--+--在以特征点为中心的邻域窗口内,采用梯度方向直方图表示其邻域像素的梯度方向统计值。
梯度方向范围为0°~360°,其中每10°在直方图中表示一个柱,共有36柱。
梯度方向直方图的峰值代表了该特征点处邻域梯度的主方向,即作为该特征点的主方向。
当梯度方向直方图中存在主峰值能量80%的以上的峰值时,该峰值所对应的方向作为辅方向。
特征点可以有一个主方向和多个辅方向,这样可以提高特征匹配的稳定性,Lowe 指出这些特征点所占的比重约15%左右。
特征点方向分配之后,接着生成特征描述子。
以特征点为中心取16×16的窗口(特征点所在的行和列不取),每个小格代表特征点邻域所在尺度空间的一个像素,采用高斯加权(越靠近特征点的像素,梯度方向信息贡献越大)。
在4×4的图像小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,形成一个种子点。
一个特征点由4×4共16个种子点组成,特征描述子由所有子块的梯度方向直方图构成。
因此,最终形成128维的SIFT 特征向量就是特征描述符。
图1-3给出了特征描述子的生成过程,左图绿色的方型线框大小为8×8。
每个小格代表一个像素点,小格内的带箭头的直线表示像素点的梯度,直线的长度代表梯度的幅值大小,箭头指向代表梯度方向。
蓝色圆型线框为进行加权的高斯核函数结构,越靠近特征点权值越大。
右图为对每个4×4的子块统计形成种子点的结果,8×8的方型线框共产生4个种子点。
图1-3 SIFT 特征描述子的生成为减少光照变化的影响,应对特征描述子进行必要的修正。
光照变化可以分为线性光照变化和非线性光照变化,对特征描述子进行修正可以减少光照变化的影响。
对于线性光照变化,相当于对像素点的灰度值进行了乘性和加性的常数,加性常数通过差分后将消失,乘性常数可以通过对特征描述子进行归一化消除;对于非线性光照变化,会影响梯度的幅度而对梯度的方向影响小,因此考虑先对梯度的幅度进行限幅(阈值常取 0.2),再对限幅后的特征描述子进行归一化。
通过实验验证,修正后的特征描述子具有很好的光照不变性。
1.4特征描述子的匹配特征描述子之间的匹配是通过最近邻(Nearest Neighbor ,NN )来定义的,最近邻是指特征描述子之间的欧氏距离最小。
一幅图像中的特征点可能在另一幅图像中找不到匹配点,为此需要通过设置阈值来去除这些特征点。
由于有些描述子比其它描述子的区分度更高,因此采用最近邻欧氏距离全局阈值并不能获得很好的效果。
一个更为有效的方法是通过比较最近邻欧氏距离与次近邻欧氏距离的比值,因为对于一个可靠的匹配来说,正确匹配的最近邻特征肯定比不正确的最近邻特征要近的多。
次近邻匹配可以看成在特征空间中对误匹配密度的估计,同时可以作为特征模糊的特例。
通过设置欧氏距离比阈值可以去除一些错误的匹配点,但同时一些正确的匹配也有可能会被剔除。
David 将该阈值设置为 0.8,这样在损失 5%的正确匹配点同时将减少 90%的错误匹配点值展。
特征点建立匹配关系之后,下一步就是求解图像之间的变换关系。
仿射变换能够很好的表达图像之间的一般变换,并且最少只需要 3 对匹配点就可以求解。
2、SIFT 算法主要特征(1) SIFT 特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性。
(2)独特性好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配。
(3)多量性,即使少数的几个物体也可以产生大量SIFT 特征向量。
(4)高速性,经优化的SIFT 匹配算法甚至可以达到实时的要求。
(5)可扩展性,可以很方便的与其他形式的特征向量进行联合。
二、SURF(Speeded Up Robust Features )算法的基本原理及其改进1、SURF 算法基本原理基于SURF 特征检测算法是由Bay 等人提出了。