sift算法介绍
sift算法介绍:
1999年British Columbia大学大卫.劳伊(David G.Lowe)教授总结了现有的基于不变量技术的特征检测方法,并正式提出了一种基于尺度空间的、对图像缩放、旋转甚至仿射变换保持不变性的图像局部特征描述算子-SIFT(尺度不变特征变换),这种算法在2004年被加以完善。
sift算法的从一幅图像中根据设定的阈值找到一个局部特征向量集,这些特征向量具有平移、缩放、旋转不变性,同时对光照变化、仿射及投影变换也有一定不变性。具有很好的鲁棒性。sift算法具有独特性好、多量性和可扩展性。不过原始的sift算子在时间性上的表现不尽如人意,在后来被改进的sift算法在这一点上有所改善。
sift算法的实质可以归为在不同尺度空间上查找关键点的问题。
sift算法的实现步骤:
1、检测关键点。所谓关键点,就是在不同尺度空间的图像下检测出的具有方向信息的局部极值点。具有三个特征:尺度、方向、大小;
要检测关键点,首先对图像进行降采样,生成高斯金字塔,然后生成DoG。而要寻找的关键点就是由DoG空间的局部极值点组成。为 了寻找DoG函数的极值点,每一个像素点要和它所有的26个相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。这样能确保 在尺度空间二维图像空间都检测到极值点。
同时,由于DoG值对噪声和边缘较敏感,因此,在上面DoG尺度空间中检测到局部极值点还要经过进一步的检验才能精确定位为特征点。
首先,去除那些对比度较低的不稳定极值点。Lowe的试验显示,所有取值小于0.04的极值点均可抛弃(像素灰度值范围[0,1])
然而,仅仅去除低对比度的极值点对于极值点的对于特征点稳定性是远远不够的。DoG函数在图像边缘有较强的边缘响应,因此我们还需要排除边缘响应。 DoG函数的(欠佳的)峰值点在横跨边缘的方向有较大的主曲率,而在垂直边缘的方向有较小的主曲率。主曲率可以通过计算在该点位置尺度的2×2的Hessian矩阵得到,导数由采样点相邻差来估计。
2、关键点方向分配:


