图像局部特征点检测算法综述
特征检测和特征描述符综述_概述及解释说明

特征检测和特征描述符综述概述及解释说明1. 引言1.1 概述特征检测和特征描述符是计算机视觉领域中非常重要的技术。
它们在图像识别、物体跟踪、三维重建等应用中起着关键性的作用。
特征检测是指从图像或视频中找到显著的局部结构,如角点、边缘等。
而特征描述符则是将这些特征点转化为数值描述,以便于后续的匹配和识别。
1.2 文章结构本文将对特征检测和特征描述符进行全面综述,主要包括以下几个方面内容:引言、特征检测、特征描述符以及它们之间的关系。
具体来说,我们将首先介绍引言部分,然后详细讨论特征检测和特征描述符的定义、作用以及常见方法。
接着,我们会探讨它们在计算机视觉领域中的应用,并深入研究它们之间的相互依赖关系。
最后,我们将总结文章内容,并展望未来发展趋势。
1.3 目的本文旨在全面了解和掌握特征检测和特征描述符这两个重要技术的概念、原理和应用。
通过对现有算法和方法的综述,我们希望读者能够深入理解特征检测和特征描述符之间的关系,并能够根据具体应用选择合适的方法。
同时,我们也希望通过分析现有技术问题和未来发展方向,为进一步研究提供参考和启示。
2. 特征检测:特征检测是计算机视觉领域的一个重要研究方向,它主要通过分析图像或视频中的局部区域来找到具有显著性或独特性的图像特征。
这些特征通常是物体边缘、角点、斑点等在不同图像之间有稳定性和可区分性的区域。
2.1 特征检测的定义与作用:特征检测旨在识别出具有唯一性和可描述性的局部结构,并对其进行定量描述。
其定义包括两个关键概念:唯一性和可描述性。
唯一性是指每个特征点都应该具有其他任何点所没有的某种属性,使其能够在各个图像帧或场景中被准确地匹配。
可描述性则要求我们能对每个特征进行准确而有效地量化描述,以便于后续的处理和识别任务。
特征检测在计算机视觉中起着至关重要的作用。
首先,它可以用于实现目标识别、跟踪和姿态估计等高级视觉任务。
其次,对于基于内容的图像搜索、相册管理和三维重建等应用,特征检测也是不可或缺的。
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维的特征描述子。
这些特征描述子具有尺度不变性、旋转不变性和光照不变性等特点,可以用于图像匹配、物体识别和三维重建等应用领域。
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是一种可旋转、尺度不变的局部特征描述子,通过检测图像中的局部极值点并计算其方向直方图来描述图像的形状特征。
三、纹理特征提取技术纹理是图像中一些重要的结构特征,对于图像分析和识别具有重要的作用。
常用的纹理特征提取方法有:灰度共生矩阵、Gabor滤波器和小波变换。
灰度共生矩阵是一种用来描述纹理特征的统计方法,通过计算图像中相邻像素间灰度搭配出现频率来描述纹理的复杂程度。
Gabor滤波器是一种基于小波变换的滤波器,通过对不同尺度和方向的Gabor滤波器的响应进行统计来描述纹理特征。
小波变换是将图像分解为不同尺度和方向的频域信息,通过计算不同尺度和方向下的能量和相位特征来描述纹理特征。
四、深度学习在图像特征提取中的应用深度学习是近年来兴起的一种机器学习方法,它通过构建多层神经网络来学习图像的特征表示。
图像局部特征提取方法综述

图像局部特征提取方法综述引言:图像是一种包含丰富信息的视觉表征形式,但如何从图像中提取有助于识别和描述图像内容的局部特征一直是计算机视觉领域的一个重要研究方向。
图像局部特征提取方法的目标是在不受图像整体变化的影响下,提取出能够表征图像局部结构和纹理信息的特征点。
本文将综述目前常用的图像局部特征提取方法,并对其优缺点进行评述。
一、经典的图像局部特征提取方法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和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矩阵的行列式和迹来确定图像的局部最大值和最小值,从而找到特征点的位置。
SIFT特征提取算法

