简介:SIFT算法是检测和描述局部特征的一种方法,具有尺度不变性,对于光线,噪声等的容忍度相当高。即便少数几个物体也可以产生大量SIFT特征。
SIFT算法实质上是在不同尺度空间上查找关键点,并计算出关键点的方向。
算法步骤:
1.构建尺度空间
- 利用高斯核来构建
- 高斯核是唯一可以产生多尺度空间的核,也是唯一线性核,利用高斯核对图像模糊处理不会引入其他噪声。
- 高斯核函数:
- 输入图像通过高斯核函数连续的对尺度进行参数变换,最终得到多尺度空间序列。图像中某一尺度的空间函数由高斯函数和原输入图像I(x,y)卷积得出:
- 高斯金字塔
- 模仿图像的不同尺度
- 生成步骤:高斯平滑-->对图像做下采样(一般先将图像扩大一倍,在扩大的图像基础上构建高斯金字塔,然后您对该尺寸下图像进行高斯模糊,几幅模糊的图像集合构成了一个八度,然后对该八度下倒数第三张图片进行下采样,长和宽分别缩短一倍,图像面积变为原来的四分之一。以此类推)
- 为什么选倒数第三张进行下采样?为了保持尺度空间的连续性,根据下图公式可以计算得出第o组第S层的图像尺度,可以发现下一组的第o层图像恰好和上一组倒数第三张图一致,所以每一组的第0张图像只需要用上一层的倒数第三张进行下采样即可。