a:sift是图像的局部特征,其对旋转,尺度缩放,亮度变化保持不变,对视角变化,仿射变换,噪声也保持一定程度的稳定性;
b:区分性好,信息量丰富,使用与海量特征数据库中进行快速,准确的匹配;
c:多量性,即使少数的几个物体也可以产生大量的sift特征向量;
d:高速性,经优化的sift匹配算法甚至可以达到实时性要求;
e:可扩展性好,可以很方便的与其他形式的特征向量进行联合.
主要有以下几个步骤:
构建尺度空间 (高斯卷积;图像下采样;高斯差分):
- 尺度空间理论的目的是模拟图像数据的多尺度特征;高斯卷积核是实现尺度变换的唯一线性核;
高斯差分尺度变换:
关键点获取并精确定位
若一个点在DOG尺度空间本层以及上下两层26个邻域内是极值点,该点为一个特征点
在极值点的比较中,每一组图像的首末两层无法进行极值比较,为了满足尺度变化的连续性,我们在每一组图像的定曾继续用高斯模糊生成3幅图像,高斯金字塔每组有S+3层图像,DOG金字塔每组有S+2层图像.
用harris corner检测器去除曲率不对称的像素点.
为特征点分配向量
利用关键点邻域像素的梯度方向分布特性为每个关键点指定方向参数,使算子具有旋转不变性.
L所用的尺度为每个关键点各自所在的尺度,每个关键点有三个信息:位置,所在尺度,方向;
中心点的方向:
距离中心点越远的领域对直方图的贡献越小;
具体做法:以关键点为中心的邻域窗口采样,并用直方图统计邻域像素的梯度方向,范围(0-360度)
36柱或者8柱都可,直方图的峰值则代表了关键点处邻域梯度的主方向,即关键点的方向.
生成特征描述子
a:旋转主方向(旋转不变性)
首先将坐标轴旋转为关键点的方向,以确保旋转不变性;
b:为每个关键点产生128维的特征向量
一个关键点由2*2共4个种子组成,每个种子有8个方向向量信息,这种邻域方向性信息联合的思想增强了算法抗噪声能力,同时对于含有定位误差的特征匹配也提供了很好的兼容性;在每个4*4的1/16象限中,通过加权梯度值加到直方图8个方向区间一个,计算出一个梯度直方图.这样就可以对每个feature形成一个4*4*8=128维的描述子.
c:将特征向量的长度归一化处理(光照不处理)