Image 无法理解SIFT关键点提取(非描述)算法

Image 无法理解SIFT关键点提取(非描述)算法,image,algorithm,image-processing,computer-vision,sift,Image,Algorithm,Image Processing,Computer Vision,Sift,我已经阅读了两篇关于SIFT算法的参考文献,但考虑到该算法是根据高斯数的不同分辨率计算的,我并不真正理解如何检测一些关键点,他们称之为倍频程。以下是根据我从论文中了解到的技术步骤 给定输入图像,使用不同的SIGMA使用高斯滤波器对其进行模糊,从而生成高斯滤波图像。在本文中,他们使用5个高斯滤波器每八倍频,他们告诉两个相邻的高斯滤波图像使用Sigma和K*sigma高斯滤波器参数进行滤波,并且他们在算法中考虑4个八度。因此,每个倍频程总共有20个高斯滤波图像,每个倍频程5个,但我们将分别处理来自每

我已经阅读了两篇关于SIFT算法的参考文献,但考虑到该算法是根据高斯数的不同分辨率计算的,我并不真正理解如何检测一些关键点,他们称之为倍频程。以下是根据我从论文中了解到的技术步骤

给定输入图像,使用不同的SIGMA使用高斯滤波器对其进行模糊,从而生成高斯滤波图像。在本文中,他们使用5个高斯滤波器每八倍频,他们告诉两个相邻的高斯滤波图像使用Sigma和K*sigma高斯滤波器参数进行滤波,并且他们在算法中考虑4个八度。因此,每个倍频程总共有20个高斯滤波图像,每个倍频程5个,但我们将分别处理来自每个倍频程的5个高斯滤波图像

对于每个倍频程,我们只需减去相邻的高斯滤波图像,就可以从5幅高斯滤波图像中计算出4幅高斯图像的差值。因此,现在我们总共有16个高斯图像的差异,但是我们将分别考虑4个不同的八度高斯图像的差异。 通过将每只狗的一个像素与26个相邻像素进行比较,找到像素的局部极值最大值或最小值。其中,8个像素与3x3窗口中的像素处于相同的比例,9个像素位于3x3窗口中的比例高于同一倍频程的高斯图像差,9个像素位于3x3窗口中的比例低于

一旦在不同的八度音阶中找到这些局部极值,我们就必须对它们进行细化,消除低对比度点或弱边缘点。他们使用泰勒展开函数中的阈值和Hessian矩阵中计算的特征值比阈值来过滤坏候选

这部分我不完全理解:对于每一个八度生存的兴趣点,我相信,他们考虑了它周围的一个邻域,并计算出该区域中每个像素的梯度大小和方向。他们构建了一个360度的梯度方向直方图,并选择最高峰值以及高于最高峰值80%的峰值。它们定义关键点的方向在抛物线拟合函数中定义?对于最接近每个峰值的3个柱状图值来插值峰值位置,我真的不完全理解这一部分

我不明白的是

1-在我们处理多个倍频程图像分辨率时,教程甚至原始论文都不清楚如何检测单个关键点。例如,假设我在第一个倍频程中检测到1000个关键点,第二个倍频程中检测到500个,第三个倍频程中检测到250个,第四个倍频程中检测到125个。SIFT算法将返回以下关于关键点的数据:1-x,y坐标2-比例那是什么?3-方向和4-特征向量,我很容易理解它是如何构建的。Opencv中的Python函数也可以使用原始图像(即第一个倍频程)绘制这些关键点,但是如果在不同的倍频程中检测到关键点,那么该算法如何考虑具有不同分辨率的狗图像

2-我不太理解算法的第5部分。它对定义关键点的方向有用吗?有人能用其他的话向我解释一下,也许我能理解

3-为了找到每倍频程第3步的局部极值,他们没有在第一个和最后一个狗图像中解释如何做到这一点。因为我们正在考虑4只狗的图像,所以只有在第二和第三只狗的图像中才可能这样做

4-作者写的另一件事完全打乱了我对该方法的理解:

图1:对于比例空间的每个倍频程,初始图像为 用高斯函数反复卷积以产生尺度空间集 图片显示在左边。将相邻的高斯图像相减为 产生右侧高斯图像的差异。之后 倍频程时,高斯图像按因子2进行下采样,然后 过程重复

什么?他是否只对一张高斯图像进行下采样?这样做怎么能重复这个过程?我的意思是,高斯的差异最初是通过对输入图像进行不同的过滤来实现的。所以,我相信输入图像,而不是高斯图像必须重新采样。或者作者忘了写下一个给定倍频程的高斯图像是下采样的,这个过程在另一个倍频程中重复