近来一直在研究SIFT算法,参考了一些资料之后自己总结了一下,防止之后忘记,也希望可以帮到对SIFT感到头疼的人
SIFT算法的特点:
1.SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;
2.独特性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配;
3.多量性,即使少数的几个物体也可以产生大量的SIFT特征向量;
4.高速性,经优化的SIFT匹配算法甚至可以达到实时的要求;
5.可扩展性,可以很方便的与其他形式的特征向量进行联合。
步骤:
1.构建尺度空间
这里的尺度指的是各种模糊程度,也就是高斯模糊的程度。大尺度对应图像的概貌特征,小尺度对应图像的细节特征。大的σ值对应粗糙尺度(低分辨率),反之,对应精细尺度(高分辨率)。
具体实现:金字塔形式:首先是图片的不同尺寸,每一塔大概是上一塔的1/4,其中每一层按照不同的高斯模糊程度进行模糊。
此时划分为左边的金字塔
在实际计算时,使用高斯金字塔(上图左)每组中相邻上下两层图像相减,得到高斯差分图像(上图右),进行极值检测。
2.空间极值点检测
每一个像素都要和周围的相似进行对比,也就是检测点(中