SIFT Taylor Expansion确定亚像素位置 [英] SIFT Taylor Expansion working out subpixel locations
问题描述
我正在尝试实现SIFT,目前我只是想在开始在MATLAB中实现它之前了解它的工作原理,除了可以使用泰勒扩展来计算亚像素精度之外,我对它的理解程度很高:
I am trying to implement SIFT and am currently just trying to understand how it works before starting to implement it in MATLAB, i understand most of it except how to work out subpixel accuracy using Taylor Expansion:
上面是原始论文中的等式.我对如何应用有一些疑问.
Above is the equation from the original paper. I have a few question on how it is applied.
导数是否分别在每个维度上求出,然后将等式应用于x然后是y?
Are the derivatives worked out in each dimension seperatly and then the equation applied to x then y?
一阶和二阶导数是否也沿sigma轴应用?
Are the first and second derivates applied along the sigma axis aswell?
我在看以前的实现时已经很累了,但是无法找到他们在哪里实现. 预先感谢
I have tired looking at previous implementations but cannot seam to find where they do this. Thanks in advance
推荐答案
在我们的例子中,D是具有变量 x =(x,y,s)的体积函数,其中s是小数位数在八度.
In our case, D is a volumetric function with variables x = (x,y,s), where s is the scale in the octave.
问题:是否分别计算了每个维度的导数,然后将等式应用于x然后是y?
Question: Are the derivatives worked out in each dimension seperatly and then the equation applied to x then y?
答案:是否在各个维度上分别计算了导数?"是的,对于一阶导数,我们分别计算x,y和s的偏导数. 否,偏导数的结果将是一个长度为3的向量,我们将其乘以逆Hessian(3 X 3矩阵)即可计算出的子像素位置> x .
Answer: "Are the derivatives worked out in each dimension seperatly?" Yes, for the first derivative, we calculate the partial derivatives for x, y, and s separately. "the equation applied to x then y?", No, the result of the partial derivatives will be a vector of length 3, which we simply multiply it by the inverse Hessian (3 X 3 matrix) to calculate the subpixel position of x.
对于二阶导数,我们使用Hessian矩阵(在这种情况下为3X3矩阵).
For the second derivative, we use the Hessian Matrix (3X3 Matrix in this case).
问题:一阶和二阶导数是否也沿sigma轴应用?
Question: Are the first and second derivates applied along the sigma axis aswell?
答案是的,因为它表示3D空间中定义了D的轴.
Answer Yes, because it represents an axis in the 3D space, where D is defined.
注释:
- For mathematically elaborated explanation see
- For code in C++ see.
- In order to calculate the partial derivative in the discrete domain, we use the the finite differences.
这篇关于SIFT Taylor Expansion确定亚像素位置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!