我想执行一个分类任务,其中我将对象的给定图像映射到对象可以在其中的预定义星座列表中的一个(即找到最可能的匹配)。 为了获得图像的描述符(我将在其上运行机器学习算法),我建议使用SIFT和VLFeat实现。
首先我的主要问题 - 我想忽略sift的关键点发现部分,并仅将其用于描述符。在教程中,我看到有一个选项可以通过调用
来完成
[f,d] = vl_sift(I,'frames',fc) ;
其中fc指定关键点。我的问题是我想明确指定 我希望计算关键点周围描述符的边界框 - 但似乎我只能指定一个比例参数,现在对我来说有点神秘,并且不允许我明确指定边界框。有没有办法实现这个目标?
第二个问题是手动设置比例并以这种方式获取描述符是有意义的吗? (即产生良好的描述符?)。关于获取描述符的更好方法的任何其他建议? (将SIFT与其他实现或其他非SIFT描述符一起使用)。我应该提到的是,我的对象始终是图像中唯一的对象,是居中的,具有恒定的照明,并且通过其内部部件的某种旋转而发生变化 - 这就是为什么我认为SIFT可以解决,因为我理解它专注于取向梯度随着物体的旋转而相应地改变。
由于
答案 0 :(得分:2)
同意描述符比例看起来有点神秘。
使用以下命令查看VLFeat SIFT tutorial中第三张图像,它们在图像上覆盖提取的描述符
h3 = vl_plotsiftdescriptor(d(:,sel),f(:,sel)) ;
set(h3,'color','g') ;
因此,您可以使用比例进行播放,并查看提取直方图的区域是否符合您的预期。
如果您对成像环境有很大的控制权,那么SIFT听起来对您的应用程序来说可能有点过分,但它应该可以正常工作。
答案 1 :(得分:0)
嘿。 这可能有助于查看本论文的背景章节: http://www.cs.bris.ac.uk/Publications/pub_master.jsp?id=2001260
我需要时间来解释比例,所以请尝试阅读并查看相关的引文。在该工作中,描述符以基本分辨率使用,即缩放~1。
希望这有帮助。
答案 2 :(得分:0)
也许我没有理解这个问题,但是,如果查询图像必须与火车图像数据库匹配,并且火车和测试图像在照明,比例等方面都是恒定的......也许在这里不需要SIFT 。你可以看看相关性。你在用matlab吗?
http://docs.opencv.org/doc/tutorials/imgproc/histograms/template_matching/template_matching.html#template-matching“在这里”你可以看到一个使用与opencv相关的例子。