APP下载

SIFT算法特征点提取的改进

2012-05-08殷妍

电脑知识与技术 2012年7期

殷妍

摘要:SIFT特征点匹配算法是目前图像特征匹配研究领域的一个热点。该匹配效率高,可以处理图像之间发生平移等的变化的匹配,对不同角度拍攝的图像也具备稳定的特征点匹配效率。因此通过参数的变化对SIFT算法的原理进行了研究以及改进,并用图片、运算时间等数据说明该算法的有效性。

关键词:图像配准;SIFT算法;MATLAB

中图分类号:TP393文献标识码:A文章编号:1009-3044(2012)07-1609-02

Improved Feature Selection of SIFT Algorithm

YIN Yan

(Institute of the Computer Science and Technology, Renai College of Tianjin University, Tianjin 301636, China)

Abstract: SIFT features matching algorithm is a hot issue in the field of computer science. It has a high efficiency to match that it can be dealt with the match when the images are in translation, for any angle shot images it still has a stable feature matching efficiency. Therefore the principle of SIFT algorithms has been studied and improved by changing the parameters. The pictures and data such as the running times are used to prove its efficiency.

Key words: image mosaicing; SIFT; MATLAB

图像拼接技术发展迅速且应用广泛,是计算机科学、信息、电子、通讯等领域的技术基础和重要研究课题。在图像拼接的过程中,图像的配准是这项技术的重点与核心。目前图像配准的各种方法中,SIFT算法是目前图像特征匹配研究领域的一个重点问题。其匹配效率很高,并且很少的特征点有偏差。由于这些优点,SIFT算法在很多领域比如目标识别、图像检索、图像拼接等都得到了广泛的关注。但是,该算法在提取特征点时按照传统的方法有可能导致特征点数量过少,因此,可以采取采取直接增加高斯差分金字塔[1]数量的方法来直接增加检测特征点的机会,从而增加特征点的数量。

SIFT算法的主要过程包括:建立高斯金字塔、通过相邻金字塔的差得到高斯差分金字塔(在高斯金字塔的构成中,在进行变换之前,先将图像扩大一倍[2],其目的是为了得到更多的特征点;在同一阶中相邻两层的高斯函数的比例系数是k,则第1阶第2层的尺度因子是k,其它层以此类推;第2阶的第1层由第1阶的中间层尺度图像进行子抽样得到,第2阶的第2层的尺度因子是第1层的k倍,即,第3阶的第1层由第2阶的中间层尺度图像进行子抽样获得。其它阶的构成以此类推。)、上下左右二十六个点的灰度值进行比较的初始特征点检测(DoG尺度空间中的中间层(最底层和最顶层除外)的每一个像素点需要跟同一层的相邻八个像素点以及它上一层和下一层的九个相邻像素点共26个相邻像素点进行比较,以确保在金字塔的尺度空间和二维空间都检测到局部极值。)、进行三维二次函数拟合[3]得到精确极值点检测、去除低对比度点、借助梯度直方图(计算时,我们在以关键点为中心的邻域窗口(通常取16×16大小)内采样,并用直方图统计邻域像素的梯度方向。梯度直方图的范围是0到360度,其中每10度一个柱,总共36个柱。生成的梯度向量是三十六维的,每一维代表该方向的大小。梯度方向直方图的峰值代表了该关键点处邻域梯度的主方向,即作为该关键点的方向)等方法确定极值点方向、描述特征向量、特征向量的匹配(采用欧氏距离判断特征点之间的距离。获取SIFT特征向量后,可以采用优先k-d树进行优先搜索来找每个特征点的两个近似最近邻特征点。k-d树是二叉检索树的扩展。k-d树的每一层将空间分成八个。树的顶层结点按一维(特征点的第一维)进行划分,下一层结点按另一维(特征点的第二维)进行划分,以此类推,各个维循环迭代。划分要使得,在每个结点中,大约一半存储在子树中的结点能够落入一侧,而另一半能够落入另一侧。当一个结点中的点数少于给定的最大点数时,则结束划分。在这两个特征点中,如果最近的距离和次近的距离的比值能够少于某个比例阈值,则认为该对匹配点匹配成功。降低这个阈值,匹配点数目会减少,但匹配点的正确率会更加稳定。

1改变算法中的原始取值

在David G..Low的文献[4]中,高斯金字塔是4阶,每阶3层。在S=3的情况下,每一阶只对中间的三层进行初始极值点的搜索,可能会出现特征点漏检的情况。基于这个弊端,将参数S重新设置成S=5,这样将高斯差分金字塔大大的扩展。在S=5的情况下,金字塔的每一阶对5层图像进行初始极值点的搜索,大大增加了寻找到特征点的可能。

本实验选取的图片是通过摄像机平移得到的。图像选取遵循了图像信息量适中,不存在大面积相同或相似区域,亮度相差不多等原则。

在PC(i550-2.6GHz CPU,1024MBRAM,Windows XP OS,MATLAB 6.5)[5]的环境下进行实验。在其他条件不变的情况下,将初始尺度空间参数S由3变为5,得到实验图片的金字塔和运行结果对比如图1、图2。

图1 S=3时两幅图片的金字塔

图2 S=5时两幅图片的金字塔

修改参数S前片,第一张图片提取特征点318个,第二张图片提取特征点256个,匹配105个。修改参数S后第一组图片,第一张图片提取特征点502个,第二张张图片提取特征点527个,匹配132个。

2实验结论

从图像上可以看出,将S由3变成5后DoG金字塔所含的信息量增加了,同时也增加了寻找特征点的机率。

从时间上说,S取3时算法效率高,但是S=5事的特征点匹配越多。并且,对于特征点比较多的图像,匹配的效率会更高一些。S取5时,对于高斯差分金字塔,每一阶计算五层,金字塔层数增加,特征点的数目也增加,所以找到的特征点对数也增加,这样增强了该算法的特征匹配率,提高了该算法的效率,使该算法查找、匹配能力更强,更多应用在计算机领域。

参考文献:

[1]王国美,陈孝威.SIFT特征匹配研究[J].盐城工学院学报,2007,2(20): 1-3.

[2]蔺想红,王维盛.一种基于特征点匹配的全景自动拼接方法[J].西北师范大学学报,2005,41(4): 31-34.

[3]宰小涛,赵宇明.基于SIFT特征描述子的立体匹配算法[J].微计算机信息,2007,23(8): 285-287.

[4] David G..Lowe. Distinctive image features from scale-Invariant Key points[J]. International Journal of Computer Vision,2004,60(2) : 91-110.

[5]贺兴华,周媛媛,王继阳,等.MATLAB7.x图像处理[M].北京:人民邮电出版社,2006.