1、模式识别特征提取特征提取SIFT算法提取步骤SIFT算法提取特征点的主要步骤:(1)检测尺度空间极值点检测尺度空间极值的目的是确定特征点位置和所在尺度组。即先使用高斯过滤器对原始图像进行若干次连续滤波建立第一个尺度组,再把图形减小到原来的一半,进行同样的高斯滤波形成第二个尺度组。之后,重复操作直到图像小于某一个给定阀值为止。接下来对每个尺度组中的高斯图像进行差分,形成高斯差分尺度组(DoG尺度图像)。图3-1 尺度空间的构造在上面建立的DoG尺度空间金字塔中,为了检测到DoG空间的最大值和最小值,DoG尺度空间中中间层(最底层和最顶层除外)的每个像素点需要跟同一层的相邻8个像素点以及它上一层和
2、下一层的9个相邻像素点总共26个相邻像素点进行比较,以确保在尺度空间和二维图像空间都检测到局部极值,如图3-2所示图3-2 DoG空间局部极值检测在图3-2中,标记为叉号的像素若比相邻26个像素的DoG值都大或都小,则该点将作为一个局部极值点。被检测工件的高斯滤波图像如图3-3所示。 图3-3 原始图像和部分高斯滤波图像 (2)精确定位极值点由于DoG值对噪声和边缘较敏感,因此,在上面DoG尺度空间中检测到局部极值点还要经过进一步的检验才能精确定位为特征点。一般通过二阶Taylor展开式计算极值点的偏移量,获得亚像素定位精度,同时通过阈值设置剔除差异小的点。最终保留下来的点称为特征点,特征点的
3、检测是在尺度空间中进行的,特征点保持为尺度不变量。各层图像特征点如图3-4所示。 图3-4 各层图像的特征点(3)为每个关键点指定方向参数尺度空间坐标O组(octave)数S组内层数在上述尺度空间中,O和S,的关系如下: (3-10)其中是基准层尺度,o为组octave的索引,s为组内层的索引。关键点的尺度坐标就是按关键点所在的组和组内的层,利用公式(3-10)计算而来。在最开始建立高斯金字塔时,要预先模糊输入图像来作为第0个组的第0层的图像,这时相当于丢弃了最高的空域的采样率。因此通常的做法是先将图像的尺度扩大一倍来生成第-1组。我们假定初始的输入图像为了抗击混淆现象,已经对其进行的高斯模糊
4、,如果输入图像的尺寸用双线性插值扩大一倍,那么相当于。取式(3-9)中的k为组内总层数的倒数,即: (3-11)在构建高斯金字塔时,组内每层的尺度坐标按如下公式计算: (3-12)其中初始尺度,lowe取,为组内的层索引,不同组相同层的组内尺度坐标相同。组内下一层图像是由前一层图像按进行高斯模糊所得。式(3-12)用于一次生成组内不同尺度的高斯图像,而在计算组内某一层图像的尺度时,直接使用如下公式进行计算: (3-13)该组内尺度在方向分配和特征描述时确定采样窗口的大小。由上,式(3-9)可记为: (3-14)(4)生成SIFT特征描述符首先将坐标轴旋转为特征点的方向,以确保旋转不变性。接下来
5、以特征点为中心取88的窗口(特征点所在的行和列不取)。在图3-3左边,中央黑点为当前特征点的位置,每个小格代表特征点邻域所在尺度空间的一个像素,箭头方向代表该像素的梯度方向,箭头长度代表梯度模值,图中圈内代表高斯加权的范围(越靠近特征点的像素,梯度方向信息贡献越大)。然后在每44的图像小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,形成一个种子点,如图3-5右边图所示。此图中一个特征点由22共4个种子点组成,每个种子点有8个方向向量信息,可产生228共32个数据,形成32维的SIFT特征向量,即特征点描述器,所需的图像数据块为88。这种邻域方向性信息联合的思想增强了算法抗噪声的能力,同时对于含有定位误差的特征匹配也提供了较好的容错性。实际计算过程中,为了增强匹配的稳健性,建议对每个特征点使用44共16个种子点来描述,每个种子点有8个方向向量信息,这样对于一个特征点就可以产生448共128个数据,最终形成128维的SIFT特征向量,所需的图像数据块为1616。此时SIFF特征向量已经去除了尺度变化、旋转等几何变形因素的影响,再继续将特征向量的长度归一化,则可以进一步去除,光照变化的影响。图3-5 像梯度(左)及特征点描述器(右)原始SIFT特征提取结果如图3-6所示。其中加号表示特征点位置,方框表示尺度大小,不同颜色表示采样频率不同。图3-6 SIFT特征提取结果
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1