Dan*_*Dan 6 classification image-processing computer-vision sift
我想执行一个分类任务,在该任务中,我将对象的给定图像映射到对象可以进入的预定义星座列表中的一个(即找到最可能的匹配).为了获得图像的描述符(我将在其上运行机器学习算法),我建议使用SIFT和VLFeat实现.
首先我的主要问题 - 我想忽略sift的关键点发现部分,并且仅将其用于描述符.在教程中,我看到有一个选项可以通过调用来完成
[f,d] = vl_sift(I,'frames',fc) ;
其中fc指定关键点.我的问题是我想明确指定我想要计算关键点周围描述符的边界框 - 但似乎我只能指定一个比例参数,现在对我来说有点神秘并且不允许我明确指定边界框.有没有办法实现这个目标?
第二个问题是手动设置比例并以这种方式获取描述符是有意义的吗?(即产生良好的描述符?).关于获取描述符的更好方法的任何其他建议?(将SIFT与其他实现或其他非SIFT描述符一起使用).我应该提到的是,我的对象始终是图像中唯一的对象,是居中的,具有恒定的照明,并且通过其内部部件的某种旋转而发生变化 - 这就是为什么我认为SIFT可以解决,因为我理解它专注于取向梯度随着物体的旋转而相应地改变.
谢谢
同意描述符比例看起来有点神秘这一事实。
请参阅VLFeat SIFT 教程中的第三张图像,其中使用以下命令将提取的描述符叠加在图像上
h3 = vl_plotsiftdescriptor(d(:,sel),f(:,sel)) ;
set(h3,'color','g') ;
Run Code Online (Sandbox Code Playgroud)
因此,您可以调整比例,看看提取直方图的区域是否符合您的预期。
如果您对成像环境有足够的控制权,SIFT 听起来对您的应用程序来说可能有点大材小用,但它应该可以工作。
| 归档时间: |
|
| 查看次数: |
3241 次 |
| 最近记录: |