对每个关键点,在以其为中心的邻域窗口内利用直方图的方式统计邻域像素的梯度分布。此直方图有36个柱,每柱10°,共360°。每个加入直方图的邻域像素样本的权重由该像素的梯度模与高斯权重确定,此高斯窗的σ为关键点的尺度的1.5倍,加入高斯窗的目的是增强离关键点近的邻域点对关键点的影响。
直方图的峰值反映了关键点所处邻域梯度的主方向。完成直方图统计后,找到直方图的最高峰值以确定关键点的方向。关键点的方向可以由离最高峰值最近的三个柱值通过抛物线插值精确得到。
在梯度方向直方图中,当存在一个大于等于主峰值80%能量的峰值时,则添加一个新关键点,此关键点的坐标、尺度与当前关键点相同,但方向为由此峰值确定的方向。因此一个关键点可能产生多个坐标、尺度相同,方向不同的关键点。这样做的目的是增强匹配的鲁棒性。
至此,特征点检测完毕,特征描述前的准备工作已经完成。每个关键点含有三个信息:坐标、尺度、方向。下一步则为特征向量生成。
首先将坐标轴旋转为关键点的方向,以确保旋转不变性。
接下来以关键点为中心取8×8的窗口。图4-23a的中央白点为当前关键点的位置,每个小格代表关键点邻域所在尺度空间的一个像素,箭头方向代表该像素的梯度方向,箭头长度代表梯度模值,图中的圈代表高斯加权的范围(越靠近关键点的像素梯度方向信息贡献越大)。然后在每4×4的小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,即可形成一个种子点,如图4-23b所示。此图中一个关键点由2×2共4个种子点组成,每个种子点有8个方向向量信息。这种邻域方向性信息联合的思想增强了算法抗噪声的能力,同时对于含有定位误差的特征匹配也提供了较好的容错性。
实际计算过程中,为了增强匹配的稳健性,Lowe建议对每个关键点使用4×4共16个种子点来描述,这样对于一个关键点就可以产生128个数据,即最终形成128维的SIFT特征向量。此时SIFT特征向量已经去除了尺度变化、旋转等几何变形因素的影响,再继续将特征向量的长度归一化,则可以进一步去除光照变化的影响。(www.xing528.com)
图4-23 特征点的特征向量构造
综上所述,提取图像SIFT特征点及其特征向量的流程如图4-24所示。
图4-24 提取SIFT特征点及其特征向量的流程
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。