SURF算法介绍
- 格式:docx
- 大小:842.84 KB
- 文档页数:7
机器视觉中基于SURF算法的目标识别研究第一章:引言随着计算机技术的不断发展,机器视觉技术逐渐应用于各种领域。
其中,目标识别是机器视觉技术的重要应用之一,可以在自动控制、工业制造、军事等领域中发挥重要作用。
在目标识别中,特征点检测和匹配是关键技术。
SURF算法是一种快速有效的特征点检测和匹配算法,已经得到广泛应用。
本文将介绍机器视觉中基于SURF算法的目标识别研究,具体包括SURF算法原理、SURF算法在目标识别中的应用及其优劣势分析、SURF算法在实际系统中的应用及其发展趋势等。
第二章:SURF算法原理SURF算法是加速稳健特征(Speeded Up Robust Feature)的缩写。
它是基于尺度空间理论的特征点检测和匹配算法。
SURF算法主要包括三个步骤:尺度空间构建、特征点检测和特征描述。
尺度空间构建是指先将原始图像进行高斯滤波,得到不同尺度下的图像金字塔,然后通过差分的方式得到尺度不变的DoG (Difference of Gaussian)图像组。
特征点检测是指在DoG图像组中检测出极值点,SURF算法中采用的是Hessian矩阵。
特征描述是指在检测到的特征点周围的邻域内,计算一组具有较强区分度的局部特征描述子,SURF算法中采用的是基于积分图像的Haar小波特征描述子。
第三章:SURF算法在目标识别中的应用及其优劣势分析SURF算法在目标识别中的应用主要包括两个方面:特征点检测和匹配。
特征点检测是指在图像中寻找具有独特性、稳定性和可重复性的特征点,SURF算法对尺度空间建立和特征点检测都有良好的性能,能够有效地检测到目标物体中的关键点。
匹配是指在两个图像中寻找相似的特征点,SURF算法具有较高的匹配准确率和速度,能够实现快速准确地目标匹配。
但是,SURF算法也存在一些不足之处,比如对图像旋转、缩放、变形等变化不够鲁棒,需要额外的操作来进行补偿。
第四章:SURF算法在实际系统中的应用及其发展趋势SURF算法在实际系统中的应用非常广泛,例如在工业机器人、自动驾驶、安防监控等领域中都得到了应用。
图像特征点提取及匹配算法研究论文1.SIFT算法:SIFT(Scale-Invariant Feature Transform)算法是一种经典的图像特征点提取算法。
该算法首先使用高斯滤波器对图像进行多尺度的平滑处理,然后使用差分算子来检测图像中的关键点,最后计算关键点的主方向和描述符。
SIFT算法具有尺度不变性和旋转不变性,对于图像中存在较大尺度和角度变化的情况下仍能提取出稳定的特征点。
2.SURF算法:SURF(Speeded Up Robust Features)算法是一种快速的特征点提取算法,它在SIFT算法的基础上进行了优化。
SURF算法使用Haar小波响应来检测图像中的特征点,并使用积分图像来加速计算过程。
此外,SURF算法还使用了一种基于方向直方图的特征描述方法,能够提取出具有旋转不变性和尺度不变性的特征点。
3.ORB算法:ORB(Oriented FAST and Rotated BRIEF)算法是一种快速的特征点提取和匹配算法。
该算法结合了FAST角点检测算法和BRIEF描述符算法,并对其进行了改进。
ORB算法利用灰度值的转折点来检测图像中的角点,并使用二进制字符串来描述关键点,以提高特征点的匹配速度。
ORB算法具有较快的计算速度和较高的匹配精度,适用于实时应用。
4.BRISK算法:BRISK(Binary Robust Invariant Scalable Keypoints)算法是一种基于二进制描述符的特征点提取和匹配算法。
该算法首先使用田字形格点采样方法检测关键点,然后使用直方图来描述关键点的方向和纹理特征。
最后,BRISK算法使用二进制字符串来表示关键点的描述符,并使用汉明距离来进行特征点的匹配。
BRISK算法具有较快的计算速度和较高的鲁棒性,适用于大规模图像匹配任务。
总结起来,图像特征点提取及匹配算法是计算机视觉领域中的重要研究方向。
本文介绍了一些常用的特征点提取及匹配算法,并对其进行了讨论。
surf算法代码-回复什么是Surf算法Surf算法(Speeded Up Robust Features)是一种用于图像特征检测和描述的计算机视觉算法。
它是在2006年由Herbert Bay等人提出的,旨在提高图像处理中的特征点检测与匹配的速度和准确性。
Surf算法在计算机视觉和图像处理领域中得到广泛应用,它的主要目标是在图像中找到稳定且唯一的局部特征点。
Surf算法的步骤1. 尺度空间构建:Surf算法在图像中使用多尺度空间来有效地检测特征点。
它通过不断模糊图像,并计算模糊后的图像与原始图像的差异来构建多尺度空间。
算法使用一个高斯滤波器来进行图像模糊,并通过逐渐增加滤波器的方差来构建不同尺度下的图像。
这样做的目的是使得算法能够在不同尺度下检测到特征点,而不受图像缩放的影响。
2. 关键点检测:在构建好尺度空间后,Surf算法会在每个尺度中检测关键点。
关键点是那些在图像中具有稳定尺度和位置,并且对缩放、旋转和光照变化具有不变性的点。
Surf算法使用Hessian矩阵来检测关键点。
Hessian矩阵是一个用于测量图像局部变化的矩阵,在Surf算法中,它被用来检测图像中的高强度点。
3. 关键点定位:在检测到关键点后,Surf算法会对关键点进行精确定位。
它使用一个Haar 小波响应来定位关键点的位置和方向。
Haar小波是一种多尺度基函数,它能够识别出图像中的边缘和纹理特征。
Surf算法利用Haar小波响应来定位出关键点的具体位置和方向,以便后续的特征描述步骤。
4. 特征描述:在完成关键点定位后,Surf算法会对每个关键点进行描述,以便后续的特征匹配。
Surf算法使用了一种叫做加速权重积分(Fast Hessian)的方法来生成特征描述子。
特征描述子是一个向量,它能够描述关键点周围区域的结构和纹理信息。
Surf算法会通过计算关键点周围区域的灰度变化来生成特征描述子。
5. 特征点匹配:在完成特征描述后,Surf算法会使用一种叫做KD树的数据结构来进行特征点的匹配。
特征点检测学习(surf算法)网上有些文章对surf做了介绍,比如:surf算法原理,有一些简单介绍.对surf的某些细节做了通俗易懂的解释.一、Surf描述子形成步骤1. 构造高斯金字塔尺度空间其实surf构造的金字塔图像与sift有很大不同,就是因为这些不同才加快了其检测的速度。
Sift采用的是DOG图像,而surf采用的是Hessian矩阵行列式近似值图像。
首先来看看图像中某个像素点的Hessian 矩阵,如下:即每一个像素点都可以求出一个Hessian矩阵。
但是由于我们的特征点需要具备尺度无关性,所以在进行Hessian矩阵构造前,需要对其进行高斯滤波。
这样,经过滤波后在进行Hessian的计算,其公式如下:公式中的符号,估计有点数学基础的朋友都能够猜到,这里就不多解释了。
最终我们要的是原图像的一个变换图像,因为我们要在这个变换图像上寻找特征点,然后将其位置反映射到原图中,例如在sift中,我们是在原图的DOG图上寻找特征点的。
那么在surf中,这个变换图是什么呢?从surf的众多资料来看,就是原图每个像素的Hessian矩阵行列式的近似值构成的。
其行列式近似公式如下:由于求Hessian时要先高斯平滑,然后求二阶导数,这在离散的像素点是用模板卷积形成的,这2中操作合在一起用一个模板代替就可以了,比如说y方向上的模板如下:该图的左边即用高斯平滑然后在y方向上求二阶导数的模板,为了加快运算用了近似处理,其处理结果如右图所示,这样就简化了很多。
并且右图可以采用积分图来运算,大大的加快了速度,关于积分图的介绍,可以去查阅相关的资料。
同理,x和y方向的二阶混合偏导模板如下所示:上面讲的这么多只是得到了一张近似hessian行列式图,这例比sift中的DOG图,但是在金字塔图像中分为很多层,每一层叫做一个octave,每一个octave中又有几张尺度不同的图片。
在sift算法中,同一个octave层中的图片尺寸(即大小)相同,但是尺度(即模糊程度)不同,而不同的octave层中的图片尺寸大小也不相同,因为它是由上一层图片降采样得到的。
SURF算法在图像处理中的应用SURF算法是一种被广泛应用于计算机视觉领域的算法,其全称是Speeded Up Robust Features。
它是一种特征提取算法,可以在图像中检测出具有特殊性质的关键点,并生成具有鲁棒性的特征描述子。
这些特征可以用于识别相似的图像,比较相似度,并在图像配准、图像跟踪、三维重建等领域中发挥重要作用。
本文将探讨SURF算法在图像处理中的应用。
一、 SURF算法的原理SURF算法是基于SIFT算法的一种改进,它的主要优势在于速度更快、鲁棒性更强。
下面简单介绍SURF算法的原理。
1. 尺度空间构建SURF算法首先对原始图像进行尺度变换,通过高斯金字塔来构建尺度空间。
尺度空间的不同层次可以检测到不同大小的特征。
通过不同层次检测的关键点可以估计出原始图像中的关键点,这个过程被称为尺度空间极值点检测。
2. 关键点定位在尺度空间中,SURF算法通过Hessian矩阵的行列式求解得到图像局部极值点位置,这些点是具有高强度、对光照变化鲁棒等性质的关键点。
3. 方向确定为了使SURF算法对旋转和光照变化更加鲁棒,需要为每个关键点确定一个主方向,这个方向是在关键点周围采用Hessian矩阵主方向确定的。
4. 特征描述为了描述关键点的局部特征,SURF算法使用了一种统计学上的方法,即将关键点周围的区域分解成小的子区域,每个子区域在水平和竖直方向上计算Haar小波变换,形成特征向量。
这些特征向量组成的特征描述子具有鲁棒性,可以用来评估关键点的稳定性。
5. 特征匹配在进行图像匹配时,SURF算法使用了一种快速的近似最近邻搜索方法,称为快速最近邻搜索(FLANN)。
它可以在大规模的特征库中快速找到与查询特征最相似的特征。
二、 SURF算法可以被广泛应用于图像处理中,下面介绍一些应用领域。
1. 图像配准SURF算法可以被用来匹配两幅图像之间的关键点,通过计算两幅图像中关键点的相似度来实现图像配准。
图像匹配点对的检测方法图像匹配在计算机视觉领域中起着重要的作用,它可以用于目标跟踪、图像识别、三维重建等各种应用。
而图像匹配的关键在于确定图像中的对应点对,即找到两个图像中具有相似语义的特征点。
本文将介绍几种常用的图像匹配点对的检测方法。
一、SIFT算法SIFT(Scale Invariant Feature Transform)算法是一种图像特征提取算法,广泛应用于图像匹配之中。
该算法的主要思想是通过检测图像中的尺度不变特征点,并对这些特征点进行描述。
在对比两幅图像时,可以通过比较这些特征点的描述子来确定图像中的对应点对。
SIFT算法的具体过程如下:1. 尺度空间构建:通过高斯金字塔构建每组不同尺度的图像。
2. 尺度不变特征点检测:在每个尺度上,通过DoG(Difference of Gaussian)算法检测特征点。
3. 方向分配:为每个特征点分配主方向,使得特征点具有旋转不变性。
4. 特征描述:根据特征点的主方向,计算其周围像素的梯度直方图,生成特征描述子。
二、SURF算法SURF(Speeded-Up Robust Features)算法是对SIFT算法的改进和优化。
该算法通过使用积分图像来加速特征点检测和描述子计算的过程,提高了算法的实时性和稳定性。
SURF算法的具体过程如下:1. 尺度空间构建:通过使用高斯滤波器构建图像的尺度空间金字塔。
2. 特征点检测:在每个尺度上,通过Hessian矩阵的行列式来检测特征点。
3. 特征点定位:通过非极大值抑制和阈值判定,选取具有较大响应的特征点。
4. 主方向分配:为每个特征点分配主方向,使得特征点具有旋转不变性。
5. 特征描述:根据特征点的主方向,在其周围的区域计算特征描述子。
三、ORB算法ORB(Oriented FAST and Rotated BRIEF)算法是一种具备旋转不变性和计算效率的图像特征描述算法。
该算法结合了FAST角点检测算法和BRIEF描述算法,可以快速且准确地进行特征点检测和描述。
SURF算法⼀、原理:Sift算法的优点是特征稳定,对旋转、尺度变换、亮度保持不变性,对视⾓变换、噪声也有⼀定程度的稳定性;缺点是实时性不⾼,并且对于边缘光滑⽬标的特征点提取能⼒较弱。
Surf(Speeded Up Robust Features)改进了特征的提取和描述⽅式,⽤⼀种更为⾼效的⽅式完成特征的提取和描述。
⼆、Surf实现流程如下:1. 构建Hessian(⿊塞矩阵),⽣成所有的兴趣点,⽤于特征的提取⿊塞矩阵(Hessian Matrix)是⼀个多元函数的⼆阶偏导数构成的⽅阵,描述了函数的局部曲率。
由德国数学家Ludwin Otto Hessian于19世纪提出。
surf构造的⾦字塔图像与sift有很⼤不同,Sift采⽤的是DOG图像,⽽surf采⽤的是Hessian矩阵⾏列式近似值图像。
Hessian矩阵是Surf算法的核⼼,构建Hessian矩阵的⽬的是为了⽣成图像稳定的边缘点(突变点),为下⽂的特征提取做好基础。
每⼀个像素点都可以求出⼀个Hessian矩阵。
Hessian矩阵的判别式为:当Hessian矩阵的判别式取得局部极⼤值时,判定当前点是⽐周围邻域内其他点更亮或更暗的点,由此来定位关键点的位置。
在SURF算法中,图像像素l(x,y)即为函数值f(x,y)。
但是由于我们的特征点需要具备尺度⽆关性,所以在进⾏Hessian矩阵构造前,需要对其进⾏⾼斯滤波,选⽤⼆阶标准⾼斯函数作为滤波器。
H矩阵的三个矩阵元素L_xx, L_xy, L_yy从⽽计算出H矩阵:Surf使⽤了盒式滤波器来近似替代⾼斯滤波器,提⾼运算速度。
盒式滤波器(Boxfilter)对图像的滤波转化成计算图像上不同区域间像素和的加减运算问题,只需要简单⼏次查找积分图就可以完成。
每个像素的Hessian矩阵⾏列式的近似值:2. 构建尺度空间同Sift⼀样,Surf的尺度空间也是由O组L层组成,不同的是,Sift中下⼀组图像的尺⼨是上⼀组的⼀半,同⼀组间图像尺⼨⼀样,但是所使⽤的⾼斯模糊系数逐渐增⼤;⽽在Surf中,不同组间图像的尺⼨都是⼀致的,但不同组间使⽤的盒式滤波器的模板尺⼨逐渐增⼤,同⼀组间不同层间使⽤相同尺⼨的滤波器,但是滤波器的模糊系数逐渐增⼤。
SIFTSURFORBFAST特征提取算法比较在计算机视觉领域中,SIFT(Scale-Invariant Feature Transform,尺度不变特征转换)、SURF(Speeded Up Robust Features,加速鲁棒特征)、ORB(Oriented FAST and Rotated BRIEF,方向性的快速特征和旋转的BRIEF)、FAST(Features from Accelerated Segment Test,加速线段测试特征)都是常用的特征提取算法。
本文将对这四种算法进行比较,主要从算法原理、特点以及在不同应用场景的优缺点进行分析。
1.SIFT算法SIFT算法是由Lowe在1999年提出的一种获取图像局部特征的算法。
其主要兴趣点在于尺度不变特征的提取,通过尺度空间构建和关键点提取和描述来实现图像匹配。
SIFT算法的特点是具有旋转不变性、尺度不变性和光照不变性。
然而,SIFT算法计算复杂度较高,不适合实时应用。
2.SURF算法SURF算法是由Bay等人在2024年提出的一种加速鲁棒特征提取算法。
与SIFT算法相比,SURF算法主要优化了尺度空间构建、关键点检测和描述子生成等步骤。
SURF算法利用图像的Hessian矩阵来检测尺度空间的极值点,并通过Haar小波响应计算描述子。
该算法具有较好的尺度不变性和旋转不变性,同时计算速度更快。
然而,SURF算法对于局部对比度较低的图像特征提取效果较差。
3.ORB算法ORB算法是由Rublee等人在2024年提出的一种速度和描述能力兼具的特征提取算法。
该算法结合了FAST关键点检测和BRIEF描述子生成算法,并引入了旋转和尺度不变性。
ORB算法在FAST检测关键点时,通过计算像素灰度和检测周围点的弧长度来提高检测的稳定性。
在描述子生成过程中,ORB算法利用了方向梯度直方图(DOG)来提取关键点的旋转信息。
ORB算法具有快速、简单和可靠的特点,适合于实时应用。
surf特征点检测原理一、引言surf特征点检测是一种在计算机视觉领域被广泛应用的算法,用于图像特征提取和匹配。
本文将介绍surf特征点检测的原理及其相关概念,以帮助读者更好地理解该算法的工作原理。
二、SURF特征点检测的概述SURF(Speeded Up Robust Features)是一种基于尺度空间理论的图像特征描述算法。
它的主要思想是通过检测和描述图像中的局部特征点,从而实现图像的匹配与识别。
SURF算法具有计算速度快、尺度不变性强等优点,因此得到了广泛的应用。
三、尺度空间理论尺度空间理论是SURF算法的基础。
它认为图像中的物体在不同尺度下都会呈现出不同的外观,因此在进行特征点检测时,需要考虑不同尺度下的图像特征。
SURF算法通过构建一个尺度空间金字塔来实现不同尺度下的特征点检测。
四、Hessian矩阵的计算SURF算法使用Hessian矩阵来检测图像中的局部极值点。
Hessian 矩阵描述了图像中的灰度变化情况,通过计算图像的二阶导数来得到Hessian矩阵。
在SURF算法中,为了加速计算速度,Hessian 矩阵的计算采用了一种近似方法。
五、关键点的定位在得到Hessian矩阵后,SURF算法通过计算特征点的行列方向和尺度来实现关键点的定位。
其中,行列方向表示特征点在图像中的位置,尺度表示特征点的大小。
SURF算法还引入了一种基于盒子滤波器的方法,用于对关键点进行定位。
六、关键点的描述关键点的描述是SURF算法的核心内容之一。
SURF算法采用了一种称为Haar小波的特征描述子,用于描述关键点的局部特征。
Haar小波通过计算图像中的水平和垂直边缘来描述图像的纹理特征。
SURF算法通过对Haar小波的积分图像进行快速计算,实现了关键点的快速描述。
七、关键点的匹配关键点的匹配是SURF算法的最后一步。
在进行关键点匹配时,SURF算法采用了一种称为海森距离的相似性度量。
海森距离可以有效地判断两个关键点之间的相似度,从而实现关键点的匹配。
蒙娜丽莎的图像匹配---SURF算法1.图像匹配1.1.图像匹配的概念图像匹配成为计算机视觉和图像处理中的一个重要技术。
其方法思想就是根据己知的图像在其他图像中查找出含有己知图像的过程。
图像匹配的架构流程如图1.1。
该技术的研究涉及到许多相关的知识领域,如图像预处理、图像采样、特征提取等,同时将计算机视觉、多维信号处理和数值计算等紧密结合在一起。
图像匹配技术还与图像融合、图像匹配等研究方向系系相关,为图像理解和图像复原等相关领域的研究提供基础。
图1.1 图像匹配流程图图像匹配技术作为图像处理的关键技术之一,在国防领域和医学领域等得到广泛的研究和应用[2]。
如果在不同视角,或是不同时间,或是使用了不同的传感器获取到的两幅或多幅图像间存在共同区域,如何寻找到图像间的共同区域,就是图像匹配需要解决的问题。
1.2.图像匹配的算法组成图像匹配技术的分支很多,对图像匹配提出的构架也是千姿百态,根据布朗提出了图像匹配的组成要素,将图像匹配的要素主要分为四个方面,分别是图像的特征空间,为求取变换参数定义的搜索空间和搜索策略,图像匹配的相似性度量。
特征空间是指在待配图像和参考图像上提取到的一系列特征集合。
将提取到的特征进行描述后参与最后的匹配,因此特征选取的好坏直接影响匹配的可行性和匹配的效果。
好的特征是满足自动匹配的前提,因此选取的特征一般包含图像的关键信息,此类特征存在以下特性:首先,此类特征具有公有性、唯一性和显著性,保证匹配的顺利进行和匹配的精度;其次,此类特征具有多量性,而且分布合理,保证匹配的稳定性。
合理的特征空间会降低匹配算法的计算量,提高算法的性能。
相似性度量是指评判待匹配图像和参考图像上特征的相似程度,它很大程度上决定了参与匹配的因素,一般采用某种代价函数或者是距离函数来进行度量。
好的相似性度量不仅可以减少算法的计算量,而且对于算法的匹配性能和鲁棒性起着重要的作用。
搜索空间为求取图像变换参数的空间。
它为图像间可能存在的所有变换组合的空间。
搜索空间的组成取决于图像畸变的类型,而搜索空间的取值范围取决于图像畸变的强度。
假如图像间只存在平移和旋转变换,那么搜索空间为简单的二维空间。
假如图像间存在扭曲变形,那么搜索空间为复杂的三维甚至更高维的空间。
搜索空间是为了使图像间能够寻找到最优的变换参数而建立的空间,好的搜索空间能够得到较准确的变换参数。
搜索策略是指在建立的搜索空间中,以一种方法来求取图像间的变换参数,使变换参数达到最优。
可见搜索策略不仅影响到图像变换参数的求取,而且对于匹配时间也具有很大的影响。
一般来说,一种好的搜索策略都是采用搜索精度和搜索时间来评判的。
较为常用的搜索策略主要包括序贯判定、层次性搜索法、穷尽搜索法、松弛算法、树与图匹配搜索、动态规划、多尺度搜索算法等。
每种搜索算法都是针对具体的应用领域产生的,不同的方法具有不同的优势。
针对不同的要求,选择合适的搜索策略是非常重要的。
图像匹配的四要素是密切相关的,而且每个要素对匹配的最终结果都有很大的影响。
针对不同的匹配需求和匹配的具体应用,匹配要素的选取各异。
首先针对图像的类型和具体的图像特征建立合适的特征空间;根据图像间的畸变类型和畸变强度建立合适的搜索空间;通过合适的搜索算法来计算相似性度量;从而得到最优的变换参数。
2.SURF算法SURF的全称是Speed-up robust features(加速健壮特征),SURF算法是SIFT(Scale-invariant feature transformation,尺度不变特征变换)算法的加速版,SURF算法可以在适中的条件下完成两幅图像中物体的匹配基本实现了实时处理。
2.1.SIFT算法在计算机领域的图像处理希望可以和人类视觉一样通过程序自动找出两幅图像里面相同的景物,建立它们之间的对应,SIFT(尺度不变特征)算法提供了一种解决方法,通过这个算法可以使得满足一定条件下两幅图像中相同景物的某些点可以匹配起来。
SIFT算法实现物体识别主要有三大工序,1、提取关键点;2、对关键点附加详细的信息(局部特征)也就是所谓的描述器;3、通过两方特征点(附带上特征向量的关键点)的两两比较找出相互匹配的若干对特征点,也就建立了景物间的对应关系。
日常的应用中,多数情况是给出一幅包含物体的参考图像,然后在另外一幅同样含有该物体的图像中实现它们的匹配。
两幅图像中的物体一般只是旋转和缩放的关系,加上图像的亮度及对比度的不同,这些就是最常见的情形。
基于这些条件下要实现物体之间的匹配,SIFT算法的先驱及其发明者想到只要找到多于三对物体间的匹配点就可以通过射影几何的理论建立它们的一一对应。
首先在形状上物体既有旋转又有缩小放大的变化,如何找到这样的对应点呢?于是他们的想法是首先找到图像中的一些“稳定点”,这些点是一些十分突出的点不会因光照条件的改变而消失,比如角点、边缘点、暗区域的亮点以及亮区域的暗点,既然两幅图像中有相同的景物,那么使用某种方法分别提取各自的稳定点,这些点之间会有相互对应的匹配点,正是基于这样合理的假设,SIFT算法的基础是稳定点。
SIFT算法找稳定点的方法是找灰度图的局部最值,由于数字图像是离散的,想求导和求最值的操作都是使用滤波器,而滤波器是有尺寸大小的,使用同一尺寸的滤波器对两幅包含有不同尺寸的同一物体的图像求局部最值将有可能出现一方求得最值而另一方却没有的情况,但是容易知道假如物体的尺寸都一致的话它们的局部最值将会相同。
SIFT的精妙之处在于采用图像金字塔的方法解决这一问题,我们可以把两幅图像想象成是连续的,分别以它们作为底面作四棱锥,就像金字塔,那么每一个截面与原图像相似,那么两个金字塔中必然会有包含大小一致的物体的很多截面,但应用只能是离散的,所以我们只能构造有限层,层数越多当然越好,但处理时间会相应增加,层数太少不行,因为向下采样的截面中可能找不到尺寸大小一致的两个物体的图像。
有了图像金字塔就可以对每一层求出局部最值,但是这样的稳定点数目将会十分可观,所以需要使用某种方法抑制去除一部分点,但又使得同一尺度下的稳定点得以保存。
有了稳定点之后如何去让程序明白它们之间是物体的同一位置?研究者想到以该点为中心挖出一小块区域,然后找出区域内的某些特征,让这些特征附件在稳定点上,SIFT的又一个精妙之处在于稳定点附加上特征向量之后就像一个根系发达的树根一样牢牢的抓住它的“土地”,使之成为更稳固的特征点,但是问题又来了,遇到旋转的情况怎么办?发明者的解决方法是找一个“主方向”然后以它看齐,就可以知道两个物体的旋转夹角了。
2.2.SURF算法步骤2.2.1.特征点检测特征点的检测一般包括三个步骤,积分图像的建立,箱式滤波器建立图像的尺度空间,然后在建立的尺度空间上对特征点进行定位。
积分图像的建立:SURF 算法和其他算法相比不仅具有较好的缩放、旋转、平移等特性,而且计算速度很快,计算速度的提升很大程度上取决于积分图像的建立。
积分图像是对原始图像进行积分计算得到的图像。
积分图像的每一点表示为原图像从原点到该点的矩形区域的像素和,积分图像的建立之所以能够加快计算速度,是因为我们对整幅图像进行积分图像遍历后,原始图像中的任一矩形区域的像素之和就可以通过加减运算来完成,而与矩形的面积无关,矩形越大,节省的计算时间越多。
SURF 算法之所以能够采用积分图像来计算,另外一个很重要的近似就是采用箱式滤波器来近似高斯核函数。
箱式滤波器的引入使得卷积模板都是框状模板,使用积分图像来计算就大大减少了计算量,从而提高了算法的运算效率。
箱式滤波器建立尺度空间:SURF 算法采用箱式滤波器来近似代替高斯核函数,使得卷积模板均由简单的矩形构成。
积分图像的引入解决了矩形区域快速计算的问题,箱式滤波器的近似极大提升了计算速度。
箱式滤波器近似效果如图1.2所示:图1.2 箱式滤波器箱式滤波器建立图像的尺度空间:为了保证图像匹配具有尺度不变性,需要对图像进行分层,建立图像的尺度空间,然后在不同尺度的图像上来寻找特征点。
SURF 算法尺度空间的建立是保持原始图像大小不变,通过改变箱式滤波器的大小来对原始图像计算得到的积分图像进行滤波,从而形成图像的尺度空间。
采用箱式滤波器建立图像的尺度空间如图1.3所示:图1.3 尺度空间特征点定位:通过上面所述的尺度空间的建立,在得到图像的尺度空间后,在尺度空间的每一层图像上使用快速 Hessian 矩阵来检测图像的极值点。
对于空间的任意一点 ( x , y ),对应尺度空间中的尺度为σ ,则 Hessian 矩阵的定义如下所示:H (x,σ)=[ L xx (x σ) L xy (x σ) L xy (x σ) L yy (x σ)] 其中L xx (x σ)、L xy (x σ)、L yy (x σ)是图像上的点分别与高斯二阶偏导数ð2g(σ)ðx 2, ð2g(σ) ðxy , ð2g(σ)ðy 2卷积的结果,其中g 为高斯函数。
为了减少计算量,此处又做了一个近似,我们采用箱式滤波模板与原始输入图像的卷积记为D xx , D xy , D yy 来分别代替L xx ,L xy ,L yy ,把 9×9 的初始箱式滤波器与σ等于1.2的二阶高斯偏导近似,Hessian 矩阵的行列式计算可以近似表示为:Det (Hessian )=D xx D yy -(ωD xy )2其中权重系数ω约为0.9.对于计算得到的 Hessian 矩阵,设定一个阈值,只有当det( Hessian )大于这个阈值时,才进行下一步的判定。
对于进行下一步判定的点,取该点的上下层中对应 3*3*3 的立体邻域来进行非极大值抑制(Non-maximum suppression ),只有比立体近邻内的 26个响应值都大的点才被选定为特征点。
为了在得到特征点的稳定位置和尺度值,需要对尺度空间进行插值,这样就得到了特征点的位置值和特征点的尺度值。
2.2.2. 特征描述特征描述分为两个步骤,首先求取特征点的主方向,这样可以保证算法的旋转不变性,然后将特征点的邻域旋转到主方向,对特征点进行描述。
主方向描述:为了使图像的匹配具有旋转不变性,引入了主方向的概念。
主方向的计算是以特征点为中心,取特征点周围半径为 6s (s 为特征点所在的尺度值)的圆形区域,计算邻域内的像素点在 x ,y 方向上的哈尔小波响应值。
对计算得到的响应值按距离赋予一定的权值系数,继而对加权后的响应值进行直方图统计。
统计从x轴开始,对圆形区域 60 度范围内的哈尔小波响应值相加计算得到一个新的矢量。
每隔 5 度以同样的方法计算矢量,遍历整个圆形区域,可以得到 72 个新的矢量。