SIFT

article/2025/10/26 12:33:28

SIFT features

Scale Invariant Feature Transform (SIFT) is an approach for detecting and extracting local feature descriptors that are reasonably invariant to change in illumination, image noise, rotation, scaling, and small changes in viewpoint.

SIFT是一种可以检测并计算出对于在光照、图像噪点、旋转、缩放和视点变换时提取出不变的局部特征值的算法。

Detection stages for SIFT features:

·         Scale-space extrema detection

·         Keypoint localization

·         Orientation assignment

·         Generation of keypoint descriptors

SIFT特征值的计算步骤:

·         检测尺度空间的极值点

·         定位关键点

·         分配指向

·         关键点的描述符的生成

 

Scale-space extrema detection

高斯

 可能理解有误,有待后期确定!!具体参照SIFT进阶

 

scale space 极值检测

1.       Local extrema detection, the pixel marked ‘x’ is compared against its 26 neighbours in a 3*3*3 neighbourhood that spans adjacent DoG images (from Lowe, 2004)

1.       局部极值的检测,被标记为‘x’的像素会与其周围的26个像素比较。(即同层的8个像素,以及上下相邻的两层的一共18个像素比较。)

2.       If the pixel is a local maximum or minimum, it is selected as a candidate keypoint.

2.       如果像素是局部的最大值或者最小值,则会被作为备选的特征值。

For each candidate keypoint:

·         Interpolation of nearby data is used to accurately determine its position.

·         Keypoints with low contrast are removed

·         Responses along edges are eliminated

·         The keypoint is assigned an orientation

对于每一个备选特征值来说:

·         与附近的数据做插值运算是为了能保证其精确的定位

·         去掉对比较低的特征值

·         消除边缘回应

·         为特征值分配指向

To determine the keypoint orientation, a gradient orientation histogram is computed in the neighbourhood of the keypoint.

为了定位特征值的指向,会使用到一个计算出的周围特征值的变换指向直方图来表示。

Peaks in the histogram correspond to dominant orientations. A separate keypoint is created for the direction corresponding to the histogram maximum, and any other direction within 80% of the maximum value.

直方图中的峰值就是主方向,其他的达到最大值80%的方向可作为辅助方向。

All the properties of the keypoint are measured relative to the keypoint orientation, this provides invariance to rotation.

特征值的所有性质都与特征点的指向相关,这样对于旋转来说就是不变的了。

SIFT feature representation

feature representation

Once a keypoint orientation has been selected, the feature descriptor is computed as a set of orientation histograms on 4*4 pixel neighbourhoods. The orientation histograms are relative to the keypoint orientation, the orientation data comes from the Gaussian image closest in scale to the keypoint’s scale.

如果一个关键点的指向选定之后,特征描述符就会按照一个邻近4×4像素的指向直方图来计算。指向直方图与关键点的指向相关,指向数据来源于高斯图像最接近关键点的尺度的那些值。

Just like before, the contribution of each pixel is weighted by the gradient magnitude, and a Gaussian with σ 1.5 times the scale of the keypoint.

与之前类似,每一个像素的影响是按照它的梯度的加权来的。

Histograms contain 8 bins each, and each descriptor contains an array of 4 histograms around the keypoint. This leads to a SIFT feature vector with 4*4*8 = 128 elements. This vector is normalized to enhance invariance to changes in illumination.

每个直方图有8方向的梯度方向,每一个描述符包含一个位于关键点附近的四个直方图数组。这就导致了SIFT的特征向量有128维。(先是一个4×4的来计算出一个直方图,每个直方图有8个方向。所以是4×4×8=128维)将这个向量归一化之后,就进一步去除了光照的影响。

 

SIFT feature matching

·         Find nearest neighbour in a database of SIFT features from training images.

·         For robustness, use ratio of nearest neighbour to ratio of second nearest neighbour

·         Neighbour with minimum Euclidean distance -> expensive search

·         Use an approximate, fast method to find nearest neighbour with high probability.

SIFT特征拟合

