SIFT的一些内容

最近在看之前用过的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.

相关推荐
格林威2 小时前
Baumer相机金属冲压件毛刺高度测量:量化去毛刺效果的 5 个核心方法,附 OpenCV+Halcon 实战代码!
人工智能·opencv·计算机视觉·c#·视觉检测·机器视觉·工业相机
少许极端2 小时前
算法奇妙屋(三十七)-贪心算法学习之路4
学习·算法·贪心算法·田忌赛马
鱼鳞_2 小时前
Java学习笔记_Day18(数据结构)
java·笔记·学习
JACK的服务器笔记2 小时前
《服务器测试百日学习计划——Day14:BMC基础与健康状态,为什么服务器排障不能只看OS》
运维·服务器·学习
白慕慕12 小时前
文档网站大全
学习
一轮弯弯的明月13 小时前
Python基础-速通秘籍(下)
开发语言·笔记·python·学习
春日见13 小时前
自驾算法的日常工作?如何提升模型性能?
linux·人工智能·机器学习·计算机视觉·自动驾驶
charlie11451419115 小时前
2026年正点原子开发板移植方案——从0开始的Rootfs之路(3)inittab 与 init 系统:Linux 启动的“第一号进程“全解析
linux·驱动开发·学习·嵌入式开发·嵌入式linux
我材不敲代码15 小时前
OpenCV实战:全自动答题卡识别与评分系统
人工智能·opencv·计算机视觉