最近在看之前用过的SIF方法代码, 这个代码用来实现运动跟踪匹配,主要是根据得到的匹配对来计算二维的旋转平移矩阵。

1.1 什么是 SIFT?
SIFT,全称为 Scale-Invariant Feature Transform(尺度不变特征变换),是一种用于图像特征检测和描述的经典算法。它通过提取图像中的局部关键点,并为每个关键点生成具有尺度和旋转不变性的描述子,使其能够在不同的图像中进行特征匹配。SIFT 算法尤其适合处理视角变化、尺度变换、部分遮挡和光 照变化的问题,因此被广泛应用于计算机视觉领域。

1.2 SIFT 的发展历程
SIFT 由计算机科学家 David G. Lowe 于 1999 年首次提出,并在 2004 年发表的论文《Distinctive Image Features from Scale-Invariant Keypoints》中进一步完善。其革命性的设计使得 SIFT 成为了特征提取领域的重要里程碑。
虽然 SIFT 曾因专利保护限制了开源使用,但随着专利过期(美国专利于 2020 年到期),SIFT 再次成为开源社区的重要工具,并在许多实际项目中被广泛应用。

此外,SIFT 的思想也启发了许多后续算法的诞生,例如 SURF(Speeded-Up Robust Features)和 ORB(Oriented FAST and Rotated BRIEF),进一步推动了特征提取技术的发展

主要流程是:
输入图像
构建高斯金字塔
构建DOG金字塔
尺度空间极值检测
关键点筛选
计算SIFT描述子
特征匹配(NN + ratio test)
RANSAC去除错误匹配
计算几何变换矩阵

代码涉及了:

尺度空间理论Gaussian Pyramid;
特征检测DoG Blob Detection
特征描述SIFT Descriptor
特征匹配Nearest Neighbor;Ratio Test
误匹配剔除RANSAC
几何估计Homography / Affine / Similarity

1. 尺度空间理论

通过不同尺度的高斯模糊构建多尺度图像,在空间 + 尺度中寻找稳定结构

主要体现在 两个金字塔结构:

1️⃣ Gaussian Pyramid(高斯金字塔)
2️⃣ DoG Pyramid(差分高斯金字塔)

这两个正是 SIFT 构建 尺度空间(Scale Space) 的核心步骤。
在这里插入图片描述

SIFT (Scale-Invariant Feature Transform) 是一种经典的图像特征检测与描述算法,由 David G. Lowe 在 1999–2004 年提出。它的核心目标是:

在图像中找到稳定且具有辨识度的关键点(Keypoints),并为这些关键点生成特征描述子(Descriptor),从而实现不同图像之间的匹配。】

2. 特征检测DoG Blob Detection

DoG Blob Detection = 在尺度空间中检测“斑点结构(blob)”的极值点。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 特征描述SIFT Descriptor

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

为什么要实现旋转不变形以及为什么什么是关键点的主方向

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
也就是说,对于两张待匹配的图像,先计算特征点,然后计算特征点的描述子。 为了使得特征点的描述子具有旋转一致性,对每个特征点都先计算主方向,然后还原到0时,再计算描述子。这样描述子都是在主方向为0°时候的。就可以进行后续匹配。

4. 特征匹配Nearest Neighbor;Ratio Test

特征匹配(Feature Matching) 就是把两张图中的特征点对应起来。Nearest Neighbor
SIFT 中常用的就是Nearest Neighbor (最近邻)+Ratio Test (比例测试)
在这里插入图片描述
最近邻匹配的思想:找到描述子距离最小的那个特征点。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

描述子每个维度是什么数值? 为什么可以相减,有什么含义

在这里插入图片描述
在这里插入图片描述
SIFT描述子的每个维度

表示某个局部区域中某个方向的梯度强度(边缘能量)。

描述子可以相减

因为它是一个描述局部结构的向量,向量差异表示结构差异。

这里欧氏距离的含义 用来表示两个关键点周围局部结构的相似程度。

5.误匹配剔除RANSAC

SIFT 特征匹配中,即使经过 Nearest Neighbor + Ratio Test,仍然会存在一些 错误匹配(outliers)。因此需要一个方法把这些错误匹配剔除掉,这一步通常使用 RANSAC。
在这里插入图片描述
Ransac就是对匹配的点集对进行筛选。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. 计算几何变换矩阵

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7. SVD求解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8.SIFT涵盖的步骤

在这里插入图片描述
在这里插入图片描述

参考文献

SIFT 全面解析:原理、实现与应用
万字长文详解SIFT特征提取
SIFT算法原理:SIFT算法详细介绍
Lowe D G. Object recognition from local scale-invariant features[C]//Proceedings of the seventh IEEE international conference on computer vision. Ieee, 1999, 2: 1150-1157.
Lowe D G. Distinctive image features from scale-invariant keypoints[J]. International journal of computer vision, 2004, 60(2): 91-110.

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