SIFT特征提取算法SIFT(Scale-Invariant Feature Transform)特征提取算法是一种用于图像的局部特征分析的算法。
它能够提取出图像中的关键点,并对这些关键点进行描述,从而可以用于图像匹配、物体识别等应用领域。
本文将详细介绍SIFT算法的原理和过程。
1.尺度空间构建SIFT算法首先通过使用高斯滤波器来构建图像的尺度空间,以便在不同尺度下检测关键点。
高斯滤波器可以通过一系列的高斯卷积操作实现,每次卷积之后对图像进行下采样(降低分辨率),得到不同尺度的图像。
2.关键点检测在尺度空间构建完成后,SIFT算法使用差分运算来检测关键点。
差分运算可以通过对图像进行高斯平滑操作来实现,然后计算相邻尺度之间的差分图像。
对差分图像进行极值检测,即寻找局部最大和最小值的像素点,这些像素点就是图像中的关键点。
3.关键点精确定位关键点的精确定位是通过拟合关键点周围的局部图像来实现的。
SIFT算法使用了一种高度鲁棒的方法,即利用关键点周围梯度的方向和大小来进行拟合。
具体来说,SIFT算法在关键点周围计算图像的梯度幅值和方向,并构建梯度直方图。
然后通过在梯度直方图中寻找局部极值来确定关键点的方向。
4.关键点描述关键点的描述是为了提取关键点周围的特征向量,用于后续的匹配和识别。
SIFT算法使用了一种局部特征描述算法,即将关键点周围的图像区域划分为小的子区域,并计算每个子区域的梯度方向直方图。
然后将这些直方图组合起来,构成一个维度较高的特征向量。
5.特征向量匹配在完成关键点描述之后,SIFT算法使用一种近似的最近邻方法来进行特征向量的匹配。
具体来说,使用KD树或者暴力匹配的方法来寻找两幅图像中最相似的特征向量。
通过计算特征向量之间的距离,可以找到最相似的匹配对。
6.尺度不变性SIFT算法具有尺度不变性的特点,即对于图像的缩放、旋转和视角变化等变换具有较好的鲁棒性。
这是因为在特征提取的过程中,SIFT算法对图像进行了多尺度的分析,并利用了关键点周围的梯度信息进行描述。
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算法能够提取出具有较高区分度的特征点描述子,这对于特征匹配和图像识别来说非常重要。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图像局部特征点检测算法综述研究图像特征检测已经有一段时间了,图像特征检测的方法很多,又加上各种算法的变形,所以难以在短时间内全面的了解,只是对主流的特征检测算法的原理进行了学习。
总体来说,图像特征可以包括颜色特征、纹理特等、形状特征以及局部特征点等。
其中局部特点具有很好的稳定性,不容易受外界环境的干扰,本篇文章也是对这方面知识的一个总结。
本篇文章现在(2015/1/30)只是以初稿的形式,列出了主体的框架,后面还有许多地方需要增加与修改,例如2013年新出现的基于非线性尺度空间的KAZE特征提取方法以及它的改进AKATE等。
在应用方面,后面会增一些具有实际代码的例子,尤其是基于特征点的搜索与运动目标跟踪方面。
1. 局部特征点图像特征提取是图像分析与图像识别的前提,它是将高维的图像数据进行简化表达最有效的方式,从一幅图像的M×N×3的数据矩阵中,我们看不出任何信息,所以我们必须根据这些数据提取出图像中的关键信息,一些基本元件以及它们的关系。
局部特征点是图像特征的局部表达,它只能反正图像上具有的局部特殊性,所以它只适合于对图像进行匹配,检索等应用。
对于图像理解则不太适合。
而后者更关心一些全局特征,如颜色分布,纹理特征,主要物体的形状等。
全局特征容易受到环境的干扰,光照,旋转,噪声等不利因素都会影响全局特征。
相比而言,局部特征点,往往对应着图像中的一些线条交叉,明暗变化的结构中,受到的干扰也少。
而斑点与角点是两类局部特征点。
斑点通常是指与周围有着颜色和灰度差别的区域,如草原上的一棵树或一栋房子。
它是一个区域,所以它比角点的噪能力要强,稳定性要好。
而角点则是图像中一边物体的拐角或者线条之间的交叉部分。
2. 斑点检测原理与举例2.1 LoG与DoH斑点检测的方法主要包括利用高斯拉普拉斯算子检测的方法(LOG),以及利用像素点Hessian矩阵(二阶微分)及其行列式值的方法(DOH)。
LoG的方法已经在斑点检测这入篇文章里作了详细的描述。
因为二维高斯函数的拉普拉斯核很像一个斑点,所以可以利用卷积来求出图像中的斑点状的结构。
DoH方法就是利用图像点二阶微分Hessian矩阵:以及它的行列式的值DoH(Determinant of Hessian):Hessian矩阵行列式的值,同样也反映了图像局部的结构信息。
与LoG相比,DoH对图像中的细长结构的斑点有较好的抑制作用。
无论是LoG还是DoH,它们对图像中的斑点进行检测,其步骤都可以分为以下两步:1)使用不同的σ生成(?2g?x2+?2g?y2)或?2g?x2,?2g?y2,?2g?x?y模板,并对图像进行卷积运算;2)在图像的位置空间与尺度空间中搜索LoG与DoH响应的峰值。
2.2 SIFT详细的算法描述参考:SIFT定位算法关键步骤的说明2004年,Lowe提高了高效的尺度不变特征变换算法(SIFT),利用原始图像与高斯核的卷积来建立尺度空间,并在高斯差分空间金字塔上提取出尺度不变性的特征点。
该算法具有一定的仿射不变性,视角不变性,旋转不变性和光照不变性,所以在图像特征提高方面得到了最广泛的应用。
该算法大概可以归纳为三步:1)高斯差分金字塔的构建;2)特征点的搜索;3)特征描述。
在第一步中,它用组与层的结构构建了一个具有线性关系的金字塔结构,让我们可以在连续的高斯核尺度上查找特征点。
它比LoG高明的地方在于,它用一阶高斯差分来近似高斯的拉普拉斯核,大大减少了运算量。
在第二步的特征点搜索中,主要的关键步骤是极值点的插值,因为在离散的空间中,局部极值点可能并不是真正意义上的极值点,真正的极植点可以落在了离散点的缝隙中。
所以要对这些缝隙位置进行插值,然后再求极值点的坐标位置。
第二步中另一关键环节是删除边缘效应的点,因为只忽略那些DoG响应不够的点是不够的,DoG的值会受到边缘的影响,那些边缘上的点,虽然不是斑点,但是它的DoG响应也很强。
所以我们要把这部分点删除。
我们利用横跨边缘的地方,在沿边缘方向与垂直边缘方向表现出极大与极小的主曲率这一特性。
所以通过计算特征点处主曲率的比值即可以区分其是否在边缘上。
这一点在理解上可以参见Harris角点的求法。
最后一步,即为特征点的特征描述。
特征点的方向的求法是需要对特征点邻域内的点的梯度方向进行直方图统计,选取直方图中比重最大的方向为特征点的主方向,还可以选择一个辅方向。
在计算特征矢量时,需要对局部图像进行沿主方向旋转,然后再进邻域内的梯度直方图统计(4x4x8)。
2.3 SURF详细的算法描述参考:1. SURF算法与源码分析、上? 2. SURF算法与源码分析、下2006年,Bay和Ess等人基于SIFT算法的思路,提出了加速鲁棒特征(SURF),该算法主要针对于SIFT算法速度太慢,计算量大的缺点,使用了近似Harr小波方法来提取特征点,这种方法就是基于Hessian行列式(DoH)的斑点特征检测方法。
通过在不同的尺度上利用积分图像可以有效地计算出近似Harr小波值,简化了二阶微分模板的构建,搞高了尺度空间的特征检测的效率。
SURF算法在积分图像上使用了盒子滤波器对二阶微分模板进行了简化,从而构建了Hessian矩阵元素值,进而缩短了特征提取的时间,提高了效率。
其中SURF算法在每个尺度上对每个像素点进行检测,其近似构建的Hessian矩阵及其行列式的值分另为:其中Dxx,Dxy和Dyy为利用盒子滤波器获得的近似卷积值。
如果c(x,y,σ)大于设置的门限值,则判定该像素点为关键字。
然后与SIFT算法近似,在以关键点为中心的3×3×3像素邻域内进行非极大值抑制,最后通过对斑点特征进行插值运算,完成了SURF特征点的精确定位。
而SURF特征点的描述,则也是充分利用了积分图,用两个方向上的Harr小波模板来计算梯度,然后用一个扇形对邻域内点的梯度方向进行统计,求得特征点的主方向。
3. 角点检测的原理与举例角点检测的方法也是极多的,其中具有代表性的算法是Harris算法与FAST算法。
这两个算法我都有专门写过博文来描述其算法原理。
Harris角点和FAST特征点检测。
3.1 Harris角点特征提取Harris角点检测是一种基于图像灰度的一阶导数矩阵检测方法。
检测器的主要思想是局部自相似性/自相关性,即在某个局部窗口内图像块与在各个方向微小移动后的窗口内图像块的相似性。
在像素点的邻域内,导数矩阵描述了数据信号的变化情况。
假设在像素点邻域内任意方向上移动块区域,若强度发生了剧烈变化,则变化处的像素点为角点。
定义2×2的Harris矩阵为:其中,Cx和Cy分别为点x=(x,y)在x和y方向上的强度信息的一阶导数,ω(x,y)为对应位置的权重。
通过计算Harris矩阵的角点响应值D来判断是否为角点。
其计算公式为:其中,det和trace为行列式和迹的操作符,$m$是取值为0.04~0.06的常数。
当角点响应值大于设置的门限,且为该点邻域内的局部最大值时,则把该点当作角点。
3.2 FAST角点特征提取基于加速分割测试的FAST算法可以快速地提取出角点特征。
该算法判断一个候选点p是否为角点,依据的是在一个像素点p为圆心,半径为3个像素的离散化Bresenllam 圆周上,在给定阈值t的条件下,如果在圆周上有n个连续的像素灰度值大于I(p)+t或小于I(p)?t。
针对于上面的定义,我们可以用快速的方法来完成检测,而不用把圆周上的所有点都比较一遍。
首先比较上下左右四个点的像素值关系,至少要有3个点的像素灰度值大于I(p)+t或小于I(p)?t,则p为候选点,然后再进一步进行完整的判断。
为了加快算法的检测速度,可以使用机器学习ID3贪心算法来构建决策树。
这里需要说明的是,在2010年Elmar和Gregory等人提出了自适应通用加速分割检测(AGAST)算法,通过把FAST算法中ID3决策树改造为二叉树,并能够根据当前处理的图像信息动态且高效地分配决策树,提高了算法的运算速度。
4. 二进制字符串特征描述子可以注意到在两种角点检测算法里,我们并没有像SIFT或SURF那样提到特征点的描述问题。
事实上,特征点一旦检测出来,无论是斑点还是角点描述方法都是一样的,可以选用你认为最有效的特征描述子。
特征描述是实现图像匹配与图像搜索必不可少的步骤。
到目前为止,人们研究了各种各样的特征描述子,比较有代表性的就是浮点型特征描述子和二进帽字符串特征描述子。
像SIFT与SURF算法里的,用梯度统计直方图来描述的描述子都属于浮点型特征描述子。
但它们计算起来,算法复杂,效率较低,所以后来就出现了许多新型的特征描述算法,如BRIEF。
后来很多二进制串描述子ORB,BRISK,FREAK等都是在它上面的基础上的改进。
4.1 BRIEF算法BRJEF算法的主要思想是:在特征点周围邻域内选取若干个像素点对,通过对这些点对的灰度值比较,将比较的结果组合成一个二进制串字符串用来描述特征点。
最后,使用汉明距离来计算在特征描述子是否匹配。
BRIEF算法的详细描述可以参考:BRIEF特征描述子4.2 BRISK算法BRISK算法在特征点检测部分没有选用FAST特征点检测,而是选用了稳定性更强的AGAST算法。
在特征描述子的构建中,BRISK算法通过利用简单的像素灰度值比较,进而得到一个级联的二进制比特串来描述每个特征点,这一点上原理与BRIEF是一致的。
BRISK 算法里采用了邻域采样模式,即以特征点为圆心,构建多个不同半径的离散化Bresenham 同心圆,然后再每一个同心圆上获得具有相同间距的N个采样点。
由于这种邻域采样模式在采样时会产生图像灰度混叠的影响,所以BRISK算法首先对图像进行了高斯平滑图像。
并且使用的高斯函数标准差σi与各自同心圆上点间距成正比。
假设在(N2)个采样点中任意选取一对采样点(pi,pj),其平滑后的灰度值分别为I(pi,σi)和I(pj,σj),则两点间的局部梯度为:假设把所有采样点对构成的集合记为$\boldsymbol{A}$,则那么短距离采样点对构成的集合S以及长距离采样点构成的集合L分别为:其中,通常设置距离阈值为δmax=9.75δ,δmin=13.67δ,其中δ为特征点的尺度。
由于长距离采样点对含有更多的特征点角度信息,且局部梯度相互抵消,所以可以在集合L中计算出特征点的特征模式方向为:然后将采样模式围绕特征点旋转角度$\alpha = arctan2(g_y,g_x)$,进而特征描述子具有了旋转不变性。
最后,在旋转后的短距离采样点集合S内,对所有的特征点对(Pαi,pαj)行像素灰度值比较,最终形成512比特的二进制字符串描述子。