图像处理系列笔记: https://blog.csdn.net/qq_33208851/article/details/95335809
1. SIFT简介
SIFTS(cale-invariant feature transform)尺度不变特征变换:一种用来侦测与描述影像中的局部性特征的算法,它在空间尺度中寻找极值点。
1.1 空间尺度的极值点
- 什么是空间尺度的极值点(个人理解):在一张二维的MxN的平面图象中,每个像素点都有灰度值(0-255),这样就组成了一个三维空间。根据数学上极值点的定义类推,图像上某极值点的定义可描述为:
注:由于图像是一个一个像素的表示的,故坐标的取值都是离散的整数(上图是连续的变量)
如何辨识物体: 根据图像的某些特征。
1.2 SIFT算法的特点
- SIFT算法能够提取图像的某些局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性(也就是说,能够有效辨别在不同的场景下的某物体)
- 独特性(Distinctiveness) 好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配
- 多量性,即使少数的几个物体也可以产生大量的SIFT特征向量
- 高速性,经优化的SIFT匹配算法甚至可以达到实时的要求
- 扩展性,可以很方便的与其他形式的特征向量进行联合
根据它的这些特点,能够在目标做了旋转、平移、缩放、仿射投影后,或者在不同的光照条件,有遮挡、障碍物等场景下有效辨别
1.3 SIFT算法描述
SIFT算法分为四个步骤:
-
尺度空间极值检测:搜索所有尺度上的图像位置。通过高斯微分函数来识别潜在的对于尺度和旋转不变的兴趣点。
-
关键点定位:在每个候选的位置上,通过一个拟合精细的模型来确定位置和尺度。关键点的选择依据于它们的稳定程度。
-
方向确定:基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,从而提供对于这些变换的不变性。
-
关键点描述:在每个关键点周围的邻域内,在选定的尺度上测量图像局部的梯度。这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化
SIFT涉及到使用高斯函数进行模糊,高斯模糊可见:图像处理(7)–高斯模糊原理 或在参考文章里有详细介绍,链接在本文末尾
在后文中详细介绍四个步骤如进行
2. 尺度空间极值检测
3. 关键点定位
4. 方向确定
5. 关键点描述
参考文章:https://baike.baidu.com/item/SIFT
https://blog.csdn.net/zddblog/article/details/7521424
图像处理系列笔记: https://blog.csdn.net/qq_33208851/article/details/95335809