·         在图片的SIFT特征值数据库中找到最近的特征值

·         为了使的更为健全,使用最近一个点的比去闭上第二近的点

·         计算临近的点的最短欧式距离(很费时的查找)

·         使用一个大概、但是更快的且可能性更高的方法来查找最近的邻居。

Recognition using SIFT features

·         Compute SIFT features on the input image

·         Match these features to the SIFT feature database

·         Each keypoint specifies 4 parameters: 2D location, scale, and orientation.

·         To increase recognition robustness: Hough transform to identify clusters of matches that vote for the same object pose.

·         Each keypoint votes for the set of object poses that are consistent with the keypoint’s location, scale, and orientation.

·         Locations in the Hough accumulator that accumulate at least 3 votes are selected as candidate object/pose matches.

·         A verification step matches the training image for the hypothesized object/pose to the image using a least-square fit to the hypothesized location, scale, and orientation of the object.

使用SIFT特征值进行识别

·         计算输入图像的SIFT特征值

·         把这些特征值与SIFT特征值数据库进行匹配拟合

·         每一个关键点详述了4个参数:二维的位置、尺度及指向

·         为了提高识别的健壮性:使用霍夫转换来识别一串匹配的点,这些点指示了相同的物体姿态

·         每一个关键点指示的物体姿态应该与关键点的位置、尺度和指向一致

·         霍夫叠加器叠加了至少3个提议的位置会被选为备选的物体/姿态拟合

·         核实阶段,使用实验图片去匹配输入图片的假定的物体/姿态,这时使用的是最小二平方来拟合假定的物体位置、尺度和指向。


http://chatgpt.dhexx.cn/article/NXs7H9nh.shtml

相关文章

对SIFT算法的理解,尤其是尺度不变性

SIFT算法四大块 1,尺度空间的建立,最难理解的部分,这一步是为了找到极值点的潜在位置 2,极值点精确定位,通过曲线拟合找到极值点的确切位置 3,分配主方向,为特征点赋予一个方向标志&#xff…

第九章三续:SIFT算法的应用--目标识别之Bag-of-words模型

SIFT算法的应用 -目标识别之用Bag-of-words模型表示一幅图像 作者:wawayu,July。编程艺术室出品。 出处:http://blog.csdn.net/v_JULY_v 。 引言 本blog之前已经写了四篇关于SIFT的文章,请参考九、图像特征提取与匹配…

SIFT算法简介

1、 STFT(Scale Invariant Feature Transform)简介 1.1 SIFT特征检测的步骤1.2 SIFT算法的特点1.3 SIFT算法可以解决的问题 2 、尺度空间 2.1 多分辨率金字塔2.2 高斯金字塔构建示例2.3 高斯尺度空间(使用不同的参数) 3、DoG空间极…

经典算法研究系列:九、图像特征提取与匹配之SIFT算法

经典算法研究系列:九、SIFT算法研究 作者:July、二零一一年二月十五日。 推荐阅读:David G. Lowe, "Distinctive image features from scale-invariant keypoints," International Journal of Computer Vision, 60, 2 (2004), pp. 91-110---…

SIFT算法原理详解

通过《图像局部不变性特征与描述》学习SIFT,遇到各种Issue,总结了这篇博客和另外九篇博客。感谢关注,希望可以互相学习,不断提升。转载请注明链接:https://www.cnblogs.com/Alliswell-WP/p/SIFT.html 如果想深入研究SI…

SIFT算法详解与代码解析

Sift算法详解及代码解析 学了SIFT也有1个半月了,真的是坎坷不断,也因为我可能接触图像邻域时间不长,有很多相关知识要学习,直至今日,才把SIFT大致弄明白。但还有些细节值得去深究,我先把我个人对SIFT算法的…

图像处理——SIFT算法

