浅析SIFT算法影像匹配精度评价

来源:期刊VIP网所属分类:结业论文发布时间:2014-07-02浏览:

  摘要:目前主流的影像匹配算法大致可以分成两种类型:第一类是在以待定点为中心的窗口(或称区域)内,以影像的灰度分布为影像匹配的基础,故称此种类型的算法为灰度匹配(Area Based Image Matching);第二类是基于影像特征的匹配,主要用于配准特征点、线或面,这一类算法称为特征匹配(Feature Based Matching)[1-2]。

  关键词:摄影测量与遥感;SIFT 算法;影像匹配;灰度模板;精度评价

  0、引言

  SIFT(The Scale InvariantFeature Transform)算法,全名是尺度不变特征转换算法。SIFT 特征匹配算法属于基于特征的匹配算法中的一种。SIFT 算法在特征提取、特征描述和特征匹配这三个方面都有自己独特的特点,因此SIFT 算法是目前影像匹配领域的研究热点之一。

  本文在实现 SIFT 算法进行影像匹配的基础之上,对SIFT 算法的定位精度进行分析,提出了一种评价SIFT 算法定位精度的可行方案。

  1、基于 SIFT 算法的影像匹配

  SIFT 特征匹配算法最初由加拿大的英属哥伦比亚大学(British Columbia)的David G.Lowe 教授提出。该教授在1999 年9 月召开的计算机视觉国际会议(International Conferenceon Computer Vision)上发表了名为《Object Recognition from Local Scale-Invariant Features》的一篇论文。在该论文里,作者第一次提出了尺度不变特征的概念,并将其应用于影像匹配领域。2004 年1 月,该教授发表了名为《Distinctive Image Features from Scale-InvariantKeypoints》的文章,在原来提出的算法的基础之上进行了一定的改进工作,这些改进主要包括SIFT 特征点的精确定位和特征点描述子的改进等工作,从而使SIFT 算法得到完善[3]。

  使用 SIFT 算法进行影像匹配,大体上可以分为四个步骤。

  1.1 在多尺度空间上生成高斯影像和高斯差分影像在不同的尺度空间上生成高斯影像和高斯差分影像是进行SIFT 特征点检测的第一步,也是SIFT 特征点检测算法的一个重要特点。生成高斯影像使用的函数为:

  实际操作中我们使用这个函数生成一个高斯平滑掩膜,然后使用这个掩膜对影像进行处理。

  按照逐步平滑处理的方法,一共可以生成3 组高斯影像。在3 组高斯影像的基础之上,进行差分运算,又可以得到3 组高斯差分影像。

  1.2 进行极值检测、极值点精确定位和去除低对比度点、边缘响应点由于 SIFT 算法的原理较为模式化,相关文献以给出详细描述,本文不再赘述。值得注意的是,极值点的检测工作在同尺度的高斯差分金字塔影像之间进行,检测工作发生在相邻的连续三张影像之间。检测的结果显示在中间一层影像上。据此可知,每组高斯差分影像上,特征点的检测的结果显示在第二层和第三层之间。在这两层影像上,分别进行特征点的搜索工作,但是对每层搜索影像而言,又有相邻的两层影像参与其中。这样做的目的是确保在尺度空间和二维图像空间都检测到极值点。

  1.3 为特征点分配方向和 SIFT 特征点描述子的生成分配方向的目的就是:利用关键点邻域像素的梯度方向分布特性为每个特征点指定方向参数,使算子具备旋转不变性。该步骤主要利用关键点相邻区域内一定像素的梯度值和模来完成主方向的分配工作。

  以 SIFT 特征点为中心取一个16×16 的一个窗口,在每4×4 的小块上计算8 个方向的梯度方向直方图,绘制每个梯度方向的累加值,即可形成一个128 维的向量,将这个向量作为SIFT 特征点的描述子。

  1.4 使用特征向量进行影像匹配工作当两幅图像的 SIFT 特征向量生成后,采用特征点特征向量之间的欧式距离作为两幅图像之间特征点的相似性判定度量。

  向量之间的欧式计算类似于两点之间进行距离运算,也就是将向量中的相应的元素两两求差后再进行平方和运算。算例如下:A 图像中的向量a 与B 图像中的所有的向量b 进行欧式距离的计算:

  求出最小的距离minL 和次小的距离cminL,然后计算两个距离的比值minL/cminL,如果该比值小于0.8 就接受这一对匹配点。否则舍弃该点进行下一个特征点的计算工作。在操作过程中应该使用KDTree 数据结构进行运算。

  2、匹配点评价的基本方法与匹配精确定位方法

  匹配点评价的基本方法有若干种,本文选择使用在粗匹配的基础之上进行精确匹配来确定匹配点的精度的方法。

  2.1 匹配点评价的基本方法目前评价点位的精度主要从三个方面入手:

  (1)SIFT 算法的模型精度。在原文的文献中,作者只是介绍其精度可以达到亚像素级,但是并没有说明具体是多少,因为精度不仅与模型有关系,也和进行匹配的图像的特点(如:

  噪声大小,视角等)有关系。查阅目前几乎所有的文献,基本没有从SIFT 模型出发去评价该算法的精度的文章,也没有找到相关的关于SIFT 模型的精度。

  (2)利用匹配出的点位计算物方坐标值,然后与该点的真实值相比较,从而得到该点位的物方精度。这是最常用的一种方法,但是该方法需要一定的控制点参与,限制其在实验室条件下的应用。

  (3)计算匹配点的精确值与SIFT 匹配出的点位相比较,从而得到SIFT 匹配点的偏差值。这就带来一个问题:如何计算出匹配点的精确位置,如果目标是一个角点或圆形标志点,可以使用已有的定位算子来完成精确定位工作。但是,遥感影像上都是无规则形状的特征点,因此可以考虑使用二次多项式拟合的方法来求得该特征点的精确位置。

  2.2 在初始位置基础上的影像精匹配在得到的 SIFT 特征点的像素级坐标的基础之上,在左右片上做如下处理:左片上,以该像素为中心取3╳3 的模板邻域;右片以相应的像素为中心取5╳5 的搜索区域。在搜索区域内,采用模板区域计算相关像素的相关系数,计算公式如下这样就可以在右片上得到匹配点周围的9 个点的相关系数值,通过这9 个点可以采用最小二乘法拟合出一个二元二次曲面方程:

  P(x, y) = ay2 + bx2 + cxy + dy + ex + f利用 Matlab 数学软件采用最小二乘法可以得到上式的各个系数[4]:

  这样我们就可以得到匹配点的精确位置,其中X和Y是匹配点的像素级的坐标值,拟和出的精确位置的理论精度在1/20 个像素以内[5]。

  但是,这样做有一定的缺陷:该方法只有对适合进行模板匹配的的区域才有效,因为影像的精确匹配算法就是建立在影像相关系数计算并进行插值得基础之上的。

  3、实验过程与结果

  首先使用 SIFT 算法对影像进行匹配。匹配影像选择使用512×36360 的航天遥感三线阵CCD 影像的前后和后视影像进行实验[6],截取其中一个匹配点的实验效果如下:

  根据第三节中提出的影像精确匹配方法,采用VS2008.NET 编译平台和C#编程语言编写相关程序[7]。测试其中的8 个匹配点,测试结果如下表所示:

  由此可以看出各SIFT 匹配点与真实位置的最大偏差值0.323±0.05 也在0.4 个像素以内,完全符合SIFT 特征点可以得到亚像素级的精度要求。

  4、结论本

  文在实现 SIFT 算法进行影像匹配的基础之上,利用在影像上的特定区域可以进行灰度模板匹配的情况,对SIFT 算法的定位精度进行分析,提出了一种评价SIFT 算法定位精度的可行方案。通过表1 中的数据可以得出结论:SIFT 匹配点与真实位置的最大偏差值也在0.4 个像素以内,完全符合SIFT 特征点可以得到亚像素级的精度要求。

  [参考文献] (References)

  [1] 张剑清等著.摄影测量学[M].武汉:武汉大学出版社,2004.

  [2] 李德仁等著.摄影测量与遥感概论[M].北京:测绘出版社,2003.

  [3] Lowe D G. Distinctive image features f rom scale-invariant keypoint s[J]. I nternational J ournal of ComputerV ision .2004 , 60(2) :91 - 110.

  [4] 苏金明等编著.MATLAB 实用教程[M].北京:电子工业出版社,2002.

  [5] 韩峰等.数字图像匹配算法的改进及研究[J].内蒙古工业大学学报.2003,22(4):273-277[6] 王任享著.三线阵CCD 影像卫星摄影测量原理[M].北京:测绘出版社,2006.

  [7] 周礼著.C#和.NET3.0 第一步[M].北京:清华大学出版社,2008. 

期刊VIP网,您身边的高端学术顾问

文章名称: 浅析SIFT算法影像匹配精度评价

文章地址: http://www.qikanvip.com/biyelunwen/13973.html