SIFT-Taylor展开计算亚像素位置

SIFT-Taylor展开计算亚像素位置,sift,subpixel,Sift,Subpixel,我正在尝试实现SIFT,目前正在尝试在开始在MATLAB中实现它之前了解它的工作原理,我了解它的大部分内容,除了如何使用Taylor展开计算亚像素精度: 以上是原始文件中的方程式。我有几个关于如何应用它的问题 是在每个维度上分别求出导数,然后将方程应用于x,然后应用于y吗 第一个和第二个导数是否也沿西格玛轴应用 我已经厌倦了查看以前的实现,但无法找到它们在哪里实现。 提前感谢在我们的例子中,D是一个体积函数,变量为x=(x,y,s),其中s是倍频程中的刻度 问题:是否在每个维度上分别计算导数,

我正在尝试实现SIFT,目前正在尝试在开始在MATLAB中实现它之前了解它的工作原理,我了解它的大部分内容,除了如何使用Taylor展开计算亚像素精度:

以上是原始文件中的方程式。我有几个关于如何应用它的问题

是在每个维度上分别求出导数,然后将方程应用于x,然后应用于y吗

第一个和第二个导数是否也沿西格玛轴应用

我已经厌倦了查看以前的实现,但无法找到它们在哪里实现。
提前感谢

在我们的例子中,D是一个体积函数,变量为x=(x,y,s),其中s是倍频程中的刻度

问题:是否在每个维度上分别计算导数,然后将方程应用于x然后y

回答:“每个维度的导数是分开计算的吗?”是的,对于一阶导数,我们分别计算x、y和s的偏导数。“应用于x然后y的方程?”,不,偏导数的结果将是长度为3的向量,我们只需将其乘以逆Hessian(3 x 3矩阵)即可计算x的亚像素位置

对于二阶导数,我们使用Hessian矩阵(本例中为3X3矩阵)

问题:第一个和第二个导数是否也沿西格玛轴应用

回答是,因为它表示三维空间中的一个轴,其中定义了D

注意事项:

  • 用于数学上详细的解释
  • C++中的代码<
  • 为了计算离散域中的偏导数, 我们使用

为什么要在sift中找到子像素?为什么我们不能用极值呢?