[SIFT算法原文(Distinctive Image Features from Scale-Invariant Keypoints) SIFT算法(Scale-invariant feature transform),即尺度不变特征变换,由David Lowe提出,是一种基于局部兴趣点的算法,因此不仅对…

特征点匹配——SIFT算法详解

之前在学习三维重建的过程中,了解过SIFT算法,现在老师要求详细的了解SIFT算法,看看能不能对它进行改进,于是又详细的看了一遍SIFT算法。记录一下。 一、SIFT算法综述 SIFT(Scale Invariant Feature Transform&#x…

SIFT算法之python实现

0. 算法原理细节可参考: https://blog.csdn.net/abcjennifer/article/details/7639681https://blog.csdn.net/zddblog/article/details/7521424?depth_1-utm_sourcedistribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_sourcedistribute.pc_re…

Python实现SIFT算法,附详细公式推导和代码

SIFT特征点提取算法 1、算法简介 尺度不变特征转换即SIFT (Scale-invariant feature transform)是一种计算机视觉的算法。它用来侦测与描述影像中的局部性特征,它在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量,此算法由 David …

图像特征匹配方法——SIFT算法原理及实现

传统图像处理中图像特征匹配有三个基本步骤:特征提取、特征描述和特征匹配。特征提取就是从图像中提取出关键点(或特征点、角点)等。特征描述就是用一组数学向量对特征点进行描述,其主要保证不同的向量和不同的特征点之间是一种对…

SIFT算法原理介绍

本文转自:https://blog.csdn.net/qq_37374643/article/details/88606351 SIFT算法 SIFT即尺度不变特征变换,是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。 一、SIFT算…

SIFT算法的个人理解

SIFT算法的个人理解——理论篇 1. 前言 本人目前共使用过两个版本的sift算法: (1)Matlab中的sift算法,可以从http://www.cs.ubc.ca/~lowe/keypoints/下载Lowe团队写的sift演示代码; (2)opencv中的sift…

SIFT算法原理解析

首先找到图像中的一些“稳定点”,这些点是一些十分突出的点不会因光照条件的改变而消失,比如角点、边缘点、暗区域的亮点以及亮区域的点,既然两幅图像中有相同的景物,那么使用某种方法分别提取各自的稳定点,这些点之间…

SIFT算法步骤梳理

简介:SIFT算法是检测和描述局部特征的一种方法,具有尺度不变性,对于光线,噪声等的容忍度相当高。即便少数几个物体也可以产生大量SIFT特征。 SIFT算法实质上是在不同尺度空间上查找关键点,并计算出关键点的方向。 算…

SIFT算法原理详解及代码实现(笔记)

一、SIFT算法概述: SIFT(Scale Invariant Feature Transform)全称尺度不变特征变换,SIFT算子是把图像中检测到的特征点用一个128维的特征向量进行描述,因此一幅图像经过SIFT算法后表示为一个128维的特征向量集&#xf…

SIFT算法 特征匹配

目录 一、SIFT算法DOG尺度空间构造(Difference of Gaussian)关键点搜索与定位方向赋值、关键点描述 二、特征匹配 一、SIFT算法 参考链接 【OpenCV】SIFT原理与源码分析 DOG尺度空间构造(Difference of Gaussian) 首先是对原特…

SIFT算法详解——图像特征提取与匹配

文章目录 前言一、建立高斯差分金字塔1、建立高斯金字塔2、建立高斯差分金字塔3、建塔过程中参数的设定及相关细节问题 二、关键点(key points)位置确定1、阈值化2、在高斯差分金字塔中找极值点3、调整极值点位置4、舍去低对比度的点5、边缘效应的去除(难点&#xf…

非常详细的sift算法原理解析

尺度不变特征变换匹配算法详解 Scale Invariant Feature Transform(SIFT) Just For Fun 转自:http://blog.csdn.net/zddblog/article/details/7521424 对于初学者,从David G.Lowe的论文到实现,有许多鸿沟,本文帮你跨越。 1、SIFT综…

【Python】:SIFT算法的实现

✨博客主页:米开朗琪罗~🎈 ✨博主爱好:羽毛球🏸 ✨年轻人要:Living for the moment(活在当下)!💪 🏆推荐专栏:【图像处理】【千锤百炼Python】【深…