【发布时间】:2012-03-20 21:42:04
【问题描述】:
我正在尝试实现 SIFT,目前只是想在开始在 MATLAB 中实现它之前了解它是如何工作的,除了如何使用泰勒展开计算亚像素精度之外,我了解其中的大部分内容:
以上是原始论文中的方程式。我有几个关于它是如何应用的问题。
是否在每个维度上分别计算导数,然后将方程应用于 x 然后 y?
一阶和二阶导数是否也沿 sigma 轴应用?
我已经厌倦了查看以前的实现,但无法找到它们在哪里执行此操作。 提前致谢
【问题讨论】:
我正在尝试实现 SIFT,目前只是想在开始在 MATLAB 中实现它之前了解它是如何工作的,除了如何使用泰勒展开计算亚像素精度之外,我了解其中的大部分内容:
以上是原始论文中的方程式。我有几个关于它是如何应用的问题。
是否在每个维度上分别计算导数,然后将方程应用于 x 然后 y?
一阶和二阶导数是否也沿 sigma 轴应用?
我已经厌倦了查看以前的实现,但无法找到它们在哪里执行此操作。 提前致谢
【问题讨论】:
在我们的例子中,D 是具有变量 x = (x,y,s) 的体积函数,其中 s 是八度音阶。
问题:是否分别在每个维度上求导,然后将方程应用于 x 和 y?
答案:“每个维度的导数是分开计算的吗?”是的,对于一阶导数,我们分别计算 x、y 和 s 的偏导数。 “方程应用于 x 然后 y?”,不,偏导数的结果将是长度为 3 的向量,我们只需将其乘以逆 Hessian(3 X 3 矩阵)即可计算 x。
对于二阶导数,我们使用 Hessian 矩阵(本例中为 3X3 矩阵)。
问题:一阶和二阶导数是否也沿 sigma 轴应用?
答案是的,因为它代表 3D 空间中的一个轴,其中定义了 D。
注意事项:
【讨论】: