SIFT特征点提取与匹配算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二 特征点提取算法

1、基于SIFT (Scale Invariant Feature Transform )方法的图像特征匹配

参看David G. Lowe 的“Distinctive Image Features from Scale-Invariant Keypoints ”

基于SIFT 方法的图像特征匹配可分为特征提取和特征匹配两个部分,可细化分为五个部分: ① 尺度空间极值检测(Scale-space extrema detection );

② 精确关键点定位(Keypoint localization )

③ 关键点主方向分配(Orientation assignment )

④ 关键点描述子生成(Keypoint descriptor generation )

⑤ 比较描述子间欧氏距离进行匹配(Comparing the Euclidean distance of the descriptors for matching )

1.1 尺度空间极值检测

特征关键点的性质之一就是对于尺度的变化保持不变性。因此我们所要寻找的特征点必须具备的性质之一,就是在不同尺度下都能被检测出来。要达到这个目的,我们可以在尺度空间内寻找某种稳定不变的特性。

Koenderink 和Lindeberg 已经证明,变换到尺度空间唯一的核函数是高斯函数。因此一个图像的尺度空间定义为:(,,)L x y σ,是由可变尺度的高斯函数(,,)G x y σ与输入图像(,)I x y 卷积得到,即:

),(),,(),,(y x I y x G y x L *=σσ (1.1) 其中:2222/)(221

),,(σπσσy x e y x G +-=

在实际应用中,为了能计算的相对高效,所真正使用的是差分高斯尺度空间(difference of Gaussian )(,,)D x y σ。其定义如下:

)

,,(),,()

,()),,(),,((),,(σσσσσy x L k y x L y x I y x G k y x G y x D -=*-= (1.2)

如上式,D 即是由两个相邻的尺度的差(两个相邻的尺度在尺度上相差一个相乘系数k )。

图 1.1

图1.1所展示的是建立DOG 的一种实用的方法。初始图像与不同σ值的高斯函数卷积,得到一垛模糊后的图像,然后将这一垛模糊图像临近两两相减即得所对应的DOG 。这些模糊后的图像以k 为系数在尺度空间里被分隔开,并且该垛内最高的尺度应是最低尺度的2倍。为了能开展后续工作(与尺度空间极值检测相关,将在后续文章中作出解释)并满足上述要求,每垛需要通过卷积得到s+3个模糊后的图像,并且s 和k 需要具有关系s k /12 。

在一垛图像建立完毕后,还需要降采样得到下一垛图像的DOG 。在实际操作中首先用2倍于第一垛图像的σ值建立出模糊图像,然后再将此垛图像降二采样,即每2个像素抽出一个像素,就可以得到下一垛图像的DOG 。

在上述工作完成后,所要完成的就是尺度空间的极值检测。DOG 上的某个像素要和本尺度的8个相邻像素以及上下相邻尺度各9个相邻像素比较。这样做的目的是为了确保图像在尺度空间和二维图像空间均检测到极值点。如果该像素点在这所有参与比较的点中有最大值或者最小值,则认为该像素点是尺度空间的极值点之一。图1.2表示这种极值检测的原理。

图1.2

另外需要注意的是,上述的尺度空间极值点检测在每一个垛中都要进行。最后获得的极值点总和是所有垛中所检测到的极值点的集合。那么如果这个极值点处在降采样后的垛中,则需要在找出他后将其坐标变换到原始大小的原图上。容易写出这个变换公式为:

0min 0002,[0,...1],[0,...1][0,...1]o x x o o O x N M =∈+-∈-⨯- (1.3)

其中0x 是原始大小图像即原始图像上的坐标,经采样变换后变为x ;o 是处于垛的阶数(即处于第几个垛中);m in o =0或者-1,当第一垛图像为原图经过尺寸加倍后的图像生成时值为1,不经过加倍则为0。

另外在建立尺度空间的过程中有两个较为重要的参数要确定。可以将之描述为尺度空间抽样频率和空间域抽样频率。

尺度空间抽样频率表现为每个DOG 垛所含有的DOG 数目。由于每个DOG 垛中最大尺度已经确定是最小尺度的2倍,则在这个范围内的DOG 数目越多,抽样频率就越高。这个频率影响着特征提取的效果。Lowe 教授在其文章中论述了对于该参数所做的实验。

图 1.3

实验表明在每个垛中有3个抽样时特征点提取效果是最好的(从图1.3左图可以看出,无论是变化过的图像中能取到与原图中相同的特征点的比例,还是所取到的特征点与数据库内特征点匹配上的比例都是最高)。而之所以更高的抽样频率不能带来更好的匹配效果,是因为抽样频率越高,虽然提取的特征点越多,但这样的特征点大多是不稳定的,因此无法提高匹配的成功率,这从图1.3右图可以看出。

另外一个参数是空间域抽样频率。表现为σ的数值。由于图像与高斯函数的卷积可以看作是空间滤波,则σ与滤波的截止频率有很大的关系。σ越大,截止频率就越小,能够看到的抽样值频率也越小。

图 1.4

Lowe教授在文章中也对σ的取值做了相关实验,实验结果表明当σ取1.6时所得到的匹配效果最好,这从图1.4中可以看出(同样的,在变化过的图像中能取到与原图中相同的

特征点的比例,还是所取到的特征点与数据库内特征点匹配上的比例都是最高)。另外他还证明,在建立尺度空间的第一垛图像时,先将原始图像的尺寸加倍,则可以使稳定的特征点的数目达到原来的4倍。

1.2精确关键点定位

极值点确定之后,必须进行有效的后续工作对这些点进行筛选;因为此时往往会有可观数量的极值点具有很低的对比度或者处于不理想的边缘。我们把这些极值点成为备选关键点,而后续工作的目的就是去掉那些对比度低的以及处于不理想边缘处的备选关键点(keypoint candidate ),以得到最终参与匹配的特征关键点(keypoint )。

1.2.1更精确的关键点位置描述

早期的关键点定位方法比较粗糙。目前所采用较多的方法是由Brown 教授所提出的三维二次曲线(3D quadratic function )展开。该方法将DOG 在所关注的像素点处用三维泰勒级数展开(展开到2次方项),然后再精确定位极值的位置至亚像素级。展开式如下:

x x

D x x x D D x D T T T 2221)(∂∂+∂∂+= (1.4) 其中:(,,),T D x D D X x y X y D σσ⎡⎤∂⎢⎥∂⎢⎥∂∂⎢⎥==⎢⎥∂∂⎢⎥∂⎢⎥⎢⎥∂⎣⎦ ,22222222222222D D D x xy x D D D D X yx y y D D D x y σσσσσ⎡⎤∂∂∂⎢⎥∂∂∂⎢⎥⎢⎥∂∂∂∂=⎢⎥∂∂∂∂⎢⎥⎢⎥∂∂∂⎢⎥∂∂∂⎢⎥⎣⎦ ,,,,2112()()4

x y x y x y x y k k k k D D D D D σ+----∂=∂,( k 指当前k 层,k-1指k 的下层,k+1指上一层) 1,1,1,1,21111()()4

x y x y x y x y k k k k D D D D D x σ+-+-++-----∂=∂··· 可以看到,所有的偏导数值都由像素值的差分来近似;后面会涉及到的Hessian 算子中的相关计算也是由像素值的差分来近似的。按照泰勒级数的定义,其中D 和D 的偏导数都是在

展开点所计算的值,而x 是估计点到展开点的偏移量,即:

),,(000σσ---=y y x x x

其中被减值是估计点的坐标,减数为展开点的坐标。

那么要求得D 的极值,则自然想到对这样展开后的D 对x 求导,然后使导数为0,即

相关文档
最新文档