SURF算法介绍
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蒙娜丽莎的图像匹配---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 算法尺度空间的建立是保持原始图像大小不变,通过改变箱式滤波器的大小来对原始图像计算得到的积分图像进行滤波,从而形成图像的尺度空间。采用