我注意到Vlfeat / Sift为不同的图像生成相同数量的描述符,为什么? 定向分配的目标是什么?在描述符形成过程中似乎存在类似的过程。 我是SIFT的新手,对SIFT中的很多东西感到困惑。谢谢你的帮助。
答案 0 :(得分:1)
Vlfeat / Sift为不同的图像生成相同数量的描述符,为什么?
除非您使用given input keypoints(*)明确传递文件,否则描述符的数量 NOT 相同,并且显然取决于输入图像内容。
例如,如果您将Starbucks logo与Lena进行比较:
./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:
基于本地,为每个关键点位置分配一个或多个方向 图像渐变方向。所有未来的操作都是对图像数据执行的 已相对于指定的方向,比例和位置进行了转换 对于每个特征,从而为这些变换提供不变性。