6

我想执行一项分类任务,其中我将对象的给定图像映射到对象可以位于的预定义星座列表之一(即找到最可能的匹配)。为了获得图像的描述符(我将在其上运行机器学习算法),建议我使用带有 VLFeat 实现的 SIFT。

首先,我的主要问题 - 我想忽略 sift 的关键点查找部分,只将它用于它的描述符。在教程中,我看到有一个选项可以通过调用来做到这一点

[f,d] = vl_sift(I,'frames',fc) ;

其中 fc 指定关键点。我的问题是我想明确指定要在其中计算关键点周围描述符的边界框 - 但似乎我只能指定一个比例参数,现在对我来说有点神秘并且不允许我明确指定边界框。有没有办法做到这一点?

第二个问题是手动设置比例并以这种方式获取描述符有意义吗?(即产生一个好的描述符?)。关于获取描述符的更好方法还有其他建议吗?(将 SIFT 与其他实现或其他非 SIFT 描述符一起使用)。我应该提一下,我的对象始终是图像中唯一的对象,居中,具有恒定的照明,并且通过其内部部件的某种旋转而发生变化 - 这就是为什么我认为 SIFT 会奏效,因为我理解它专注于方向梯度会随着对象的旋转而相应改变。

谢谢

4

3 回答 3

2

Agreed about the fact that the descriptor scale looks a bit cryptic.

See the third image in the VLFeat SIFT tutorial where they overlay the extracted descriptors on the image with the following commands

h3 = vl_plotsiftdescriptor(d(:,sel),f(:,sel)) ;  
set(h3,'color','g') ;

You can thus play with scale and see if the region where the histogram is extracted jives with what you expected.

SIFT sounds like it might be overkill for your application if you have that much control over the imaging environment but it should work.

于 2011-03-21T13:52:37.313 回答
0

也许我没有理解这个问题,但是,如果查询图像必须与训练图像数据库匹配,并且训练图像和测试图像在光照、比例上都是恒定的……也许这里不需要 SIFT。你可以看看相关性。你在用matlab吗?

http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html#template-matching “这里”你可以看到一个使用opencv相关的例子。

于 2013-02-06T10:14:13.580 回答
0

嘿。浏览本论文的背景章节可能会有所帮助: http ://www.cs.bris.ac.uk/Publications/pub_master.jsp?id=2001260

我需要时间来解释规模,所以请尝试阅读并查看相关引文。顺便说一句,在这项工作中,描述符以基本分辨率使用,即比例 ~ 1。

希望这可以帮助。

于 2011-04-03T23:14:16.550 回答