SIFT是一种图像局部描述子,
它的优点:①具有非常强的稳健性。
②对尺度、旋转、亮度都具有不变性。
③可用于三维视角和噪声的可靠匹配。
SIFT的组成:兴趣点检测+描述子 (可看做豪华版的harris+描述子)
SIFT的三步骤:
A. 关键位置定位找到“兴趣点”
B.特征提取,用以描述“兴趣点”
C.模型和图像中的特征向量匹配
B.描述子:(是对图像区域内容的一种简洁的表达形式):为了实现旋转不变性,SIFT描述子引入参考方向(用主方向描述),而主方向又使用直方图来描述。
描述子:是一个可靠的特征向量,可以用来描述兴趣点的领域特性。
创造描述子需要考虑:局部的边缘方向和局部的边缘强度。
寻找描述子的步骤:①在每个像素点附近选取子区域网格
②在每个子区域内计算图像梯度的方向直方图
③每个子区域的直方图拼接起来组成描述子向量
一般子区域网格选取为4x4大小,每个子区域内有8个方向直方图,则描述子向量一共有4x4x8=128维向量。
将128维特征向量①标准化可以去掉对比度变化的影响②值非常大的元素忽略掉,将剩下的向量重新标准化,用以去掉光照的影响。
C.特征向量匹配:
经历过寻找兴趣点以及创建描述子后,图像由一系列128维向量组成。为了寻找到特定的部分,使用同样由128维向量组成的测试图片。
对于每一个测试向量,都可以在样本集中寻找到它的最近邻。但是最近邻计算量太大,因此找到更优的算法—KD树。
K-D树改进算法:任何假定的匹配都给定了模型一个候选的位置、尺度和方向。
使用类霍夫的投票机制对候选位置进行确认。每个匹配提供一个模型点(x,y)和(u,v)。因为在许多真实的环境下,认为图像给出一个大致的仿射变化模型是合理的,因此:
补充:
HOG(histogram of Oriented Gradients)方向梯度直方图:
是由一系列用空间增益区域计算而来的标准化直方图所构成,结果将得到一个能对粗的空间结构进行捕捉的描述子。
(但是该描述子对较小的局部形变具有不变性。)