SIFT特征提取算法..doc
文本预览下载声明
SIFT特征提取算法总结
图像检索 2010-09-25 22:49:19 阅读51 评论0 ??字号:大中小?订阅
一、综述
Scale-invariant feature transform(简称SIFT)是一种图像特征提取与匹配算法。SIFT算法由David.G.Lowe于1999年提出,2004年完善总结,后来Y.Ke(2004)将其描述子部分用PCA代替直方图的方式,对其进行改进。SIFT算法可以处理两幅图像之间发生平移、旋转、尺度变化、光照变化情况下的特征匹配问题,并能在一定程度上对视角变化、仿射变化也具备较为稳定的特征匹配能力。
二、SIFT特征提取算法
SIFT算法首先在尺度空间进行特征检测,并确定关键点的位置和关键点所处的尺度,然后使用关键点邻域梯度的主方向作为该点的方向特征,以实现算子对尺度和方向的无关性。
SIFT算法提取的SIFT特征向量具有如下特性:
a) SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性。
b) 独特性好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配。
c) 多量性,即使少数的几个物体也可以产生大量SIFT特征向量。
d) 高速性,经优化的SIFT匹配算法甚至可以达到实时的要求。
e) 可扩展性,可以很方便的与其他形式的特征向量进行联合。
一幅图像SIFT特征向量的生成算法总共包括4步:尺度空间极值检测、关键点位置及尺度确定、关键点方向确定、特征向量生成。最后通过特征向量完成特征点的匹配。
2.1尺度空间极值检测
机器人在环境中走动时,摄像机和环境中物体的相对位置会发生变化,导致图像上物体的特征的尺度发生变换。我们希望特征具有尺度不变性,即当特征尺度变化时,特征点检测器仍然能够准确的检测出特征点及其尺度。为满足以上条件,特征检测需要在多尺度空间的框架下进行。
尺度空间理论是检测不变特征的基础。Witkin(1983)提出了尺度空间理论,他主要讨论了一维信号平滑处理的问题。Koenderink(1984)把这种理论扩展到二维图像,并证明高斯卷积核是实现尺度变换的唯一变换核。
二维高斯函数定义如下:
一幅二维图像,在不同尺度下的尺度空间表示可由图像与高斯核卷积得到:
其中(x,y)为图像点的像素坐标,I(x,y)为图像数据。σ称为尺度空间因子,它也是高斯正态分布的方差,其反映了图像被平滑的程度,其值越小表征图像被平滑程度越小,相应尺度越小。L代表了图像的尺度空间。
为高效的在尺度空间内检测出稳定的特征点,Low使用尺度空间中DoG(Difference -of-Gaussian)极值作为判断依据。DoG算子定义为两个不同尺度的高斯核的差分,是归一化LoG (Laplacian-of-Gaussian)算子的近似。设k为两相邻尺度间的比例因子,则DoG算子定义如下:
选择DoG算子作为检测函数有一定的原因。首先,DoG算子计算简单,只需要将两个高斯平滑后的图像L相减即能得到,执行效率较高;其次,DoG算子检测出的特征点稳定性较好,与LoG检测效果相近(Mikolajczyk 2002)。
Lowe采用的构造方式如图1,其建立高斯图像(图中左列)与DoG(图中右列)两个金字塔。高斯图像金字塔分为多组,每组间又分为多层。一组中的多层间不同的是尺度,相邻层间尺度相差一个比例因子k。为在S个尺度间隔内变化尺度因子,如使σ加倍,则k应为。而为了在整个金字塔内获取DoG极值,应在高斯金字塔中生成S+3层高斯平滑图像。下一组的图像的最底层由上一组中尺度为2σ的图像进行因子为2的降采样得到,其中σ为上一组中最底层图像的尺度因子。DoG金字塔由相邻的高斯图像金字塔相减得到。
图1 高斯图像金字塔(S=2)与DoG金字塔
金字塔中每个高斯图像的σ为:
其中为基础尺度因子;o, s分别为图像所在的图像组坐标、组内层坐标,,,(实际应为,为在整个金字塔内获取DoG极值,有S+3层高斯平滑图像);是第一个金字塔组的坐标,通常取0或者-1,当设为-1的时候,则图像在计算高斯尺度空间前先扩大一倍。在Lowe的算法实现中以上参数分别取值如下:,,。
另外,空间坐标x是组坐标o的函数。设第o组内的空间坐标,则有:
其中是第o组中图像的分辨率。设为第0组中的图像分辨率,则其他组的分辨率为:
金字塔构造完后开始检测DoG局部极值。其中每个像素需要跟同一尺度的周围邻域8个像素和相邻尺度对应位置的周围邻域9*2个像素总共26个像素进行比较,如图2。仅当被检测点的DoG值大于此26个像素点或小于此26个像素点时才将该点判定为极值点并保存以进行后续计算。
图2 DoG空间局部极值检测
2.2关键点位置及尺度确定
通过
显示全部