如何在SIFT中使用DoG金字塔

Ahm*_*kin 6 pattern-recognition image-processing sift

我是图像处理和模式识别的新手.我正在尝试实现SIFT算法,我可以创建DoG金字塔并识别每个八度音程中的局部最大值或最小值.我不明白的是如何在每个八度音程中使用这些局部最大/最小值.我如何结合这些要点?

我的问题可能听起来很微不足道.我读过Lowe的论文,但是在他建造DoG金字塔后他无法理解他的所作所为.任何帮助表示赞赏.

谢谢

Adi*_*Adi 4

基本上,他在构建 DoG 金字塔后所做的就是检测这些图像中的局部极值。之后,他丢弃了一些检测到的局部极值,因为它们可能不稳定。识别那些不稳定的关键点/特征的过程分为两个步骤:

  1. 拒绝低对比度的点
  2. 拒绝沿边缘定位不良的点(这意味着它们仅在一个方向上具有较强的边缘响应)

为了能够执行这些步骤,首先您需要通过泰勒级数展开来获得极值的真实位置。它将为您提供解决这两个步骤的信息。

最后一步是构建描述符......

我也在研究这个算法,我觉得理解它并不那么简单。Lowe 的论文中没有包含一些细节,因此更难理解。我还没有找到很多额外的资源来更深入地解释该算法,但有一些开源实现,因此您也可以使用它们。

编辑:更多信息:)

您链接的论文是他的早期作品,您应该获得最新版本的论文,因为有一些修改。在搜索更多资源时,我也阅读了他的专利,并且它还包含旧信息,因此您也不应该查看那里。

所以,我对这个尺度空间极值步骤的理解如下。首先,我们需要建立一个高斯金字塔。Paper 说,为了局部极值完整性,我们需要在每个八度音程中构建s+3 个高斯图像。经过一些测试后,Lowe 得出结论,当s = 3时,他得到了最好的结果。这意味着每个八度音程中有 6 个高斯图像,从中我们得到 5 个 DoG 图像。请注意,所有这些 DoG 图像都具有相同的分辨率。仅当传递到下一个八度音程时才进行重新采样。

下一步是找到局部极值。Lowe 建议在 26 个邻域内进行搜索,这意味着我们应该从第二张图像开始搜索,因为这是存在 26 个邻域的第一张图像。同样,我们停止对第四张图像的搜索。对每个八度音程单独重复此过程。对于找到的每个极值,至少应该保存其位置和尺度。找到极值后,下一步将是使用泰勒级数完成的更准确的定位。

这是我对这一步如何运作的理解,我希望我离事实不会太远:)

希望这能有所帮助。