为什么Vlfeat为不同的图像生成相同数量的描述符?

时间:2014-03-08 00:38:22

标签: sift vlfeat

我注意到Vlfeat / Sift为不同的图像生成相同数量的描述符,为什么? 定向分配的目标是什么?在描述符形成过程中似乎存在类似的过程。 我是SIFT的新手,对SIFT中的很多东西感到困惑。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

Vlfeat / Sift为不同的图像生成相同数量的描述符,为什么?

除非您使用given input keypoints(*)明确传递文件,否则描述符的数量 NOT 相同,并且显然取决于输入图像内容。

例如,如果您将Starbucks logoLena进行比较:

./sift --frames starbucks.pgm; wc -l starbucks.frame
 601 starbucks.frame

./sift --frames lena.pgm; wc -l lena.frame
1769 lena.frame

这里我使用了300x300像素的图像。 --frames输出找到的关键点,每行有一个位置,比例和方向。

(*)这意味着您要求VLFeat描述一组预定义的兴趣点。使用sift VLFeat命令行工具,您可以使用--read-frames选项执行此操作。

定向分配的目标是什么?

这是为了实现旋转不变性。如果您参考original paper

  

基于本地,为每个关键点位置分配一个或多个方向   图像渐变方向。所有未来的操作都是对图像数据执行的   已相对于指定的方向,比例和位置进行了转换   对于每个特征,从而为这些变换提供不变性。