Matlab 中尺度不变特征变换 (SIFT) 的实现
我正在尝试在 matlab 中实现 SIFT。我正在关注 Lowe's 2004 年的论文。我完成了关键点的计算并为其分配方向。(即对于所有八度音阶)。在实现描述符之前,我有一个疑问..如何找到其他大小的八度音阶中的关键点的描述符。 (如果原始图像尺寸为256*256,则其他尺寸的八度意味着128*128,64*64)。
我的方法解释如下。
这里我拍了一张256*256的图片,八度为256*256,128*128,64*64,32*32的图片。每个八度 5 个图像(一张原始图像和 4 个模糊图像)。
我计算了所有八度音阶的关键点和方向。 (在此,每个八度音阶中有 2 个图像)。
大小为128*128、64*64,32*32的八度关键点。如果我想在256*256图像上表示这些关键点,我该如何表示? (我的疑问是,例如 64*64 图像的关键点范围可达 (64,64) )。
如果答案是64*64图像插值到256*256。如何插值关键点(即位置、比例和方向)?
非常感谢任何建议。谢谢。
I am trying to implement SIFT in matlab. I am following the Lowe's 2004 paper. I completed upto calculation of keypoints and assigning orientations to them.(i.e for all octaves). Here i got one doubt before implementing descriptors.. how I can find the descriptors for the keypoints in octaves of other size. ( If original image size is 256*256, the octaves of other size means like 128*128,64*64).
my approach is explained below.
Here I taken a 256*256 image and octaves as 256*256,128*128,64*64,32*32 images. In each octave 5 images (one original and 4 blurred images).
I calculated upto keypoints and orientations for all octaves. ( In this I have 2 images in each octave).
the keypoints in octaves of size 128*128, 64*64,32*32. If I want to represent these keypoints on an image of 256*256 image, how I can represent? (My doubt is for eg. 64*64 image has keypoints range upto (64,64) ).
If the answer is interpolation of 64*64 image to 256*256. how keypoints(i.e location,scale and orientation) are interpolated?
Any advice is greatly appreciated. Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议您查看 VLFeat 的 SIFT 实现(围绕 C 的 mex 包装器) /C++ 代码)。深入研究源代码以了解他们在做什么以及为什么。与 Lowe 的论文进行比较。
I'd recommend you take a look at VLFeat's SIFT implementation (mex wrapper around C/C++ code). Dig into the source code to find what they're doing and why. Compare w/ Lowe's paper.
我不确定你实际上指的是什么。您是否被困在 matlab 中重现 sift 代码?如果是这样,您实际上不需要将较低比例图像中存在的关键点表示为原始比例。这些值及其所在的八度音阶存储在“向量”中。在编码的后期阶段,倍频程数可以用于进一步计算并执行匹配功能。
I am not sure what you are referring actually. Is it that you are stuck in reproducing the sift code in matlab. If so, you actually no need to represent the keypoints present in a lower scale image to the original scale. The values are stored in a 'vector' along with the octave in which it is present. In the later stages of coding, the octave number can be used for further calculation and to perform matching function.