image-processing - 带有 SIFT/VLFEAT 的图像描述符

标签 image-processing computer-vision classification sift

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

首先,我的主要问题 - 我想忽略 sift 的关键点查找部分,仅将其用于其描述符。在教程中,我看到有一个选项可以通过调用来做到这一点
[f,d] = vl_sift(I,'frames',fc) ;
其中 fc 指定关键点。我的问题是我想明确指定
我想在其中计算关键点周围描述符的边界框 - 但似乎我只能指定一个比例参数,现在对我来说有点神秘,并且不允许我明确指定边界框。有没有办法实现这一目标?

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

谢谢

最佳答案

同意描述符比例看起来有点神秘的事实。
查看 VLFeat SIFT tutorial 中的第三张图片他们使用以下命令将提取的描述符覆盖在图像上

h3 = vl_plotsiftdescriptor(d(:,sel),f(:,sel)) ;  
set(h3,'color','g') ;
因此,您可以使用比例尺并查看提取直方图的区域是否符合您的预期。
如果您对成像环境有如此多的控制,SIFT 听起来对您的应用程序来说可能有点过分,但它应该可以工作。

关于image-processing - 带有 SIFT/VLFEAT 的图像描述符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5375167/

相关文章:

java - MR8 滤波器组的最大滤波器响应是多少?

java - 二维条码检测和图像分割

python - 在计算机视觉中调整图像大小和重新缩放图像之间有区别吗?

python - Azure 计算机视觉 SDK read_in_stream 始终返回错误请求

r - 基于向量对 data.frame 中的列进行分类

Java矩形检测

python - Tesseract OCR 无法检测数字

algorithm - 从图像中提取稳健的线

python - 将一组图像分类

R 插入符号 rpart 返回 `[.data.frame` 中的错误(m,实验室): undefined columns selected